大大的豆芽 10 luni în urmă
părinte
comite
a4a526d1f8
43 a modificat fișierele cu 2129 adăugiri și 2472 ștergeri
  1. 54 52
      src/api/coupon/type.js
  2. 4 0
      src/assets/styles/ruoyi.scss
  3. 25 12
      src/views/activity/clothItem/index.vue
  4. 54 48
      src/views/activity/couponInfo/index.vue
  5. 14 13
      src/views/activity/couponItem/index.vue
  6. 46 16
      src/views/activity/discountInfo/index.vue
  7. 6 0
      src/views/activity/rechargeInfo/index.vue
  8. 18 31
      src/views/activity/rechargeItem/index.vue
  9. 4 0
      src/views/app/feedback/index.vue
  10. 4 2
      src/views/app/notify/index.vue
  11. 4 2
      src/views/app/version/index.vue
  12. 4 1
      src/views/cloth/adjunct/index.vue
  13. 4 1
      src/views/cloth/clothBrand/index.vue
  14. 285 279
      src/views/cloth/clothType/index.vue
  15. 302 296
      src/views/cloth/color/index.vue
  16. 3 0
      src/views/cloth/craft/index.vue
  17. 239 231
      src/views/cloth/customItem/index.vue
  18. 3 0
      src/views/cloth/flaw/index.vue
  19. 3 0
      src/views/cloth/flawType/index.vue
  20. 4 1
      src/views/cloth/rewashReason/index.vue
  21. 4 1
      src/views/cloth/rewashType/index.vue
  22. 4 1
      src/views/cloth/speed/index.vue
  23. 4 1
      src/views/cloth/texture/index.vue
  24. 0 1
      src/views/cloth/unitPrice/index.vue
  25. 4 1
      src/views/cloth/washMode/index.vue
  26. 3 0
      src/views/cloth/washProblem/index.vue
  27. 32 27
      src/views/coupon/item/index.vue
  28. 4 19
      src/views/coupon/type/index.vue
  29. 4 0
      src/views/goods/brand/index.vue
  30. 7 18
      src/views/goods/carBeaut/index.vue
  31. 4 0
      src/views/goods/category/index.vue
  32. 27 17
      src/views/goods/commonGoods/index.vue
  33. 13 18
      src/views/goods/lifeService/index.vue
  34. 887 1305
      src/views/order/retailOrder/index.vue
  35. 8 8
      src/views/recharge/batchRecord/cardDetail.vue
  36. 13 22
      src/views/recharge/batchRecord/index.vue
  37. 4 16
      src/views/recharge/batchRecord/useRecord.vue
  38. 14 11
      src/views/recharge/card/index.vue
  39. 9 9
      src/views/recharge/cardVersion/index.vue
  40. 0 8
      src/views/system/store/index.vue
  41. 1 1
      src/views/systemSet/sellGoods/index.vue
  42. 1 1
      src/views/systemSet/sellGoods/retailStore.vue
  43. 2 2
      src/views/workbench/workAppointmentOrder/index.vue

+ 54 - 52
src/api/coupon/type.js

@@ -2,84 +2,86 @@ import request from '@/utils/request'
 
 // 查询优惠券类型列表
 export function listType(query) {
-  return request({
-    url: '/mapi/coupon/type/list',
-    method: 'get',
-    params: query
-  })
+    return request({
+        url: '/mapi/coupon/type/list',
+        method: 'get',
+        params: query
+    })
 }
 
-export function allList() {
-  return request({
-    url: '/mapi/coupon/type/all',
-    method: 'get',
-  })
+export function allList(sendWay) {
+    return request({
+        url: '/mapi/coupon/type/all',
+        method: 'get',
+        params: {
+            sendWay: sendWay
+        }
+    })
 }
 // 查询所有有效优惠券类型列表
 export function allValidList(orgId) {
-  return request({
-    url: '/mapi/coupon/type/allValidByStoreId',
-    method: 'get',
-    params:{
-      orgId:orgId
-    }
-  })
+    return request({
+        url: '/mapi/coupon/type/allValidByStoreId',
+        method: 'get',
+        params: {
+            orgId: orgId
+        }
+    })
 }
 
 // 查询优惠券类型详细
 export function getType(id) {
-  return request({
-    url: '/mapi/coupon/type/getInfo',
-    method: 'get',
-    params: {id:id}
-  })
+    return request({
+        url: '/mapi/coupon/type/getInfo',
+        method: 'get',
+        params: { id: id }
+    })
 }
 
 // 新增优惠券类型
 export function addType(data) {
-  return request({
-    url: '/mapi/coupon/type',
-    method: 'post',
-    data: data
-  })
+    return request({
+        url: '/mapi/coupon/type',
+        method: 'post',
+        data: data
+    })
 }
 
 // 修改优惠券类型
 export function updateType(data) {
-  return request({
-    url: '/mapi/coupon/type',
-    method: 'put',
-    data: data
-  })
+    return request({
+        url: '/mapi/coupon/type',
+        method: 'put',
+        data: data
+    })
 }
 
 // 删除优惠券类型
 export function delType(id) {
-  return request({
-    url: '/mapi/coupon/type/' + id,
-    method: 'delete'
-  })
+    return request({
+        url: '/mapi/coupon/type/' + id,
+        method: 'delete'
+    })
 }
 
-
 // 修改优惠券类型状态
-export function updateTypeStatus(id,status) {
-  const data = {
-    id,
-    status
-  }
-  return request({
-    url: '/mapi/coupon/type/updateStatus',
-    method: 'post',
-    data: data
-  })
+export function updateTypeStatus(id, status) {
+    const data = {
+        id,
+        status
+    }
+    return request({
+        url: '/mapi/coupon/type/updateStatus',
+        method: 'post',
+        data: data
+    })
 }
 
 // 查询优惠券类型列表
 export function getCouponTypeList(query) {
-  return request({
-    url: '/mapi/coupon/type/list',
-    method: 'get',
-    params: query
-  })
+    return request({
+        url: '/mapi/coupon/type/list',
+        method: 'get',
+        params: query
+    })
 }

+ 4 - 0
src/assets/styles/ruoyi.scss

@@ -106,6 +106,10 @@
    display: none;
  }
 
+ .el-dialog {
+   width: 60%;
+ }
+
 /** 表单布局 **/
 .form-header {
   font-size:15px;

+ 25 - 12
src/views/activity/clothItem/index.vue

@@ -6,11 +6,11 @@
                     <el-option v-for="item in clothItemList" :label="item.name" :value="item.id" :key="item.name"> </el-option>
                 </el-select>
             </el-form-item>
-            <el-form-item prop="washModeId">
-                <el-select v-model="queryParams.washModeId" filterable placeholder="洗衣类型" clearable>
-                    <el-option v-for="item in washModeList" :label="item.name" :value="item.id" :key="item.name"> </el-option>
-                </el-select>
-            </el-form-item>
+            <!--            <el-form-item prop="washModeId">-->
+            <!--                <el-select v-model="queryParams.washModeId" filterable placeholder="洗衣类型" clearable>-->
+            <!--                    <el-option v-for="item in washModeList" :label="item.name" :value="item.id" :key="item.name"> </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>
@@ -28,8 +28,13 @@
             <el-table-column type="selection" width="55" align="center" fixed="left" />
             <el-table-column label="序号" align="center" prop="id" />
             <el-table-column label="衣服名称" align="center" prop="clothItemName" />
-            <el-table-column label="指定价格" align="center" prop="price" />
+            <el-table-column label="指定折扣" align="center" prop="discount" />
+            <!--            <el-table-column label="指定价格" align="center" prop="price" />-->
             <el-table-column label="洗衣类型" align="center" prop="washModeName" />
+            <el-table-column label="创建人" align="center" prop="createBy" />
+            <el-table-column label="创建时间" align="center" prop="createTime" />
+            <el-table-column label="修改人" align="center" prop="updateBy" />
+            <el-table-column label="修改时间" align="center" prop="createTime" />
             <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)" v-hasPermi="['activity:clothInfo:edit']">修改</el-button>
@@ -39,7 +44,7 @@
         </Page>
 
         <!-- 添加或修改指定衣服折扣活动明细对话框 -->
-        <el-dialog :title="title" :visible.sync="open" size="30%" append-to-body>
+        <el-dialog :title="title" :visible.sync="open" size="30%" width="50%" append-to-body>
             <el-row :gutter="15">
                 <el-form ref="form" :model="form" :rules="rules" label-width="150px">
                     <el-col :span="24">
@@ -50,15 +55,20 @@
                         </el-form-item>
                     </el-col>
                     <el-col :span="24">
-                        <el-form-item label="洗衣类型" prop="washModeId">
-                            <el-select v-model="form.washModeId" filterable placeholder="洗衣类型" clearable>
+                        <el-form-item label="洗衣类型" prop="washModeIds">
+                            <el-select v-model="washModeIds" filterable placeholder="洗衣类型" clearable multiple>
                                 <el-option v-for="item in washModeList" :label="item.name" :value="item.id" :key="item.name"> </el-option>
                             </el-select>
                         </el-form-item>
                     </el-col>
+                    <!--                    <el-col :span="24">-->
+                    <!--                        <el-form-item label="指定价格(元)" prop="price">-->
+                    <!--                            <el-input-number v-model="form.price" placeholder="请输入指定价格" :precision="2" :min="0" :max="999999" />-->
+                    <!--                        </el-form-item>-->
+                    <!--                    </el-col>-->
                     <el-col :span="24">
-                        <el-form-item label="指定价格(元)" prop="price">
-                            <el-input-number v-model="form.price" placeholder="请输入指定价格" :precision="2" :min="0" :max="999999" />
+                        <el-form-item label="指定折扣" prop="discount">
+                            <el-input-number v-model="form.discount" placeholder="请输入指定折扣" :precision="2" :min="0" :max="1" :step="0.01" />
                         </el-form-item>
                     </el-col>
                 </el-form>
@@ -87,6 +97,7 @@ export default {
             loading: true,
             // 选中数组
             ids: [],
+            washModeIds: [],
             // 非单个禁用
             single: true,
             // 非多个禁用
@@ -145,7 +156,7 @@ export default {
                 activityId: null,
                 clothItemId: null,
                 price: null,
-                washModeId: null,
+                washModeIds: null,
                 delFlag: null,
                 createById: null,
                 createBy: null,
@@ -184,6 +195,7 @@ export default {
             const id = row.id || this.ids
             getActivityClothItem(id).then((response) => {
                 this.form = response.data
+                this.washModeIds = this.form.washModeIds.split(',')
                 this.open = true
                 this.title = '修改指定衣服折扣活动明细'
             })
@@ -192,6 +204,7 @@ export default {
         submitForm() {
             this.$refs['form'].validate((valid) => {
                 if (valid) {
+                    this.form.washModeIds = this.washModeIds.join(',')
                     if (this.form.id != null) {
                         updateActivityClothItem({ ...this.form, ...{ activityId: this.activityId } }).then((response) => {
                             this.$modal.msgSuccess('修改成功')

+ 54 - 48
src/views/activity/couponInfo/index.vue

@@ -1,6 +1,9 @@
 <template>
     <div class="app-container">
         <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px">
+            <el-form-item prop="title">
+                <el-input v-model="queryParams.title" placeholder="请输入标题" clearable @keyup.enter.native="handleQuery" />
+            </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>
@@ -16,55 +19,61 @@
 
         <Page uri="/mapi/activity/couponInfo/list" :request-params="queryParams" ref="pagination">
             <el-table-column label="序号" align="center" prop="id" width="80" />
-            <el-table-column label="标题" align="center" prop="title" width="150" :show-overflow-tooltip="true" />
-            <el-table-column label="描述" align="center" prop="description" width="150" :show-overflow-tooltip="true" />
-            <el-table-column label="宣传图片" align="center" prop="imgUrl" width="150">
+            <el-table-column label="标题" align="center" prop="title" :show-overflow-tooltip="true" />
+            <el-table-column label="描述" align="center" prop="description" :show-overflow-tooltip="true" />
+            <el-table-column label="宣传图片" align="center" prop="imgUrl" width="100">
                 <template slot-scope="scope">
-                    <image-preview :src="scope.row.imgUrl" :width="50" :height="50" />
+                    <image-preview :src="scope.row.imgUrl" :width="80" :height="80" />
                 </template>
             </el-table-column>
-            <el-table-column label="活动价格" align="center" prop="price" width="120" />
-            <el-table-column label="状态" align="center" prop="status" width="150">
+            <el-table-column label="状态" align="center" prop="status" width="100">
                 <template slot-scope="scope">
                     <el-switch v-model="scope.row.status" active-value="0" inactive-value="1" @change="handleStatusChange(scope.row)"></el-switch>
                 </template>
             </el-table-column>
-            <el-table-column label="开始时间" align="center" prop="startDate" width="180">
+            <el-table-column label="开始时间" align="center" prop="startDate" width="120">
                 <template slot-scope="scope">
                     <span>{{ parseTime(scope.row.startDate, '{y}-{m}-{d}') }}</span>
                 </template>
             </el-table-column>
-            <el-table-column label="结束时间" align="center" prop="endDate" width="180">
+            <el-table-column label="结束时间" align="center" prop="endDate" width="120">
                 <template slot-scope="scope">
                     <span>{{ parseTime(scope.row.endDate, '{y}-{m}-{d}') }}</span>
                 </template>
             </el-table-column>
-            <el-table-column label="最大可购买数量" align="center" prop="maxBuyNum" width="150" />
-            <el-table-column label="适用用户范围" align="center" prop="userScope" width="150">
+            <el-table-column label="活动价格" align="center" prop="price" width="100" />
+            <el-table-column label="可购买张数" align="center" prop="maxBuyNum" width="100" />
+            <el-table-column label="已选择券数量" align="center" prop="couponNum" width="120">
+                <template slot-scope="scope">
+                    <el-button type="text" @click="handleSetCouponItems(scope.row)">已选{{ scope.row.couponNum }}张</el-button>
+                </template>
+            </el-table-column>
+            <el-table-column label="适用用户" align="center" prop="userScope" width="120">
                 <template slot-scope="scope">
                     <dict-tag :options="dict.type.activity_user_scope" :value="scope.row.userScope" />
                 </template>
             </el-table-column>
-            <el-table-column label="展示在app购买页" align="center" prop="isShowAppBuyPage" width="150">
+            <el-table-column label="适用门店" align="center" prop="storeScope" width="120">
                 <template slot-scope="scope">
-                    <dict-tag :options="dict.type.sys_yes_no" :value="scope.row.isShowAppBuyPage" />
+                    <dict-tag :options="dict.type.coupon_use_range" :value="scope.row.storeScope" />
                 </template>
             </el-table-column>
-            <el-table-column label="展示在小程序购买页" align="center" prop="isShowWxBuyPage" width="180">
+            <el-table-column label="展示在app购买页" align="center" prop="isShowAppBuyPage" width="100">
                 <template slot-scope="scope">
-                    <dict-tag :options="dict.type.sys_yes_no" :value="scope.row.isShowWxBuyPage" />
+                    <dict-tag :options="dict.type.sys_yes_no" :value="scope.row.isShowAppBuyPage" />
                 </template>
             </el-table-column>
-            <el-table-column label="展示在扫码进入购买页" align="center" prop="isShowWxBuyPageFromQrcode" width="180">
+            <el-table-column label="展示在小程序购买页" align="center" prop="isShowWxBuyPage" width="100">
                 <template slot-scope="scope">
-                    <dict-tag :options="dict.type.sys_yes_no" :value="scope.row.isShowWxBuyPageFromQrcode" />
+                    <dict-tag :options="dict.type.sys_yes_no" :value="scope.row.isShowWxBuyPage" />
                 </template>
             </el-table-column>
-            <el-table-column label="优惠券使用范围" align="center" prop="useRange" width="150">
+            <el-table-column label="展示在扫码进入购买页" align="center" prop="isShowWxBuyPageFromQrcode" width="100">
                 <template slot-scope="scope">
-                    <dict-tag :options="dict.type.coupon_use_range" :value="scope.row.useRange" />
+                    <dict-tag :options="dict.type.sys_yes_no" :value="scope.row.isShowWxBuyPageFromQrcode" />
                 </template>
             </el-table-column>
+
             <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)" v-hasPermi="['activity:couponInfo:edit']">修改</el-button>
@@ -75,7 +84,7 @@
         </Page>
 
         <!-- 添加或修改送券活动对话框 -->
-        <el-dialog :title="title" :visible.sync="open" size="80%" append-to-body>
+        <el-dialog :title="title" :visible.sync="open" width="68%" append-to-body>
             <el-row :gutter="15">
                 <el-form ref="form" :model="form" :rules="rules" label-width="180px" size="small">
                     <el-col :span="24">
@@ -98,7 +107,7 @@
                     </el-col>
                     <el-col :span="24">
                         <el-form-item label="内容" prop="content">
-                            <editor v-model="form.content" :min-height="192" />
+                            <editor v-model="form.content" :min-height="192" :height="400" />
                         </el-form-item>
                     </el-col>
                     <el-col :span="24">
@@ -115,20 +124,20 @@
                         </el-form-item>
                     </el-col>
                     <el-col :span="8">
-                        <el-form-item label="适用用户范围" prop="userScope">
+                        <el-form-item label="适用用户" prop="userScope">
                             <el-select v-model="form.userScope" placeholder="请选择适用用户范围">
                                 <el-option v-for="dict in dict.type.activity_user_scope" :key="dict.value" :label="dict.label" :value="dict.value"></el-option>
                             </el-select>
                         </el-form-item>
                     </el-col>
                     <el-col :span="8">
-                        <el-form-item label="最大可购买数量" prop="maxBuyNum">
-                            <el-input-number v-model="form.maxBuyNum" placeholder="请输入最大可购买数量" :precision="0" :min="0" :max="999999" />
+                        <el-form-item label="可购买数量" prop="maxBuyNum">
+                            <el-input-number v-model="form.maxBuyNum" placeholder="请输入最大可购买数量" :precision="0" :min="1" :max="999999" />
                         </el-form-item>
                     </el-col>
                     <el-col :span="8">
-                        <el-form-item label="单次订单最多使用券数" prop="maxUseCount">
-                            <el-input-number v-model="form.maxUseCount" placeholder="请输入单次订单最多使用券数" :precision="0" :min="0" :max="999999" />
+                        <el-form-item label="单次最多使用券数" prop="maxUseCount">
+                            <el-input-number v-model="form.maxUseCount" placeholder="请输入单次订单最多使用券数" :precision="0" :min="1" :max="999999" />
                         </el-form-item>
                     </el-col>
                     <el-col :span="8">
@@ -138,6 +147,13 @@
                             </el-radio-group>
                         </el-form-item>
                     </el-col>
+                    <el-col :span="8">
+                        <el-form-item label="适用门店" prop="storeScope">
+                            <el-radio-group v-model="form.storeScope">
+                                <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-col :span="8">
                         <el-form-item label="展示在app购买页" prop="isShowAppBuyPage">
                             <el-radio-group v-model="form.isShowAppBuyPage">
@@ -159,30 +175,20 @@
                             </el-radio-group>
                         </el-form-item>
                     </el-col>
-                    <el-col :span="8">
-                        <el-form-item label="优惠券使用范围" prop="useRange">
-                            <el-radio-group v-model="form.useRange">
-                                <el-radio-button v-for="dict in dict.type.coupon_use_range" :key="dict.value" :label="dict.value">{{ dict.label }}</el-radio-button>
-                            </el-radio-group>
-                        </el-form-item>
-                    </el-col>
-                    <el-col :span="8">
-                        <el-form-item label="优惠券来源" prop="couponFrom">
-                            <el-radio-group v-model="form.couponFrom">
-                                <el-radio-button v-for="dict in dict.type.coupon_from_type" :key="dict.value" :label="dict.value">{{ dict.label }}</el-radio-button>
-                            </el-radio-group>
-                        </el-form-item>
-                    </el-col>
-                    <el-col :span="8">
-                        <el-form-item label="是否仅限新用户参与" prop="canOnlyNewUser">
+
+                    <!--                    <el-col :span="8">-->
+                    <!--                        <el-form-item label="优惠券来源" prop="couponFrom">-->
+                    <!--                            <el-radio-group v-model="form.couponFrom">-->
+                    <!--                                <el-radio-button v-for="dict in dict.type.coupon_from_type" :key="dict.value" :label="dict.value">{{ dict.label }}</el-radio-button>-->
+                    <!--                            </el-radio-group>-->
+                    <!--                        </el-form-item>-->
+                    <!--                    </el-col>-->
+                    <el-col :span="16">
+                        <el-form-item label="仅限新用户参与" prop="canOnlyNewUser">
                             <el-radio-group v-model="form.canOnlyNewUser">
                                 <el-radio-button v-for="dict in dict.type.sys_yes_no" :key="dict.value" :label="dict.value">{{ dict.label }}</el-radio-button>
                             </el-radio-group>
-                        </el-form-item>
-                    </el-col>
-                    <el-col :span="8">
-                        <el-form-item label="新用户计算时间" prop="newUserRegistTime">
-                            <el-date-picker v-model="form.newUserRegistTime" style="width: 240px" value-format="yyyy-MM-dd" type="date" placeholder="选择日期"></el-date-picker>
+                            <span style="color: #999999"> (新用户是指注册时间一周之内,且没有消费记录的用户) </span>
                         </el-form-item>
                     </el-col>
                     <el-col :span="8">
@@ -257,7 +263,7 @@ export default {
                 isShowAppBuyPage: [{ required: true, message: '是否展示在app购买页不能为空', trigger: 'change' }],
                 isShowWxBuyPage: [{ required: true, message: '是否展示在小程序购买页不能为空', trigger: 'change' }],
                 isShowWxBuyPageFromQrcode: [{ required: true, message: '是否展示在小程序购买页不能为空', trigger: 'change' }],
-                useRange: [{ required: true, message: '优惠券使用范围不能为空', trigger: 'change' }],
+                storeScope: [{ required: true, message: '优惠券使用范围不能为空', trigger: 'change' }],
                 couponFrom: [{ required: true, message: '优惠券来源不能为空', trigger: 'change' }],
                 maxBuyNum: [{ required: true, message: '最大可购买数量不能为空', trigger: 'blur' }],
                 price: [{ required: true, message: '活动价格不能为空', trigger: 'blur' }]
@@ -291,7 +297,7 @@ export default {
                 isShowAppBuyPage: null,
                 isShowWxBuyPage: null,
                 isShowWxBuyPageFromQrcode: null,
-                useRange: null,
+                storeScope: null,
                 couponFrom: null,
                 maxBuyNum: null,
                 createById: null,

+ 14 - 13
src/views/activity/couponItem/index.vue

@@ -17,15 +17,15 @@
         <Page uri="/mapi/activity/couponItem/list" :request-params="queryParams" ref="pagination">
             <el-table-column type="selection" width="55" align="center" fixed="left" />
             <el-table-column label="编号" align="center" prop="id" width="80" />
-            <el-table-column label="优惠券名称" align="center" prop="couponTypeTitle" width="150" />
+            <el-table-column label="优惠券名称" align="center" prop="couponTypeTitle" />
             <el-table-column label="优惠券库存" align="center" prop="couponStock" width="120" />
-            <el-table-column label="发数量" align="center" prop="couponSendNum" width="120" />
+            <el-table-column label="发数量" align="center" prop="couponSendNum" width="120" />
             <el-table-column label="核销数量" align="center" prop="couponUsedNum" width="120" />
-            <el-table-column label="是否自定义有效期" align="center" prop="isCustomValidityPeriod" width="150">
-                <template slot-scope="scope">
-                    <dict-tag :options="dict.type.sys_yes_no" :value="scope.row.isCustomValidityPeriod" />
-                </template>
-            </el-table-column>
+            <!--            <el-table-column label="是否自定义有效期" align="center" prop="isCustomValidityPeriod" width="150">-->
+            <!--                <template slot-scope="scope">-->
+            <!--                    <dict-tag :options="dict.type.sys_yes_no" :value="scope.row.isCustomValidityPeriod" />-->
+            <!--                </template>-->
+            <!--            </el-table-column>-->
             <el-table-column label="优惠券有效期开始日期" align="center" prop="startDate" width="180">
                 <template slot-scope="scope">
                     <span>{{ parseTime(scope.row.startDate, '{y}-{m}-{d}') }}</span>
@@ -36,7 +36,7 @@
                     <span>{{ parseTime(scope.row.endDate, '{y}-{m}-{d}') }}</span>
                 </template>
             </el-table-column>
-            <el-table-column label="操作" align="center" class-name="small-padding fixed-width" fixed="right" width="400">
+            <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)" v-hasPermi="['activity:couponInfo:edit', 'activity:groupInfo:edit']">修改</el-button>
                     <el-button type="text" icon="el-icon-plus" @click="handleAddCoupon(scope.row)" v-hasPermi="['activity:couponInfo:edit', 'activity:groupInfo:edit']">添加库存</el-button>
@@ -51,15 +51,15 @@
             <el-row :gutter="15">
                 <el-form ref="form" :model="form" :rules="rules" label-width="180px">
                     <el-col :span="24">
-                        <el-form-item label="优惠券" prop="couponTypeId">
+                        <el-form-item label="选择优惠券" prop="couponTypeId">
                             <el-select v-model="form.couponTypeId" placeholder="请选择优惠券" :style="{ width: '100%' }" :disabled="form.id != null">
                                 <el-option v-for="item in couponTypes" :label="item.title" :value="item.id" :key="item.title"> </el-option>
                             </el-select>
                         </el-form-item>
                     </el-col>
                     <el-col :span="24">
-                        <el-form-item label="优惠券库存" prop="couponStock">
-                            <el-input-number v-model="form.couponStock" placeholder="请输入优惠券库存" :disabled="form.id != null" :precision="0" :min="0" :max="999999" />
+                        <el-form-item label="设置库存" prop="couponStock">
+                            <el-input-number v-model="form.couponStock" placeholder="请输入优惠券库存" :disabled="form.id != null" :precision="0" :min="1" :max="999999" />
                         </el-form-item>
                         <el-form-item label="是否自定义有效期" prop="isCustomValidityPeriod">
                             <el-radio-group v-model="form.isCustomValidityPeriod">
@@ -82,7 +82,7 @@
         <el-dialog :title="stockTitle" :visible.sync="stockOpen" width="500px" append-to-body>
             <el-form ref="stockForm" :model="stockForm" :rules="stockRoles" label-width="180px">
                 <el-form-item :label="stockTitle + '数量'" prop="stockNum">
-                    <el-input-number v-model="stockForm.stockNum" placeholder="请输入库存数量" />
+                    <el-input-number v-model="stockForm.stockNum" placeholder="请输入库存数量" :min="0" />
                 </el-form-item>
             </el-form>
             <div slot="footer" class="dialog-footer">
@@ -145,7 +145,7 @@ export default {
     },
     created() {
         this.activityId = this.$route.params && this.$route.params.activityId
-        allList().then((res) => {
+        allList(2).then((res) => {
             this.couponTypes = res.data
             console.log('couponTypes', this.couponTypes)
         })
@@ -154,6 +154,7 @@ export default {
     methods: {
         /** 查询注册送券活动优惠券明细列表 */
         getList() {
+            this.queryParams.activityId = this.activityId
             this.$nextTick(() => {
                 this.$refs.pagination.handleSearch(true)
             })

+ 46 - 16
src/views/activity/discountInfo/index.vue

@@ -19,42 +19,60 @@
 
         <Page uri="/mapi/activity/discountInfo/list" :request-params="queryParams" ref="pagination">
             <el-table-column label="序号" align="center" prop="id" width="80" />
-            <el-table-column label="标题" align="center" prop="title" :show-overflow-tooltip="true" width="180" />
+            <el-table-column label="标题" align="center" prop="title" :show-overflow-tooltip="true" />
             <el-table-column label="描述" align="center" prop="description" :show-overflow-tooltip="true" />
             <el-table-column label="宣传图片" align="center" prop="imgUrl" width="100">
                 <template slot-scope="scope">
                     <image-preview :src="scope.row.imgUrl" :width="50" :height="50" />
                 </template>
             </el-table-column>
-            <el-table-column label="开始时间" align="center" prop="startDate" width="180">
+            <el-table-column label="开始时间" align="center" prop="startDate" width="150">
                 <template slot-scope="scope">
                     <span>{{ parseTime(scope.row.startDate, '{y}-{m}-{d}') }}</span>
                 </template>
             </el-table-column>
-            <el-table-column label="结束时间" align="center" prop="endDate" width="180">
+            <el-table-column label="结束时间" align="center" prop="endDate" width="150">
                 <template slot-scope="scope">
                     <span>{{ parseTime(scope.row.endDate, '{y}-{m}-{d}') }}</span>
                 </template>
             </el-table-column>
-            <el-table-column label="状态" align="center" prop="status" width="80">
+            <el-table-column label="状态" align="center" prop="status" width="100">
                 <template slot-scope="scope">
                     <el-switch v-model="scope.row.status" active-value="0" inactive-value="1" @change="handleStatusChange(scope.row)"></el-switch>
                 </template>
             </el-table-column>
-            <el-table-column label="折扣" align="center" prop="discount" width="120" />
-            <el-table-column label="适用用户范围" align="center" prop="userScope" width="120">
+            <el-table-column label="折扣" align="center" prop="discount" width="120">
+                <template slot-scope="scope">
+                    <span v-if="scope.row.clothScope == 0">{{ scope.row.discount }}折</span>
+                    <span v-if="scope.row.clothScope == 1">--</span>
+                </template>
+            </el-table-column>
+            <el-table-column label="适用门店" align="center" prop="storeNum" width="120">
+                <template slot-scope="scope">
+                    <el-button type="text" @click="handleUpdate(scope.row)">{{ scope.row.storeNum }}家门店</el-button>
+                </template>
+            </el-table-column>
+            <el-table-column label="适用衣服" align="center" prop="clothScope" width="120">
+                <template slot-scope="scope">
+                    <span v-if="scope.row.clothScope == 0">全部衣服</span>
+                    <span v-if="scope.row.clothScope == 1">指定衣服</span>
+                </template>
+            </el-table-column>
+            <el-table-column label="适用用户" align="center" prop="userScope" width="120">
                 <template slot-scope="scope">
                     <dict-tag :options="dict.type.activity_user_scope" :value="scope.row.userScope" />
                 </template>
             </el-table-column>
-            <el-table-column label="支付范围" align="center" prop="payScope" width="120">
+            <el-table-column label="适用支付" align="center" prop="payScope" width="120">
                 <template slot-scope="scope">
                     <dict-tag :options="dict.type.activity_pay_scope" :value="scope.row.payScope" />
                 </template>
             </el-table-column>
-            <el-table-column label="操作" align="center" class-name="small-padding fixed-width" fixed="right" width="150">
+            <el-table-column label="创建时间" align="center" prop="createTime" width="180" />
+            <el-table-column label="操作" align="center" class-name="small-padding fixed-width" fixed="right" width="180">
                 <template slot-scope="scope">
                     <el-button type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)" v-hasPermi="['activity:discountInfo:edit']">修改</el-button>
+                    <el-button type="text" v-if="scope.row.clothScope == 1" icon="el-icon-s-shop" @click="handleSetRechargeItems(scope.row)" v-hasPermi="['activity:clothInfo:list']">指定衣服</el-button>
                     <el-button type="text" icon="el-icon-delete" @click="handleDelete(scope.row)" v-hasPermi="['activity:discountInfo:remove']">删除</el-button>
                 </template>
             </el-table-column>
@@ -85,28 +103,37 @@
                     </el-col>
                     <el-col :span="12">
                         <el-form-item label="折扣" prop="discount">
-                            <el-input-number v-model="form.discount" placeholder="请输入折扣(最终价格为原价乘折扣)" :precision="2" :min="0" :max="1" />
+                            <el-input-number style="width: 240px" v-model="form.discount" placeholder="请输入折扣(最终价格为原价乘折扣)" :precision="2" :step="0.01" :min="0" :max="1" />
                         </el-form-item>
                     </el-col>
                     <el-col :span="12">
-                        <el-form-item label="适用用户范围" prop="userScope">
-                            <el-select v-model="form.userScope" placeholder="请选择适用用户范围">
+                        <el-form-item label="适用用户" prop="userScope">
+                            <el-select v-model="form.userScope" placeholder="请选择适用用户范围" style="width: 240px">
                                 <el-option v-for="dict in dict.type.activity_user_scope" :key="dict.value" :label="dict.label" :value="dict.value"></el-option>
                             </el-select>
                         </el-form-item>
                     </el-col>
                     <el-col :span="12">
-                        <el-form-item label="支付范围" prop="payScope">
-                            <el-select v-model="form.payScope" placeholder="请选择支付范围">
+                        <el-form-item label="支付方式" prop="payScope">
+                            <el-select v-model="form.payScope" placeholder="请选择支付方式" style="width: 240px">
                                 <el-option v-for="dict in dict.type.activity_pay_scope" :key="dict.value" :label="dict.label" :value="dict.value"></el-option>
                             </el-select>
                         </el-form-item>
                     </el-col>
-                    <el-col :span="24">
-                        <el-form-item label="适用工厂" prop="selectFactoryIds">
-                            <el-transfer v-model="form.selectFactoryIds" :data="form.factoryVOS" filterable="true" :titles="['待选择的工厂', '已选择的工厂']"></el-transfer>
+                    <el-col :span="12">
+                        <el-form-item label="适用衣服" prop="clothScope">
+                            <el-radio-group v-model="form.clothScope">
+                                <el-radio key="1" label="0">全部衣服</el-radio>
+                                <el-radio key="2" label="1">指定衣服</el-radio>
+                            </el-radio-group>
+                            <span style="color: #aaa; display: block">若指定衣服,请在操作里面添加衣服</span>
                         </el-form-item>
                     </el-col>
+                    <!--                    <el-col :span="24">-->
+                    <!--                        <el-form-item label="适用工厂" prop="selectFactoryIds">-->
+                    <!--                            <el-transfer v-model="form.selectFactoryIds" :data="form.factoryVOS" filterable="true" :titles="['待选择的工厂', '已选择的工厂']"></el-transfer>-->
+                    <!--                        </el-form-item>-->
+                    <!--                    </el-col>-->
                     <el-col :span="24">
                         <el-form-item label="适用门店" prop="selectStoreIds">
                             <el-transfer v-model="form.selectStoreIds" :data="form.storeVOS" filterable="true" :titles="['待选择的门店', '已选择的门店']"></el-transfer>
@@ -263,6 +290,9 @@ export default {
                 this.title = '修改活动明细'
             })
         },
+        handleSetRechargeItems(row) {
+            this.$tab.openPage(row.title + '的指定衣服', '/activity/clothItem/' + row.id)
+        },
         /** 提交按钮 */
         submitForm() {
             if (null != this.form.duringDate && this.form.duringDate.length > 0) {

+ 6 - 0
src/views/activity/rechargeInfo/index.vue

@@ -41,6 +41,12 @@
                     <span>{{ parseTime(scope.row.endDate, '{y}-{m}-{d}') }}</span>
                 </template>
             </el-table-column>
+            <el-table-column label="适用门店" align="center" prop="storeNum">
+                <template slot-scope="scope">
+                    <el-button type="text" @click="handleUpdate(scope.row)">{{ scope.row.storeNum }}家门店</el-button>
+                </template>
+            </el-table-column>
+            <el-table-column label="创建时间" align="center" prop="createTime" width="180" />
             <el-table-column label="操作" align="center" class-name="small-padding fixed-width" fixed="right" width="300">
                 <template slot-scope="scope">
                     <el-button type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)" v-hasPermi="['activity:recharge:edit']">修改</el-button>

+ 18 - 31
src/views/activity/rechargeItem/index.vue

@@ -25,49 +25,42 @@
             <el-col :span="1.5">
                 <el-button type="danger" plain icon="el-icon-delete" :disabled="multiple" @click="handleDelete" v-hasPermi="['activity:rechargeInfo:edit']">删除</el-button>
             </el-col>
-            <!--      <el-col :span="1.5">-->
-            <!--        <el-button-->
-            <!--          type="warning"-->
-            <!--          plain-->
-            <!--          icon="el-icon-download"-->
-            <!--           -->
-            <!--          @click="handleExport"-->
-            <!--          v-hasPermi="['activity:rechargeItem:export']"-->
-            <!--        >导出</el-button>-->
-            <!--      </el-col>-->
             <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
         </el-row>
 
-        <el-table v-loading="loading" fit highlight-current-row border stripe :data="rechargeItemList" @selection-change="handleSelectionChange">
+        <Page uri="/mapi/activity/rechargeItem/list" :request-params="queryParams" ref="pagination">
             <el-table-column type="selection" width="55" align="center" fixed="left" />
             <el-table-column label="序号" align="center" prop="id" width="80" />
-            <el-table-column label="充值类型" align="center" prop="rechargeTypeTitle" />
+            <el-table-column label="充值选项" align="center" prop="rechargeTypeTitle" />
             <el-table-column label="充值金额(元)" align="center" prop="rechargeAmount" width="150" />
             <el-table-column label="赠送金额(元)" align="center" prop="giveAmount" width="150" />
-            <el-table-column label="操作" align="center" class-name="small-padding fixed-width" fixed="right" width="150">
+            <el-table-column label="额外加送金额(元)" align="center" prop="activityGiveAmount" width="150" />
+            <el-table-column label="创建人" align="center" prop="createBy" />
+            <el-table-column label="创建时间" align="center" prop="createTime" />
+            <el-table-column label="修改人" align="center" prop="updateBy" />
+            <el-table-column label="修改时间" align="center" prop="createTime" />
+            <el-table-column label="操作" align="center" class-name="small-padding fixed-width" fixed="right" width="200">
                 <template slot-scope="scope">
                     <el-button type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)" v-hasPermi="['activity:rechargeInfo:edit']">修改</el-button>
                     <el-button type="text" icon="el-icon-delete" @click="handleDelete(scope.row)" v-hasPermi="['activity:rechargeInfo:edit']">删除</el-button>
                 </template>
             </el-table-column>
-        </el-table>
-
-        <pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize" @pagination="getList" />
+        </Page>
 
         <!-- 添加或修改充值多送活动明细对话框 -->
-        <el-dialog :title="title" :visible.sync="open" size="30%" append-to-body>
+        <el-dialog :title="title" :visible.sync="open" width="40%" append-to-body>
             <el-row :gutter="15">
                 <el-form ref="form" :model="form" :rules="rules" label-width="150px">
                     <el-col :span="24">
-                        <el-form-item label="充值类型" prop="rechargeTypeId">
-                            <el-select v-model="form.rechargeTypeId" placeholder="请选择充值类型" :style="{ width: '100%' }">
+                        <el-form-item label="充值选项" prop="rechargeTypeId">
+                            <el-select v-model="form.rechargeTypeId" placeholder="请选择充值选项" :style="{ width: '100%' }">
                                 <el-option v-for="item in rechargeTypes" :label="item.title" :value="item.id" :key="item.title"> </el-option>
                             </el-select>
                         </el-form-item>
                     </el-col>
                     <el-col :span="24">
-                        <el-form-item label="赠送金额(元)" prop="giveAmount">
-                            <el-input-number v-model="form.giveAmount" placeholder="请输入赠送金额" :precision="2" :min="0" :max="999999" />
+                        <el-form-item label="加送金额(元)" prop="activityGiveAmount">
+                            <el-input-number v-model="form.activityGiveAmount" placeholder="请输入额外加送金额" :precision="2" :min="0" :max="999999" />
                         </el-form-item>
                     </el-col>
                 </el-form>
@@ -107,10 +100,7 @@ export default {
             // 是否显示弹出层
             open: false,
             // 查询参数
-            queryParams: {
-                pageNum: 1,
-                pageSize: 10
-            },
+            queryParams: {},
             // 表单参数
             form: {},
             // 表单校验
@@ -128,11 +118,8 @@ export default {
     methods: {
         /** 查询充值多送活动明细列表 */
         getList() {
-            this.loading = true
-            listRechargeItem({ ...this.queryParams, ...{ activityId: this.activityId } }).then((response) => {
-                this.rechargeItemList = response.rows
-                this.total = response.total
-                this.loading = false
+            this.$nextTick(() => {
+                this.$refs.pagination.handleSearch(true)
             })
         },
         // 取消按钮
@@ -146,7 +133,7 @@ export default {
                 id: null,
                 activityId: null,
                 rechargeTypeId: null,
-                giveAmount: null,
+                activityGiveAmount: null,
                 delFlag: null,
                 createById: null,
                 createBy: null,

+ 4 - 0
src/views/app/feedback/index.vue

@@ -38,6 +38,10 @@
             </el-table-column>
             <el-table-column label="反馈内容" align="center" prop="content" show-overflow-tooltip />
             <el-table-column label="回复内容" align="center" prop="feedbackResult" show-overflow-tooltip />
+            <el-table-column label="创建人" align="center" prop="createBy" />
+            <el-table-column label="创建时间" align="center" prop="createTime" />
+            <el-table-column label="修改人" align="center" prop="updateBy" />
+            <el-table-column label="修改时间" align="center" prop="createTime" />
             <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)" v-hasPermi="['app:feedback:edit']" v-if="scope.row.status != '1'">回复</el-button>

+ 4 - 2
src/views/app/notify/index.vue

@@ -32,8 +32,10 @@
                     <dict-tag :options="dict.type.app_notify_click_type" :value="scope.row.clickType" />
                 </template>
             </el-table-column>
-            <el-table-column label="创建时间" align="center" prop="createTime" width="180" />
-            <el-table-column label="创建人" align="center" prop="createBy" width="120" />
+            <el-table-column label="创建人" align="center" prop="createBy" />
+            <el-table-column label="创建时间" align="center" prop="createTime" />
+            <el-table-column label="修改人" align="center" prop="updateBy" />
+            <el-table-column label="修改时间" align="center" prop="createTime" />
             <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>

+ 4 - 2
src/views/app/version/index.vue

@@ -19,8 +19,10 @@
                     <dict-tag :options="dict.type.sys_yes_no" :value="scope.row.isRequire" />
                 </template>
             </el-table-column>
-            <el-table-column label="创建人" align="center" prop="createBy" width="150" />
-            <el-table-column label="创建时间" align="center" prop="createTime" width="180" />
+            <el-table-column label="创建人" align="center" prop="createBy" />
+            <el-table-column label="创建时间" align="center" prop="createTime" />
+            <el-table-column label="修改人" align="center" prop="updateBy" />
+            <el-table-column label="修改时间" align="center" prop="createTime" />
             <!--      <el-table-column label="安装包地址" align="center" prop="apkUrl" />-->
             <el-table-column label="操作" align="center" class-name="small-padding fixed-width" fixed="right" width="150">
                 <template slot-scope="scope">

+ 4 - 1
src/views/cloth/adjunct/index.vue

@@ -33,7 +33,10 @@
                     <el-switch v-model="scope.row.status" active-value="0" inactive-value="1" @change="handleStatusChange(scope.row)"></el-switch>
                 </template>
             </el-table-column>
-            <el-table-column label="创建时间" align="center" prop="createTime"></el-table-column>
+            <el-table-column label="创建人" align="center" prop="createBy" />
+            <el-table-column label="创建时间" align="center" prop="createTime" />
+            <el-table-column label="修改人" align="center" prop="updateBy" />
+            <el-table-column label="修改时间" align="center" prop="createTime" />
             <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
                 <template slot-scope="scope">
                     <el-button type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)" v-hasPermi="['cloth:adjunct:edit']">修改</el-button>

+ 4 - 1
src/views/cloth/clothBrand/index.vue

@@ -25,7 +25,10 @@
                     <el-switch v-model="scope.row.status" active-value="0" inactive-value="1" @change="handleStatusChange(scope.row)"></el-switch>
                 </template>
             </el-table-column>
-            <el-table-column label="创建时间" align="center" prop="createTime"></el-table-column>
+            <el-table-column label="创建人" align="center" prop="createBy" />
+            <el-table-column label="创建时间" align="center" prop="createTime" />
+            <el-table-column label="修改人" align="center" prop="updateBy" />
+            <el-table-column label="修改时间" align="center" prop="createTime" />
             <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)" v-hasPermi="['cloth:brand:edit']">修改</el-button>

+ 285 - 279
src/views/cloth/clothType/index.vue

@@ -1,300 +1,306 @@
 <template>
-  <div class="app-container">
-    <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px">
-      <el-form-item prop="name">
-        <el-input v-model="queryParams.name" placeholder="请输入衣服种类名称" clearable @keyup.enter.native="handleQuery" />
-      </el-form-item>
+    <div class="app-container">
+        <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px">
+            <el-form-item prop="name">
+                <el-input v-model="queryParams.name" placeholder="请输入衣服种类名称" clearable @keyup.enter.native="handleQuery" />
+            </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-row :gutter="10" class="mb8">
-      <el-col :span="1.5">
-        <el-button type="primary" plain icon="el-icon-plus" @click="handleAdd" v-hasPermi="['cloth:clothType:add']">新增</el-button>
-      </el-col>
+            <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>
 
-      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
-    </el-row>
+        <el-row :gutter="10" class="mb8">
+            <el-col :span="1.5">
+                <el-button type="primary" plain icon="el-icon-plus" @click="handleAdd" v-hasPermi="['cloth:clothType:add']">新增</el-button>
+            </el-col>
 
-    <Page uri="/mapi/core/clothType/list" :request-params="queryParams" ref="pagination">
-      <el-table-column label="ID" align="center" prop="id" />
-      <el-table-column label="衣服种类名称" align="center" prop="name" />
-      <el-table-column label="衣服种类单位" align="center" prop="unit">
-        <template slot-scope="scope">
-          {{ scope.row.unit || '-' }}
-        </template>
-      </el-table-column>
-      <el-table-column label="种类图片" align="center" prop="picUrl" width="100">
-        <template slot-scope="scope">
-          <el-image style="width: 100px; height: 100px" :fit="cover" v-if="scope.row.picUrl" :src="scope.row.picUrl"
-            :preview-src-list="[scope.row.picUrl]">
-          </el-image>
-        </template>
-      </el-table-column>
-      <el-table-column label="显示顺序" align="center" prop="sort" />
-      <el-table-column label="衣服种类状态" align="center" key="status">
-        <template slot-scope="scope">
-          <el-switch v-model="scope.row.status" active-value="0" inactive-value="1" @change="handleStatusChange(scope.row)"></el-switch>
-        </template>
-      </el-table-column>
-      <el-table-column label="创建时间" align="center" prop="createTime" />
-      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
-        <template slot-scope="scope">
-          <el-button type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)" v-hasPermi="['cloth:clothType:edit']">修改</el-button>
-          <el-button type="text" icon="el-icon-delete" @click="handleDelete(scope.row)" v-hasPermi="['cloth:clothType:remove']">删除</el-button>
-        </template>
-      </el-table-column>
-    </Page>
+            <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+        </el-row>
 
-    <!-- 添加或修改衣服种类对话框 -->
-    <el-dialog :title="title" :visible.sync="open" direction="rtl" size="30%" append-to-body @opened="onDialogOpened" destroy-on-close>
-      <el-row :gutter="15" >
-        <el-form ref="form" :model="form" :rules="rules" size="medium" label-width="100px">
-          <el-form-item label="衣服种类" label-width="127px" prop="name">
-            <el-input v-model="form.name" placeholder="请输入衣服种类名称" />
-          </el-form-item>
+        <Page uri="/mapi/core/clothType/list" :request-params="queryParams" ref="pagination">
+            <el-table-column label="ID" align="center" prop="id" />
+            <el-table-column label="衣服种类名称" align="center" prop="name" />
+            <el-table-column label="衣服种类单位" align="center" prop="unit">
+                <template slot-scope="scope">
+                    {{ scope.row.unit || '-' }}
+                </template>
+            </el-table-column>
+            <el-table-column label="种类图片" align="center" prop="picUrl" width="100">
+                <template slot-scope="scope">
+                    <el-image style="width: 100px; height: 100px" :fit="cover" v-if="scope.row.picUrl" :src="scope.row.picUrl" :preview-src-list="[scope.row.picUrl]"> </el-image>
+                </template>
+            </el-table-column>
+            <el-table-column label="显示顺序" align="center" prop="sort" />
+            <el-table-column label="衣服种类状态" align="center" key="status">
+                <template slot-scope="scope">
+                    <el-switch v-model="scope.row.status" active-value="0" inactive-value="1" @change="handleStatusChange(scope.row)"></el-switch>
+                </template>
+            </el-table-column>
+            <el-table-column label="创建人" align="center" prop="createBy" />
+            <el-table-column label="创建时间" align="center" prop="createTime" />
+            <el-table-column label="修改人" align="center" prop="updateBy" />
+            <el-table-column label="修改时间" align="center" prop="createTime" />
+            <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
+                <template slot-scope="scope">
+                    <el-button type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)" v-hasPermi="['cloth:clothType:edit']">修改</el-button>
+                    <el-button type="text" icon="el-icon-delete" @click="handleDelete(scope.row)" v-hasPermi="['cloth:clothType:remove']">删除</el-button>
+                </template>
+            </el-table-column>
+        </Page>
 
-          <el-form-item label="衣服单位" label-width="127px" prop="unit">
-            <el-input v-model="form.unit" placeholder="请输入衣服种类单位" />
-          </el-form-item>
+        <!-- 添加或修改衣服种类对话框 -->
+        <el-dialog :title="title" :visible.sync="open" direction="rtl" size="30%" append-to-body @opened="onDialogOpened" destroy-on-close>
+            <el-row :gutter="15">
+                <el-form ref="form" :model="form" :rules="rules" size="medium" label-width="100px">
+                    <el-form-item label="衣服种类" label-width="127px" prop="name">
+                        <el-input v-model="form.name" placeholder="请输入衣服种类名称" />
+                    </el-form-item>
 
-          <el-form-item label="种类图片" label-width="127px" prop="picUrl">
-            <el-upload class="image-uploader" :action="uploadAction" :before-upload="handleBeforeUpload" :on-success="handleUploadSuccess"
-              :on-error="handleUploadError" accept="image/*" :show-file-list="false">
-              <img v-if="form.picUrl" :src="form.picUrl">
-              <i v-else class="el-icon-plus image-uploader-icon"></i>
-            </el-upload>
-          </el-form-item>
+                    <el-form-item label="衣服单位" label-width="127px" prop="unit">
+                        <el-input v-model="form.unit" placeholder="请输入衣服种类单位" />
+                    </el-form-item>
 
-          <el-form-item label="显示顺序" label-width="127px" prop="sort">
-            <el-input-number v-model="form.sort" placeholder="请输入显示顺序(升序排列显示)" :min="0" :step-strictly="true" :style="{width: '100%'}">
-            </el-input-number>
-          </el-form-item>
+                    <el-form-item label="种类图片" label-width="127px" prop="picUrl">
+                        <el-upload class="image-uploader" :action="uploadAction" :before-upload="handleBeforeUpload" :on-success="handleUploadSuccess" :on-error="handleUploadError" accept="image/*" :show-file-list="false">
+                            <img v-if="form.picUrl" :src="form.picUrl" />
+                            <i v-else class="el-icon-plus image-uploader-icon"></i>
+                        </el-upload>
+                    </el-form-item>
 
-          <el-form-item label="状态" prop="status">
-            <el-radio-group v-model="form.status" size="small">
-              <el-radio-button v-for="dict in dict.type.sys_normal_disable" :label="dict.value">{{dict.label}}</el-radio-button>
-            </el-radio-group>
-          </el-form-item>
+                    <el-form-item label="显示顺序" label-width="127px" prop="sort">
+                        <el-input-number v-model="form.sort" placeholder="请输入显示顺序(升序排列显示)" :min="0" :step-strictly="true" :style="{ width: '100%' }"> </el-input-number>
+                    </el-form-item>
 
-        </el-form>
-      </el-row>
-      <div slot="footer" class="dialog-footer">
-        <el-button type="primary" @click="submitForm" style="margin-left: 5%">提交</el-button>
-        <el-button @click="closeDialog">取 消</el-button>
-      </div>
-    </el-dialog>
-  </div>
+                    <el-form-item label="状态" prop="status">
+                        <el-radio-group v-model="form.status" size="small">
+                            <el-radio-button v-for="dict in dict.type.sys_normal_disable" :label="dict.value">{{ dict.label }}</el-radio-button>
+                        </el-radio-group>
+                    </el-form-item>
+                </el-form>
+            </el-row>
+            <div slot="footer" class="dialog-footer">
+                <el-button type="primary" @click="submitForm" style="margin-left: 5%">提交</el-button>
+                <el-button @click="closeDialog">取 消</el-button>
+            </div>
+        </el-dialog>
+    </div>
 </template>
 
 <script>
-import {
-  listType,
-  getType,
-  delType,
-  addType,
-  updateType,
-  changeTypeStatus
-} from "@/api/core/clothType";
+import { listType, getType, delType, addType, updateType, changeTypeStatus } from '@/api/core/clothType'
 
 export default {
-  name: "Type",
-  dicts: ['sys_normal_disable'],
-  data() {
-    return {
-      uploadAction: `${process.env.VUE_APP_BASE_API}` + '/common/uploadOSS',
-      dialogLoading: true,
-      loadingText: '查询中',
-      // 遮罩层
-      loading: true,
-      // 选中数组
-      ids: [],
-      // 非单个禁用
-      single: true,
-      // 非多个禁用
-      multiple: true,
-      // 显示搜索条件
-      showSearch: true,
-      // 总条数
-      total: 0,
-      // 衣服种类表格数据
-      typeList: [],
-      // 弹出层标题
-      title: "",
-      // 是否显示弹出层
-      open: false,
-      // 查询参数
-      queryParams: {
-        name: null,
-        unit: null,
-        status: null
-      },
-      // 表单参数
-      form: {},
-      // 表单校验
-      rules: {
-        name: [{
-          required: true,
-          message: "衣服种类名称不能为空",
-          trigger: "blur"
-        }]
-      }
-    };
-  },
-  created() {
-    this.getList();
-  },
-  methods: {
-    // 上传前校检格式和大小
-    handleBeforeUpload(file) {
-      // 校检文件大小
-      if (this.fileSize) {
-        const isLt = file.size / 1024 / 1024 < this.fileSize;
-        if (!isLt) {
-          this.$message.error(`上传文件大小不能超过 ${this.fileSize} MB!`);
-          return false;
-        }
-      }
-      return true;
-    },
-    handleUploadSuccess(res, file) {
-      // 获取富文本组件实例
-      let quill = this.Quill;
-      // 如果上传成功
-      if (res.code == 200) {
-        // 获取光标所在位置
-        this.form.picUrl = res.data.src
-      } else {
-        this.$message.error("图片插入失败");
-      }
-    },
-    handleUploadError() {
-      this.$message.error("图片插入失败");
-    },
-    /** 查询衣服种类列表 */
-    getList() {
-      this.$nextTick(() => {
-        this.$refs.pagination.handleSearch(true)
-      })
-    },
-    // 取消按钮
-    cancel() {
-      this.open = false;
-      this.reset();
-    },
-    // 表单重置
-    reset() {
-      this.form = {
-        id: null,
-        name: null,
-        unit: null,
-        picUrl: null,
-        sort: null,
-        status: "0",
-        delFlag: null,
-        createBy: null,
-        createById: null,
-        createTime: null,
-        updateBy: null,
-        updateById: null,
-        updateTime: null,
-        remark: null
-      };
-      this.resetForm("form");
-    },
-    /** 搜索按钮操作 */
-    handleQuery() {
-      this.getList();
-    },
-    /** 重置按钮操作 */
-    resetQuery() {
-      this.resetForm("queryForm");
-      this.handleQuery();
-    },
-    /** 新增按钮操作 */
-    handleAdd() {
-      this.reset();
-      this.open = true;
-      this.title = "添加衣服种类";
-    },
-    /** 修改按钮操作 */
-    handleUpdate(row) {
-      this.reset();
-      const id = row.id || this.ids
-      getType(id).then(response => {
-        this.form = response.data;
-        this.open = true;
-        this.title = "修改衣服种类";
-      });
-    },
-    /** 提交按钮 */
-    submitForm() {
-      this.$refs["form"].validate(valid => {
-        if (valid) {
-          if (this.form.id != null) {
-            updateType(this.form).then(response => {
-              this.$modal.msgSuccess("修改成功");
-              this.open = false;
-              this.getList();
-            });
-          } else {
-            addType(this.form).then(response => {
-              this.$modal.msgSuccess("新增成功");
-              this.open = false;
-              this.getList();
-            });
-          }
+    name: 'Type',
+    dicts: ['sys_normal_disable'],
+    data() {
+        return {
+            uploadAction: `${process.env.VUE_APP_BASE_API}` + '/common/uploadOSS',
+            dialogLoading: true,
+            loadingText: '查询中',
+            // 遮罩层
+            loading: true,
+            // 选中数组
+            ids: [],
+            // 非单个禁用
+            single: true,
+            // 非多个禁用
+            multiple: true,
+            // 显示搜索条件
+            showSearch: true,
+            // 总条数
+            total: 0,
+            // 衣服种类表格数据
+            typeList: [],
+            // 弹出层标题
+            title: '',
+            // 是否显示弹出层
+            open: false,
+            // 查询参数
+            queryParams: {
+                name: null,
+                unit: null,
+                status: null
+            },
+            // 表单参数
+            form: {},
+            // 表单校验
+            rules: {
+                name: [
+                    {
+                        required: true,
+                        message: '衣服种类名称不能为空',
+                        trigger: 'blur'
+                    }
+                ]
+            }
         }
-      });
     },
-    /** 删除按钮操作 */
-    handleDelete(row) {
-      const ids = row.id || this.ids;
-      this.$modal.confirm('是否确认删除衣服种类名称为"' + row.name + '"的数据项?').then(function () {
-        return delType(ids);
-      }).then(() => {
-        this.getList();
-        this.$modal.msgSuccess("删除成功");
-      }).catch(() => { });
+    created() {
+        this.getList()
     },
-    // 衣服瑕疵类型状态修改
-    handleStatusChange(row) {
-      let text = row.status === "0" ? "启用" : "停用";
-      this.$modal.confirm('确认要' + text + ' ' + row.name + ' 吗?').then(function () {
-        return changeTypeStatus(row.id, row.status);
-      }).then(() => {
-        this.$modal.msgSuccess(text + "成功");
-      }).catch(function () {
-        row.status = row.status === "0" ? "1" : "0";
-      });
-    },
-    checkClose(done) {
-      this.$confirm('是否关闭表单,关闭后数据将丢失?').then(function () {
-        done()
-      }).then(() => { }).catch(() => { });
-    },
-    onDialogOpened() {
-      if (this.id != undefined && this.id != '') {
-        this.dialogLoading = true
-        this.loadingText = '查询中'
-        getColor(this.id).then(res => {
-          this.formData = res.data
+    methods: {
+        // 上传前校检格式和大小
+        handleBeforeUpload(file) {
+            // 校检文件大小
+            if (this.fileSize) {
+                const isLt = file.size / 1024 / 1024 < this.fileSize
+                if (!isLt) {
+                    this.$message.error(`上传文件大小不能超过 ${this.fileSize} MB!`)
+                    return false
+                }
+            }
+            return true
+        },
+        handleUploadSuccess(res, file) {
+            // 获取富文本组件实例
+            let quill = this.Quill
+            // 如果上传成功
+            if (res.code == 200) {
+                // 获取光标所在位置
+                this.form.picUrl = res.data.src
+            } else {
+                this.$message.error('图片插入失败')
+            }
+        },
+        handleUploadError() {
+            this.$message.error('图片插入失败')
+        },
+        /** 查询衣服种类列表 */
+        getList() {
+            this.$nextTick(() => {
+                this.$refs.pagination.handleSearch(true)
+            })
+        },
+        // 取消按钮
+        cancel() {
+            this.open = false
+            this.reset()
+        },
+        // 表单重置
+        reset() {
+            this.form = {
+                id: null,
+                name: null,
+                unit: null,
+                picUrl: null,
+                sort: null,
+                status: '0',
+                delFlag: null,
+                createBy: null,
+                createById: null,
+                createTime: null,
+                updateBy: null,
+                updateById: null,
+                updateTime: null,
+                remark: null
+            }
+            this.resetForm('form')
+        },
+        /** 搜索按钮操作 */
+        handleQuery() {
+            this.getList()
+        },
+        /** 重置按钮操作 */
+        resetQuery() {
+            this.resetForm('queryForm')
+            this.handleQuery()
+        },
+        /** 新增按钮操作 */
+        handleAdd() {
+            this.reset()
+            this.open = true
+            this.title = '添加衣服种类'
+        },
+        /** 修改按钮操作 */
+        handleUpdate(row) {
+            this.reset()
+            const id = row.id || this.ids
+            getType(id).then((response) => {
+                this.form = response.data
+                this.open = true
+                this.title = '修改衣服种类'
+            })
+        },
+        /** 提交按钮 */
+        submitForm() {
+            this.$refs['form'].validate((valid) => {
+                if (valid) {
+                    if (this.form.id != null) {
+                        updateType(this.form).then((response) => {
+                            this.$modal.msgSuccess('修改成功')
+                            this.open = false
+                            this.getList()
+                        })
+                    } else {
+                        addType(this.form).then((response) => {
+                            this.$modal.msgSuccess('新增成功')
+                            this.open = false
+                            this.getList()
+                        })
+                    }
+                }
+            })
+        },
+        /** 删除按钮操作 */
+        handleDelete(row) {
+            const ids = row.id || this.ids
+            this.$modal
+                .confirm('是否确认删除衣服种类名称为"' + row.name + '"的数据项?')
+                .then(function () {
+                    return delType(ids)
+                })
+                .then(() => {
+                    this.getList()
+                    this.$modal.msgSuccess('删除成功')
+                })
+                .catch(() => {})
+        },
+        // 衣服瑕疵类型状态修改
+        handleStatusChange(row) {
+            let text = row.status === '0' ? '启用' : '停用'
+            this.$modal
+                .confirm('确认要' + text + ' ' + row.name + ' 吗?')
+                .then(function () {
+                    return changeTypeStatus(row.id, row.status)
+                })
+                .then(() => {
+                    this.$modal.msgSuccess(text + '成功')
+                })
+                .catch(function () {
+                    row.status = row.status === '0' ? '1' : '0'
+                })
+        },
+        checkClose(done) {
+            this.$confirm('是否关闭表单,关闭后数据将丢失?')
+                .then(function () {
+                    done()
+                })
+                .then(() => {})
+                .catch(() => {})
+        },
+        onDialogOpened() {
+            if (this.id != undefined && this.id != '') {
+                this.dialogLoading = true
+                this.loadingText = '查询中'
+                getColor(this.id)
+                    .then((res) => {
+                        this.formData = res.data
 
-          this.resetForm('elForm')
-        }).catch(e => {
-          this.dialogLoading = false
-          this.$message.error(e.data.msg)
-        })
-      } else {
-        this.dialogLoading = false
-      }
-    },
-    closeDialog() {
-      this.open = false
+                        this.resetForm('elForm')
+                    })
+                    .catch((e) => {
+                        this.dialogLoading = false
+                        this.$message.error(e.data.msg)
+                    })
+            } else {
+                this.dialogLoading = false
+            }
+        },
+        closeDialog() {
+            this.open = false
+        }
     }
-  }
-};
+}
 </script>

+ 302 - 296
src/views/cloth/color/index.vue

@@ -1,313 +1,319 @@
 <template>
-  <div class="app-container">
-    <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px">
-      <el-form-item prop="name">
-        <el-input v-model="queryParams.name" placeholder="请输入衣服颜色名称" clearable @keyup.enter.native="handleQuery" />
-      </el-form-item>
+    <div class="app-container">
+        <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px">
+            <el-form-item prop="name">
+                <el-input v-model="queryParams.name" placeholder="请输入衣服颜色名称" clearable @keyup.enter.native="handleQuery" />
+            </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-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-row :gutter="10" class="mb8">
-      <el-col :span="1.5">
-        <el-button type="primary" plain icon="el-icon-plus" @click="handleAdd" v-hasPermi="['cloth:color:add']">新增</el-button>
-      </el-col>
+        <el-row :gutter="10" class="mb8">
+            <el-col :span="1.5">
+                <el-button type="primary" plain icon="el-icon-plus" @click="handleAdd" v-hasPermi="['cloth:color:add']">新增</el-button>
+            </el-col>
 
-      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
-    </el-row>
+            <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+        </el-row>
 
-    <Page uri="/mapi/core/color/list" :request-params="queryParams" ref="pagination">
-      <el-table-column label="ID" align="center" prop="id" />
-      <el-table-column label="衣服颜色名称" align="center" prop="name" />
-      <el-table-column label="颜色" align="center" prop="code">
-        <template slot-scope="scope">
-          <el-color-picker v-model="scope.row.code" :show-alpha="false" :color-format="'hex'" disabled v-if="scope.row.colorType == '0'">
-          </el-color-picker>
-          <el-image style="width: 35px; height: 35px" fit="cover" :src="scope.row.imgUrl" :preview-src-list="[scope.row.imgUrl]"
-            v-if="scope.row.colorType == '1'">
-          </el-image>
-        </template>
-      </el-table-column>
-      <el-table-column label="显示顺序" align="center" prop="sort" />
-      <el-table-column label="状态" align="center" key="status">
-        <template slot-scope="scope">
-          <el-switch v-model="scope.row.status" active-value="0" inactive-value="1" @change="handleStatusChange(scope.row)"></el-switch>
-        </template>
-      </el-table-column>
-      <el-table-column label="创建时间" align="center" prop="createTime" />
-      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
-        <template slot-scope="scope">
-          <el-button type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)" v-hasPermi="['cloth:color:edit']">修改</el-button>
-          <el-button type="text" icon="el-icon-delete" @click="handleDelete(scope.row)" v-hasPermi="['cloth:color:remove']">删除</el-button>
-        </template>
-      </el-table-column>
-    </Page>
+        <Page uri="/mapi/core/color/list" :request-params="queryParams" ref="pagination">
+            <el-table-column label="ID" align="center" prop="id" />
+            <el-table-column label="衣服颜色名称" align="center" prop="name" />
+            <el-table-column label="颜色" align="center" prop="code">
+                <template slot-scope="scope">
+                    <el-color-picker v-model="scope.row.code" :show-alpha="false" :color-format="'hex'" disabled v-if="scope.row.colorType == '0'"> </el-color-picker>
+                    <el-image style="width: 35px; height: 35px" fit="cover" :src="scope.row.imgUrl" :preview-src-list="[scope.row.imgUrl]" v-if="scope.row.colorType == '1'"> </el-image>
+                </template>
+            </el-table-column>
+            <el-table-column label="显示顺序" align="center" prop="sort" />
+            <el-table-column label="状态" align="center" key="status">
+                <template slot-scope="scope">
+                    <el-switch v-model="scope.row.status" active-value="0" inactive-value="1" @change="handleStatusChange(scope.row)"></el-switch>
+                </template>
+            </el-table-column>
+            <el-table-column label="创建人" align="center" prop="createBy" />
+            <el-table-column label="创建时间" align="center" prop="createTime" />
+            <el-table-column label="修改人" align="center" prop="updateBy" />
+            <el-table-column label="修改时间" align="center" prop="createTime" />
+            <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
+                <template slot-scope="scope">
+                    <el-button type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)" v-hasPermi="['cloth:color:edit']">修改</el-button>
+                    <el-button type="text" icon="el-icon-delete" @click="handleDelete(scope.row)" v-hasPermi="['cloth:color:remove']">删除</el-button>
+                </template>
+            </el-table-column>
+        </Page>
 
-    <!-- 添加或修改衣服颜色对话框 -->
-    <el-dialog :title="title" :visible.sync="open" direction="rtl" size="30%" append-to-body @opened="onDialogOpened" destroy-on-close>
-      <el-row :gutter="15">
-        <el-form ref="form" :model="form" :rules="rules" size="medium" label-width="100px">
-          <el-form-item label="颜色名称" prop="name">
-            <el-input v-model="form.name" placeholder="请输入衣服颜色名称" />
-          </el-form-item>
-          <el-form-item label="颜色类别" prop="colorType">
-            <el-radio-group v-model="form.colorType" size="small">
-              <el-radio-button v-for="dict in dict.type.cloth_color_type" :label="dict.value">{{dict.label}}</el-radio-button>
-            </el-radio-group>
-          </el-form-item>
-          <el-form-item label="颜色代码" prop="code" v-if="form.colorType == '0'">
-            <el-color-picker v-model="form.code" :show-alpha="false" :color-format="'hex'">
-            </el-color-picker>
-          </el-form-item>
-          <el-form-item label="颜色图片" prop="imgUrl" v-if="form.colorType == '1'">
-            <el-upload class="image-uploader" :action="uploadAction" :before-upload="handleBeforeUpload" :on-success="handleUploadSuccess"
-              :on-error="handleUploadError" accept="image/*" :show-file-list="false">
-              <img v-if="form.imgUrl" :src="form.imgUrl">
-              <i v-else class="el-icon-plus image-uploader-icon"></i>
-            </el-upload>
-          </el-form-item>
-          <el-form-item label="显示顺序" prop="sort">
-            <el-input-number v-model="form.sort" placeholder="请输入显示顺序(升序排列显示)" :min="0" :step-strictly="true" :style="{width: '100%'}">
-            </el-input-number>
-          </el-form-item>
-          <el-form-item label="状态" prop="status">
-            <el-radio-group v-model="form.status" size="small">
-              <el-radio-button v-for="dict in dict.type.sys_normal_disable" :label="dict.value">{{dict.label}}</el-radio-button>
-            </el-radio-group>
-          </el-form-item>
-        </el-form>
-      </el-row>
-      <div slot="footer" class="dialog-footer">
-        <el-button type="primary" @click="submitForm" style="margin-left: 5%">提交</el-button>
-        <el-button @click="closeDialog">取 消</el-button>
-      </div>
-    </el-dialog>
-  </div>
+        <!-- 添加或修改衣服颜色对话框 -->
+        <el-dialog :title="title" :visible.sync="open" direction="rtl" size="30%" append-to-body @opened="onDialogOpened" destroy-on-close>
+            <el-row :gutter="15">
+                <el-form ref="form" :model="form" :rules="rules" size="medium" label-width="100px">
+                    <el-form-item label="颜色名称" prop="name">
+                        <el-input v-model="form.name" placeholder="请输入衣服颜色名称" />
+                    </el-form-item>
+                    <el-form-item label="颜色类别" prop="colorType">
+                        <el-radio-group v-model="form.colorType" size="small">
+                            <el-radio-button v-for="dict in dict.type.cloth_color_type" :label="dict.value">{{ dict.label }}</el-radio-button>
+                        </el-radio-group>
+                    </el-form-item>
+                    <el-form-item label="颜色代码" prop="code" v-if="form.colorType == '0'">
+                        <el-color-picker v-model="form.code" :show-alpha="false" :color-format="'hex'"> </el-color-picker>
+                    </el-form-item>
+                    <el-form-item label="颜色图片" prop="imgUrl" v-if="form.colorType == '1'">
+                        <el-upload class="image-uploader" :action="uploadAction" :before-upload="handleBeforeUpload" :on-success="handleUploadSuccess" :on-error="handleUploadError" accept="image/*" :show-file-list="false">
+                            <img v-if="form.imgUrl" :src="form.imgUrl" />
+                            <i v-else class="el-icon-plus image-uploader-icon"></i>
+                        </el-upload>
+                    </el-form-item>
+                    <el-form-item label="显示顺序" prop="sort">
+                        <el-input-number v-model="form.sort" placeholder="请输入显示顺序(升序排列显示)" :min="0" :step-strictly="true" :style="{ width: '100%' }"> </el-input-number>
+                    </el-form-item>
+                    <el-form-item label="状态" prop="status">
+                        <el-radio-group v-model="form.status" size="small">
+                            <el-radio-button v-for="dict in dict.type.sys_normal_disable" :label="dict.value">{{ dict.label }}</el-radio-button>
+                        </el-radio-group>
+                    </el-form-item>
+                </el-form>
+            </el-row>
+            <div slot="footer" class="dialog-footer">
+                <el-button type="primary" @click="submitForm" style="margin-left: 5%">提交</el-button>
+                <el-button @click="closeDialog">取 消</el-button>
+            </div>
+        </el-dialog>
+    </div>
 </template>
 
 <script>
-import {
-  listColor,
-  getColor,
-  delColor,
-  addColor,
-  updateColor,
-  changeColorStatus
-} from "@/api/core/color";
+import { listColor, getColor, delColor, addColor, updateColor, changeColorStatus } from '@/api/core/color'
 
 export default {
-  name: "Color",
-  dicts: ['sys_normal_disable', 'cloth_color_type'],
-  data() {
-    return {
-      uploadAction: `${process.env.VUE_APP_BASE_API}` + '/common/uploadOSS',
-      dialogLoading: true,
-      loadingText: '查询中',
-      // 遮罩层
-      loading: true,
-      // 选中数组
-      ids: [],
-      // 非单个禁用
-      single: true,
-      // 非多个禁用
-      multiple: true,
-      // 显示搜索条件
-      showSearch: true,
-      // 总条数
-      total: 0,
-      // 衣服颜色表格数据
-      colorList: [],
-      // 弹出层标题
-      title: "",
-      // 是否显示弹出层
-      open: false,
-      // 查询参数
-      queryParams: {
-        name: null,
-        code: null,
-        picUrl: null,
-        sort: null,
-        status: null,
-        createById: null,
-        updateById: null,
-      },
-      // 表单参数
-      form: {
-        colorType: '0',
-        status: '0'
-      },
-      // 表单校验
-      rules: {
-        name: [{
-          required: true,
-          message: "衣服颜色名称不能为空",
-          trigger: "blur"
-        }],
-        code: [{
-          required: true,
-          message: "衣服颜色编码不能为空",
-          trigger: "blur"
-        }]
-      }
-    };
-  },
-  created() {
-    this.getList();
-  },
-  methods: {
-    // 上传前校检格式和大小
-    handleBeforeUpload(file) {
-      // 校检文件大小
-      if (this.fileSize) {
-        const isLt = file.size / 1024 / 1024 < this.fileSize;
-        if (!isLt) {
-          this.$message.error(`上传文件大小不能超过 ${this.fileSize} MB!`);
-          return false;
-        }
-      }
-      return true;
-    },
-    handleUploadSuccess(res, file) {
-      // 获取富文本组件实例
-      let quill = this.Quill;
-      // 如果上传成功
-      if (res.code == 200) {
-        // 获取光标所在位置
-        this.form.imgUrl = res.data.src
-        this.$forceUpdate()
-      } else {
-        this.$message.error("图片插入失败");
-      }
-    },
-    handleUploadError() {
-      this.$message.error("图片插入失败");
-    },
-    /** 查询衣服颜色列表 */
-    getList() {
-      this.$nextTick(() => {
-        this.$refs.pagination.handleSearch(true)
-      })
-    },
-    // 取消按钮
-    cancel() {
-      this.open = false;
-      this.reset();
-    },
-    // 表单重置
-    reset() {
-      this.form = {
-        id: null,
-        name: null,
-        code: null,
-        colorType: '0',
-        sort: null,
-        status: "0",
-        delFlag: null,
-        createBy: null,
-        createById: null,
-        createTime: null,
-        updateBy: null,
-        updateById: null,
-        updateTime: null,
-        remark: null
-      };
-      this.resetForm("form");
-    },
-    /** 搜索按钮操作 */
-    handleQuery() {
-      this.getList();
-    },
-    /** 重置按钮操作 */
-    resetQuery() {
-      this.resetForm("queryForm");
-      this.handleQuery();
-    },
-    /** 新增按钮操作 */
-    handleAdd() {
-      this.reset();
-      this.open = true;
-      this.title = "添加衣服颜色";
-    },
-    /** 修改按钮操作 */
-    handleUpdate(row) {
-      this.reset();
-      const id = row.id || this.ids
-      getColor(id).then(response => {
-        this.form = response.data;
-        this.open = true;
-        this.title = "修改衣服颜色";
-      });
-    },
-    /** 提交按钮 */
-    submitForm() {
-      this.$refs["form"].validate(valid => {
-        if (valid) {
-          console.log(this.form);
-          if (this.form.id != null) {
-            updateColor(this.form).then(response => {
-              this.$modal.msgSuccess("修改成功");
-              this.open = false;
-              this.getList();
-            });
-          } else {
-            addColor(this.form).then(response => {
-              this.$modal.msgSuccess("新增成功");
-              this.open = false;
-              this.getList();
-            });
-          }
+    name: 'Color',
+    dicts: ['sys_normal_disable', 'cloth_color_type'],
+    data() {
+        return {
+            uploadAction: `${process.env.VUE_APP_BASE_API}` + '/common/uploadOSS',
+            dialogLoading: true,
+            loadingText: '查询中',
+            // 遮罩层
+            loading: true,
+            // 选中数组
+            ids: [],
+            // 非单个禁用
+            single: true,
+            // 非多个禁用
+            multiple: true,
+            // 显示搜索条件
+            showSearch: true,
+            // 总条数
+            total: 0,
+            // 衣服颜色表格数据
+            colorList: [],
+            // 弹出层标题
+            title: '',
+            // 是否显示弹出层
+            open: false,
+            // 查询参数
+            queryParams: {
+                name: null,
+                code: null,
+                picUrl: null,
+                sort: null,
+                status: null,
+                createById: null,
+                updateById: null
+            },
+            // 表单参数
+            form: {
+                colorType: '0',
+                status: '0'
+            },
+            // 表单校验
+            rules: {
+                name: [
+                    {
+                        required: true,
+                        message: '衣服颜色名称不能为空',
+                        trigger: 'blur'
+                    }
+                ],
+                code: [
+                    {
+                        required: true,
+                        message: '衣服颜色编码不能为空',
+                        trigger: 'blur'
+                    }
+                ]
+            }
         }
-      });
-    },
-    /** 删除按钮操作 */
-    handleDelete(row) {
-      const ids = row.id || this.ids;
-      this.$modal.confirm('是否确认删除衣服颜色名称为"' + row.name + '"的数据项?').then(function () {
-        return delColor(ids);
-      }).then(() => {
-        this.getList();
-        this.$modal.msgSuccess("删除成功");
-      }).catch(() => { });
     },
-    // 衣服颜色状态修改
-    handleStatusChange(row) {
-      let text = row.status === "0" ? "启用" : "停用";
-      this.$modal.confirm('确认要' + text + ' ' + row.name + ' 吗?').then(function () {
-        return changeColorStatus(row.id, row.status);
-      }).then(() => {
-        this.$modal.msgSuccess(text + "成功");
-      }).catch(function () {
-        row.status = row.status === "0" ? "1" : "0";
-      });
+    created() {
+        this.getList()
     },
-    checkClose(done) {
-      this.$confirm('是否关闭表单,关闭后数据将丢失?').then(function () {
-        done()
-      }).then(() => { }).catch(() => { });
-    },
-    onDialogOpened() {
-      if (this.id != undefined && this.id != '') {
-        this.dialogLoading = true
-        this.loadingText = '查询中'
-        getColor(this.id).then(res => {
-          this.formData = res.data
+    methods: {
+        // 上传前校检格式和大小
+        handleBeforeUpload(file) {
+            // 校检文件大小
+            if (this.fileSize) {
+                const isLt = file.size / 1024 / 1024 < this.fileSize
+                if (!isLt) {
+                    this.$message.error(`上传文件大小不能超过 ${this.fileSize} MB!`)
+                    return false
+                }
+            }
+            return true
+        },
+        handleUploadSuccess(res, file) {
+            // 获取富文本组件实例
+            let quill = this.Quill
+            // 如果上传成功
+            if (res.code == 200) {
+                // 获取光标所在位置
+                this.form.imgUrl = res.data.src
+                this.$forceUpdate()
+            } else {
+                this.$message.error('图片插入失败')
+            }
+        },
+        handleUploadError() {
+            this.$message.error('图片插入失败')
+        },
+        /** 查询衣服颜色列表 */
+        getList() {
+            this.$nextTick(() => {
+                this.$refs.pagination.handleSearch(true)
+            })
+        },
+        // 取消按钮
+        cancel() {
+            this.open = false
+            this.reset()
+        },
+        // 表单重置
+        reset() {
+            this.form = {
+                id: null,
+                name: null,
+                code: null,
+                colorType: '0',
+                sort: null,
+                status: '0',
+                delFlag: null,
+                createBy: null,
+                createById: null,
+                createTime: null,
+                updateBy: null,
+                updateById: null,
+                updateTime: null,
+                remark: null
+            }
+            this.resetForm('form')
+        },
+        /** 搜索按钮操作 */
+        handleQuery() {
+            this.getList()
+        },
+        /** 重置按钮操作 */
+        resetQuery() {
+            this.resetForm('queryForm')
+            this.handleQuery()
+        },
+        /** 新增按钮操作 */
+        handleAdd() {
+            this.reset()
+            this.open = true
+            this.title = '添加衣服颜色'
+        },
+        /** 修改按钮操作 */
+        handleUpdate(row) {
+            this.reset()
+            const id = row.id || this.ids
+            getColor(id).then((response) => {
+                this.form = response.data
+                this.open = true
+                this.title = '修改衣服颜色'
+            })
+        },
+        /** 提交按钮 */
+        submitForm() {
+            this.$refs['form'].validate((valid) => {
+                if (valid) {
+                    console.log(this.form)
+                    if (this.form.id != null) {
+                        updateColor(this.form).then((response) => {
+                            this.$modal.msgSuccess('修改成功')
+                            this.open = false
+                            this.getList()
+                        })
+                    } else {
+                        addColor(this.form).then((response) => {
+                            this.$modal.msgSuccess('新增成功')
+                            this.open = false
+                            this.getList()
+                        })
+                    }
+                }
+            })
+        },
+        /** 删除按钮操作 */
+        handleDelete(row) {
+            const ids = row.id || this.ids
+            this.$modal
+                .confirm('是否确认删除衣服颜色名称为"' + row.name + '"的数据项?')
+                .then(function () {
+                    return delColor(ids)
+                })
+                .then(() => {
+                    this.getList()
+                    this.$modal.msgSuccess('删除成功')
+                })
+                .catch(() => {})
+        },
+        // 衣服颜色状态修改
+        handleStatusChange(row) {
+            let text = row.status === '0' ? '启用' : '停用'
+            this.$modal
+                .confirm('确认要' + text + ' ' + row.name + ' 吗?')
+                .then(function () {
+                    return changeColorStatus(row.id, row.status)
+                })
+                .then(() => {
+                    this.$modal.msgSuccess(text + '成功')
+                })
+                .catch(function () {
+                    row.status = row.status === '0' ? '1' : '0'
+                })
+        },
+        checkClose(done) {
+            this.$confirm('是否关闭表单,关闭后数据将丢失?')
+                .then(function () {
+                    done()
+                })
+                .then(() => {})
+                .catch(() => {})
+        },
+        onDialogOpened() {
+            if (this.id != undefined && this.id != '') {
+                this.dialogLoading = true
+                this.loadingText = '查询中'
+                getColor(this.id)
+                    .then((res) => {
+                        this.formData = res.data
 
-          this.resetForm('elForm')
-        }).catch(e => {
-          this.dialogLoading = false
-          this.$message.error(e.data.msg)
-        })
-      } else {
-        this.dialogLoading = false
-      }
-    },
-    closeDialog() {
-      this.open = false
+                        this.resetForm('elForm')
+                    })
+                    .catch((e) => {
+                        this.dialogLoading = false
+                        this.$message.error(e.data.msg)
+                    })
+            } else {
+                this.dialogLoading = false
+            }
+        },
+        closeDialog() {
+            this.open = false
+        }
     }
-
-  }
-};
+}
 </script>

+ 3 - 0
src/views/cloth/craft/index.vue

@@ -31,7 +31,10 @@
                     <el-switch v-model="scope.row.status" active-value="0" inactive-value="1" @change="handleStatusChange(scope.row)"></el-switch>
                 </template>
             </el-table-column>
+            <el-table-column label="创建人" align="center" prop="createBy" />
             <el-table-column label="创建时间" align="center" prop="createTime" />
+            <el-table-column label="修改人" align="center" prop="updateBy" />
+            <el-table-column label="修改时间" align="center" prop="createTime" />
             <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
                 <template slot-scope="scope">
                     <el-button type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)" v-hasPermi="['cloth:craft:edit']">修改</el-button>

+ 239 - 231
src/views/cloth/customItem/index.vue

@@ -1,246 +1,254 @@
 <template>
-  <div class="app-container">
-    <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px">
-      <el-form-item prop="name">
-        <el-input v-model="queryParams.name" placeholder="请输入衣物名称" clearable @keyup.enter.native="handleQuery" />
-      </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>
+    <div class="app-container">
+        <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px">
+            <el-form-item prop="name">
+                <el-input v-model="queryParams.name" placeholder="请输入衣物名称" clearable @keyup.enter.native="handleQuery" />
+            </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-row :gutter="10" class="mb8">
-      <el-col :span="1.5">
-        <el-button type="primary" plain icon="el-icon-plus" @click="handleAdd" v-hasPermi="['cloth:customItem:add']">新增</el-button>
-      </el-col>
-      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
-    </el-row>
+        <el-row :gutter="10" class="mb8">
+            <el-col :span="1.5">
+                <el-button type="primary" plain icon="el-icon-plus" @click="handleAdd" v-hasPermi="['cloth:customItem:add']">新增</el-button>
+            </el-col>
+            <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+        </el-row>
 
-    <Page uri="/mapi/core/customItem/list" :request-params="queryParams" ref="pagination" >
-      <el-table-column label="ID" align="center" prop="id" />
-      <el-table-column label="衣物名称" align="center" prop="name" />
-      <el-table-column label="显示顺序" align="center" prop="sort" />
-      <el-table-column label="衣物状态" align="center" prop="status">
-        <template slot-scope="scope">
-          <el-switch v-model="scope.row.status" active-value="0" inactive-value="1" @change="handleStatusChange(scope.row)"></el-switch>
-        </template>
-      </el-table-column>
-      <el-table-column label="创建时间" align="center" prop="createTime" />
-      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
-        <template slot-scope="scope">
-          <el-button type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)" v-hasPermi="['cloth:customItem:edit']">修改</el-button>
-          <el-button type="text" icon="el-icon-delete" @click="handleDelete(scope.row)" v-hasPermi="['cloth:customItem:remove']">删除</el-button>
-        </template>
-      </el-table-column>
-    </page>
+        <Page uri="/mapi/core/customItem/list" :request-params="queryParams" ref="pagination">
+            <el-table-column label="ID" align="center" prop="id" />
+            <el-table-column label="衣物名称" align="center" prop="name" />
+            <el-table-column label="显示顺序" align="center" prop="sort" />
+            <el-table-column label="衣物状态" align="center" prop="status">
+                <template slot-scope="scope">
+                    <el-switch v-model="scope.row.status" active-value="0" inactive-value="1" @change="handleStatusChange(scope.row)"></el-switch>
+                </template>
+            </el-table-column>
+            <el-table-column label="创建人" align="center" prop="createBy" />
+            <el-table-column label="创建时间" align="center" prop="createTime" />
+            <el-table-column label="修改人" align="center" prop="updateBy" />
+            <el-table-column label="修改时间" align="center" prop="createTime" />
+            <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
+                <template slot-scope="scope">
+                    <el-button type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)" v-hasPermi="['cloth:customItem:edit']">修改</el-button>
+                    <el-button type="text" icon="el-icon-delete" @click="handleDelete(scope.row)" v-hasPermi="['cloth:customItem:remove']">删除</el-button>
+                </template>
+            </el-table-column>
+        </Page>
 
-    <!-- 添加或修改自定义衣物对话框 -->
-    <el-dialog :title="title" :visible.sync="open" direction="rtl" size="50%" append-to-body @opened="onDialogOpened"
-      destroy-on-close>
-      <el-row :gutter="15">
-        <el-form ref="form" :model="form" :rules="rules" size="medium" label-width="100px">
-          <el-form-item label="衣物名称" prop="name">
-            <el-input v-model="form.name" placeholder="请输入衣物名称" />
-          </el-form-item>
-          <el-form-item label="显示顺序" prop="sort">
-            <el-input-number v-model="form.sort" placeholder="请输入显示顺序(升序排列显示)" :min="0" :step-strictly="true" :style="{width: '100%'}">
-            </el-input-number>
-          </el-form-item>
-          <el-form-item label="状态" prop="status">
-            <el-radio-group v-model="form.status" size="small">
-              <el-radio-button v-for="dict in dict.type.sys_normal_disable" :label="dict.value">{{dict.label}}</el-radio-button>
-            </el-radio-group>
-          </el-form-item>
-        </el-form>
-      </el-row>
-      <div slot="footer" class="dialog-footer">
-        <el-button type="primary" @click="submitForm" style="margin-left: 5%">提交</el-button>
-        <el-button @click="closeDialog">取 消</el-button>
-      </div>
-    </el-dialog>
-  </div>
+        <!-- 添加或修改自定义衣物对话框 -->
+        <el-dialog :title="title" :visible.sync="open" direction="rtl" size="50%" append-to-body @opened="onDialogOpened" destroy-on-close>
+            <el-row :gutter="15">
+                <el-form ref="form" :model="form" :rules="rules" size="medium" label-width="100px">
+                    <el-form-item label="衣物名称" prop="name">
+                        <el-input v-model="form.name" placeholder="请输入衣物名称" />
+                    </el-form-item>
+                    <el-form-item label="显示顺序" prop="sort">
+                        <el-input-number v-model="form.sort" placeholder="请输入显示顺序(升序排列显示)" :min="0" :step-strictly="true" :style="{ width: '100%' }"> </el-input-number>
+                    </el-form-item>
+                    <el-form-item label="状态" prop="status">
+                        <el-radio-group v-model="form.status" size="small">
+                            <el-radio-button v-for="dict in dict.type.sys_normal_disable" :label="dict.value">{{ dict.label }}</el-radio-button>
+                        </el-radio-group>
+                    </el-form-item>
+                </el-form>
+            </el-row>
+            <div slot="footer" class="dialog-footer">
+                <el-button type="primary" @click="submitForm" style="margin-left: 5%">提交</el-button>
+                <el-button @click="closeDialog">取 消</el-button>
+            </div>
+        </el-dialog>
+    </div>
 </template>
 
 <script>
-import {
-  listItem,
-  getItem,
-  delItem,
-  addItem,
-  updateItem,
-  changeItemStatus
-} from "@/api/core/customItem";
+import { listItem, getItem, delItem, addItem, updateItem, changeItemStatus } from '@/api/core/customItem'
 
 export default {
-  name: "Item",
-  dicts: ['sys_normal_disable'],
-  data() {
-    return {
-      dialogLoading: true,
-      loadingText: '查询中',
-      // 遮罩层
-      loading: true,
-      // 选中数组
-      ids: [],
-      // 非单个禁用
-      single: true,
-      // 非多个禁用
-      multiple: true,
-      // 显示搜索条件
-      showSearch: true,
-      // 总条数
-      total: 0,
-      // 自定义衣物表格数据
-      itemList: [],
-      // 弹出层标题
-      title: "",
-      // 是否显示弹出层
-      open: false,
-      // 查询参数
-      queryParams: {
-        name: null,
-        sort: null,
-        status: null,
-        createById: null,
-        updateById: null,
-      },
-      // 表单参数
-      form: {},
-      // 表单校验
-      rules: {
-        name: [{
-          required: true,
-          message: "衣物名称不能为空",
-          trigger: "blur"
-        }],
-      }
-    };
-  },
-  created() {
-    this.getList();
-  },
-  methods: {
-    /** 查询自定义衣物列表 */
-    getList() {
-	  this.$nextTick(() => {
-        this.$refs.pagination.handleSearch(true)
-      })
-    },
-    // 取消按钮
-    cancel() {
-      this.open = false;
-      this.reset();
-    },
-    // 表单重置
-    reset() {
-      this.form = {
-        id: null,
-        name: null,
-        sort: null,
-        status: "0",
-        delFlag: null,
-        createBy: null,
-        createById: null,
-        createTime: null,
-        updateBy: null,
-        updateById: null,
-        updateTime: null,
-        remark: null
-      };
-      this.resetForm("form");
-    },
-    /** 搜索按钮操作 */
-    handleQuery() {
-      this.getList();
-    },
-    /** 重置按钮操作 */
-    resetQuery() {
-      this.resetForm("queryForm");
-      this.handleQuery();
-    },
-    /** 新增按钮操作 */
-    handleAdd() {
-      this.reset();
-      this.open = true;
-      this.title = "添加自定义衣物";
-    },
-    /** 修改按钮操作 */
-    handleUpdate(row) {
-      this.reset();
-      const id = row.id || this.ids
-      getItem(id).then(response => {
-        this.form = response.data;
-        this.open = true;
-        this.title = "修改自定义衣物";
-      });
-    },
-    /** 提交按钮 */
-    submitForm() {
-      this.$refs["form"].validate(valid => {
-        if (valid) {
-          if (this.form.id != null) {
-            updateItem(this.form).then(response => {
-              this.$modal.msgSuccess("修改成功");
-              this.open = false;
-              this.getList();
-            });
-          } else {
-            addItem(this.form).then(response => {
-              this.$modal.msgSuccess("新增成功");
-              this.open = false;
-              this.getList();
-            });
-          }
+    name: 'Item',
+    dicts: ['sys_normal_disable'],
+    data() {
+        return {
+            dialogLoading: true,
+            loadingText: '查询中',
+            // 遮罩层
+            loading: true,
+            // 选中数组
+            ids: [],
+            // 非单个禁用
+            single: true,
+            // 非多个禁用
+            multiple: true,
+            // 显示搜索条件
+            showSearch: true,
+            // 总条数
+            total: 0,
+            // 自定义衣物表格数据
+            itemList: [],
+            // 弹出层标题
+            title: '',
+            // 是否显示弹出层
+            open: false,
+            // 查询参数
+            queryParams: {
+                name: null,
+                sort: null,
+                status: null,
+                createById: null,
+                updateById: null
+            },
+            // 表单参数
+            form: {},
+            // 表单校验
+            rules: {
+                name: [
+                    {
+                        required: true,
+                        message: '衣物名称不能为空',
+                        trigger: 'blur'
+                    }
+                ]
+            }
         }
-      });
-    },
-    /** 删除按钮操作 */
-    handleDelete(row) {
-      const ids = row.id || this.ids;
-      this.$modal.confirm('是否确认删除自定义衣物编号为"' + ids + '"的数据项?').then(function () {
-        return delItem(ids);
-      }).then(() => {
-        this.getList();
-        this.$modal.msgSuccess("删除成功");
-      }).catch(() => { });
-    },
-    // 衣服瑕疵状态修改
-    handleStatusChange(row) {
-      let text = row.status === "0" ? "启用" : "停用";
-      this.$modal.confirm('确认要' + text + ' ' + row.name + ' 吗?').then(function () {
-        return changeItemStatus(row.id, row.status);
-      }).then(() => {
-        this.$modal.msgSuccess(text + "成功");
-      }).catch(function () {
-        row.status = row.status === "0" ? "1" : "0";
-      });
     },
-    checkClose(done) {
-      this.$confirm('是否关闭表单,关闭后数据将丢失?').then(function () {
-        done()
-      }).then(() => { }).catch(() => { });
+    created() {
+        this.getList()
     },
-    onDialogOpened() {
-      if (this.id != undefined && this.id != '') {
-        this.dialogLoading = true
-        this.loadingText = '查询中'
-        getColor(this.id).then(res => {
-          this.formData = res.data
+    methods: {
+        /** 查询自定义衣物列表 */
+        getList() {
+            this.$nextTick(() => {
+                this.$refs.pagination.handleSearch(true)
+            })
+        },
+        // 取消按钮
+        cancel() {
+            this.open = false
+            this.reset()
+        },
+        // 表单重置
+        reset() {
+            this.form = {
+                id: null,
+                name: null,
+                sort: null,
+                status: '0',
+                delFlag: null,
+                createBy: null,
+                createById: null,
+                createTime: null,
+                updateBy: null,
+                updateById: null,
+                updateTime: null,
+                remark: null
+            }
+            this.resetForm('form')
+        },
+        /** 搜索按钮操作 */
+        handleQuery() {
+            this.getList()
+        },
+        /** 重置按钮操作 */
+        resetQuery() {
+            this.resetForm('queryForm')
+            this.handleQuery()
+        },
+        /** 新增按钮操作 */
+        handleAdd() {
+            this.reset()
+            this.open = true
+            this.title = '添加自定义衣物'
+        },
+        /** 修改按钮操作 */
+        handleUpdate(row) {
+            this.reset()
+            const id = row.id || this.ids
+            getItem(id).then((response) => {
+                this.form = response.data
+                this.open = true
+                this.title = '修改自定义衣物'
+            })
+        },
+        /** 提交按钮 */
+        submitForm() {
+            this.$refs['form'].validate((valid) => {
+                if (valid) {
+                    if (this.form.id != null) {
+                        updateItem(this.form).then((response) => {
+                            this.$modal.msgSuccess('修改成功')
+                            this.open = false
+                            this.getList()
+                        })
+                    } else {
+                        addItem(this.form).then((response) => {
+                            this.$modal.msgSuccess('新增成功')
+                            this.open = false
+                            this.getList()
+                        })
+                    }
+                }
+            })
+        },
+        /** 删除按钮操作 */
+        handleDelete(row) {
+            const ids = row.id || this.ids
+            this.$modal
+                .confirm('是否确认删除自定义衣物编号为"' + ids + '"的数据项?')
+                .then(function () {
+                    return delItem(ids)
+                })
+                .then(() => {
+                    this.getList()
+                    this.$modal.msgSuccess('删除成功')
+                })
+                .catch(() => {})
+        },
+        // 衣服瑕疵状态修改
+        handleStatusChange(row) {
+            let text = row.status === '0' ? '启用' : '停用'
+            this.$modal
+                .confirm('确认要' + text + ' ' + row.name + ' 吗?')
+                .then(function () {
+                    return changeItemStatus(row.id, row.status)
+                })
+                .then(() => {
+                    this.$modal.msgSuccess(text + '成功')
+                })
+                .catch(function () {
+                    row.status = row.status === '0' ? '1' : '0'
+                })
+        },
+        checkClose(done) {
+            this.$confirm('是否关闭表单,关闭后数据将丢失?')
+                .then(function () {
+                    done()
+                })
+                .then(() => {})
+                .catch(() => {})
+        },
+        onDialogOpened() {
+            if (this.id != undefined && this.id != '') {
+                this.dialogLoading = true
+                this.loadingText = '查询中'
+                getColor(this.id)
+                    .then((res) => {
+                        this.formData = res.data
 
-          this.resetForm('elForm')
-        }).catch(e => {
-          this.dialogLoading = false
-          this.$message.error(e.data.msg)
-        })
-      } else {
-        this.dialogLoading = false
-      }
-    },
-    closeDialog() {
-      this.open = false
+                        this.resetForm('elForm')
+                    })
+                    .catch((e) => {
+                        this.dialogLoading = false
+                        this.$message.error(e.data.msg)
+                    })
+            } else {
+                this.dialogLoading = false
+            }
+        },
+        closeDialog() {
+            this.open = false
+        }
     }
-
-  }
-};
+}
 </script>

+ 3 - 0
src/views/cloth/flaw/index.vue

@@ -34,7 +34,10 @@
                     <el-switch v-model="scope.row.status" active-value="0" inactive-value="1" @change="handleStatusChange(scope.row)"></el-switch>
                 </template>
             </el-table-column>
+            <el-table-column label="创建人" align="center" prop="createBy" />
             <el-table-column label="创建时间" align="center" prop="createTime" />
+            <el-table-column label="修改人" align="center" prop="updateBy" />
+            <el-table-column label="修改时间" align="center" prop="createTime" />
             <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
                 <template slot-scope="scope">
                     <el-button type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)" v-hasPermi="['cloth:flaw:edit']">修改</el-button>

+ 3 - 0
src/views/cloth/flawType/index.vue

@@ -26,7 +26,10 @@
                     <el-switch v-model="scope.row.status" active-value="0" inactive-value="1" @change="handleStatusChange(scope.row)"></el-switch>
                 </template>
             </el-table-column>
+            <el-table-column label="创建人" align="center" prop="createBy" />
             <el-table-column label="创建时间" align="center" prop="createTime" />
+            <el-table-column label="修改人" align="center" prop="updateBy" />
+            <el-table-column label="修改时间" align="center" prop="createTime" />
 
             <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
                 <template slot-scope="scope">

+ 4 - 1
src/views/cloth/rewashReason/index.vue

@@ -22,7 +22,10 @@
             <el-table-column label="重洗原因名称" align="center" prop="name" />
             <el-table-column label="重洗类型" align="center" prop="rewashTypeName" />
             <el-table-column label="备注" align="center" prop="remark" show-overflow-tooltip />
-            <el-table-column label="创建时间" align="center" prop="createTime"></el-table-column>
+            <el-table-column label="创建人" align="center" prop="createBy" />
+            <el-table-column label="创建时间" align="center" prop="createTime" />
+            <el-table-column label="修改人" align="center" prop="updateBy" />
+            <el-table-column label="修改时间" align="center" prop="createTime" />
             <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)" v-hasPermi="['cloth:reason:edit']">修改</el-button>

+ 4 - 1
src/views/cloth/rewashType/index.vue

@@ -22,7 +22,10 @@
             <el-table-column label="ID" align="center" prop="id" />
             <el-table-column label="类别名称" align="center" prop="name" />
             <el-table-column label="备注" align="center" prop="remark" />
-            <el-table-column label="创建时间" align="center" prop="createTime"></el-table-column>
+            <el-table-column label="创建人" align="center" prop="createBy" />
+            <el-table-column label="创建时间" align="center" prop="createTime" />
+            <el-table-column label="修改人" align="center" prop="updateBy" />
+            <el-table-column label="修改时间" align="center" prop="createTime" />
             <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)" v-hasPermi="['cloth:rewashType:edit']">修改</el-button>

+ 4 - 1
src/views/cloth/speed/index.vue

@@ -33,7 +33,10 @@
                     <dict-tag :options="dict.type.sys_yes_no" :value="scope.row.isDefault" />
                 </template>
             </el-table-column>
-            <el-table-column label="创建时间" align="center" prop="createTime" width="180"></el-table-column>
+            <el-table-column label="创建人" align="center" prop="createBy" />
+            <el-table-column label="创建时间" align="center" prop="createTime" />
+            <el-table-column label="修改人" align="center" prop="updateBy" />
+            <el-table-column label="修改时间" align="center" prop="createTime" />
             <el-table-column label="状态" align="center" prop="status">
                 <template slot-scope="scope">
                     <el-switch v-model="scope.row.status" active-value="0" inactive-value="1" @change="handleStatusChange(scope.row)"></el-switch>

+ 4 - 1
src/views/cloth/texture/index.vue

@@ -33,7 +33,10 @@
                     <el-switch v-model="scope.row.status" active-value="0" inactive-value="1" @change="handleStatusChange(scope.row)"></el-switch>
                 </template>
             </el-table-column>
-            <el-table-column label="创建时间" align="center" prop="createTime"></el-table-column>
+            <el-table-column label="创建人" align="center" prop="createBy" />
+            <el-table-column label="创建时间" align="center" prop="createTime" />
+            <el-table-column label="修改人" align="center" prop="updateBy" />
+            <el-table-column label="修改时间" align="center" prop="createTime" />
             <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
                 <template slot-scope="scope">
                     <el-button type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)" v-hasPermi="['cloth:texture:edit']">修改</el-button>

+ 0 - 1
src/views/cloth/unitPrice/index.vue

@@ -47,7 +47,6 @@
                             {{ scope.row.price ? scope.row.price : '未设置价格' }}
                         </template>
                     </el-table-column>
-
                     <el-table-column label="操作" align="center" class-name="small-padding fixed-width" fixed="right" width="120">
                         <template slot-scope="scope">
                             <el-button type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)">设置</el-button>

+ 4 - 1
src/views/cloth/washMode/index.vue

@@ -27,7 +27,10 @@
                     <el-switch v-model="scope.row.status" active-value="0" inactive-value="1" @change="handleStatusChange(scope.row)"></el-switch>
                 </template>
             </el-table-column>
+            <el-table-column label="创建人" align="center" prop="createBy" />
             <el-table-column label="创建时间" align="center" prop="createTime" />
+            <el-table-column label="修改人" align="center" prop="updateBy" />
+            <el-table-column label="修改时间" align="center" prop="createTime" />
             <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
                 <template slot-scope="scope">
                     <el-button type="text" icon="el-icon-share" @click="handleRelationUpdate(scope.row)" v-hasPermi="['cloth:washMode:add']">关联类别</el-button>
@@ -68,7 +71,7 @@
                         <el-checkbox :indeterminate="isIndeterminate" v-model="checkAll" @change="handleCheckAllChange">全选</el-checkbox>
                         <div style="margin-top: 20px"></div>
                         <el-checkbox-group v-model="selectClothTypeList" @change="handleCheckedClothTypeChange">
-                            <el-checkbox v-for="item in allClothTypeList" style="height: 50px" :label="item.id" :key="item.id+''">{{ item.name }}</el-checkbox>
+                            <el-checkbox v-for="item in allClothTypeList" style="height: 50px" :label="item.id" :key="item.id + ''">{{ item.name }}</el-checkbox>
                         </el-checkbox-group>
                     </div>
                 </el-form-item>

+ 3 - 0
src/views/cloth/washProblem/index.vue

@@ -20,7 +20,10 @@
         <Page uri="/mapi/cloth/washProblem/list" :request-params="queryParams" ref="pagination">
             <el-table-column label="ID" align="center" prop="id" />
             <el-table-column label="内容" align="center" prop="content" />
+            <el-table-column label="创建人" align="center" prop="createBy" />
             <el-table-column label="创建时间" align="center" prop="createTime" />
+            <el-table-column label="修改人" align="center" prop="updateBy" />
+            <el-table-column label="修改时间" align="center" prop="createTime" />
             <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)" v-hasPermi="['cloth:washProblem:edit']">修改</el-button>

+ 32 - 27
src/views/coupon/item/index.vue

@@ -2,12 +2,8 @@
     <div class="app-container">
         <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="90px">
             <el-form-item label-width="120px" prop="orgIndex" v-if="userInfoVO.userType == '00'">
-                <el-select v-model="queryParams.orgIndex" placeholder="请选择门店" clearable>
-                    <el-option-group label="门店">
-                        <template>
-                            <el-option v-for="store in storeList" :key="store.id + store.sourceType" :label="store.name" :value="store.id + ',' + store.sourceType"> </el-option>
-                        </template>
-                    </el-option-group>
+                <el-select v-model="queryParams.orgIndex" placeholder="请选择门店" clearable filterable>
+                    <el-option v-for="store in storeList" :key="store.id + store.sourceType" :label="store.name" :value="store.id + ',' + store.sourceType"> </el-option>
                 </el-select>
             </el-form-item>
             <el-form-item prop="discountWay">
@@ -50,43 +46,52 @@
                     <dict-tag :options="dict.type.coupon_type" :value="scope.row.discountWay" />
                 </template>
             </el-table-column>
-            <el-table-column label="活动名称" align="center" prop="activityTitle" width="120" :show-overflow-tooltip="true" />
-            <!--      <el-table-column label="活动ID" align="center" prop="activityInfoId" />-->
-            <el-table-column label="发放门店" align="center" prop="orgName" width="120" :show-overflow-tooltip="true" />
+            <el-table-column label="券值" align="center" prop="deductAmount" width="150">
+                <template slot-scope="scope">
+                    <span v-if="scope.row.discountWay == 0">满{{ scope.row.minAmount }}元减{{ scope.row.deductAmount }}元</span>
+                    <span v-if="scope.row.discountWay == 1">满{{ scope.row.minAmount }}件减{{ scope.row.deductAmount }}件</span>
+                    <span v-if="scope.row.discountWay == 2">{{ scope.row.discountRate }}%折扣</span>
+                </template>
+            </el-table-column>
+            <el-table-column label="所属门店" align="center" prop="orgName" width="120" :show-overflow-tooltip="true">
+                <template slot-scope="scope">
+                    <span v-if="scope.row.orgName">{{ scope.row.orgName }}</span>
+                    <span v-else>--</span>
+                </template>
+            </el-table-column>
+            <el-table-column label="关联活动" align="center" prop="activityTitle" width="120" :show-overflow-tooltip="true">
+                <template slot-scope="scope">
+                    <span v-if="scope.row.activityTitle">{{ scope.row.activityTitle }}</span>
+                    <span v-else>--</span>
+                </template>
+            </el-table-column>
             <el-table-column label="客户姓名" align="center" prop="appUserName" width="150">
                 <template slot-scope="scope"> {{ scope.row.appUserName }}/{{ scope.row.appUserPhone }} </template>
             </el-table-column>
+
+            <el-table-column label="有效期开始时间" align="center" prop="startDate" width="140"> </el-table-column>
+            <el-table-column label="有效期结束时间" align="center" prop="endDate" width="140"> </el-table-column>
             <el-table-column label="是否核销" align="center" prop="isUsed" width="80">
                 <template slot-scope="scope">
                     <dict-tag :options="dict.type.sys_yes_no" :value="scope.row.isUsed" />
                 </template>
             </el-table-column>
-            <el-table-column label="核销门店" align="center" prop="usedOrgName" width="120" :show-overflow-tooltip="true" />
-            <el-table-column label="核销时间" align="center" prop="usedTime" width="140"> </el-table-column>
-            <el-table-column label="有效期开始时间" align="center" prop="startDate" width="140"> </el-table-column>
-            <el-table-column label="有效期结束时间" align="center" prop="endDate" width="140"> </el-table-column>
-            <el-table-column label="是否单件抵扣券" align="center" prop="isUnique" width="180">
+            <el-table-column label="核销门店" align="center" prop="usedOrgName" width="120" :show-overflow-tooltip="true">
                 <template slot-scope="scope">
-                    <dict-tag :options="dict.type.sys_yes_no" :value="scope.row.isUnique" />
+                    <span v-if="scope.row.usedOrgName">{{ scope.row.usedOrgName }}</span>
+                    <span v-else>未核销</span>
                 </template>
             </el-table-column>
-            <el-table-column label="是否手动发券" align="center" prop="canManual" width="180">
+            <el-table-column label="核销时间" align="center" prop="usedTime" width="140">
                 <template slot-scope="scope">
-                    <dict-tag :options="dict.type.sys_yes_no" :value="scope.row.canManual" />
+                    <span v-if="scope.row.usedTime">{{ scope.row.usedTime }}</span>
+                    <span v-else>--</span>
                 </template>
             </el-table-column>
-            <el-table-column label="抵用金额(元)" align="center" prop="deductAmount" width="120" />
             <el-table-column label="核销订单编码" align="center" prop="deductOrderNo" width="150" />
             <el-table-column label="操作" align="center" class-name="small-padding fixed-width" fixed="right" width="150" v-if="isUsed != 'Y'">
                 <template slot-scope="scope">
-                    <el-button type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)" v-hasPermi="['app:couponItem:edit']">修改有效期</el-button>
-                    <!--          <el-button-->
-                    <!--             -->
-                    <!--            type="text"-->
-                    <!--            icon="el-icon-delete"-->
-                    <!--            @click="handleDelete(scope.row)"-->
-                    <!--            v-hasPermi="['app:couponItem:remove']"-->
-                    <!--          >删除</el-button>-->
+                    <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>
                 </template>
             </el-table-column>
         </Page>
@@ -99,7 +104,7 @@
                 <el-form ref="form" :model="sendCouponForm" :rules="rules" label-width="140px">
                     <el-col :span="24">
                         <el-form-item label="门店" prop="orgId">
-                            <el-select v-model="sendCouponForm.orgId" style="width: 200px" @input="getAllValidList(sendCouponForm.orgId)" placeholder="请选择门店" clearable>
+                            <el-select v-model="sendCouponForm.orgId" style="width: 200px" @input="getAllValidList(sendCouponForm.orgId)" placeholder="请选择门店" clearable filterable>
                                 <el-option v-for="item in storeList" :key="item.id" :label="item.name" :value="item.id" />
                             </el-select>
                         </el-form-item>

+ 4 - 19
src/views/coupon/type/index.vue

@@ -64,7 +64,7 @@
             </el-table-column> -->
             <el-table-column label="发放方式" align="center" prop="sendWay" width="180">
                 <template slot-scope="scope">
-                    <dict-tag :options="dict.type.coupon_send_way" :value="scope.row.sendWay" />
+                    <dict-tag :options="dict.type.coupon_send_way" :value="parseInt(scope.row.sendWay)" />
                 </template>
             </el-table-column>
             <el-table-column label="适用范围" align="center" prop="useScope" width="180">
@@ -153,21 +153,6 @@
                             </el-form-item>
                         </template>
                     </el-col>
-
-                    <!--                    <el-col :span="24">-->
-                    <!--                        <el-col :span="12">-->
-                    <!--                            <el-form-item label="是否可抵用充值" label-width="150px" prop="canDeductRecharge">-->
-                    <!--                                <el-radio-group v-model="form.canDeductRecharge">-->
-                    <!--                                    <el-radio-button v-for="dict in dict.type.sys_yes_no" :key="dict.value" :label="dict.value">{{ dict.label }}</el-radio-button>-->
-                    <!--                                </el-radio-group>-->
-                    <!--                            </el-form-item>-->
-                    <!--                        </el-col>-->
-                    <!--                        <el-col :span="12">-->
-                    <!--                            <el-form-item label="抵用充值金额" prop="deductRechargeAmount" label-width="150px" v-if="form.canDeductRecharge == 'Y'">-->
-                    <!--                                <el-input-number v-model="form.deductRechargeAmount" placeholder="请输入抵用充值金额" :precision="2" :min="0" :max="999999" />-->
-                    <!--                            </el-form-item>-->
-                    <!--                        </el-col>-->
-                    <!--                    </el-col>-->
                     <el-col :span="24">
                         <el-form-item label="三方品牌" prop="couponTypeThirdPartyId" label-width="100px">
                             <el-select v-model="form.couponTypeThirdPartyId" placeholder="请选择三方品牌" clearable style="width: 300px">
@@ -183,15 +168,15 @@
                     <el-col :span="24">
                         <el-form-item label="发放方式" prop="sendWay">
                             <el-radio-group v-model="form.sendWay">
-                                <el-radio v-for="dict in dict.type.coupon_send_way" :key="dict.value" :label="dict.value">{{ dict.label }}</el-radio>
+                                <el-radio v-for="dict in dict.type.coupon_send_way" :key="parseInt(dict.value)" :label="parseInt(dict.value)">{{ dict.label }}</el-radio>
                             </el-radio-group>
                         </el-form-item>
                     </el-col>
                     <el-col :span="24">
                         <el-form-item label="适用衣服范围" prop="useScope">
                             <el-radio-group v-model="form.useScope">
-                                <el-radio key="1" label="1">全部衣服</el-radio>
-                                <el-radio key="2" label="2">指定衣服</el-radio>
+                                <el-radio key="1" :label="1">全部衣服</el-radio>
+                                <el-radio key="2" :label="2">指定衣服</el-radio>
                             </el-radio-group>
                             <span style="color: #aaa; display: block">若指定衣服,请在操作里面添加衣服</span>
                         </el-form-item>

+ 4 - 0
src/views/goods/brand/index.vue

@@ -30,6 +30,10 @@
                     <el-switch v-model="scope.row.status" active-value="0" inactive-value="1" @change="handleStatusChange(scope.row)"></el-switch>
                 </template>
             </el-table-column>
+            <el-table-column label="创建人" align="center" prop="createBy" />
+            <el-table-column label="创建时间" align="center" prop="createTime" />
+            <el-table-column label="修改人" align="center" prop="updateBy" />
+            <el-table-column label="修改时间" align="center" prop="createTime" />
             <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
                 <template slot-scope="scope">
                     <el-button type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)" v-hasPermi="['goods:brand:edit']">修改</el-button>

+ 7 - 18
src/views/goods/carBeaut/index.vue

@@ -45,22 +45,21 @@
                     <span v-if="scope.row.goodsCategoryId == item.id" v-for="item in categoryList" :key="item.id"> {{ item.categoryName }}</span>
                 </template>
             </el-table-column>
-            <el-table-column label="是否促销" align="center" prop="isSell">
+            <el-table-column label="促销标识" align="center" prop="isSell">
                 <template slot-scope="scope">
                     <el-tag v-if="scope.row.isSell == dict.value" v-for="dict in dict.type.sys_yes_no" :label="dict.value" :key="dict.code"> {{ dict.label }}</el-tag>
                 </template>
             </el-table-column>
-            <el-table-column label="是否余额支付" align="center" prop="isBalancePay">
+            <el-table-column label="规格数量" align="center" prop="goodsItemNum">
                 <template slot-scope="scope">
-                    <el-tag v-if="scope.row.isBalancePay == dict.value" v-for="dict in dict.type.sys_yes_no" :label="dict.value" :key="dict.code"> {{ dict.label }}</el-tag>
+                    <el-button type="text" @click="handleSkuUpdate(scope.row)">{{ scope.row.goodsItemNum }}种规格</el-button>
                 </template>
             </el-table-column>
-            <el-table-column label="是否现金支付" align="center" prop="isCashPay">
+            <el-table-column label="余额支付" align="center" prop="isBalancePay">
                 <template slot-scope="scope">
-                    <el-tag v-if="scope.row.isCashPay == dict.value" v-for="dict in dict.type.sys_yes_no" :label="dict.value" :key="dict.code"> {{ dict.label }}</el-tag>
+                    <el-tag v-if="scope.row.isBalancePay == dict.value" v-for="dict in dict.type.sys_yes_no" :label="dict.value" :key="dict.code"> {{ dict.label }}</el-tag>
                 </template>
             </el-table-column>
-            <el-table-column label="现金金额(元)" align="center" prop="cashMoney" />
             <el-table-column label="显示顺序" align="center" prop="sort" />
             <el-table-column label="启用状态" align="center" prop="status">
                 <template slot-scope="scope">
@@ -78,7 +77,7 @@
         <!-- 分页 -->
         <!-- 添加或修改商品管理对话框 -->
         <el-dialog :title="title" :visible.sync="open" width="50%" append-to-body>
-            <el-row :gutter="15" style="margin-bottom: 150px">
+            <el-row :gutter="15">
                 <el-form ref="form" :model="form" :rules="rules" label-width="120px">
                     <el-col :span="24">
                         <el-form-item label="商品名称" prop="goodsName">
@@ -98,7 +97,7 @@
                             <el-input v-model="form.goodsCode" placeholder="请输入商品编码" />
                         </el-form-item>
                         <template v-if="goodsType === '0'">
-                            <el-form-item label="是否促销" prop="isSell">
+                            <el-form-item label="促销标识" prop="isSell">
                                 <el-radio-group v-model="form.isSell" size="small">
                                     <el-radio-button v-for="dict in dict.type.sys_yes_no" :label="dict.value" :key="dict.code">{{ dict.label }}</el-radio-button>
                                 </el-radio-group>
@@ -109,16 +108,6 @@
                                 <el-radio-button v-for="dict in dict.type.sys_yes_no" :label="dict.value" :key="dict.code">{{ dict.label }}</el-radio-button>
                             </el-radio-group>
                         </el-form-item>
-                        <el-form-item label="是否现金支付" prop="isCashPay">
-                            <el-radio-group v-model="form.isCashPay" size="small">
-                                <el-radio-button v-for="dict in dict.type.sys_yes_no" :label="dict.value" :key="dict.code">{{ dict.label }}</el-radio-button>
-                            </el-radio-group>
-                        </el-form-item>
-                        <template v-if="form.isCashPay === 'Y'">
-                            <el-form-item label="现金金额" prop="cashMoney">
-                                <el-input v-model="form.cashMoney" placeholder="请输入金额" />
-                            </el-form-item>
-                        </template>
                         <el-form-item label="上传图片" prop="goodsImg">
                             <image-upload v-model="form.goodsImg" />
                         </el-form-item>

+ 4 - 0
src/views/goods/category/index.vue

@@ -28,6 +28,10 @@
                     <el-switch v-model="scope.row.status" active-value="0" inactive-value="1" @change="handleStatusChange(scope.row)"></el-switch>
                 </template>
             </el-table-column>
+            <el-table-column label="创建人" align="center" prop="createBy" />
+            <el-table-column label="创建时间" align="center" prop="createTime" />
+            <el-table-column label="修改人" align="center" prop="updateBy" />
+            <el-table-column label="修改时间" align="center" prop="createTime" />
             <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
                 <template slot-scope="scope">
                     <el-button type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)" v-hasPermi="['goods:category:edit']">修改</el-button>

+ 27 - 17
src/views/goods/commonGoods/index.vue

@@ -33,24 +33,34 @@
         <Page uri="/mapi/core/goods/list" :request-params="queryParams" ref="pagination">
             <el-table-column label="ID" align="center" prop="id" />
             <el-table-column label="商品编号" align="center" prop="goodsCode" />
-            <el-table-column label="图片" align="center" prop="goodsImg" width="150">
+            <el-table-column label="商品名称" align="center" prop="goodsName" />
+            <el-table-column label="图片" align="center" prop="goodsImg" width="100">
                 <template slot-scope="scope">
-                    <el-image style="width: 100px; height: 100px" :src="scope.row.goodsImg" :preview-src-list="[scope.row.goodsImg]"> </el-image>
+                    <el-image style="width: 80px; height: 80px" :src="scope.row.goodsImg" :preview-src-list="[scope.row.goodsImg]"> </el-image>
                 </template>
             </el-table-column>
-            <el-table-column label="商品名称" align="center" prop="goodsName" />
             <el-table-column label="品牌" align="center" prop="brandName" />
             <el-table-column label="商品分类" align="center" prop="goodsCategoryId">
                 <template slot-scope="scope">
                     <span v-if="scope.row.goodsCategoryId == item.id" v-for="item in categoryList" :key="item.id"> {{ item.categoryName }}</span>
                 </template>
             </el-table-column>
-            <el-table-column label="是否促销" align="center" prop="isSell">
+            <el-table-column label="促销标识" align="center" prop="isSell">
                 <template slot-scope="scope">
                     <el-tag v-if="scope.row.isSell == dict.value" v-for="dict in dict.type.sys_yes_no" :label="dict.value" :key="dict.code"> {{ dict.label }}</el-tag>
                 </template>
             </el-table-column>
-            <el-table-column label="金额(元)" align="center" prop="cashMoney" />
+            <el-table-column label="规格数量" align="center" prop="goodsItemNum">
+                <template slot-scope="scope">
+                    <el-button type="text" @click="handleSkuUpdate(scope.row)">{{ scope.row.goodsItemNum }}种规格</el-button>
+                </template>
+            </el-table-column>
+            <el-table-column label="余额支付" align="center" prop="isBalancePay">
+                <template slot-scope="scope">
+                    <el-tag v-if="scope.row.isBalancePay == dict.value" v-for="dict in dict.type.sys_yes_no" :label="dict.value" :key="dict.code"> {{ dict.label }}</el-tag>
+                </template>
+            </el-table-column>
+            <!--            <el-table-column label="金额(元)" align="center" prop="cashMoney" />-->
             <el-table-column label="排序值" align="center" prop="sort" />
             <el-table-column label="启用状态" align="center" prop="status">
                 <template slot-scope="scope">
@@ -69,7 +79,7 @@
         <!-- 分页 -->
         <!-- 添加或修改商品管理对话框 -->
         <el-dialog :title="title" :visible.sync="open" width="50%" append-to-body>
-            <el-row :gutter="15" style="margin-bottom: 150px">
+            <el-row :gutter="15">
                 <el-form ref="form" :model="form" :rules="rules" label-width="120px">
                     <el-col :span="24">
                         <el-form-item label="商品名称" prop="goodsName">
@@ -89,7 +99,7 @@
                             <el-input v-model="form.goodsCode" placeholder="请输入商品编码" />
                         </el-form-item>
                         <template v-if="goodsType === '0'">
-                            <el-form-item label="是否促销" prop="isSell">
+                            <el-form-item label="促销标识" prop="isSell">
                                 <el-radio-group v-model="form.isSell" size="small">
                                     <el-radio-button v-for="dict in dict.type.sys_yes_no" :label="dict.value" :key="dict.code">{{ dict.label }}</el-radio-button>
                                 </el-radio-group>
@@ -100,16 +110,16 @@
                                 <el-radio-button v-for="dict in dict.type.sys_yes_no" :label="dict.value" :key="dict.code">{{ dict.label }}</el-radio-button>
                             </el-radio-group>
                         </el-form-item>
-                        <el-form-item label="是否现金支付" prop="isCashPay">
-                            <el-radio-group v-model="form.isCashPay" size="small">
-                                <el-radio-button v-for="dict in dict.type.sys_yes_no" :label="dict.value" :key="dict.code">{{ dict.label }}</el-radio-button>
-                            </el-radio-group>
-                        </el-form-item>
-                        <template v-if="form.isCashPay === 'Y'">
-                            <el-form-item label="现金金额" prop="cashMoney">
-                                <el-input v-model="form.cashMoney" placeholder="请输入金额" />
-                            </el-form-item>
-                        </template>
+                        <!--                        <el-form-item label="是否现金支付" prop="isCashPay">-->
+                        <!--                            <el-radio-group v-model="form.isCashPay" size="small">-->
+                        <!--                                <el-radio-button v-for="dict in dict.type.sys_yes_no" :label="dict.value" :key="dict.code">{{ dict.label }}</el-radio-button>-->
+                        <!--                            </el-radio-group>-->
+                        <!--                        </el-form-item>-->
+                        <!--                        <template v-if="form.isCashPay === 'Y'">-->
+                        <!--                            <el-form-item label="现金金额" prop="cashMoney">-->
+                        <!--                                <el-input v-model="form.cashMoney" placeholder="请输入金额" />-->
+                        <!--                            </el-form-item>-->
+                        <!--                        </template>-->
                         <el-form-item label="上传图片" prop="goodsImg">
                             <image-upload v-model="form.goodsImg" />
                         </el-form-item>

+ 13 - 18
src/views/goods/lifeService/index.vue

@@ -45,22 +45,27 @@
                     <span v-if="scope.row.goodsCategoryId == item.id" v-for="item in categoryList" :key="item.id"> {{ item.categoryName }}</span>
                 </template>
             </el-table-column>
-            <el-table-column label="是否促销" align="center" prop="isSell">
+            <el-table-column label="促销标识" align="center" prop="isSell">
                 <template slot-scope="scope">
                     <el-tag v-if="scope.row.isSell == dict.value" v-for="dict in dict.type.sys_yes_no" :label="dict.value" :key="dict.code"> {{ dict.label }}</el-tag>
                 </template>
             </el-table-column>
-            <el-table-column label="是否余额支付" align="center" prop="isBalancePay">
+            <el-table-column label="规格数量" align="center" prop="goodsItemNum">
                 <template slot-scope="scope">
-                    <el-tag v-if="scope.row.isBalancePay == dict.value" v-for="dict in dict.type.sys_yes_no" :label="dict.value" :key="dict.code"> {{ dict.label }}</el-tag>
+                    <el-button type="text" @click="handleSkuUpdate(scope.row)">{{ scope.row.goodsItemNum }}种规格</el-button>
                 </template>
             </el-table-column>
-            <el-table-column label="是否现金支付" align="center" prop="isCashPay">
+            <el-table-column label="余额支付" align="center" prop="isBalancePay">
                 <template slot-scope="scope">
-                    <el-tag v-if="scope.row.isCashPay == dict.value" v-for="dict in dict.type.sys_yes_no" :label="dict.value" :key="dict.code"> {{ dict.label }}</el-tag>
+                    <el-tag v-if="scope.row.isBalancePay == dict.value" v-for="dict in dict.type.sys_yes_no" :label="dict.value" :key="dict.code"> {{ dict.label }}</el-tag>
                 </template>
             </el-table-column>
-            <el-table-column label="现金金额(元)" align="center" prop="cashMoney" />
+            <!--            <el-table-column label="是否现金支付" align="center" prop="isCashPay">-->
+            <!--                <template slot-scope="scope">-->
+            <!--                    <el-tag v-if="scope.row.isCashPay == dict.value" v-for="dict in dict.type.sys_yes_no" :label="dict.value" :key="dict.code"> {{ dict.label }}</el-tag>-->
+            <!--                </template>-->
+            <!--            </el-table-column>-->
+            <!--            <el-table-column label="现金金额(元)" align="center" prop="cashMoney" />-->
             <el-table-column label="显示顺序" align="center" prop="sort" />
             <el-table-column label="启用状态" align="center" prop="status">
                 <template slot-scope="scope">
@@ -79,7 +84,7 @@
         <!-- 分页 -->
         <!-- 添加或修改商品管理对话框 -->
         <el-dialog :title="title" :visible.sync="open" width="50%" append-to-body>
-            <el-row :gutter="15" style="margin-bottom: 150px">
+            <el-row :gutter="15">
                 <el-form ref="form" :model="form" :rules="rules" label-width="120px">
                     <el-col :span="24">
                         <el-form-item label="商品名称" prop="goodsName">
@@ -99,7 +104,7 @@
                             <el-input v-model="form.goodsCode" placeholder="请输入商品编码" />
                         </el-form-item>
                         <template v-if="goodsType === '0'">
-                            <el-form-item label="是否促销" prop="isSell">
+                            <el-form-item label="促销标识" prop="isSell">
                                 <el-radio-group v-model="form.isSell" size="small">
                                     <el-radio-button v-for="dict in dict.type.sys_yes_no" :label="dict.value" :key="dict.code">{{ dict.label }}</el-radio-button>
                                 </el-radio-group>
@@ -110,16 +115,6 @@
                                 <el-radio-button v-for="dict in dict.type.sys_yes_no" :label="dict.value" :key="dict.code">{{ dict.label }}</el-radio-button>
                             </el-radio-group>
                         </el-form-item>
-                        <el-form-item label="是否现金支付" prop="isCashPay">
-                            <el-radio-group v-model="form.isCashPay" size="small">
-                                <el-radio-button v-for="dict in dict.type.sys_yes_no" :label="dict.value" :key="dict.code">{{ dict.label }}</el-radio-button>
-                            </el-radio-group>
-                        </el-form-item>
-                        <template v-if="form.isCashPay === 'Y'">
-                            <el-form-item label="现金金额" prop="cashMoney">
-                                <el-input v-model="form.cashMoney" placeholder="请输入金额" />
-                            </el-form-item>
-                        </template>
                         <el-form-item label="上传图片" prop="goodsImg">
                             <image-upload v-model="form.goodsImg" />
                         </el-form-item>

+ 887 - 1305
src/views/order/retailOrder/index.vue

@@ -1,1363 +1,945 @@
 <template>
-  <div class="app-container">
-    <el-form
-      :model="queryParams"
-      ref="queryForm"
-      size="small"
-      :inline="true"
-      v-show="showSearch"
-      label-width="100px"
-    >
-      <el-form-item label="订单编号" prop="orderNo">
-        <el-input
-          v-model="queryParams.orderNo"
-          placeholder="请输入订单编号"
-          clearable
-          @keyup.enter.native="handleQuery"
-        />
-      </el-form-item>
-      <el-form-item label="订单状态" prop="orderStatus">
-        <el-select
-          v-model="queryParams.orderStatus"
-          placeholder="请选择支付状态"
-          clearable
-        >
-          <el-option
-            v-for="dict in dict.type.order_goods_status"
-            :key="dict.code"
-            :label="dict.label"
-            :value="dict.value"
-          />
-        </el-select>
-      </el-form-item>
-      <el-form-item label="客户姓名" prop="realName">
-        <el-input
-          v-model="queryParams.realName"
-          placeholder="请输入客户姓名"
-          clearable
-          @keyup.enter.native="handleQuery"
-        />
-      </el-form-item>
-      <el-form-item label="手机号" prop="phoneNumber">
-        <el-input
-          v-model="queryParams.phoneNumber"
-          placeholder="请输入手机号"
-          clearable
-          @keyup.enter.native="handleQuery"
-        />
-      </el-form-item>
-      <el-form-item label="支付时间">
-        <el-date-picker
-          clearable
-          v-model="queryPayTime"
-          type="daterange"
-          value-format="yyyy-MM-dd"
-          range-separator="至"
-          start-placeholder="开始日期"
-          end-placeholder="结束日期"
-          @change="getPayTime">
-        </el-date-picker>
-      </el-form-item>
-      <el-form-item label="下单时间">
-        <el-date-picker
-          clearable
-          v-model="queryCreateTime"
-          type="daterange"
-          value-format="yyyy-MM-dd"
-          range-separator="至"
-          start-placeholder="开始日期"
-          end-placeholder="结束日期"
-          @change="getCreateTime">
-        </el-date-picker>
-      </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-row :gutter="10" class="mb8">
-      <el-col :span="1.5">
-        <el-button
-          type="warning"
-          plain
-          icon="el-icon-download"
-           
-          @click="handleExport"
-          v-hasPermi="['order:goods:export']"
-          v-if="userInfoVO.userType == '00'"
-        >导出</el-button>
-      </el-col>
-      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
-    </el-row>
-
-    <el-table v-loading="orderLoading" :data="GoodsList">
-      <!--      <el-table-column type="selection" width="55" align="center" fixed="left"/>-->
-      <el-table-column
-        label="订单编号"
-        align="center"
-        prop="orderNo"
-        width="250px"
-      />
-      <el-table-column
-        label="客户姓名"
-        align="center"
-        prop="realName"
-        width="200px"
-      />
-      <el-table-column
-        label="手机号"
-        align="center"
-        prop="phoneNumber"
-        width="200px"
-      />
-      <el-table-column
-        label="订单总价(元)"
-        align="center"
-        prop="totalPrice"
-        width="200px"
-      />
-      <el-table-column
-        label="抵扣金额(元)"
-        align="center"
-        prop="deductAmount"
-        width="200px"
-      >
-        <template slot-scope="scope">
-          {{ scope.row.deductAmount ? scope.row.deductAmount : "0" }}
-        </template>
-      </el-table-column>
-      <el-table-column
-        label="支付金额(元)"
-        align="center"
-        prop="payAmount"
-        width="200px"
-      />
-      <el-table-column
-        label="订单状态"
-        align="center"
-        prop="orderStatus"
-        width="200px"
-      >
-        <template slot-scope="scope">
-          <dict-tag
-            :options="dict.type.order_goods_status"
-            :value="scope.row.orderStatus"
-          />
-        </template>
-      </el-table-column>
-      <el-table-column label="支付方式" align="center" prop="payType">
-        <template slot-scope="scope">
-          <dict-tag
-            :options="dict.type.recharge_pay_type"
-            :value="scope.row.payType"
-          />
-        </template>
-      </el-table-column>
-      <el-table-column
-        label="支付时间"
-        align="center"
-        prop="payTime"
-        width="200px"
-      />
-      <el-table-column
-        label="下单时间"
-        align="center"
-        prop="createTime"
-        width="200px"
-      />
-      <!--      <el-table-column label="发货时间" align="center" prop="sendTime" width="200px"/>-->
-      <el-table-column
-        label="操作"
-        align="center"
-        class-name="small-padding fixed-width"
-        fixed="right"
-        width="200"
-      >
-        <template slot-scope="scope">
-          <el-button
-             
-            type="text"
-            icon="el-icon-chat-dot-square"
-            @click="orderDetail(scope.row)"
-            >订单详情</el-button
-          >
-          <el-button
-             
-            type="text"
-            icon="el-icon-check"
-            @click="rePay(scope.row)"
-            v-if="scope.row.orderStatus == '0' && userInfoVO.userType == '02'"
-            >重新支付</el-button
-          >
-          <el-button
-             
-            type="text"
-            icon="el-icon-close"
-            @click="cancelOrder(scope.row)"
-            v-if="scope.row.orderStatus == '0'"
-            >取消订单</el-button
-          >
-          <el-button
-             
-            type="text"
-            icon="el-icon-check"
-            @click="outOrderGoods(scope.row)"
-            v-if="scope.row.orderStatus == '2' && userInfoVO.userType == '00'"
-            >出货</el-button
-          >
-          <el-button
-             
-            type="text"
-            icon="el-icon-truck"
-            @click="deliveryInfo(scope.row)"
-            v-if="scope.row.deliveryNo"
-          >
-            物流信息
-          </el-button>
-          <el-button
-             
-            type="text"
-            icon="el-icon-chat-dot-square"
-            @click="refundOrder(scope.row)"
-            v-if="
-              userInfoVO.userType == '00' &&
-              scope.row.refundStatus != '1' &&
-              scope.row.refundStatus != '2' &&
-              scope.row.orderStatus != '0'
-            "
-            >撤单</el-button
-          >
-          <el-button
-             
-            type="text"
-            icon="el-icon-printer"
-            v-if="userInfoVO.userType != '00'"
-            @click="btn_lodop(scope.row)"
-          >打印</el-button>
-        </template>
-      </el-table-column>
-    </el-table>
-
-    <pagination
-      v-show="total > 0"
-      :total="total"
-      :page.sync="queryParams.pageNum"
-      :limit.sync="queryParams.pageSize"
-      @pagination="getList"
-    />
-
-    <!--    详情-->
-    <el-dialog :title="detailTitle" :visible.sync="openDetail" size="80%">
-      <el-card>
-        <el-descriptions
-          title="客户信息"
-           
-          v-show="detailView"
-          :column="3"
-          border
-          :label-style="{ 'text-align': 'center' }"
-          :contentStyle="{ 'text-align': 'center' }"
-        >
-          <el-descriptions-item label="客户姓名">{{
-            detailView.realName
-          }}</el-descriptions-item>
-          <el-descriptions-item label="客户手机号">{{
-            detailView.phoneNumber
-          }}</el-descriptions-item>
-          <el-descriptions-item label="订单状态">
-            <dict-tag
-              :options="dict.type.order_goods_status"
-              :value="detailView.orderStatus"
-            />
-          </el-descriptions-item>
-          <el-descriptions-item label="收货联系人">{{
-            detailView.contactName ? detailView.contactName : "暂无信息"
-          }}</el-descriptions-item>
-          <el-descriptions-item label="收货人手机号">{{
-            detailView.contactPhone ? detailView.contactPhone : "暂无信息"
-          }}</el-descriptions-item>
-          <el-descriptions-item label="下单时间">{{
-            detailView.createTime ? detailView.createTime : "暂无信息"
-          }}</el-descriptions-item>
-          <el-descriptions-item label="支付时间">{{
-            detailView.payTime ? detailView.payTime : "暂无信息"
-          }}</el-descriptions-item>
-          <el-descriptions-item label="发货时间">{{
-            detailView.sendTime ? detailView.sendTime : "暂无信息"
-          }}</el-descriptions-item>
-          <el-descriptions-item label="确认收货时间">{{
-            detailView.finishTime ? detailView.finishTime : "暂无信息"
-          }}</el-descriptions-item>
-          <el-descriptions-item label="订单总价">{{
-            detailView.totalPrice ? detailView.totalPrice : "暂无信息"
-          }}</el-descriptions-item>
-          <el-descriptions-item label="物流公司">{{
-            detailView.deliveryCompany ? detailView.deliveryCompany : "暂无信息"
-          }}</el-descriptions-item>
-          <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>
-      </el-card>
-      <div class="head-column2">
-        <el-table
-          v-loading="detailLoading"
-          :data="detailView.orderGoodsSkuList"
-        >
-          <el-table-column
-            label="分类"
-            align="center"
-            prop="goodsCategoryName"
-          />
-          <el-table-column
-            :label="goodsType == 0 ? '商品名称' : '材料名称'"
-            align="center"
-            prop="goodsName"
-            width="250px"
-          />
-          <el-table-column
-            :label="goodsType == 0 ? '商品规格' : '材料规格'"
-            align="center"
-            width="250px"
-          >
-            <template slot-scope="scope">
-              <div style="text-align: center">
-                {{ scope.row.skuName.replace(" ", "/") }}
-              </div>
-            </template>
-          </el-table-column>
-          <el-table-column label="数量" align="center" prop="buyNum" />
-          <el-table-column
-            label="价格(元)"
-            align="center"
-            prop="marketPrice"
-          />
-          <el-table-column label="总和(元)" align="center">
-            <template slot-scope="scope">
-              <span>{{ scope.row.buyNum * scope.row.marketPrice }}</span>
-            </template>
-          </el-table-column>
-        </el-table>
-      </div>
-      <el-row :gutter="10" class="box-shadow" style="margin-top: 10px">
-        <el-col :span="21">
-          <el-form
-            label-width="130px"
-            style="height: 80px; padding-top: 20px; text-align: right"
-            :inline="true"
-            size="small"
-          >
-            <el-form-item label="总金额(元):">
-              {{ costTotalPrice }}
+    <div class="app-container">
+        <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="100px">
+            <el-form-item label="订单编号" prop="orderNo">
+                <el-input v-model="queryParams.orderNo" placeholder="请输入订单编号" clearable @keyup.enter.native="handleQuery" />
             </el-form-item>
-          </el-form>
-        </el-col>
-      </el-row>
-    </el-dialog>
-
-    <!--    重新支付页面 -->
-    <el-dialog
-      title="订单支付"
-      :visible.sync="openRePayPage"
-      size="60%"
-      append-to-body
-      
-    >
-      <el-descriptions
-        title="核对信息"
-        v-if="appUserInfo"
-        :column="3"
-        border
-        :contentStyle="{ 'text-align': 'center' }"
-        style="margin-left: 15px; margin-right: 15px"
-      >
-        <el-descriptions-item
-          label="总件数(件)"
-          :labelStyle="{ width: '16%' }"
-          :label-style="{ 'text-align': 'center' }"
-          >{{ calculateTotalCount }}</el-descriptions-item
-        >
-        <el-descriptions-item
-          label="抵扣金额(元)"
-          :labelStyle="{ width: '16%' }"
-          :label-style="{ 'text-align': 'center' }"
-          >{{
-            payFrom.deductAmount ? "¥" + payFrom.deductAmount : "¥" + "0"
-          }}</el-descriptions-item
-        >
-        <el-descriptions-item
-          label="卡余额(元)"
-          :labelStyle="{ width: '16%' }"
-          :label-style="{ 'text-align': 'center' }"
-          >¥{{
-            appUserInfo
-              ? appUserInfo.rechargeBalance + appUserInfo.giveBalance
-              : "0.00"
-          }}</el-descriptions-item
-        >
-
-        <el-descriptions-item label="原价(元)">{{
-          costTotalPrice
-        }}</el-descriptions-item>
-        <el-descriptions-item label="折后金额(元)">{{
-          calculatePayMoney
-        }}</el-descriptions-item>
-        <!--        <el-descriptions-item label="现有积分">{{appUserInfo.pointBalance}}</el-descriptions-item>-->
-      </el-descriptions>
-      <template>
-        <el-form
-          ref="payFrom"
-          :model="payFrom"
-          label-width="80px"
-          style="margin-top: 20px"
-        >
-          <el-row :gutter="10">
-            <el-card style="margin-left: 15px; margin-right: 15px">
-              <el-col :span="24">
-                <el-descriptions title="优惠信息"></el-descriptions>
-              </el-col>
-              <el-col :span="24">
-                <el-form-item
-                  label="抵扣现金券(元)"
-                  label-width="130px"
-                  prop="deductAmount"
-                >
-                  <el-input-number
-                    :min="1"
-                    :max="9999999"
-                    :controls="false"
-                    style="width: 200px"
-                    v-model.number="payFrom.deductAmount"
-                  ></el-input-number>
-                </el-form-item>
-              </el-col>
-            </el-card>
-          </el-row>
-          <el-row :gutter="10">
-            <el-card
-              style="margin-top: 15px; margin-left: 15px; margin-right: 15px"
-            >
-              <el-col :span="24">
-                <el-form-item label="支付方式" prop="payType">
-                  <el-radio-group
-                    v-model="payFrom.payType"
-                    style="width: 400px"
-                    @input="changePayType"
-                  >
-                    <el-radio-button label="3">余额</el-radio-button>
-                    <el-radio-button label="2">现金</el-radio-button>
-                    <el-radio-button label="0">微信</el-radio-button>
-                    <el-radio-button label="1">支付宝</el-radio-button>
-                  </el-radio-group>
-                </el-form-item>
-              </el-col>
-              <div v-if="payFrom.payType">
-                <el-col :span="8">
-                  <el-descriptions
-                    :column="2"
-                    style="width: 400px"
-                    v-if="payFrom.payType == '3' && appUserInfo"
-                  >
-                    <el-descriptions-item label="客户姓名">{{
-                      appUserInfo ? appUserInfo.realName : "- -"
-                    }}</el-descriptions-item>
-                    <el-descriptions-item label="余额(元)">
-                      ¥{{
-                        appUserInfo
-                          ? appUserInfo.rechargeBalance +
-                            appUserInfo.giveBalance
-                          : "0.00"
-                      }}
-                    </el-descriptions-item>
-                  </el-descriptions>
-                </el-col>
-                <el-col :span="12" v-if="payFrom.payType == '2'">
-                  <el-form-item
-                    label="实收现金(元)"
-                    label-width="120px"
-                    prop="thisPayMoney"
-                  >
-                    <el-input-number
-                      :min="1"
-                      :max="9999999"
-                      :controls="false"
-                      v-model="payFrom.thisPayMoney"
-                    ></el-input-number>
-                  </el-form-item>
-                </el-col>
-                <el-col :span="12" v-if="payFrom.payType == '2'">
-                  <el-form-item label="找零:" label-width="120px">
-                    <span>{{
-                      payFrom.thisPayMoney &&
-                      payFrom.thisPayMoney - payMoney >= 0
-                        ? payFrom.thisPayMoney - payMoney
-                        : "0"
-                    }}</span>
-                  </el-form-item>
-                </el-col>
-                <el-col :span="8" v-if="payFrom.payType == '0'">
-                  <el-form-item
-                    label="微信付款条形码"
-                    label-width="120px"
-                    prop="wxBarcode"
-                  >
-                    <el-input
-                      style="width: 200px"
-                      v-model="payFrom.wxBarcode"
-                    ></el-input>
-                  </el-form-item>
-                </el-col>
-                <el-col :span="8" v-if="payFrom.payType == '1'">
-                  <el-form-item
-                    label="支付宝付款条形码"
-                    label-width="130px"
-                    prop="aliPayBarcode"
-                  >
-                    <el-input
-                      style="width: 200px"
-                      v-model="payFrom.aliPayBarcode"
-                    ></el-input>
-                  </el-form-item>
-                </el-col>
-              </div>
-            </el-card>
-          </el-row>
-          <el-row :gutter="10">
-            <div>
-              <el-button
-                type="primary"
-                @click="submitSettlement"
-                style="margin-left: 3%; margin-top: 20px"
-                >结算</el-button
-              >
-            </div>
-          </el-row>
-        </el-form>
-      </template>
-    </el-dialog>
-
-    <!--    撤单页面-->
-    <el-dialog :visible.sync="openRefundPage" width="400px" append-to-body>
-      <el-form ref="refundVO" :model="refundVO">
-        <el-form-item label="撤单原因" label-width="80px" prop="refundReason">
-          <el-input
-            v-model="refundVO.refundReason"
-            type="textarea"
-            placeholder="请输入撤单原因"
-            maxlength="500"
-            :rows="5"
-            show-word-limit
-          ></el-input>
-        </el-form-item>
-      </el-form>
-      <el-row :gutter="10">
-        <div>
-          <el-button
-            type="primary"
-            @click="submitRefund"
-            style="margin-left: 3%; margin-top: 20px"
-            >提交</el-button
-          >
-        </div>
-      </el-row>
-    </el-dialog>
-
-    <!-- 订单出货对话框 -->
-    <el-dialog
-      title="订单出货信息"
-      :visible.sync="openDeliveryPage"
-      size="40%"
-      append-to-body
-      :before-close="deliveryClose"
-    >
-      <el-row :gutter="15" style="margin-bottom: 150px">
-        <el-form
-          ref="deliveryVo"
-          :model="deliveryVo"
-          :rules="deliveryRules"
-          label-width="120px"
-        >
-          <el-col :span="24">
-            <el-form-item label="快递公司" prop="deliveryCompany">
-              <el-radio-group v-model="deliveryVo.deliveryCompany"   @input="changeDeliveryId">
-                <el-radio-button v-for="dict in deliveryData" :label="dict.deliveryName" :key="dict.deliveryName"></el-radio-button>
-              </el-radio-group>
+            <el-form-item label="订单状态" prop="orderStatus">
+                <el-select v-model="queryParams.orderStatus" placeholder="请选择支付状态" clearable>
+                    <el-option v-for="dict in dict.type.order_goods_status" :key="dict.code" :label="dict.label" :value="dict.value" />
+                </el-select>
             </el-form-item>
-
-            <el-form-item label="服务类型" prop="serviceType">
-              <div class="servicecard" v-for="del in serviceData" :key="del.serviceType" @click="checkserviceId(del)" :class="{active: deliveryVo.serviceType == del.serviceType}">
-                <div class="check"><i class="el-icon-check"></i></div>
-                {{ del.serviceName }}
-              </div>
+            <el-form-item label="客户姓名" prop="realName">
+                <el-input v-model="queryParams.realName" placeholder="请输入客户姓名" clearable @keyup.enter.native="handleQuery" />
             </el-form-item>
-
-            <el-form-item label="预期揽件时间" prop="expectTime">
-              <el-date-picker
-                type="datetime"
-                placeholder="选择预期揽件时间"
-                v-model="deliveryVo.expectTime"
-                style="width: 100%;"
-                value-format="yyyy-MM-dd HH:mm"
-                format="yyyy-MM-dd HH:mm"
-                :picker-options="{
-                  disabledDate: time => {
-                    return time.getTime() < Date.now() - 3600 * 1000 * 24
-                  },
-                  selectableRange: startTimeRange
-                }"
-                :default-time="deliTime"
-                class="date_picker"
-                :editable="false"
-              ></el-date-picker>
+            <el-form-item label="手机号" prop="phoneNumber">
+                <el-input v-model="queryParams.phoneNumber" placeholder="请输入手机号" clearable @keyup.enter.native="handleQuery" />
             </el-form-item>
-
-            <!-- <el-form-item label="包裹数量" prop="count">
-              <el-input v-model="deliveryVo.count" type="number" placeholder="请输入包裹数量" clearable></el-input>
-            </el-form-item> -->
-
-            <el-form-item label="货物高度" prop="spaceHeight">
-              <el-input v-model="deliveryVo.spaceHeight" placeholder="请输入货物高度" clearable>
-                <template slot="append">厘米(cm)</template>
-              </el-input>
+            <el-form-item label="支付时间">
+                <el-date-picker clearable v-model="queryPayTime" type="daterange" value-format="yyyy-MM-dd" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期" @change="getPayTime"> </el-date-picker>
             </el-form-item>
-
-            <el-form-item label="货物长度" prop="spaceLength">
-              <el-input v-model="deliveryVo.spaceLength" placeholder="请输入货物长度" clearable>
-                <template slot="append">厘米(cm)</template>
-              </el-input>
+            <el-form-item label="下单时间">
+                <el-date-picker clearable v-model="queryCreateTime" type="daterange" value-format="yyyy-MM-dd" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期" @change="getCreateTime"> </el-date-picker>
             </el-form-item>
-
-            <el-form-item label="货物宽度" prop="spaceWidth">
-              <el-input v-model="deliveryVo.spaceWidth" placeholder="请输入货物宽度" clearable>
-                <template slot="append">厘米(cm)</template>
-              </el-input>
-            </el-form-item>
-
-            <el-form-item label="货物总重量" prop="weight">
-              <el-input v-model="deliveryVo.weight" placeholder="请输入货物总重量" clearable>
-                <template slot="append">千克 (kg)</template>
-              </el-input>
-            </el-form-item>
-
-            <el-form-item label="备注信息" prop="customRemark">
-              <el-input v-model="deliveryVo.customRemark" rows="5" type="textarea" placeholder="请输入备注信息,比如易碎物品……" maxlength="500" show-word-limit clearable></el-input>
+            <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-row :gutter="10" class="mb8">
+            <el-col :span="1.5">
+                <el-button type="warning" plain icon="el-icon-download" @click="handleExport" v-hasPermi="['order:goods:export']" v-if="userInfoVO.userType == '00'">导出</el-button>
+            </el-col>
+            <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+        </el-row>
+
+        <el-table v-loading="orderLoading" :data="GoodsList">
+            <!--      <el-table-column type="selection" width="55" align="center" fixed="left"/>-->
+            <el-table-column label="订单编号" align="center" prop="orderNo" width="250px" />
+            <el-table-column label="客户姓名" align="center" prop="realName" width="200px" />
+            <el-table-column label="手机号" align="center" prop="phoneNumber" width="200px" />
+            <el-table-column label="订单总价(元)" align="center" prop="totalPrice" width="200px" />
+            <el-table-column label="抵扣金额(元)" align="center" prop="deductAmount" width="200px">
+                <template slot-scope="scope">
+                    {{ scope.row.deductAmount ? scope.row.deductAmount : '0' }}
+                </template>
+            </el-table-column>
+            <el-table-column label="支付金额(元)" align="center" prop="payAmount" width="200px" />
+            <el-table-column label="订单状态" align="center" prop="orderStatus" width="200px">
+                <template slot-scope="scope">
+                    <dict-tag :options="dict.type.order_goods_status" :value="scope.row.orderStatus" />
+                </template>
+            </el-table-column>
+            <el-table-column label="支付方式" align="center" prop="payType">
+                <template slot-scope="scope">
+                    <dict-tag :options="dict.type.recharge_pay_type" :value="scope.row.payType" />
+                </template>
+            </el-table-column>
+            <el-table-column label="支付时间" align="center" prop="payTime" width="200px" />
+            <el-table-column label="下单时间" align="center" prop="createTime" width="200px" />
+            <!--      <el-table-column label="发货时间" align="center" prop="sendTime" width="200px"/>-->
+            <el-table-column label="操作" align="center" class-name="small-padding fixed-width" fixed="right" width="200">
+                <template slot-scope="scope">
+                    <el-button type="text" icon="el-icon-chat-dot-square" @click="orderDetail(scope.row)">订单详情</el-button>
+                    <el-button type="text" icon="el-icon-check" @click="rePay(scope.row)" v-if="scope.row.orderStatus == '0' && userInfoVO.userType == '02'">重新支付</el-button>
+                    <el-button type="text" icon="el-icon-close" @click="cancelOrder(scope.row)" v-if="scope.row.orderStatus == '0'">取消订单</el-button>
+                    <el-button type="text" icon="el-icon-check" @click="outOrderGoods(scope.row)" v-if="scope.row.orderStatus == '2' && userInfoVO.userType == '00'">出货</el-button>
+                    <el-button type="text" icon="el-icon-truck" @click="deliveryInfo(scope.row)" v-if="scope.row.deliveryNo"> 物流信息 </el-button>
+                    <el-button type="text" icon="el-icon-chat-dot-square" @click="refundOrder(scope.row)" v-if="userInfoVO.userType == '00' && scope.row.refundStatus != '1' && scope.row.refundStatus != '2' && scope.row.orderStatus != '0'">撤单</el-button>
+                    <el-button type="text" icon="el-icon-printer" v-if="userInfoVO.userType != '00'" @click="btn_lodop(scope.row)">打印</el-button>
+                </template>
+            </el-table-column>
+        </el-table>
 
-          </el-col>
-        </el-form>
-      </el-row>
+        <pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize" @pagination="getList" />
 
-      <div slot="footer" class="dialog-footer">
-        <el-button type="primary" @click="submitDelivery('deliveryVo')" style="margin-left: 5%"
-          >提交</el-button
-        >
-        <el-button @click="cancelDelivery">取 消</el-button>
-      </div>
-    </el-dialog>
+        <!--    详情-->
+        <el-dialog :title="detailTitle" :visible.sync="openDetail" size="80%">
+            <el-card>
+                <el-descriptions title="客户信息" v-show="detailView" :column="3" border :label-style="{ 'text-align': 'center' }" :contentStyle="{ 'text-align': 'center' }">
+                    <el-descriptions-item label="客户姓名">{{ detailView.realName }}</el-descriptions-item>
+                    <el-descriptions-item label="客户手机号">{{ detailView.phoneNumber }}</el-descriptions-item>
+                    <el-descriptions-item label="订单状态">
+                        <dict-tag :options="dict.type.order_goods_status" :value="detailView.orderStatus" />
+                    </el-descriptions-item>
+                    <el-descriptions-item label="收货联系人">{{ detailView.contactName ? detailView.contactName : '暂无信息' }}</el-descriptions-item>
+                    <el-descriptions-item label="收货人手机号">{{ detailView.contactPhone ? detailView.contactPhone : '暂无信息' }}</el-descriptions-item>
+                    <el-descriptions-item label="下单时间">{{ detailView.createTime ? detailView.createTime : '暂无信息' }}</el-descriptions-item>
+                    <el-descriptions-item label="支付时间">{{ detailView.payTime ? detailView.payTime : '暂无信息' }}</el-descriptions-item>
+                    <el-descriptions-item label="发货时间">{{ detailView.sendTime ? detailView.sendTime : '暂无信息' }}</el-descriptions-item>
+                    <el-descriptions-item label="确认收货时间">{{ detailView.finishTime ? detailView.finishTime : '暂无信息' }}</el-descriptions-item>
+                    <el-descriptions-item label="订单总价">{{ detailView.totalPrice ? detailView.totalPrice : '暂无信息' }}</el-descriptions-item>
+                    <el-descriptions-item label="物流公司">{{ detailView.deliveryCompany ? detailView.deliveryCompany : '暂无信息' }}</el-descriptions-item>
+                    <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>
+            </el-card>
+            <div class="head-column2">
+                <el-table v-loading="detailLoading" :data="detailView.orderGoodsSkuList">
+                    <el-table-column label="分类" align="center" prop="goodsCategoryName" />
+                    <el-table-column :label="goodsType == 0 ? '商品名称' : '材料名称'" align="center" prop="goodsName" width="250px" />
+                    <el-table-column :label="goodsType == 0 ? '商品规格' : '材料规格'" align="center" width="250px">
+                        <template slot-scope="scope">
+                            <div style="text-align: center">
+                                {{ scope.row.skuName.replace(' ', '/') }}
+                            </div>
+                        </template>
+                    </el-table-column>
+                    <el-table-column label="数量" align="center" prop="buyNum" />
+                    <el-table-column label="价格(元)" align="center" prop="marketPrice" />
+                    <el-table-column label="总和(元)" align="center">
+                        <template slot-scope="scope">
+                            <span>{{ scope.row.buyNum * scope.row.marketPrice }}</span>
+                        </template>
+                    </el-table-column>
+                </el-table>
+            </div>
+            <el-row :gutter="10" class="box-shadow" style="margin-top: 10px">
+                <el-col :span="21">
+                    <el-form label-width="130px" style="height: 80px; padding-top: 20px; text-align: right" :inline="true" size="small">
+                        <el-form-item label="总金额(元):">
+                            {{ costTotalPrice }}
+                        </el-form-item>
+                    </el-form>
+                </el-col>
+            </el-row>
+        </el-dialog>
+
+        <!--    重新支付页面 -->
+        <el-dialog title="订单支付" :visible.sync="openRePayPage" size="60%" append-to-body>
+            <el-descriptions title="核对信息" v-if="appUserInfo" :column="3" border :contentStyle="{ 'text-align': 'center' }" style="margin-left: 15px; margin-right: 15px">
+                <el-descriptions-item label="总件数(件)" :labelStyle="{ width: '16%' }" :label-style="{ 'text-align': 'center' }">{{ calculateTotalCount }}</el-descriptions-item>
+                <el-descriptions-item label="抵扣金额(元)" :labelStyle="{ width: '16%' }" :label-style="{ 'text-align': 'center' }">{{ payFrom.deductAmount ? '¥' + payFrom.deductAmount : '¥' + '0' }}</el-descriptions-item>
+                <el-descriptions-item label="卡余额(元)" :labelStyle="{ width: '16%' }" :label-style="{ 'text-align': 'center' }">¥{{ appUserInfo ? appUserInfo.rechargeBalance + appUserInfo.giveBalance : '0.00' }}</el-descriptions-item>
+
+                <el-descriptions-item label="原价(元)">{{ costTotalPrice }}</el-descriptions-item>
+                <el-descriptions-item label="折后金额(元)">{{ calculatePayMoney }}</el-descriptions-item>
+                <!--        <el-descriptions-item label="现有积分">{{appUserInfo.pointBalance}}</el-descriptions-item>-->
+            </el-descriptions>
+            <template>
+                <el-form ref="payFrom" :model="payFrom" label-width="80px" style="margin-top: 20px">
+                    <el-row :gutter="10">
+                        <el-card style="margin-left: 15px; margin-right: 15px">
+                            <el-col :span="24">
+                                <el-descriptions title="优惠信息"></el-descriptions>
+                            </el-col>
+                            <el-col :span="24">
+                                <el-form-item label="抵扣现金券(元)" label-width="130px" prop="deductAmount">
+                                    <el-input-number :min="1" :max="9999999" :controls="false" style="width: 200px" v-model.number="payFrom.deductAmount"></el-input-number>
+                                </el-form-item>
+                            </el-col>
+                        </el-card>
+                    </el-row>
+                    <el-row :gutter="10">
+                        <el-card style="margin-top: 15px; margin-left: 15px; margin-right: 15px">
+                            <el-col :span="24">
+                                <el-form-item label="支付方式" prop="payType">
+                                    <el-radio-group v-model="payFrom.payType" style="width: 400px" @input="changePayType">
+                                        <el-radio-button label="3">余额</el-radio-button>
+                                        <el-radio-button label="2">现金</el-radio-button>
+                                        <el-radio-button label="0">微信</el-radio-button>
+                                        <el-radio-button label="1">支付宝</el-radio-button>
+                                    </el-radio-group>
+                                </el-form-item>
+                            </el-col>
+                            <div v-if="payFrom.payType">
+                                <el-col :span="8">
+                                    <el-descriptions :column="2" style="width: 400px" v-if="payFrom.payType == '3' && appUserInfo">
+                                        <el-descriptions-item label="客户姓名">{{ appUserInfo ? appUserInfo.realName : '- -' }}</el-descriptions-item>
+                                        <el-descriptions-item label="余额(元)"> ¥{{ appUserInfo ? appUserInfo.rechargeBalance + appUserInfo.giveBalance : '0.00' }} </el-descriptions-item>
+                                    </el-descriptions>
+                                </el-col>
+                                <el-col :span="12" v-if="payFrom.payType == '2'">
+                                    <el-form-item label="实收现金(元)" label-width="120px" prop="thisPayMoney">
+                                        <el-input-number :min="1" :max="9999999" :controls="false" v-model="payFrom.thisPayMoney"></el-input-number>
+                                    </el-form-item>
+                                </el-col>
+                                <el-col :span="12" v-if="payFrom.payType == '2'">
+                                    <el-form-item label="找零:" label-width="120px">
+                                        <span>{{ payFrom.thisPayMoney && payFrom.thisPayMoney - payMoney >= 0 ? payFrom.thisPayMoney - payMoney : '0' }}</span>
+                                    </el-form-item>
+                                </el-col>
+                                <el-col :span="8" v-if="payFrom.payType == '0'">
+                                    <el-form-item label="微信付款条形码" label-width="120px" prop="wxBarcode">
+                                        <el-input style="width: 200px" v-model="payFrom.wxBarcode"></el-input>
+                                    </el-form-item>
+                                </el-col>
+                                <el-col :span="8" v-if="payFrom.payType == '1'">
+                                    <el-form-item label="支付宝付款条形码" label-width="130px" prop="aliPayBarcode">
+                                        <el-input style="width: 200px" v-model="payFrom.aliPayBarcode"></el-input>
+                                    </el-form-item>
+                                </el-col>
+                            </div>
+                        </el-card>
+                    </el-row>
+                    <el-row :gutter="10">
+                        <div>
+                            <el-button type="primary" @click="submitSettlement" style="margin-left: 3%; margin-top: 20px">结算</el-button>
+                        </div>
+                    </el-row>
+                </el-form>
+            </template>
+        </el-dialog>
 
-    <!-- 快递信息对话框 -->
-    <el-dialog
-      title="快递信息"
-      :visible.sync="openDeliveryinfo"
-      size="40%"
-      append-to-body
-      :before-close="deliveryinfoClose"
-    >
-      <div class="deliveryView">
-        <div class="info">
-          <span>快递公司:</span>
-          <span>{{ deliveryView.name }}</span>
-        </div>
-        <div class="info">
-          <span>收货地址:</span>
-          <span>{{ deliveryView.address }}</span>
-        </div>
+        <!--    撤单页面-->
+        <el-dialog :visible.sync="openRefundPage" width="400px" append-to-body>
+            <el-form ref="refundVO" :model="refundVO">
+                <el-form-item label="撤单原因" label-width="80px" prop="refundReason">
+                    <el-input v-model="refundVO.refundReason" type="textarea" placeholder="请输入撤单原因" maxlength="500" :rows="5" show-word-limit></el-input>
+                </el-form-item>
+            </el-form>
+            <el-row :gutter="10">
+                <div>
+                    <el-button type="primary" @click="submitRefund" style="margin-left: 3%; margin-top: 20px">提交</el-button>
+                </div>
+            </el-row>
+        </el-dialog>
+
+        <!-- 订单出货对话框 -->
+        <el-dialog title="订单出货信息" :visible.sync="openDeliveryPage" size="40%" append-to-body :before-close="deliveryClose">
+            <el-row :gutter="15">
+                <el-form ref="deliveryVo" :model="deliveryVo" :rules="deliveryRules" label-width="120px">
+                    <el-col :span="24">
+                        <el-form-item label="快递公司" prop="deliveryCompany">
+                            <el-radio-group v-model="deliveryVo.deliveryCompany" @input="changeDeliveryId">
+                                <el-radio-button v-for="dict in deliveryData" :label="dict.deliveryName" :key="dict.deliveryName"></el-radio-button>
+                            </el-radio-group>
+                        </el-form-item>
+
+                        <el-form-item label="服务类型" prop="serviceType">
+                            <div class="servicecard" v-for="del in serviceData" :key="del.serviceType" @click="checkserviceId(del)" :class="{ active: deliveryVo.serviceType == del.serviceType }">
+                                <div class="check"><i class="el-icon-check"></i></div>
+                                {{ del.serviceName }}
+                            </div>
+                        </el-form-item>
+
+                        <el-form-item label="预期揽件时间" prop="expectTime">
+                            <el-date-picker
+                                type="datetime"
+                                placeholder="选择预期揽件时间"
+                                v-model="deliveryVo.expectTime"
+                                style="width: 100%"
+                                value-format="yyyy-MM-dd HH:mm"
+                                format="yyyy-MM-dd HH:mm"
+                                :picker-options="{
+                                    disabledDate: (time) => {
+                                        return time.getTime() < Date.now() - 3600 * 1000 * 24
+                                    },
+                                    selectableRange: startTimeRange
+                                }"
+                                :default-time="deliTime"
+                                class="date_picker"
+                                :editable="false"
+                            ></el-date-picker>
+                        </el-form-item>
+
+                        <!-- <el-form-item label="包裹数量" prop="count">
+              <el-input v-model="deliveryVo.count" type="number" placeholder="请输入包裹数量" clearable></el-input>
+            </el-form-item> -->
 
-      </div>
+                        <el-form-item label="货物高度" prop="spaceHeight">
+                            <el-input v-model="deliveryVo.spaceHeight" placeholder="请输入货物高度" clearable>
+                                <template slot="append">厘米(cm)</template>
+                            </el-input>
+                        </el-form-item>
+
+                        <el-form-item label="货物长度" prop="spaceLength">
+                            <el-input v-model="deliveryVo.spaceLength" placeholder="请输入货物长度" clearable>
+                                <template slot="append">厘米(cm)</template>
+                            </el-input>
+                        </el-form-item>
+
+                        <el-form-item label="货物宽度" prop="spaceWidth">
+                            <el-input v-model="deliveryVo.spaceWidth" placeholder="请输入货物宽度" clearable>
+                                <template slot="append">厘米(cm)</template>
+                            </el-input>
+                        </el-form-item>
+
+                        <el-form-item label="货物总重量" prop="weight">
+                            <el-input v-model="deliveryVo.weight" placeholder="请输入货物总重量" clearable>
+                                <template slot="append">千克 (kg)</template>
+                            </el-input>
+                        </el-form-item>
+
+                        <el-form-item label="备注信息" prop="customRemark">
+                            <el-input v-model="deliveryVo.customRemark" rows="5" type="textarea" placeholder="请输入备注信息,比如易碎物品……" maxlength="500" show-word-limit clearable></el-input>
+                        </el-form-item>
+                    </el-col>
+                </el-form>
+            </el-row>
+
+            <div slot="footer" class="dialog-footer">
+                <el-button type="primary" @click="submitDelivery('deliveryVo')" style="margin-left: 5%">提交</el-button>
+                <el-button @click="cancelDelivery">取 消</el-button>
+            </div>
+        </el-dialog>
+
+        <!-- 快递信息对话框 -->
+        <el-dialog title="快递信息" :visible.sync="openDeliveryinfo" size="40%" append-to-body :before-close="deliveryinfoClose">
+            <div class="deliveryView">
+                <div class="info">
+                    <span>快递公司:</span>
+                    <span>{{ deliveryView.name }}</span>
+                </div>
+                <div class="info">
+                    <span>收货地址:</span>
+                    <span>{{ deliveryView.address }}</span>
+                </div>
+            </div>
 
-      <el-timeline v-if="deliveryView.pathItemList.length">
-        <el-timeline-item
-          v-for="(item, index) in deliveryView.pathItemList"
-          :key="index"
-          :timestamp="item.actionTime">
-          {{item.actionMsg}}
-        </el-timeline-item>
-      </el-timeline>
+            <el-timeline v-if="deliveryView.pathItemList.length">
+                <el-timeline-item v-for="(item, index) in deliveryView.pathItemList" :key="index" :timestamp="item.actionTime">
+                    {{ item.actionMsg }}
+                </el-timeline-item>
+            </el-timeline>
 
-      <el-empty description="暂无快递信息" v-else></el-empty>
+            <el-empty description="暂无快递信息" v-else></el-empty>
 
-      <div slot="footer" class="dialog-footer">
-        <el-button type="primary" style="margin-left: 5%" @click="openDeliveryinfo=false"
-          >关闭</el-button
-        >
-      </div>
-    </el-dialog>
-  </div>
+            <div slot="footer" class="dialog-footer">
+                <el-button type="primary" style="margin-left: 5%" @click="openDeliveryinfo = false">关闭</el-button>
+            </div>
+        </el-dialog>
+    </div>
 </template>
 
 <script>
-import {
-  cancelOrder,
-  getGoods,
-  listGoods,
-  outOrderGoods,
-  refundOrderGoods,
-  rePayOrder,
-  getdeliveryAll,
-  getDeliveryPath,
-} from "@/api/order/goods";
-import { findUserByPhoneNumber, getUser } from "@/api/app/user";
-import { getLodop } from "@/utils/lodopUtils";
+import { cancelOrder, getGoods, listGoods, outOrderGoods, refundOrderGoods, rePayOrder, getdeliveryAll, getDeliveryPath } from '@/api/order/goods'
+import { findUserByPhoneNumber, getUser } from '@/api/app/user'
+import { getLodop } from '@/utils/lodopUtils'
 
 export default {
-  name: "goodsRetailOrder",
-  dicts: ["order_goods_status", "delivery_company", "recharge_pay_type"],
-  data() {
-    var validateNumberInput = (rule, value, callback) => {
-      if (!value || isNaN(value)) {
-        callback(new Error('只能输入数字,不能为空'));
-      } else {
-        callback();
-      }
-    };
-    return {
-      userInfoVO: null,
-      //
-      orderLoading: true,
-      // 遮罩层
-      loading: false,
-      detailLoading: true,
-      // 选中数组
-      ids: [],
-      // 非单个禁用
-      single: true,
-      // 非多个禁用
-      multiple: true,
-      // 显示搜索条件
-      showSearch: true,
-      // 总条数
-      total: 0,
-      // 弹出层标题
-      title: "",
-      detailTitle: "",
-      // 是否显示弹出层
-      open: false,
-      openDetail: false,
-      openRePayPage: false,
-      openDeliveryPage: false,
-      openRefundPage: false,
-      // 查询参数
-      queryParams: {
-        pageNum: 1,
-        pageSize: 10,
-        realName:null,
-        phoneNumber:null,
-        orderNo:null,
-        orderStatus:null,
-      },
-      // 表单参数
-      payFrom: {},
-      // 表单校验
-      rules: {},
-      goodsType: null,
-      // 商品订单表格数据
-      GoodsList: [],
-      // 可选商品集合
-      goodsList: null,
-      // 已选商品集合
-      addGoodsList: [],
-      // 自定义一个计算数量的临时对象集合
-      purchaseCountVOList: [],
-      // 总金额
-      totalPrice: 0,
-      // 总件数
-      totalCount: 0,
-      // 详情数据
-      detailView: {},
-      // detailList:[],
-
-      // 详情总金额
-      costTotalPrice: null,
-      appUserInfo: null,
-      goodsOrderInfo: null,
-      payMoney: null,
-      deliveryVo: {
-        bizId: "",
-        // count: 1,
-        customRemark: "",
-        deliveryCompany: "",
-        deliveryId: "",
-        expectTime: "",
-        orderId: null,
-        serviceName: "",
-        serviceType: null,
-        spaceHeight: null,
-        spaceLength: null,
-        spaceWidth: null,
-        weight: null
-      },
-      deliveryRules: {
-        deliveryName: [
-          { required: true, message: '请选择物流公司', trigger: 'change' }
-        ],
-        serviceType: [
-          { required: true, message: '请选择服务类型', trigger: 'change' }
-        ],
-        expectTime: [
-          { required: true, message: '选择预期揽件时间', trigger: 'blur' },
-        ],
-        // count: [
-        //   { required: true, message: '请输入包裹数量', trigger: 'blur' },
-        // ],
-        spaceHeight: [
-          { required: true, message: '请输入货物高度', trigger: 'blur' },
-          { validator: validateNumberInput, trigger: 'blur' }
-        ],
-        spaceLength: [
-          { required: true, message: '请输入货物长度', trigger: 'blur' },
-          { validator: validateNumberInput, trigger: 'blur' }
-        ],
-        spaceWidth: [
-          { required: true, message: '请输入货物宽度', trigger: 'blur' },
-          { validator: validateNumberInput, trigger: 'blur' }
-        ],
-        weight: [
-          { required: true, message: '请输入货物总重量', trigger: 'blur' },
-          { validator: validateNumberInput, trigger: 'blur' }
-        ],
-        customRemark: [
-          { required: true, message: '请输入备注信息,比如易碎物品……', trigger: 'blur' },
-        ],
-      },
-      refundVO: {
-        orderId: null,
-        refundReason: null,
-      },
-      deliveryData: [], //快递公司数据
-      serviceData: [], //快递公司服务类型数据
-      startTimeRange: null,
-      deliTime: null,
-
-      openDeliveryinfo: false,
-      deliveryView: {
-        name: '',
-        pathItemList: [],
-      },
-
-      LODOP: null,
-      number: 1,
-      pointerList: [],
-      queryCreateTime: null,
-      queryPayTime: null,
-    };
-  },
-  created() {
-    this.handleUser();
-    this.goodsType = this.getUrlParam("goodsType");
-    this.getList();
-    this.getdeliveryAll();
-  },
-  mounted() {
-    this.number = 1;
-    const printerTime = setInterval(() =>{
-      this.LODOP = getLodop();
-      this.number++
-      if( this.number == 25 ){
-        clearInterval(printerTime);
-      }
-      if( this.LODOP ){
-        clearInterval(printerTime);
-      }
-    }, 200)
-
-    this.pointerList = JSON.parse(this.$cache.local.get("printerSeting"));
-  },
-  watch: {
-    'deliveryVo.expectTime':{
-      deep:true,
-      handler(newValue, oldValue) {
-        if(newValue){
-          let nowDate = this.sendTimeDate(new Date().getTime()+3600000);// 一小时之后的时间(我是因业务要求,这里可以随意调整时间)
-          let dt = nowDate.split(" ");
-          let st = '';
-          if(newValue.split(" ")[0] == dt[0]){
-            // 是今天,选择 的时间开始为此刻的时分秒
-            st = dt[1];
-          }else{
-            // 明天及以后从0时开始
-            st = '00:00:00';
-          }
-          this.startTimeRange =  st + ' - 23:59:59';
-          //例如:如果今天此刻时间为10:41:40 则选择时间范围为: 11:41:40 - 23:59:59
-              //否则为:00:00:00- 23:59:59
+    name: 'goodsRetailOrder',
+    dicts: ['order_goods_status', 'delivery_company', 'recharge_pay_type'],
+    data() {
+        var validateNumberInput = (rule, value, callback) => {
+            if (!value || isNaN(value)) {
+                callback(new Error('只能输入数字,不能为空'))
+            } else {
+                callback()
+            }
         }
-      }
-    }
-  },
-  computed: {
-    calculateTotalCount() {
-      this.totalCount = 0;
-      // this.detailList.forEach(vo =>{
-      this.detailView.forEach((vo) => {
-        this.totalCount = this.totalCount + vo.buyNum;
-      });
-      return this.totalCount;
-    },
-    calculatePayMoney() {
-      this.payMoney = this.payFrom.deductAmount
-        ? this.costTotalPrice - this.payFrom.deductAmount
-        : this.costTotalPrice;
-      return this.payMoney;
-    },
-  },
-  methods: {
-    handleUser() {
-      this.userInfoVO = this.getUserInfo();
-    },
-    getCreateTime(){
-      if (this.queryCreateTime != null) {
-        this.queryParams.createTimeFrom = this.queryCreateTime[0]
-        this.queryParams.createTimeTo = this.queryCreateTime[1]
-      }
-    },
-    getPayTime(){
-      if (this.queryPayTime != null) {
-        this.queryParams.beginPayTime = this.queryPayTime[0]
-        this.queryParams.endPayTime = this.queryPayTime[1]
-      }
-    },
-    getList() {
-      this.orderLoading = true;
-      listGoods({ ...this.queryParams, ...{ goodsType: this.goodsType } }).then(
-        (response) => {
-          this.GoodsList = response.rows;
-          this.total = response.total;
-          this.orderLoading = false;
+        return {
+            userInfoVO: null,
+            //
+            orderLoading: true,
+            // 遮罩层
+            loading: false,
+            detailLoading: true,
+            // 选中数组
+            ids: [],
+            // 非单个禁用
+            single: true,
+            // 非多个禁用
+            multiple: true,
+            // 显示搜索条件
+            showSearch: true,
+            // 总条数
+            total: 0,
+            // 弹出层标题
+            title: '',
+            detailTitle: '',
+            // 是否显示弹出层
+            open: false,
+            openDetail: false,
+            openRePayPage: false,
+            openDeliveryPage: false,
+            openRefundPage: false,
+            // 查询参数
+            queryParams: {
+                pageNum: 1,
+                pageSize: 10,
+                realName: null,
+                phoneNumber: null,
+                orderNo: null,
+                orderStatus: null
+            },
+            // 表单参数
+            payFrom: {},
+            // 表单校验
+            rules: {},
+            goodsType: null,
+            // 商品订单表格数据
+            GoodsList: [],
+            // 可选商品集合
+            goodsList: null,
+            // 已选商品集合
+            addGoodsList: [],
+            // 自定义一个计算数量的临时对象集合
+            purchaseCountVOList: [],
+            // 总金额
+            totalPrice: 0,
+            // 总件数
+            totalCount: 0,
+            // 详情数据
+            detailView: {},
+            // detailList:[],
+
+            // 详情总金额
+            costTotalPrice: null,
+            appUserInfo: null,
+            goodsOrderInfo: null,
+            payMoney: null,
+            deliveryVo: {
+                bizId: '',
+                // count: 1,
+                customRemark: '',
+                deliveryCompany: '',
+                deliveryId: '',
+                expectTime: '',
+                orderId: null,
+                serviceName: '',
+                serviceType: null,
+                spaceHeight: null,
+                spaceLength: null,
+                spaceWidth: null,
+                weight: null
+            },
+            deliveryRules: {
+                deliveryName: [{ required: true, message: '请选择物流公司', trigger: 'change' }],
+                serviceType: [{ required: true, message: '请选择服务类型', trigger: 'change' }],
+                expectTime: [{ required: true, message: '选择预期揽件时间', trigger: 'blur' }],
+                // count: [
+                //   { required: true, message: '请输入包裹数量', trigger: 'blur' },
+                // ],
+                spaceHeight: [
+                    { required: true, message: '请输入货物高度', trigger: 'blur' },
+                    { validator: validateNumberInput, trigger: 'blur' }
+                ],
+                spaceLength: [
+                    { required: true, message: '请输入货物长度', trigger: 'blur' },
+                    { validator: validateNumberInput, trigger: 'blur' }
+                ],
+                spaceWidth: [
+                    { required: true, message: '请输入货物宽度', trigger: 'blur' },
+                    { validator: validateNumberInput, trigger: 'blur' }
+                ],
+                weight: [
+                    { required: true, message: '请输入货物总重量', trigger: 'blur' },
+                    { validator: validateNumberInput, trigger: 'blur' }
+                ],
+                customRemark: [{ required: true, message: '请输入备注信息,比如易碎物品……', trigger: 'blur' }]
+            },
+            refundVO: {
+                orderId: null,
+                refundReason: null
+            },
+            deliveryData: [], //快递公司数据
+            serviceData: [], //快递公司服务类型数据
+            startTimeRange: null,
+            deliTime: null,
+
+            openDeliveryinfo: false,
+            deliveryView: {
+                name: '',
+                pathItemList: []
+            },
+
+            LODOP: null,
+            number: 1,
+            pointerList: [],
+            queryCreateTime: null,
+            queryPayTime: null
         }
-      );
     },
-    /** 搜索按钮操作 */
-    handleQuery() {
-      this.queryParams.pageNum = 1;
-      this.getList();
+    created() {
+        this.handleUser()
+        this.goodsType = this.getUrlParam('goodsType')
+        this.getList()
+        this.getdeliveryAll()
     },
-    /** 重置按钮操作 */
-    resetQuery() {
-      this.queryCreateTime = null;
-      this.queryParams.createTimeFrom = null;
-      this.queryParams.createTimeTo = null;
+    mounted() {
+        this.number = 1
+        const printerTime = setInterval(() => {
+            this.LODOP = getLodop()
+            this.number++
+            if (this.number == 25) {
+                clearInterval(printerTime)
+            }
+            if (this.LODOP) {
+                clearInterval(printerTime)
+            }
+        }, 200)
 
-      this.queryPayTime = null;
-      this.queryParams.beginPayTime = null;
-      this.queryParams.endPayTime = null;
-      this.resetForm("queryForm");
-      this.handleQuery();
+        this.pointerList = JSON.parse(this.$cache.local.get('printerSeting'))
     },
-    rePay(row) {
-      this.payFrom = {};
-      this.payFrom.id = row.id;
-      this.openRePayPage = true;
-      getUser(row.appUserId).then((res1) => {
-        if (res1.data.phoneNumber == null || res1.data.phoneNumber == "") {
-          return;
+    watch: {
+        'deliveryVo.expectTime': {
+            deep: true,
+            handler(newValue, oldValue) {
+                if (newValue) {
+                    let nowDate = this.sendTimeDate(new Date().getTime() + 3600000) // 一小时之后的时间(我是因业务要求,这里可以随意调整时间)
+                    let dt = nowDate.split(' ')
+                    let st = ''
+                    if (newValue.split(' ')[0] == dt[0]) {
+                        // 是今天,选择 的时间开始为此刻的时分秒
+                        st = dt[1]
+                    } else {
+                        // 明天及以后从0时开始
+                        st = '00:00:00'
+                    }
+                    this.startTimeRange = st + ' - 23:59:59'
+                    //例如:如果今天此刻时间为10:41:40 则选择时间范围为: 11:41:40 - 23:59:59
+                    //否则为:00:00:00- 23:59:59
+                }
+            }
         }
-        findUserByPhoneNumber({ phoneNumber: res1.data.phoneNumber }).then(
-          (res) => {
-            this.appUserInfo = res.data;
-          }
-        );
-      });
-      getGoods(row.id).then((response) => {
-        this.detailView = response.data;
-        this.costTotalPrice = this.detailView.totalPrice;
-        // this.detailList = response.data;
-        // this.costTotalPrice = this.detailList[0].totalPrice;
-      });
-      if (row.deductAmount != null && row.deductAmount != "") {
-        this.payFrom.deductAmount = row.deductAmount;
-      }
-      if (row.payType != null && row.payType != "") {
-        this.payFrom.payType = row.payType;
-      }
-      if (row.payType != null && row.payType != "") {
-        this.payFrom.payType = row.payType;
-      }
     },
-    submitSettlement() {
-      this.$confirm("是否确认结算?").then(() => {
-        if (this.totalCount == 0) {
-          this.$message.error("请选择商品");
-          return;
-        }
-        if (this.payFrom.payType == null || this.payFrom.payType == "") {
-          this.$message.error("请选择支付方式");
-          return;
-        }
-        if (
-          this.payFrom.deductAmount != null ||
-          this.payFrom.deductAmount != ""
-        ) {
-          if (this.payFrom.deductAmount > this.payMoney) {
-            this.$message.error("抵扣金额不能大于支付金额");
-            return;
-          }
-        }
-        if (this.payFrom.payType == "1") {
-          if (
-            this.appUserInfo.rechargeBalance + this.appUserInfo.giveBalance <
-            this.payMoney
-          ) {
-            this.$message.error("用户余额不足");
-            return;
-          }
-        }
-        if (this.payFrom.payType == "2") {
-          if (this.payFrom.thisPayMoney < this.payMoney) {
-            this.$message.error("现金金额不够支付");
-            return;
-          }
+    computed: {
+        calculateTotalCount() {
+            this.totalCount = 0
+            // this.detailList.forEach(vo =>{
+            this.detailView.forEach((vo) => {
+                this.totalCount = this.totalCount + vo.buyNum
+            })
+            return this.totalCount
+        },
+        calculatePayMoney() {
+            this.payMoney = this.payFrom.deductAmount ? this.costTotalPrice - this.payFrom.deductAmount : this.costTotalPrice
+            return this.payMoney
         }
-        this.submitGoodsOrderDTO = {};
-        // 设置订单基础信息
-        this.submitGoodsOrderDTO.id = this.payFrom.id;
-        this.submitGoodsOrderDTO.goodsType = this.goodsType;
-        this.submitGoodsOrderDTO.deductAmount = this.payFrom.deductAmount;
-        this.submitGoodsOrderDTO.payAmount = this.payMoney;
-        this.submitGoodsOrderDTO.payType = this.payFrom.payType;
-
-        rePayOrder(this.submitGoodsOrderDTO).then((response) => {
-          this.$modal.msgSuccess("结算完成");
-          this.addGoodsList = [];
-          this.purchaseCountVOList = [];
-          this.submitGoodsOrderDTO = {};
-          this.openRePayPage = false;
-          this.getList();
-        });
-      });
-    },
-    // 切换支付方式
-    changePayType() {
-      delete this.payFrom.thisPayMoney;
-      this.$forceUpdate();
     },
-    // 取消订单
-    cancelOrder(row) {
-      this.$confirm("是否确认取消该订单?")
-        .then(() => {
-          const vo = {
-            orderId: row.id,
-            remark: "不想要了",
-          };
-          cancelOrder(vo).then((response2) => {
-            this.$modal.msgSuccess("订单取消成功");
-            this.getList();
-          });
-        })
-        .catch(() => {});
-    },
-    // 订单详情
-    orderDetail(row) {
-      this.openDetail = true;
-      this.detailTitle = "订单商品详情";
-      this.detailLoading = true;
-      // this.detailList = [];
-      this.detailView = {};
-      const id = row.id;
-      getGoods(id).then((response) => {
-        this.detailView = response.data;
-        this.costTotalPrice = this.detailView.totalPrice;
-
-        // this.detailList = response.data;
-        // this.costTotalPrice = this.detailList[0].totalPrice;
-        this.detailLoading = false;
-      });
-    },
-    // 出货
-    outOrderGoods(row) {
-      this.deliveryreset();
-      this.openDeliveryPage = true;
-
-      this.deliveryVo.deliveryCompany = this.deliveryData[0].deliveryName;
-
-      this.serviceData = this.deliveryData[0].serviceType;
-
-      // 获取当前时间
-      const now = new Date();
-
-      // 增加一个小时
-      now.setHours(now.getHours() + 1);
-
-      // 提取时分秒并格式化
-      const hours = ('0' + now.getHours()).slice(-2);
-      const minutes = ('0' + now.getMinutes()).slice(-2);
-      const seconds = ('0' + now.getSeconds()).slice(-2);
-
-      // 结果字符串
-      this.deliTime = `${hours}:${minutes}:${seconds}`;
-
-      this.deliveryVo.orderId = row.id;
-    },
-    //获取快递公司
-    getdeliveryAll() {
-      getdeliveryAll().then((res) => {
-        this.deliveryData = res.data;
-      });
-    },
-    //切换快递获取其他数据
-    changeDeliveryId(value) {
-      this.deliveryData.forEach((item, index)=>{
-        if( value == item.deliveryName ){
-          this.deliveryVo.deliveryId = item.deliveryId;
-          this.deliveryVo.bizId = item.bizId;
-
-          this.serviceData = item.serviceType;
-        }
-      })
-    },
-    checkserviceId(del){
-      this.deliveryVo.serviceType = del.serviceType;
-      this.deliveryVo.serviceName = del.serviceName;
-    },
-    // 撤单
-    refundOrder(row) {
-      this.refundVO = {};
-      this.openRefundPage = true;
-      this.refundVO.orderId = row.id;
-    },
-    submitDelivery(formName) {
-      this.$confirm("是否确认出货配送?")
-        .then(() => {
-          this.$refs[formName].validate((valid) => {
-            if (valid) {
-              outOrderGoods(this.deliveryVo).then((response2) => {
-                this.$message.success("操作成功");
-                this.getList();
-                this.openDeliveryPage = false;
-                this.deliveryreset();
-              });
+    methods: {
+        handleUser() {
+            this.userInfoVO = this.getUserInfo()
+        },
+        getCreateTime() {
+            if (this.queryCreateTime != null) {
+                this.queryParams.createTimeFrom = this.queryCreateTime[0]
+                this.queryParams.createTimeTo = this.queryCreateTime[1]
+            }
+        },
+        getPayTime() {
+            if (this.queryPayTime != null) {
+                this.queryParams.beginPayTime = this.queryPayTime[0]
+                this.queryParams.endPayTime = this.queryPayTime[1]
+            }
+        },
+        getList() {
+            this.orderLoading = true
+            listGoods({ ...this.queryParams, ...{ goodsType: this.goodsType } }).then((response) => {
+                this.GoodsList = response.rows
+                this.total = response.total
+                this.orderLoading = false
+            })
+        },
+        /** 搜索按钮操作 */
+        handleQuery() {
+            this.queryParams.pageNum = 1
+            this.getList()
+        },
+        /** 重置按钮操作 */
+        resetQuery() {
+            this.queryCreateTime = null
+            this.queryParams.createTimeFrom = null
+            this.queryParams.createTimeTo = null
+
+            this.queryPayTime = null
+            this.queryParams.beginPayTime = null
+            this.queryParams.endPayTime = null
+            this.resetForm('queryForm')
+            this.handleQuery()
+        },
+        rePay(row) {
+            this.payFrom = {}
+            this.payFrom.id = row.id
+            this.openRePayPage = true
+            getUser(row.appUserId).then((res1) => {
+                if (res1.data.phoneNumber == null || res1.data.phoneNumber == '') {
+                    return
+                }
+                findUserByPhoneNumber({ phoneNumber: res1.data.phoneNumber }).then((res) => {
+                    this.appUserInfo = res.data
+                })
+            })
+            getGoods(row.id).then((response) => {
+                this.detailView = response.data
+                this.costTotalPrice = this.detailView.totalPrice
+                // this.detailList = response.data;
+                // this.costTotalPrice = this.detailList[0].totalPrice;
+            })
+            if (row.deductAmount != null && row.deductAmount != '') {
+                this.payFrom.deductAmount = row.deductAmount
+            }
+            if (row.payType != null && row.payType != '') {
+                this.payFrom.payType = row.payType
+            }
+            if (row.payType != null && row.payType != '') {
+                this.payFrom.payType = row.payType
+            }
+        },
+        submitSettlement() {
+            this.$confirm('是否确认结算?').then(() => {
+                if (this.totalCount == 0) {
+                    this.$message.error('请选择商品')
+                    return
+                }
+                if (this.payFrom.payType == null || this.payFrom.payType == '') {
+                    this.$message.error('请选择支付方式')
+                    return
+                }
+                if (this.payFrom.deductAmount != null || this.payFrom.deductAmount != '') {
+                    if (this.payFrom.deductAmount > this.payMoney) {
+                        this.$message.error('抵扣金额不能大于支付金额')
+                        return
+                    }
+                }
+                if (this.payFrom.payType == '1') {
+                    if (this.appUserInfo.rechargeBalance + this.appUserInfo.giveBalance < this.payMoney) {
+                        this.$message.error('用户余额不足')
+                        return
+                    }
+                }
+                if (this.payFrom.payType == '2') {
+                    if (this.payFrom.thisPayMoney < this.payMoney) {
+                        this.$message.error('现金金额不够支付')
+                        return
+                    }
+                }
+                this.submitGoodsOrderDTO = {}
+                // 设置订单基础信息
+                this.submitGoodsOrderDTO.id = this.payFrom.id
+                this.submitGoodsOrderDTO.goodsType = this.goodsType
+                this.submitGoodsOrderDTO.deductAmount = this.payFrom.deductAmount
+                this.submitGoodsOrderDTO.payAmount = this.payMoney
+                this.submitGoodsOrderDTO.payType = this.payFrom.payType
+
+                rePayOrder(this.submitGoodsOrderDTO).then((response) => {
+                    this.$modal.msgSuccess('结算完成')
+                    this.addGoodsList = []
+                    this.purchaseCountVOList = []
+                    this.submitGoodsOrderDTO = {}
+                    this.openRePayPage = false
+                    this.getList()
+                })
+            })
+        },
+        // 切换支付方式
+        changePayType() {
+            delete this.payFrom.thisPayMoney
+            this.$forceUpdate()
+        },
+        // 取消订单
+        cancelOrder(row) {
+            this.$confirm('是否确认取消该订单?')
+                .then(() => {
+                    const vo = {
+                        orderId: row.id,
+                        remark: '不想要了'
+                    }
+                    cancelOrder(vo).then((response2) => {
+                        this.$modal.msgSuccess('订单取消成功')
+                        this.getList()
+                    })
+                })
+                .catch(() => {})
+        },
+        // 订单详情
+        orderDetail(row) {
+            this.openDetail = true
+            this.detailTitle = '订单商品详情'
+            this.detailLoading = true
+            // this.detailList = [];
+            this.detailView = {}
+            const id = row.id
+            getGoods(id).then((response) => {
+                this.detailView = response.data
+                this.costTotalPrice = this.detailView.totalPrice
+
+                // this.detailList = response.data;
+                // this.costTotalPrice = this.detailList[0].totalPrice;
+                this.detailLoading = false
+            })
+        },
+        // 出货
+        outOrderGoods(row) {
+            this.deliveryreset()
+            this.openDeliveryPage = true
+
+            this.deliveryVo.deliveryCompany = this.deliveryData[0].deliveryName
+
+            this.serviceData = this.deliveryData[0].serviceType
+
+            // 获取当前时间
+            const now = new Date()
+
+            // 增加一个小时
+            now.setHours(now.getHours() + 1)
+
+            // 提取时分秒并格式化
+            const hours = ('0' + now.getHours()).slice(-2)
+            const minutes = ('0' + now.getMinutes()).slice(-2)
+            const seconds = ('0' + now.getSeconds()).slice(-2)
+
+            // 结果字符串
+            this.deliTime = `${hours}:${minutes}:${seconds}`
+
+            this.deliveryVo.orderId = row.id
+        },
+        //获取快递公司
+        getdeliveryAll() {
+            getdeliveryAll().then((res) => {
+                this.deliveryData = res.data
+            })
+        },
+        //切换快递获取其他数据
+        changeDeliveryId(value) {
+            this.deliveryData.forEach((item, index) => {
+                if (value == item.deliveryName) {
+                    this.deliveryVo.deliveryId = item.deliveryId
+                    this.deliveryVo.bizId = item.bizId
+
+                    this.serviceData = item.serviceType
+                }
+            })
+        },
+        checkserviceId(del) {
+            this.deliveryVo.serviceType = del.serviceType
+            this.deliveryVo.serviceName = del.serviceName
+        },
+        // 撤单
+        refundOrder(row) {
+            this.refundVO = {}
+            this.openRefundPage = true
+            this.refundVO.orderId = row.id
+        },
+        submitDelivery(formName) {
+            this.$confirm('是否确认出货配送?')
+                .then(() => {
+                    this.$refs[formName].validate((valid) => {
+                        if (valid) {
+                            outOrderGoods(this.deliveryVo).then((response2) => {
+                                this.$message.success('操作成功')
+                                this.getList()
+                                this.openDeliveryPage = false
+                                this.deliveryreset()
+                            })
+                        }
+                    })
+                })
+                .catch(() => {})
+        },
+        sendTimeDate(date) {
+            if (!!date) {
+                var nowDate = new Date(date).getFullYear() + '-' + (new Date(date).getMonth() + 1 < 10 ? '0' + (new Date(date).getMonth() + 1) : new Date(date).getMonth() + 1) + '-' + (new Date(date).getDate(date) < 10 ? '0' + new Date(date).getDate(date) : new Date(date).getDate(date))
+                var nowTime =
+                    (new Date(date).getHours() < 10 ? '0' + new Date(date).getHours() : new Date(date).getHours()) +
+                    ':' +
+                    (new Date(date).getMinutes() < 10 ? '0' + new Date(date).getMinutes() : new Date(date).getMinutes()) +
+                    ':' +
+                    (new Date(date).getSeconds() < 10 ? '0' + new Date(date).getSeconds() : new Date(date).getSeconds())
+                return nowDate + ' ' + nowTime
+            } else {
+                return ''
+            }
+        },
+        cancelDelivery() {
+            this.openDeliveryPage = false
+            this.deliveryreset()
+        },
+        // 表单重置
+        deliveryreset() {
+            this.deliveryVo = {
+                bizId: '',
+                // count: 1,
+                customRemark: '',
+                deliveryCompany: '',
+                deliveryId: '',
+                expectTime: '',
+                orderId: 0,
+                serviceName: '',
+                serviceType: null,
+                spaceHeight: null,
+                spaceLength: null,
+                spaceWidth: null,
+                weight: null
+            }
+        },
+        submitRefund() {
+            this.$confirm('是否确认撤回该订单?')
+                .then(() => {
+                    refundOrderGoods(this.refundVO).then((response2) => {
+                        this.$message.success('操作成功')
+                        this.getList()
+                        this.openRefundPage = false
+                        this.refundVO.orderId = null
+                        this.refundVO.refundReason = null
+                    })
+                })
+                .catch(() => {})
+        },
+        checkClose(done) {
+            this.$confirm('是否关闭支付页面,放弃支付?')
+                .then(function () {
+                    done()
+                })
+                .then(() => {})
+                .catch(() => {})
+        },
+        deliveryClose(done) {
+            this.$confirm('是否关闭出货信息窗口,确认关闭?')
+                .then(function () {
+                    done()
+                })
+                .then(() => {})
+                .catch(() => {})
+        },
+        deliveryinfoClose(done) {
+            this.$confirm('是否关闭快递信息窗口,确认关闭?')
+                .then(function () {
+                    done()
+                })
+                .then(() => {})
+                .catch(() => {})
+        },
+        deliveryInfo(row) {
+            getDeliveryPath({
+                orderId: row.id
+            }).then((res) => {
+                this.deliveryView.name = row.deliveryCompany
+                this.deliveryView.pathItemList = res.data.pathItemList
+                this.deliveryView.address = row.province + row.city + row.area + row.address + row.addressDetail
+
+                console.log(this.deliveryView)
+
+                this.openDeliveryinfo = true
+            })
+        },
+        btn_lodop(row) {
+            if (!this.LODOP) {
+                this.$modal.msgError('请安装打印机软件')
+                return
             }
-          })
-        })
-        .catch(() => {});
-    },
-    sendTimeDate (date) {
-      if (!!date) {
-        var nowDate =
-        new Date(date).getFullYear() +
-        '-' +
-        (new Date(date).getMonth() + 1 < 10 ? '0' + (new Date(date).getMonth() + 1) : new Date(date).getMonth() + 1) +
-        '-' +
-        (new Date(date).getDate(date) < 10 ? '0' + new Date(date).getDate(date) : new Date(date).getDate(date));
-    var nowTime =
-        (new Date(date).getHours() < 10 ? '0' + new Date(date).getHours() : new Date(date).getHours()) +
-        ':' +
-        (new Date(date).getMinutes() < 10 ? '0' + new Date(date).getMinutes() : new Date(date).getMinutes()) +
-        ':' +
-        (new Date(date).getSeconds() < 10 ? '0' + new Date(date).getSeconds() : new Date(date).getSeconds());
-        return nowDate + ' ' + nowTime;
-      } else {
-          return ''
-      }
-    },
-    cancelDelivery(){
-      this.openDeliveryPage = false;
-      this.deliveryreset();
-    },
-    // 表单重置
-    deliveryreset() {
-      this.deliveryVo = {
-        bizId: "",
-        // count: 1,
-        customRemark: "",
-        deliveryCompany: "",
-        deliveryId: "",
-        expectTime: "",
-        orderId: 0,
-        serviceName: "",
-        serviceType: null,
-        spaceHeight: null,
-        spaceLength: null,
-        spaceWidth: null,
-        weight: null
-      };
-    },
-    submitRefund() {
-      this.$confirm("是否确认撤回该订单?")
-        .then(() => {
-          refundOrderGoods(this.refundVO).then((response2) => {
-            this.$message.success("操作成功");
-            this.getList();
-            this.openRefundPage = false;
-            this.refundVO.orderId = null;
-            this.refundVO.refundReason = null;
-          });
-        })
-        .catch(() => {});
-    },
-    checkClose(done) {
-      this.$confirm("是否关闭支付页面,放弃支付?")
-        .then(function () {
-          done();
-        })
-        .then(() => {})
-        .catch(() => {});
-    },
-    deliveryClose(done) {
-      this.$confirm("是否关闭出货信息窗口,确认关闭?")
-        .then(function () {
-          done();
-        })
-        .then(() => {})
-        .catch(() => {});
-    },
-    deliveryinfoClose(done) {
-      this.$confirm("是否关闭快递信息窗口,确认关闭?")
-        .then(function () {
-          done();
-        })
-        .then(() => {})
-        .catch(() => {});
-    },
-    deliveryInfo(row){
-      getDeliveryPath({
-        "orderId": row.id
-      }).then((res) => {
-        this.deliveryView.name = row.deliveryCompany;
-        this.deliveryView.pathItemList = res.data.pathItemList;
-        this.deliveryView.address = row.province+row.city+row.area+row.address+row.addressDetail;
-
-        console.log(this.deliveryView)
-
-        this.openDeliveryinfo = true;
-      });
-    },
-    btn_lodop(row){
-      if( !this.LODOP ){
-        this.$modal.msgError("请安装打印机软件");
-        return
-      }
-
-      let p_name = '';
-
-      this.pointerList.forEach(pointer => {
-        if( pointer.printType == 0 ){
-          p_name = pointer.printName
-        }
-      })
 
-      getGoods(row.id).then((res) => {
-        if( this.userInfoVO.userType == '02' ){
-          const obj = {
-            name: this.userInfoVO.storeName,
-            contactPhone: this.userInfoVO.phonenumber,
-            user: this.userInfoVO.nickName,
-          }
-          res.data.sysOrg = obj
+            let p_name = ''
+
+            this.pointerList.forEach((pointer) => {
+                if (pointer.printType == 0) {
+                    p_name = pointer.printName
+                }
+            })
+
+            getGoods(row.id).then((res) => {
+                if (this.userInfoVO.userType == '02') {
+                    const obj = {
+                        name: this.userInfoVO.storeName,
+                        contactPhone: this.userInfoVO.phonenumber,
+                        user: this.userInfoVO.nickName
+                    }
+                    res.data.sysOrg = obj
+                }
+                res.data.newTime = this.formatDates(new Date(), 1)
+                this.goodsPrinter(this.LODOP, res.data, p_name)
+            })
+        },
+        /** 导出按钮操作 */
+        handleExport() {
+            this.download(
+                'mapi/order/goods/export',
+                {
+                    ...this.queryParams,
+                    ...{ goodsType: this.goodsType }
+                },
+                `goods_order_${new Date().getTime()}.xlsx`
+            )
         }
-        res.data.newTime = this.formatDates(new Date(), 1)
-        this.goodsPrinter(this.LODOP, res.data, p_name)
-      });
-    },
-    /** 导出按钮操作 */
-    handleExport() {
-      this.download('mapi/order/goods/export', {
-        ...this.queryParams, ...{ goodsType: this.goodsType }
-      }, `goods_order_${new Date().getTime()}.xlsx`)
-    },
-  },
-};
+    }
+}
 </script>
 <style>
 .list_title {
-  text-align: center;
-  line-height: 40px;
+    text-align: center;
+    line-height: 40px;
 }
 .head-container-two {
-  height: 500px;
-  display: block;
-  overflow-y: scroll;
+    height: 500px;
+    display: block;
+    overflow-y: scroll;
 }
 .head-column1 {
-  height: 300px;
-  display: block;
-  overflow-y: scroll;
+    height: 300px;
+    display: block;
+    overflow-y: scroll;
 }
 .head-column2 {
-  height: 600px;
-  display: block;
-  overflow-y: scroll;
+    height: 600px;
+    display: block;
+    overflow-y: scroll;
 }
 .box-shadow .el-button--medium {
-  font-size: 18px;
+    font-size: 18px;
 }
 </style>
 <style lang="scss" scoped>
 .servicecard {
-  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2);
-  background-color: #fff;
-  border-radius: 5px;
-  margin: 0 10px 10px 0;
-  padding: 10px 20px;
-  display: inline-block;
-  cursor: pointer;
-  position: relative;
-  &::after {
-    content: "";
-    position: absolute;
-    top: 0;
-    right: 0px; /* 调整三角形的大小和位置 */
-    width: 0;
-    height: 0;
-    border-left: 35px solid transparent;
-    border-top: 35px solid #007bff;
-    z-index: 50;
-    opacity: 0;
-  }
-  .check {
-    position: absolute;
-    top: -5px;
-    right: 3px;
-    color: #fff;
-    z-index: 100;
-    opacity: 0;
-  }
-
-  &.active {
+    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2);
+    background-color: #fff;
+    border-radius: 5px;
+    margin: 0 10px 10px 0;
+    padding: 10px 20px;
+    display: inline-block;
+    cursor: pointer;
+    position: relative;
     &::after {
-      opacity: 1;
+        content: '';
+        position: absolute;
+        top: 0;
+        right: 0px; /* 调整三角形的大小和位置 */
+        width: 0;
+        height: 0;
+        border-left: 35px solid transparent;
+        border-top: 35px solid #007bff;
+        z-index: 50;
+        opacity: 0;
     }
     .check {
-      opacity: 1;
+        position: absolute;
+        top: -5px;
+        right: 3px;
+        color: #fff;
+        z-index: 100;
+        opacity: 0;
+    }
+
+    &.active {
+        &::after {
+            opacity: 1;
+        }
+        .check {
+            opacity: 1;
+        }
     }
-  }
 }
 
 .deliveryView {
-  margin: 0 20px 20px 20px;
-  padding: 15px;
-  border-radius: 5px;
-  background-color: #f4f4f4;
-  color: #555;
-  .info:first-child {
-    margin-bottom: 10px;
-  }
+    margin: 0 20px 20px 20px;
+    padding: 15px;
+    border-radius: 5px;
+    background-color: #f4f4f4;
+    color: #555;
+    .info:first-child {
+        margin-bottom: 10px;
+    }
 }
 </style>

+ 8 - 8
src/views/recharge/batchRecord/cardDetail.vue

@@ -62,11 +62,6 @@
 
         <el-table v-loading="loading" fit highlight-current-row border stripe :data="recordList" @selection-change="handleSelectionChange">
             <el-table-column label="充值卡号" align="center" prop="cardNo" width="190" />
-            <el-table-column label="客户名称" align="center" prop="appUserName" width="120">
-                <template slot-scope="scope">
-                    {{ scope.row.appUserName == null ? '--' : scope.row.appUserName }}
-                </template>
-            </el-table-column>
             <el-table-column label="所属门店" align="center" width="140">
                 <template slot-scope="scope">
                     <span>
@@ -74,10 +69,15 @@
                     </span>
                 </template>
             </el-table-column>
-            <el-table-column label="充值金额(元)" align="center" prop="rechargeAmount" width="120" />
+            <el-table-column label="客户名称" align="center" prop="appUserName" width="120">
+                <template slot-scope="scope">
+                    {{ scope.row.appUserName == null ? '--' : scope.row.appUserName }}
+                </template>
+            </el-table-column>
+            <el-table-column label="现金金额(元)" align="center" prop="rechargeAmount" width="120" />
             <el-table-column label="赠送金额(元)" align="center" prop="giveAmount" width="120" />
-            <el-table-column label="充值余额(元)" align="center" prop="rechargeBalance" width="120" />
-            <el-table-column label="赠送余额(元)" align="center" prop="giveBalance" width="120" />
+            <el-table-column label="剩余现金金额(元)" align="center" prop="rechargeBalance" width="140" />
+            <el-table-column label="剩余赠送余额(元)" align="center" prop="giveBalance" width="140" />
             <el-table-column label="是否支持洗衣" align="center" prop="isSupportCloth" width="110">
                 <template slot-scope="scope">
                     <dict-tag :options="dict.type.sys_yes_no" :value="scope.row.isSupportCloth" />

+ 13 - 22
src/views/recharge/batchRecord/index.vue

@@ -8,7 +8,7 @@
                 <el-input v-model="queryParams.batchName" placeholder="请输入批次名称" clearable @keyup.enter.native="handleQuery" />
             </el-form-item>
             <el-form-item prop="lastExpireTime">
-                <el-date-picker v-model="queryParams.lastExpireTime" style="width: 240px" value-format="yyyy-MM-dd" type="daterange" range-separator="-" start-placeholder="开始日期" end-placeholder="结束日期"></el-date-picker>
+                <el-date-picker v-model="queryParams.lastExpireTime" style="width: 240px" value-format="yyyy-MM-dd" type="daterange" range-separator="-" start-placeholder="激活过期日期" end-placeholder="结束日期"></el-date-picker>
             </el-form-item>
             <!-- <el-form-item prop="lastUseLevel">
                 <el-radio-group v-model="queryParams.lastUseLevel">
@@ -74,7 +74,7 @@
             <el-table-column label="批次号" align="center" prop="batchNo" />
             <el-table-column label="批次名称" align="center" prop="batchName" />
             <el-table-column label="备注" align="center" prop="remark" />
-            <el-table-column label="期时间" align="center" prop="lastExpireTime" width="180" />
+            <el-table-column label="激活过期时间" align="center" prop="lastExpireTime" width="180" />
             <!-- <el-table-column label="优先消费" align="center" prop="lastUseLevel">
                 <template slot-scope="scope">
                     <el-switch v-model="scope.row.lastUseLevel" :active-value="1" :inactive-value="0" @change="handleUpdateUseLevel(scope.row)"></el-switch>
@@ -87,18 +87,17 @@
             </el-table-column> -->
             <el-table-column label="创建人" align="center" prop="createBy" width="120" />
             <el-table-column label="创建时间" align="center" prop="createTime" width="180" />
-            <el-table-column label="操作" align="center" class-name="small-padding fixed-width" fixed="right" 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="handleUpdateExpireTime(scope.row)" v-hasPermi="['recharge:batchRecord:edit']">修改过期时间</el-button> -->
+                    <el-button type="text" icon="el-icon-edit" @click="handleUpdateExpireTime(scope.row)" v-hasPermi="['recharge:batchRecord:edit']">修改过期时间</el-button>
                     <el-button type="text" icon="el-icon-edit" @click="handleCardDetail(scope.row)" v-hasPermi="['recharge:batchRecord:edit']">充值卡明细</el-button>
                     <el-button type="text" icon="el-icon-edit" @click="handleUseRecord(scope.row)" v-hasPermi="['recharge:batchRecord:edit']">充值卡使用记录</el-button>
                 </template>
             </el-table-column>
         </Page>
 
-       
         <!-- 添加或修改充值批次记录对话框 -->
-        <el-dialog :title="title" :visible.sync="open" size="30%" append-to-body>
+        <el-dialog :title="title" :visible.sync="open" width="40%" append-to-body>
             <el-row :gutter="15" style="margin-bottom: 80px; margin-left: 20px; width: calc(100% - 20px)">
                 <el-form ref="form" :model="form" :rules="rules" label-width="100px">
                     <el-col :span="24">
@@ -111,27 +110,19 @@
                                 <template slot="label"> 批次名称 </template>
                                 {{ form.batchName }}
                             </el-descriptions-item>
-                            <el-descriptions-item>
-                                <template slot="label"> 使用优先级 </template>
-                                {{ form.lastUseLevel == '1' ? '优先扣款' : '正常' }}
-                            </el-descriptions-item>
                         </el-descriptions>
                     </el-col>
                     <el-col :span="24" style="margin-top: 15px">
-                        <el-form-item label="期时间" prop="lastExpireTime">
+                        <el-form-item label="激活过期时间" prop="lastExpireTime">
                             <el-date-picker clearable v-model="form.lastExpireTime" type="date" value-format="yyyy-MM-dd" placeholder="到期时间"> </el-date-picker>
                         </el-form-item>
-                        <el-form-item label="客户星级" prop="starLevel" label-width="140px">
-                            <div style="margin-top: 8px">
-                                <el-rate v-model="form.starLevel"></el-rate>
-                            </div>
-                        </el-form-item>
-                        <el-form-item label="优先扣款" prop="lastUseLevel" label-width="140px">
-                            <el-radio-group v-model.number="form.lastUseLevel">
-                                <el-radio-button label="0">默认</el-radio-button>
-                                <el-radio-button label="1">优先</el-radio-button>
-                            </el-radio-group>
-                        </el-form-item>
+
+                        <!--                        <el-form-item label="优先扣款" prop="lastUseLevel" label-width="140px">-->
+                        <!--                            <el-radio-group v-model.number="form.lastUseLevel">-->
+                        <!--                                <el-radio-button label="0">默认</el-radio-button>-->
+                        <!--                                <el-radio-button label="1">优先</el-radio-button>-->
+                        <!--                            </el-radio-group>-->
+                        <!--                        </el-form-item>-->
                         <el-form-item label="是否有洗衣权限" label-width="140px">
                             <template>
                                 <el-radio-group v-model="form.isSupportCloth">

+ 4 - 16
src/views/recharge/batchRecord/useRecord.vue

@@ -16,18 +16,9 @@
             <el-form-item label="下单时间" prop="queryCreateTime">
                 <el-date-picker clearable v-model="queryParams.queryCreateTime" type="daterange" value-format="yyyy-MM-dd" range-separator="至" start-placeholder="下单时间" end-placeholder="结束日期"> </el-date-picker>
             </el-form-item>
-            <el-form-item label="消费工厂/门店" label-width="120px" prop="orgIndex" v-if="userInfoVO.userType == '00'">
+            <el-form-item label="消费门店" label-width="120px" prop="orgIndex" v-if="userInfoVO.userType == '00'">
                 <el-select v-model="queryParams.orgIndex" placeholder="请选择门店" clearable>
-                    <!--                    <el-option-group label="工厂">-->
-                    <!--                        <template>-->
-                    <!--                            <el-option v-for="factory in factoryList" :key="factory.id + factory.sourceType" :label="factory.name" :value="factory.id + ',' + factory.sourceType"> </el-option>-->
-                    <!--                        </template>-->
-                    <!--                    </el-option-group>-->
-                    <el-option-group label="门店">
-                        <template>
-                            <el-option v-for="store in storeList" :key="store.id + store.sourceType" :label="store.name" :value="store.id + ',' + store.sourceType"> </el-option>
-                        </template>
-                    </el-option-group>
+                    <el-option v-for="store in storeList" :key="store.id + store.sourceType" :label="store.name" :value="store.id + ',' + store.sourceType"> </el-option>
                 </el-select>
             </el-form-item>
             <el-form-item>
@@ -43,10 +34,8 @@
         </el-row>
 
         <Page uri="/mapi/recharge/card/batchRecord/listCardUseRecordByBatchNo" :request-params="queryParams" ref="pagination">
-            <el-table-column type="selection" width="55" align="center" fixed="left" />
             <el-table-column label="充值卡编号" align="center" prop="rechargeCardId" width="190" />
-            <!--      <el-table-column label="批次号" align="center"  prop="batchNo" width="190"/>-->
-            <!--      <el-table-column label="充值卡号" align="center" prop="cardNo" width="190"/>-->
+            <el-table-column label="充值卡号" align="center" prop="cardNo" width="190" />
             <el-table-column label="客户名称" align="center" prop="appUserName" width="120" />
             <el-table-column label="消费订单号" align="center" prop="orderNo" width="190" />
             <el-table-column label="订单类型" align="center" prop="title" width="120" />
@@ -63,7 +52,6 @@
                     {{ scope.row.isRefund == 'Y' && scope.row.payTotalAmount.toString() != '0' ? '退款:' + scope.row.payTotalAmount.toString().replace('-', '') : scope.row.payTotalAmount.toString().replace('-', '') }}
                 </template>
             </el-table-column>
-            <!--      <el-table-column label="现金支付金额(元)" align="center" prop="cashPayAmount" width="140"/>-->
             <el-table-column label="充值余额支付金额(元)" align="center" prop="rechargePayAmount" width="170">
                 <template slot-scope="scope">
                     {{ scope.row.isRefund == 'Y' && scope.row.rechargePayAmount.toString() != '0' ? '退款:' + scope.row.rechargePayAmount.toString().replace('-', '') : scope.row.rechargePayAmount.toString().replace('-', '') }}
@@ -74,7 +62,7 @@
                     {{ scope.row.isRefund == 'Y' && scope.row.givePayAmount.toString() != '0' ? '退款:' + scope.row.givePayAmount.toString().replace('-', '') : scope.row.givePayAmount.toString().replace('-', '') }}
                 </template>
             </el-table-column>
-            <el-table-column label="福利金余额支付金额(元)" align="center" prop="welfarePayAmount" width="180">
+            <el-table-column label="福利金支付金额(元)" align="center" prop="welfarePayAmount" width="180">
                 <template slot-scope="scope">
                     {{ scope.row.isRefund == 'Y' && scope.row.welfarePayAmount.toString() != '0' ? '退款:' + scope.row.welfarePayAmount.toString().replace('-', '') : scope.row.welfarePayAmount.toString().replace('-', '') }}
                 </template>

+ 14 - 11
src/views/recharge/card/index.vue

@@ -4,6 +4,9 @@
             <el-form-item prop="cardNo">
                 <el-input v-model="queryParams.cardNo" placeholder="请输入卡号" clearable @keyup.enter.native="handleQuery" />
             </el-form-item>
+            <el-form-item prop="batchNo">
+                <el-input v-model="queryParams.batchNo" placeholder="请输入批次号" clearable @keyup.enter.native="handleQuery" />
+            </el-form-item>
             <el-form-item prop="rechargeStatus">
                 <el-select v-model="queryParams.rechargeStatus" placeholder="请选择使用状态" clearable>
                     <el-option v-for="dict in dict.type.recharge_use_status" :key="dict.value" :label="dict.label" :value="dict.value" />
@@ -68,26 +71,26 @@
                     <dict-tag :options="dict.type.recharge_use_status" :value="scope.row.rechargeStatus" />
                 </template>
             </el-table-column>
-            <el-table-column label="充值时间" align="center" prop="rechargeTime" width="180">
-                <template slot-scope="scope">
-                    {{ scope.row.rechargeTime == null ? '--' : scope.row.rechargeTime }}
-                </template>
-            </el-table-column>
-            <el-table-column label="充值门店" align="center" prop="rechargeStoreName" width="150">
+            <el-table-column label="充值用户" align="center" prop="rechargeUserName" width="150">
                 <template slot-scope="scope">
-                    {{ scope.row.useBindStoreName == null ? '--' : scope.row.useBindStoreName }}
+                    {{ scope.row.rechargeUserName == null ? '未激活' : scope.row.rechargeUserName }}
                 </template>
             </el-table-column>
-            <el-table-column label="充值用户" align="center" prop="rechargeUserName" width="150">
+            <el-table-column label="充值时间" align="center" prop="rechargeTime" width="150">
                 <template slot-scope="scope">
-                    {{ scope.row.rechargeUserName == null ? '--' : scope.row.rechargeUserName }}
+                    {{ scope.row.rechargeTime == null ? '--' : scope.row.rechargeTime }}
                 </template>
             </el-table-column>
-            <el-table-column label="到期时间" align="center" prop="expireTime" width="150">
+            <el-table-column label="发放门店" align="center" prop="rechargeStoreName" width="150">
                 <template slot-scope="scope">
-                    {{ scope.row.expireTime == null ? '--' : scope.row.expireTime }}
+                    {{ scope.row.useBindStoreName == null ? '--' : scope.row.useBindStoreName }}
                 </template>
             </el-table-column>
+            <!--            <el-table-column label="到期时间" align="center" prop="expireTime" width="150">-->
+            <!--                <template slot-scope="scope">-->
+            <!--                    {{ scope.row.expireTime == null ? '&#45;&#45;' : scope.row.expireTime }}-->
+            <!--                </template>-->
+            <!--            </el-table-column>-->
             <el-table-column label="赠送金额激活时间" align="center" prop="giveActiveTime" width="150">
                 <template slot-scope="scope">
                     {{ scope.row.giveActiveTime == null ? '--' : scope.row.giveActiveTime }}

+ 9 - 9
src/views/recharge/cardVersion/index.vue

@@ -89,23 +89,23 @@
                             <el-input type="textarea" v-model="multiInsertForm.remark" placeholder="请输入备注" style="width: 300px" />
                         </el-form-item>
 
-                        <el-form-item label="过期时间" label-width="140px" required>
-                            <el-date-picker v-model="multiInsertForm.expireTime" type="date" value-format="yyyy-MM-dd" placeholder="选择日期"> </el-date-picker>
+                        <el-form-item label="批次激活过期时间" label-width="140px" required>
+                            <el-date-picker style="width: 300px" v-model="multiInsertForm.expireTime" type="date" value-format="yyyy-MM-dd" placeholder="选择日期"> </el-date-picker>
                         </el-form-item>
                         <el-form-item label="生成数量" prop="createNum" required label-width="140px">
-                            <el-input-number v-model="multiInsertForm.createNum" placeholder="请输入充值金额" :precision="0" :min="0" :max="10000" />
+                            <el-input-number style="width: 300px" v-model="multiInsertForm.createNum" placeholder="请输入充值金额" :precision="0" :min="1" :max="10000" />
                         </el-form-item>
                         <!--                        <el-form-item label="客户星级" prop="starLevel" label-width="140px">-->
                         <!--                            <div style="margin-top: 8px">-->
                         <!--                                <el-rate v-model="multiInsertForm.starLevel"></el-rate>-->
                         <!--                            </div>-->
                         <!--                        </el-form-item>-->
-                        <el-form-item label="优先扣款" prop="level" label-width="140px">
-                            <el-radio-group v-model.number="multiInsertForm.level">
-                                <el-radio-button label="0">默认</el-radio-button>
-                                <el-radio-button label="1">优先</el-radio-button>
-                            </el-radio-group>
-                        </el-form-item>
+                        <!--                        <el-form-item label="优先扣款" prop="level" label-width="140px">-->
+                        <!--                            <el-radio-group v-model.number="multiInsertForm.level">-->
+                        <!--                                <el-radio-button label="0">默认</el-radio-button>-->
+                        <!--                                <el-radio-button label="1">优先</el-radio-button>-->
+                        <!--                            </el-radio-group>-->
+                        <!--                        </el-form-item>-->
                         <el-form-item label="是否有洗衣权限" label-width="140px">
                             <template>
                                 <el-radio-group v-model="multiInsertForm.isSupportCloth">

+ 0 - 8
src/views/system/store/index.vue

@@ -51,14 +51,6 @@
                     <dict-tag :options="dict.type.sys_store_type" :value="scope.row.storeType" />
                 </template>
             </el-table-column>
-            <el-table-column label="门店图片" align="center" prop="companyPic" width="100">
-                <template slot-scope="scope">
-                    <!--          <img v-if="scope.row.companyPic" :src="scope.row.companyPic" alt="门店图片"-->
-                    <!--               width="100" height="100" style="object-fit:contain">-->
-
-                    <el-image style="width: 100px; height: 100px" :fit="cover" :src="scope.row.companyPic" :preview-src-list="[scope.row.companyPic]"> </el-image>
-                </template>
-            </el-table-column>
             <!--			<el-table-column label="所属区域" align="center" prop="bindAreaId" />-->
             <el-table-column label="负责人姓名" align="center" prop="contactName" />
             <el-table-column label="负责人电话" align="center" prop="contactWorkTel" />

+ 1 - 1
src/views/systemSet/sellGoods/index.vue

@@ -126,7 +126,7 @@
 
         <!-- 订单出货对话框 -->
         <el-dialog title="订单出货信息" :visible.sync="openDeliveryPage" size="40%" append-to-body :before-close="deliveryClose">
-            <el-row :gutter="15" style="margin-bottom: 150px">
+            <el-row :gutter="15">
                 <el-form ref="deliveryVo" :model="deliveryVo" :rules="deliveryRules" label-width="120px">
                     <el-col :span="24">
                         <el-form-item label="快递公司" prop="deliveryCompany">

+ 1 - 1
src/views/systemSet/sellGoods/retailStore.vue

@@ -120,7 +120,7 @@
 
         <!-- 订单出货对话框 -->
         <el-dialog title="订单出货信息" :visible.sync="openDeliveryPage" size="40%" append-to-body :before-close="deliveryClose">
-            <el-row :gutter="15" style="margin-bottom: 150px">
+            <el-row :gutter="15">
                 <el-form ref="deliveryVo" :model="deliveryVo" :rules="deliveryRules" label-width="120px">
                     <el-col :span="24">
                         <el-form-item label="快递公司" prop="deliveryCompany">

+ 2 - 2
src/views/workbench/workAppointmentOrder/index.vue

@@ -10,7 +10,7 @@
             <el-form-item prop="contactName">
                 <el-input v-model="queryParams.contactName" placeholder="请输入客户名称" clearable @keyup.enter.native="handleQuery" />
             </el-form-item>
-            <el-form-item  prop="contactPhone" label-width="90px">
+            <el-form-item prop="contactPhone" label-width="90px">
                 <el-input v-model="queryParams.contactPhone" placeholder="请输入客户手机号" clearable @keyup.enter.native="handleQuery" />
             </el-form-item>
             <el-form-item>
@@ -522,7 +522,7 @@
 
         <!-- 订单出货对话框 -->
         <el-dialog title="订单出货信息" :visible.sync="openDeliveryPage" size="40%" append-to-body :before-close="deliveryClose">
-            <el-row :gutter="15" style="margin-bottom: 150px">
+            <el-row :gutter="15">
                 <el-form ref="deliveryVo" :model="deliveryVo" :rules="deliveryRules" label-width="120px">
                     <el-col :span="24">
                         <el-form-item label="快递公司" prop="deliveryCompany">