Quellcode durchsuchen

Merge branch 'master' of http://101.37.21.97:3000/wash/wash_server_v2

lhch2015 vor 1 Monat
Ursprung
Commit
2e30ea317d

BIN
.DS_Store


+ 1 - 1
.gitignore

@@ -12,7 +12,6 @@ target/
 .settings
 .springBeans
 .sts4-cache
-.DS_Store
 ### IntelliJ IDEA ###
 .idea
 *.iws
@@ -32,3 +31,4 @@ build/
 
 ### VS Code ###
 .vscode/
+/D:/ruoyi/uploadPath/avatar/2025/05/11/blob_20250511095432A001.png

+ 115 - 98
admin-ui/src/views/activity/couponInfo/index.vue

@@ -15,12 +15,12 @@
                     <el-select v-model="queryParams.status" placeholder="请选择活动状态" clearable style="width: 180px">
                         <el-option v-for="dict in dict.type.sys_normal_disable" :key="dict.value" :label="dict.label" :value="dict.value"> </el-option>
                     </el-select>
-            </el-form-item>
-            <el-form-item>
-                <el-button type="primary" icon="el-icon-search" @click="handleQuery">搜索</el-button>
-                <el-button icon="el-icon-refresh" @click="resetQuery">重置</el-button>
-            </el-form-item>
-        </el-form>
+                </el-form-item>
+                <el-form-item>
+                    <el-button type="primary" icon="el-icon-search" @click="handleQuery">搜索</el-button>
+                    <el-button icon="el-icon-refresh" @click="resetQuery">重置</el-button>
+                </el-form-item>
+            </el-form>
         </el-card>
 
         <!-- 操作按钮区 -->
@@ -33,9 +33,9 @@
 
         <!-- 列表区域 -->
         <el-card shadow="never">
-        <Page uri="/mapi/activity/couponInfo/list" :request-params="queryParams" ref="pagination">
+            <Page uri="/mapi/activity/couponInfo/list" :request-params="queryParams" ref="pagination">
                 <el-table-column label="活动信息" min-width="250" align="left">
-                <template slot-scope="scope">
+                    <template slot-scope="scope">
                         <div class="activity-card">
                             <div class="activity-main">
                                 <image-preview :src="scope.row.imgUrl" :width="80" :height="80" class="activity-img" />
@@ -47,50 +47,55 @@
                                 </div>
                             </div>
                         </div>
-                </template>
-            </el-table-column>
+                    </template>
+                </el-table-column>
                 <!-- 重要信息列 -->
                 <el-table-column label="活动价格" align="center" width="100">
-                <template slot-scope="scope">
+                    <template slot-scope="scope">
                         <el-tag size="medium" type="danger">¥{{ scope.row.price }}</el-tag>
-                </template>
-            </el-table-column>
+                    </template>
+                </el-table-column>
                 <el-table-column label="活动时间" align="center" min-width="150">
-                <template slot-scope="scope">
-                        {{ parseTime(scope.row.startDate, '{y}-{m}-{d}') }} 至 {{ parseTime(scope.row.endDate, '{y}-{m}-{d}') }}
-                </template>
-            </el-table-column>
+                    <template slot-scope="scope"> {{ parseTime(scope.row.startDate, '{y}-{m}-{d}') }} 至 {{ parseTime(scope.row.endDate, '{y}-{m}-{d}') }} </template>
+                </el-table-column>
                 <el-table-column label="优惠券数量" align="center" width="120">
-                <template slot-scope="scope">
+                    <template slot-scope="scope">
                         <el-tag size="medium" type="primary">{{ scope.row.couponNum }}张</el-tag>
-                </template>
-            </el-table-column>
+                    </template>
+                </el-table-column>
                 <el-table-column label="使用范围" align="center" min-width="150">
-                <template slot-scope="scope">
+                    <template slot-scope="scope">
                         <div class="tag-group">
-                            <el-tag size="mini" effect="plain"  type="primary">{{ getUserScopeLabel(scope.row.userScope) }}</el-tag>
+                            <el-tag size="mini" effect="plain" type="primary">{{ getUserScopeLabel(scope.row.userScope) }}</el-tag>
                             <el-tag size="mini" effect="plain" type="success">{{ getStoreScopeLabel(scope.row.storeScope) }}</el-tag>
-                            <el-tag size="mini" effect="plain" type="warning">限购 {{ scope.row.maxBuyNum }} 张</el-tag>
                         </div>
-                </template>
-            </el-table-column>
+                    </template>
+                </el-table-column>
+          <el-table-column label="限购" align="center" min-width="150">
+            <template slot-scope="scope">
+              <div class="tag-group">
+                <el-tag size="mini" effect="plain" type="warning" v-if="scope.row.maxBuyNum==9999"> 不限 </el-tag>
+                <el-tag size="mini" effect="plain" type="warning" v-else> {{ scope.row.maxBuyNum }} 张</el-tag>
+              </div>
+            </template>
+          </el-table-column>
                 <el-table-column label="活动状态" align="center" width="100">
-                <template slot-scope="scope">
+                    <template slot-scope="scope">
                         <div class="status-column">
                             <el-switch v-model="scope.row.status" active-value="0" inactive-value="1" @change="handleStatusChange(scope.row)"></el-switch>
                         </div>
-                </template>
-            </el-table-column>
+                    </template>
+                </el-table-column>
                 <el-table-column label="创建时间" align="center" prop="createTime" width="150" />
 
-          <el-table-column label="操作" align="center" class-name="small-padding fixed-width" fixed="right" >
-            <template slot-scope="scope">
-              <el-button type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)" >修改</el-button>
-              <el-button type="text" icon="el-icon-s-shop"  @click="handleSetCouponItems(scope.row)" >设置优惠券</el-button>
-              <el-button type="text" icon="el-icon-delete" @click="handleDelete(scope.row)" >删除</el-button>
-            </template>
-          </el-table-column>
-        </Page>
+                <el-table-column label="操作" align="center" class-name="small-padding fixed-width" fixed="right">
+                    <template slot-scope="scope">
+                        <el-button type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)">修改</el-button>
+                        <el-button type="text" icon="el-icon-s-shop" @click="handleSetCouponItems(scope.row)">设置优惠券</el-button>
+                        <el-button type="text" icon="el-icon-delete" @click="handleDelete(scope.row)">删除</el-button>
+                    </template>
+                </el-table-column>
+            </Page>
         </el-card>
 
         <!-- 编辑弹窗 -->
@@ -102,67 +107,68 @@
                             <el-col :span="14">
                                 <el-form-item label="活动标题" prop="title">
                                     <el-input v-model="form.title" placeholder="请输入活动标题" maxlength="200" show-word-limit />
-                        </el-form-item>
+                                </el-form-item>
                                 <el-form-item label="活动描述" prop="description">
                                     <el-input v-model="form.description" type="textarea" :rows="3" placeholder="请输入活动描述" maxlength="500" show-word-limit />
-                        </el-form-item>
+                                </el-form-item>
                                 <el-form-item label="活动时间" prop="duringDate" required>
                                     <el-date-picker v-model="form.duringDate" type="daterange" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期" value-format="yyyy-MM-dd" style="width: 100%"> </el-date-picker>
-                        </el-form-item>
+                                </el-form-item>
                                 <el-row :gutter="20">
                                     <el-col :span="12">
                                         <el-form-item label="活动价格" prop="price">
                                             <el-input-number v-model="form.price" :precision="2" :step="0.1" :min="0" controls-position="right" style="width: 100%">
                                                 <template slot="prefix">¥</template>
                                             </el-input-number>
-                        </el-form-item>
-                    </el-col>
+                                        </el-form-item>
+                                    </el-col>
                                     <el-col :span="12">
                                         <el-form-item label="购买限制" prop="maxBuyNum">
-                                            <el-input-number v-model="form.maxBuyNum" :min="1" :precision="0" controls-position="right" style="width: 100%">
+                                            <el-checkbox v-model="form.isUnlimited" @change="handleUnlimitedChange">不限</el-checkbox>
+                                            <el-input-number v-if="!form.isUnlimited" v-model="form.maxBuyNum" :min="1" :max="9998" :precision="0" controls-position="right" style="width: 100%">
                                                 <template slot="suffix">张</template>
                                             </el-input-number>
-                        </el-form-item>
-                    </el-col>
+                                        </el-form-item>
+                                    </el-col>
                                 </el-row>
-                    </el-col>
+                            </el-col>
                             <el-col :span="10">
                                 <el-form-item label="宣传图片" prop="imgUrl">
                                     <image-upload v-model="form.imgUrl" :limit="1" :is-show-tip="true" :file-size="5" accept=".jpg,.jpeg,.png" tip-text="建议尺寸:800x400px,大小不超过5MB" />
-                        </el-form-item>
-                    </el-col>
+                                </el-form-item>
+                            </el-col>
                         </el-row>
                     </el-tab-pane>
 
                     <el-tab-pane label="使用规则" name="rules">
                         <el-row :gutter="20">
                             <el-col :span="12">
-                        <el-form-item label="适用用户" prop="userScope">
+                                <el-form-item label="适用用户" prop="userScope">
                                     <el-radio-group v-model="form.userScope" class="radio-group-block">
                                         <el-radio-button v-for="dict in dict.type.activity_user_scope" :key="dict.value" :label="dict.value">
                                             {{ dict.label }}
                                         </el-radio-button>
-                            </el-radio-group>
-                        </el-form-item>
-                    </el-col>
+                                    </el-radio-group>
+                                </el-form-item>
+                            </el-col>
                             <el-col :span="12">
                                 <el-form-item label="使用范围" prop="storeScope">
                                     <el-radio-group v-model="form.storeScope" class="radio-group-block">
                                         <el-radio-button v-for="dict in dict.type.coupon_use_range" :key="dict.value" :label="parseInt(dict.value)">
                                             {{ dict.label }}
                                         </el-radio-button>
-                            </el-radio-group>
-                        </el-form-item>
-                    </el-col>
+                                    </el-radio-group>
+                                </el-form-item>
+                            </el-col>
                             <el-col :span="24">
                                 <el-form-item label="活动状态" prop="status">
                                     <el-radio-group v-model="form.status">
                                         <el-radio-button v-for="dict in dict.type.sys_normal_disable" :key="dict.value" :label="dict.value">
                                             {{ dict.label }}
                                         </el-radio-button>
-                            </el-radio-group>
-                        </el-form-item>
-                    </el-col>
+                                    </el-radio-group>
+                                </el-form-item>
+                            </el-col>
                         </el-row>
 
                         <el-form-item label="适用门店" prop="selectStoreIds" v-if="form.storeScope === 1">
@@ -176,7 +182,7 @@
                         </el-form-item>
                     </el-tab-pane>
                 </el-tabs>
-                </el-form>
+            </el-form>
             <div slot="footer" class="dialog-footer">
                 <el-button type="primary" @click="submitForm" :loading="loading">确 定</el-button>
                 <el-button @click="cancel">取 消</el-button>
@@ -238,6 +244,7 @@ export default {
                 storeScope: null,
                 couponFrom: null,
                 maxBuyNum: null,
+                isUnlimited: false,
                 createById: null,
                 createBy: null,
                 createTime: null,
@@ -356,25 +363,26 @@ export default {
                 }
 
                 // 重置表单数据
-            this.form = {
-                id: null,
-                duringDate: [],
-                activityType: '1',
-                status: '0',
-                canMultiUse: 'N',
-                maxUseCount: 1,
-                isShowAppBuyPage: null,
-                isShowWxBuyPage: null,
-                isShowWxBuyPageFromQrcode: null,
-                storeScope: null,
-                couponFrom: null,
-                maxBuyNum: null,
-                createById: null,
-                createBy: null,
-                createTime: null,
-                updateById: null,
-                updateBy: null,
-                updateTime: null,
+                this.form = {
+                    id: null,
+                    duringDate: [],
+                    activityType: '1',
+                    status: '0',
+                    canMultiUse: 'N',
+                    maxUseCount: 1,
+                    isShowAppBuyPage: null,
+                    isShowWxBuyPage: null,
+                    isShowWxBuyPageFromQrcode: null,
+                    storeScope: null,
+                    couponFrom: null,
+                    maxBuyNum: null,
+                    isUnlimited: false,
+                    createById: null,
+                    createBy: null,
+                    createTime: null,
+                    updateById: null,
+                    updateBy: null,
+                    updateTime: null,
                     remark: null,
                     selectStoreIds: [],
                     content: '',
@@ -417,16 +425,16 @@ export default {
 
             getInfo()
                 .then((response) => {
-                var duringDate = []
-                response.data.duringDate = duringDate
-                response.data.status = '0'
+                    var duringDate = []
+                    response.data.duringDate = duringDate
+                    response.data.status = '0'
                     this.form = { ...this.form, ...response.data }
-                this.open = true
+                    this.open = true
                     this.title = '新增送券活动'
                 })
                 .catch((error) => {
                     this.$modal.msgError('获取数据失败:' + (error.message || '未知错误'))
-            })
+                })
         },
         /** 修改按钮操作 */
         handleUpdate(row) {
@@ -440,14 +448,16 @@ export default {
             const id = row.id || this.ids
             getInfo(id)
                 .then((response) => {
-                var duringDate = []
-                duringDate.push(response.data.startDate)
-                duringDate.push(response.data.endDate)
-                response.data.duringDate = duringDate
+                    var duringDate = []
+                    duringDate.push(response.data.startDate)
+                    duringDate.push(response.data.endDate)
+                    response.data.duringDate = duringDate
+                    // 设置不限标识
+                    response.data.isUnlimited = response.data.maxBuyNum === 9999
                     this.form = { ...this.form, ...response.data }
-                this.open = true
-                this.title = '修改送券活动'
-            })
+                    this.open = true
+                    this.title = '修改送券活动'
+                })
                 .catch((error) => {
                     this.$modal.msgError('获取数据失败:' + (error.message || '未知错误'))
                 })
@@ -461,13 +471,13 @@ export default {
                     this.loading = true
                     this.processing = true
 
-            if (null != this.form.duringDate && this.form.duringDate.length > 0) {
-                this.form['startDate'] = this.form.duringDate[0]
-                this.form['endDate'] = this.form.duringDate[1]
-            } else {
-                delete this.form.startDate
-                delete this.form.endDate
-            }
+                    if (null != this.form.duringDate && this.form.duringDate.length > 0) {
+                        this.form['startDate'] = this.form.duringDate[0]
+                        this.form['endDate'] = this.form.duringDate[1]
+                    } else {
+                        delete this.form.startDate
+                        delete this.form.endDate
+                    }
 
                     const submitRequest = this.form.id != null ? updateCouponInfo(this.form) : addCouponInfo(this.form)
 
@@ -475,8 +485,8 @@ export default {
                         .then((response) => {
                             this.$modal.msgSuccess(this.form.id != null ? '修改成功' : '新增成功')
                             this.$nextTick(() => {
-                            this.open = false
-                            this.getList()
+                                this.open = false
+                                this.getList()
                             })
                         })
                         .catch((error) => {
@@ -550,6 +560,13 @@ export default {
                     this.handleDelete(row)
                     break
             }
+        },
+        handleUnlimitedChange(val) {
+            if (val) {
+                this.form.maxBuyNum = 9999
+            } else {
+                this.form.maxBuyNum = 1
+            }
         }
     }
 }

+ 16 - 16
admin-ui/src/views/coupon/item/index.vue

@@ -21,13 +21,13 @@
                     </el-select>
                 </el-form-item>
                 <el-form-item label="有效期">
-                    <el-date-picker v-model="queryParams.duringDate" style="width: 240px" value-format="yyyy-MM-dd" type="daterange" 
-                        range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期" 
+                    <el-date-picker v-model="queryParams.duringDate" style="width: 240px" value-format="yyyy-MM-dd" type="daterange"
+                        range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期"
                         :picker-options="pickerOptions">
                     </el-date-picker>
                 </el-form-item>
                 <el-form-item label="客户手机号" prop="appUserPhoneNumber">
-                    <el-input v-model="queryParams.appUserPhoneNumber" placeholder="请输入客户手机号" clearable 
+                    <el-input v-model="queryParams.appUserPhoneNumber" placeholder="请输入客户手机号" clearable
                         prefix-icon="el-icon-mobile-phone" style="width: 240px" @keyup.enter.native="handleQuery" />
                 </el-form-item>
                 <el-form-item>
@@ -125,7 +125,7 @@
                 </el-table-column>
                 <el-table-column label="操作" align="center" fixed="right" width="150" v-if="isUsed != 'Y'">
                     <template slot-scope="scope">
-                        <el-button type="text" icon="el-icon-edit" v-if="scope.row.isUsed == 'N'" 
+                        <el-button type="text" icon="el-icon-edit" v-if="scope.row.isUsed == 'N'"
                             @click="handleUpdate(scope.row)" v-hasPermi="['app:couponItem:edit']">
                             修改有效期
                         </el-button>
@@ -135,7 +135,7 @@
         </el-card>
 
         <!-- 发送优惠券对话框 -->
-        <el-dialog :title="sendCouponTitle" :visible.sync="sendCouponOpen" width="600px" 
+        <el-dialog :title="sendCouponTitle" :visible.sync="sendCouponOpen" width="600px"
             :close-on-click-modal="false" :before-close="handleSendCouponClose" append-to-body>
             <el-form ref="form" :model="sendCouponForm" :rules="rules" label-width="120px">
                 <el-card class="box-card" shadow="never">
@@ -145,10 +145,10 @@
                     <el-row :gutter="20">
                         <el-col :span="24">
                             <el-form-item label="选择门店" prop="orgId">
-                                <el-select v-model="sendCouponForm.orgId" style="width: 100%" 
-                                    @change="getAllValidList" placeholder="请选择门店" 
+                                <el-select v-model="sendCouponForm.orgId" style="width: 100%"
+                                    @change="getAllValidList" placeholder="请选择门店"
                                     clearable filterable>
-                                    <el-option v-for="item in storeList" :key="item.id" 
+                                    <el-option v-for="item in storeList" :key="item.id"
                                         :label="item.name" :value="item.id">
                                         <span style="float: left">{{ item.name }}</span>
                                         <span style="float: right; color: #8492a6; font-size: 13px">
@@ -160,9 +160,9 @@
                         </el-col>
                         <el-col :span="24">
                             <el-form-item label="选择优惠券" prop="couponTypeId" v-if="sendCouponForm.orgId != null">
-                                <el-select v-model="sendCouponForm.couponTypeId" style="width: 100%" 
+                                <el-select v-model="sendCouponForm.couponTypeId" style="width: 100%"
                                     placeholder="请选择优惠券" clearable filterable>
-                                    <el-option v-for="item in couponList" :key="item.id" 
+                                    <el-option v-for="item in couponList" :key="item.id"
                                         :label="item.title" :value="item.id">
                                         <span style="float: left">{{ item.title }}</span>
                                         <span style="float: right; color: #8492a6; font-size: 13px">
@@ -176,14 +176,14 @@
                         </el-col>
                         <el-col :span="24">
                             <el-form-item label="客户手机号" prop="appUserPhoneNumber">
-                                <el-input v-model="sendCouponForm.appUserPhoneNumber" 
+                                <el-input v-model="sendCouponForm.appUserPhoneNumber"
                                     placeholder="请输入手机号" clearable maxlength="11"
                                     prefix-icon="el-icon-mobile-phone" style="width: 100%" />
                             </el-form-item>
                         </el-col>
                         <el-col :span="12">
                             <el-form-item label="发送数量" prop="sendNum">
-                                <el-input-number v-model="sendCouponForm.sendNum" 
+                                <el-input-number v-model="sendCouponForm.sendNum"
                                     placeholder="请输入发送数量" :min="1" :max="100"
                                     style="width: 100%" />
                             </el-form-item>
@@ -198,11 +198,11 @@
         </el-dialog>
 
         <!-- 修改有效期对话框 -->
-        <el-dialog :title="title" :visible.sync="open" width="500px" :close-on-click-modal="false" :before-close="handleClose">
+        <el-dialog :title="title" :visible.sync="open" width="500px" :close-on-click-modal="false" :before-close="handleClose" append-to-body>
             <el-form ref="form" :model="form" :rules="rules" label-width="100px">
                 <el-form-item label="有效期" prop="duringDate">
-                    <el-date-picker v-model="form.duringDate" type="daterange" 
-                        range-separator="至" start-placeholder="开始日期" 
+                    <el-date-picker v-model="form.duringDate" type="daterange"
+                        range-separator="至" start-placeholder="开始日期"
                         end-placeholder="结束日期" value-format="yyyy-MM-dd"
                         style="width: 100%" :picker-options="pickerOptions">
                     </el-date-picker>
@@ -606,7 +606,7 @@ export default {
         display: flex;
         flex-direction: column;
         gap: 4px;
-        
+
         .el-tag {
             width: fit-content;
             margin: 0 auto;

+ 5 - 5
admin-ui/src/views/login.vue

@@ -4,7 +4,7 @@
       <!-- 左侧信息区 -->
       <div class="login-left">
         <div class="left-content">
-          <h2>管理平台</h2>
+          <h2>一七洗衣管理平台</h2>
           <p>Professional Laundry Management System</p>
           <div class="feature-list">
             <div class="feature-item">
@@ -77,7 +77,7 @@
         </div>
       </div>
     </div>
-    
+
     <!-- 底部版权信息 -->
     <div class="el-login-footer">
       <span>Copyright © 2018-2024 智慧洗护 All Rights Reserved.</span>
@@ -173,7 +173,7 @@ export default {
           this.$store.dispatch("Login", this.loginForm).then(() => {
             this.getPrinter();
             this.$router.push({ path: this.redirect || "/" }).catch(()=>{});
-            
+
           }).catch(() => {
             this.loading = false;
             if (this.captchaEnabled) {
@@ -248,7 +248,7 @@ export default {
           display: flex;
           align-items: center;
           margin-bottom: 20px;
-          
+
           i {
             font-size: 24px;
             margin-right: 10px;
@@ -282,7 +282,7 @@ export default {
       .login-form {
         .el-input {
           height: 40px;
-          
+
           input {
             height: 40px;
             padding-left: 35px;

+ 2 - 1
admin-ui/src/views/order/cloth/collectCloth.vue

@@ -1184,7 +1184,8 @@ export default {
                     pageNum: 1,
                     pageSize: 100,
                     userId: id,
-                    isAppointment: 'Y'
+                    isAppointment: 'Y',
+                    orderStatus: '3'
                 }
             }).then((data) => {
                 if (data && data.code === 200) {

+ 1 - 1
admin-ui/src/views/order/cloth/searchCloth.vue

@@ -128,7 +128,7 @@
             <el-table-column label="操作" align="center" class-name="small-padding fixed-width" fixed="right" width="150">
                 <template slot-scope="scope">
                     <el-button type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)">详情</el-button>
-                    <el-button type="text" icon="el-icon-camera" @click="handphotograph(scope.row)">拍照</el-button>
+                    <el-button type="text" icon="el-icon-camera" v-if="userInfoVO.userType == '02'" @click="handphotograph(scope.row)">拍照</el-button>
                     <el-button type="text" icon="el-icon-printer" v-if="userInfoVO.userType == '02'" @click="btn_pointer_label(scope.row)">标签打印</el-button>
                 </template>
             </el-table-column>

+ 2 - 1
admin-ui/src/views/order/retailOrder/index.vue

@@ -29,7 +29,7 @@
                 <el-button icon="el-icon-refresh" @click="resetQuery">重置</el-button>
             </el-form-item>
         </el-form>
-        
+
 
         <el-row :gutter="10" class="mb8">
             <!--            <el-col :span="1.5">-->
@@ -118,6 +118,7 @@
                     <el-descriptions-item label="物流单号">{{ detailView.deliveryNo ? detailView.deliveryNo : '暂无信息' }} </el-descriptions-item>
                     <el-descriptions-item label="收货地址" span="3">{{ detailView.province }}{{ detailView.city }}{{ detailView.area }}{{ detailView.address }}{{ detailView.addressDetail }} </el-descriptions-item>
                     <el-descriptions-item label="备注信息" span="3">{{ detailView.deliveryNo ? detailView.deliveryNo : '暂无信息' }} </el-descriptions-item>
+                  <el-descriptions-item label="退款备注" span="3" v-if="detailView.refundReason">{{ detailView.refundReason ? detailView.refundReason : '暂无信息' }} </el-descriptions-item>
                 </el-descriptions>
             </el-card>
             <div class="product-list-container">

+ 17 - 10
admin-ui/src/views/system/store/add_store.vue

@@ -29,7 +29,6 @@
                     v-model="formData.storeType"
                     placeholder="请选择门店类型"
                     @change="changeStoreType"
-                    :disabled="isEditMode"
                     style="width: 100%"
                   >
                     <el-option
@@ -99,6 +98,15 @@
                   />
                 </el-form-item>
               </el-col>
+              <el-col :span="8">
+                <el-form-item label="手机号码" prop="contactPhone">
+                  <el-input
+                    v-model="formData.contactPhone"
+                    placeholder="请输入负责人手机"
+                    clearable
+                  />
+                </el-form-item>
+              </el-col>
               <el-col :span="8">
                 <el-form-item label="负责人职务" prop="contactPost">
                   <el-input
@@ -126,15 +134,7 @@
                   />
                 </el-form-item>
               </el-col>
-              <el-col :span="8">
-                <el-form-item label="手机号码" prop="contactPhone">
-                  <el-input
-                    v-model="formData.contactPhone"
-                    placeholder="请输入负责人手机"
-                    clearable
-                  />
-                </el-form-item>
-              </el-col>
+
               <el-col :span="8">
                 <el-form-item label="电子邮箱" prop="contactEmail">
                   <el-input
@@ -526,6 +526,13 @@ export default {
             trigger: 'change'
           }
         ],
+        storeType: [
+          {
+            required: true,
+            message: '请选择类型',
+            trigger: 'change'
+          }
+        ],
         contactName: [
           {
             required: true,

+ 6 - 0
admin-ui/src/views/system/store/index.vue

@@ -11,6 +11,12 @@
                         <el-option v-for="item in factorys" :label="item.factoryName" :value="item.id" :key="item.factoryName" />
                     </el-select>
                 </el-form-item>
+              <el-form-item label="门店状态">
+                <el-select v-model="queryParams.status" placeholder="请选择门店状态" clearable style="width: 220px">
+                  <el-option :key="0" label="启用" value="0" />
+                  <el-option :key="1" label="禁用" value="1" />
+                </el-select>
+              </el-form-item>
                 <el-form-item label="门店类型">
                     <el-select v-model="queryParams.storeType" placeholder="请选择门店类型" clearable style="width: 220px">
                         <el-option v-for="dict in dict.type.sys_store_type" :key="dict.value" :label="dict.label" :value="dict.value" />

+ 3 - 0
admin-ui/src/views/systemSet/store/index.vue

@@ -324,6 +324,9 @@ export default {
     /** 提交按钮 */
     submitForm() {
       if (this.form.id != null) {
+        console.log(this.businessTimeList)
+        this.form.businessStartTime = this.businessTimeList[0]
+        this.form.businessEndTime = this.businessTimeList[1]
         updateStore(this.form).then(response => {
           this.$modal.msgSuccess("修改成功");
           this.getList();

+ 2 - 2
admin-ui/src/views/workbench/workRetail/index.vue

@@ -300,7 +300,7 @@
           </div>
           <div class="summary-item">
             <div class="label">会员余额</div>
-            <div class="value highlight-green">¥{{formatMoney(appUserInfo ? appUserInfo.rechargeBalance + appUserInfo.giveBalance : 0)}}</div>
+            <div class="value highlight-green">¥{{formatMoney(appUserInfo ? appUserInfo.rechargeBalance + appUserInfo.giveBalance + appUserInfo.welfareBalance : 0)}}</div>
           </div>
         </div>
       </div>
@@ -365,7 +365,7 @@
                 </div>
                 <div class="info-item">
                   <span class="label">可用余额:</span>
-                  <span class="value highlight-green">¥{{formatMoney(appUserInfo.rechargeBalance + appUserInfo.giveBalance)}}</span>
+                  <span class="value highlight-green">¥{{formatMoney(appUserInfo.rechargeBalance + appUserInfo.giveBalance + appUserInfo.welfareBalance)}}</span>
                 </div>
               </div>
             </template>

+ 0 - 0
log.path_IS_UNDEFINED/sys-error.log


+ 0 - 0
log.path_IS_UNDEFINED/sys-info.log


+ 0 - 0
log.path_IS_UNDEFINED/sys-user.log


+ 6 - 0
yiqi-admin/src/main/java/com/yiqi/admin/controller/recharge/RechargePasswordCardController.java

@@ -143,6 +143,12 @@ public class RechargePasswordCardController extends BaseController {
         util.importTemplateExcel(response, "充值卡数据");
     }
 
+    @PostMapping("/importDirectChargingTemplate")
+    public void importDirectChargingTemplate(HttpServletResponse response) {
+        ExcelUtil<DirectChargingImportDTO> util = new ExcelUtil<DirectChargingImportDTO>(DirectChargingImportDTO.class);
+        util.importTemplateExcel(response, "直充充值卡数据");
+    }
+
     /**
      * 直充用户导入 (会绑定门店)
      */

+ 2 - 2
yiqi-common/src/main/java/com/yiqi/common/enums/OrderRefundStatus.java

@@ -8,9 +8,9 @@ public enum OrderRefundStatus {
     REFUND_APPLYING("1", "退款申请中"),
     REFUNDING("2", "退款中"),
     REFUND_SUCCESS("3", "退款成功"),
-    ERROR("-1", "退款异常"),
+    REFUND_CANCEL("-1", "退款取消"),
     REFUND_REFUSE("-2", "退款驳回"),
-    REFUND_CANCEL("-3", "退款取消"),
+    ERROR("-3", "退款失败"),
     ;
 
     private final String code;

+ 1 - 0
yiqi-common/src/main/java/com/yiqi/common/enums/PayType.java

@@ -15,6 +15,7 @@ public enum PayType implements CodeEnum
     RECHARGE_CARD("5", "储值卡"),
     //组合支付
     COMBINE("9", "组合支付"),
+    NOPAY("-1", "未付款"),
     ;
 
     private final String code;

+ 1 - 1
yiqi-common/src/main/java/com/yiqi/order/domain/OrderRechargeRefund.java

@@ -163,7 +163,7 @@ public class OrderRechargeRefund extends BaseEntity
 
     /** 退卡状态(-1:退款失败 0:申请中 1:退款通过) */
     @Excel(name = "退卡状态", readConverterExp = "0=正常,1=退款申请中,2=退款同意,3=退款拒绝,4=退款取消")
-    @ApiModelProperty("退卡状态(0=正常,1=退款申请中,2=退款同意,3=退款拒绝,4=退款取消)")
+    @ApiModelProperty("退卡状态(0=正常,1=退款申请中,2=退款同意,-2=退款拒绝,-3=退款取消)")
     private String refundStatus;
 
     /** 驳回原因 */

+ 3 - 0
yiqi-common/src/main/java/com/yiqi/order/domain/vo/GoodsOrderInfoVO.java

@@ -101,6 +101,9 @@ public class GoodsOrderInfoVO {
     @ApiModelProperty("地址")
     private String address;
 
+    @ApiModelProperty("退款原因")
+    private String refundReason;
+
     @ApiModelProperty("门牌号")
     private String addressDetail;
 

+ 2 - 1
yiqi-core/src/main/java/com/yiqi/order/service/impl/OrderClothServiceImpl.java

@@ -353,6 +353,7 @@ public class OrderClothServiceImpl extends ServiceImpl<OrderClothMapper, OrderCl
         buildClothSpeedIntoOrder(orderCloth);
         //配置组织信息
         buildOrgIntoOrder(orderCloth);
+        orderCloth.setPayType(PayType.NOPAY.getCode());
         saveOrUpdate(orderCloth);
 
         List<OrderClothItem> orderClothItems = buildOrderClothItemData(orderClothDTO.getOrderClothItemDTOS(), orderCloth);
@@ -602,7 +603,7 @@ public class OrderClothServiceImpl extends ServiceImpl<OrderClothMapper, OrderCl
             rechargePasswordCardService.orderPayByBalance(rechargeCardPayDTO);
             paySuccess(orderCloth);
             return OrderPayResultVO.paySuccess(orderCloth.getOrderNo());
-        }else {
+        } else {
             OrderPayResultVO orderPayResultVO = new OrderPayResultVO();
             orderPayResultVO.setAppPayRespVO(payService.appPay(PayOrderAppDTO.buildClothOrderPayData(orderCloth, orderClothPayDTO.getPlatform())));
             orderPayResultVO.setPayResult(100);

+ 1 - 1
yiqi-system/src/main/resources/mapper/system/SysStoreMapper.xml

@@ -71,7 +71,7 @@
                 and store.city_id = #{cityId}
             </if>
             <if test="status != null  and status != ''">
-                and status = #{status}
+                and store.status = #{status}
             </if>
         </where>
     </select>