wenjie 1 год назад
Родитель
Сommit
8fd1c65863
57 измененных файлов с 4615 добавлено и 4596 удалено
  1. BIN
      dist.zip
  2. 12 3
      src/api/appConfig.js
  3. 62 16
      src/api/goods.js
  4. 53 5
      src/api/order.js
  5. 31 3
      src/api/payment.js
  6. 2 2
      src/api/shop.js
  7. 6 6
      src/api/study.js
  8. 14 4
      src/api/user.js
  9. 208 221
      src/router/index.js
  10. 3 2
      src/utils/config.js
  11. 3 3
      src/utils/request.js
  12. 2 1
      src/views/login/index.vue
  13. 52 15
      src/views/merchantManage/addUser.vue
  14. 168 20
      src/views/merchantManage/index.vue
  15. 21 3
      src/views/operationManage/advertisingManage/addAdv.vue
  16. 42 13
      src/views/operationManage/advertisingManage/index.vue
  17. 17 42
      src/views/operationManage/appMenuManage/addMenu.vue
  18. 31 16
      src/views/operationManage/appMenuManage/index.vue
  19. 37 46
      src/views/operationManage/bannerManage/index.vue
  20. 47 59
      src/views/operationManage/financeManage/index.vue
  21. 469 0
      src/views/operationManage/financeManage/withdraw.vue
  22. 0 471
      src/views/operationManage/goodsManage/addGoods.vue
  23. 466 544
      src/views/operationManage/goodsManage/goodsDetail.vue
  24. 894 0
      src/views/operationManage/goodsManage/goodsDetail1.vue
  25. 67 55
      src/views/operationManage/goodsManage/index.vue
  26. 153 0
      src/views/operationManage/goodsTemplate/addGoodsTemplate.vue
  27. 187 0
      src/views/operationManage/goodsTemplate/index.vue
  28. 102 96
      src/views/operationManage/goodsType/addGoodsType.vue
  29. 129 91
      src/views/operationManage/goodsType/index.vue
  30. 36 10
      src/views/operationManage/orderManage/index.vue
  31. 43 21
      src/views/operationManage/orderManage/list.vue
  32. 161 40
      src/views/operationManage/orderManage/orderDetail.vue
  33. 62 39
      src/views/operationManage/orderManage/payDetail.vue
  34. 38 36
      src/views/operationManage/shopManage/index.vue
  35. 211 99
      src/views/operationManage/shopManage/shopAdd.vue
  36. 54 33
      src/views/operationManage/shopManage/shopAdd1.vue
  37. 142 53
      src/views/operationManage/shopManage/shopAdd2.vue
  38. 139 58
      src/views/operationManage/shopManage/shopAdd3.vue
  39. 79 24
      src/views/operationManage/shopManage/shopAdd4.vue
  40. 0 390
      src/views/operationManage/shopManage/shopDetail.vue
  41. 0 512
      src/views/operationManage/shopManage/shopDetail1.vue
  42. 0 509
      src/views/operationManage/shopManage/shopDetail2.vue
  43. 0 509
      src/views/operationManage/shopManage/shopDetail3.vue
  44. 98 0
      src/views/operationManage/shopManage/shopType.vue
  45. 1 1
      src/views/setting/commissionManage/index.vue
  46. 38 16
      src/views/setting/rulesManage/index.vue
  47. 22 8
      src/views/studyManage/bannerManage/index.vue
  48. 23 6
      src/views/studyManage/communityManage/index.vue
  49. 23 6
      src/views/studyManage/courseManage/index.vue
  50. 55 22
      src/views/studyManage/menuManage/addMenu.vue
  51. 24 9
      src/views/studyManage/menuManage/index.vue
  52. 23 6
      src/views/studyManage/questionBankManage/index.vue
  53. 20 7
      src/views/studyManage/subscribeManage/index.vue
  54. 22 9
      src/views/userManage/agentManage/index.vue
  55. 23 10
      src/views/userManage/memberManage/index.vue
  56. 0 191
      src/views/userManage/userManage/addUser.vue
  57. 0 235
      src/views/userManage/userManage/index.vue

+ 12 - 3
src/api/appConfig.js

@@ -1,8 +1,8 @@
 /*
  * @Author: wj 1454560336@qq.com
  * @Date: 2023-09-18 10:57:47
- * @LastEditors: wj 1454560336@qq.com
- * @LastEditTime: 2023-12-18 09:18:28
+ * @LastEditors: wenjie 1454560336@qq.com
+ * @LastEditTime: 2024-03-18 14:40:05
  * @FilePath: \admin-manage\src\api\appConfig.js
  * @Description: 
  * 
@@ -37,7 +37,7 @@ export function addOrUpdate(data) {
   })
 }
 
-// 获取下拉菜单列表
+// 获取1级下拉菜单列表
 export function getMenuName(params) {
   return request({
     url: '/zswl-cloud-shop/menu/menuNameAndId',
@@ -46,6 +46,15 @@ export function getMenuName(params) {
   })
 }
 
+// 获取所有下拉菜单列表
+export function getMenuData(params) {
+  return request({
+    url: '/zswl-cloud-shop/menu/data',
+    method: 'get',
+    params
+  })
+}
+
 // banner列表
 export function bannerList(params) {
   return request({

+ 62 - 16
src/api/goods.js

@@ -1,8 +1,8 @@
 /*
  * @Author: wj 1454560336@qq.com
  * @Date: 2023-11-09 11:35:30
- * @LastEditors: error: error: git config user.name & please set dead value or install git && error: git config user.email & please set dead value or install git & please set dead value or install git
- * @LastEditTime: 2024-02-05 17:31:06
+ * @LastEditors: wenjie 1454560336@qq.com
+ * @LastEditTime: 2024-03-20 16:43:38
  * @FilePath: \admin-manage\src\api\goods.js
  * @Description: 
  * 
@@ -12,7 +12,16 @@ import request from '@/utils/request'
 // 商品列表
 export function goodsList(params) {
   return request({
-    url: '/zswl-cloud-shop/goodsCoupon/managerList',
+    url: '/zswl-cloud-shop/goodsInfo/search',
+    method: 'get',
+    params
+  })
+}
+
+// 2.0查看商品
+export function detail(params) {
+  return request({
+    url: '/zswl-cloud-shop/goodsInfo/detail',
     method: 'get',
     params
   })
@@ -39,7 +48,7 @@ export function apply(params) {
 // 上下架
 export function operateByAdmin(params) {
     return request({
-      url: '/zswl-cloud-shop/goodsCoupon/operateByAdmin',
+      url: '/zswl-cloud-shop/goodsInfo/operateByAdmin',
       method: 'get',
       params
     })
@@ -65,25 +74,25 @@ export function getCheckDetail(params) {
 // 审核
 export function check(data) {
     return request({
-      url: '/zswl-cloud-shop/goodsCoupon/check',
+      url: '/zswl-cloud-shop/goodsInfo/check',
       method: 'post',
       data
     })
 }
 
-// 添加-修改 优惠券
-export function addOrUpdate(data) {
-  return request({
-    url: '/zswl-cloud-shop/goodsCoupon/addOrUpdate',
-    method: 'post',
-    data
-  })
-}
+// // 添加-修改 优惠券
+// export function addOrUpdate(data) {
+//   return request({
+//     url: '/zswl-cloud-shop/goodsCoupon/addOrUpdate',
+//     method: 'post',
+//     data
+//   })
+// }
 
 // 购买设置
-export function goodsCouponSet(data) {
+export function goodsSet(data) {
   return request({
-    url: '/zswl-cloud-shop/goodsCouponSet/addOrUpdate',
+    url: '/zswl-cloud-shop/goodsInfoSet/addOrUpdate',
     method: 'post',
     data
   })
@@ -116,4 +125,41 @@ export function allCouponByShop(params) {
     method: 'get',
     params
   })
-}
+}
+
+// 获取全部商品分类
+export function getGoodsType(params) {
+  return request({
+    url: '/zswl-cloud-shop/goodsCate/search',
+    method: 'get',
+    params
+  })
+}
+
+// 添加修改商品分类
+export function addOrUpdateGoodsType(data) {
+  return request({
+    url: '/zswl-cloud-shop/goodsCate/addOrUpdate',
+    method: 'post',
+    data
+  })
+}
+
+// 删除商品分类
+export function delGoodsType(params) {
+  return request({
+    url: '/zswl-cloud-shop/goodsCate/del',
+    method: 'get',
+    params
+  })
+}
+
+// 获取商品分类
+export function getData(params) {
+  return request({
+    url: '/zswl-cloud-shop/goodsCate/data',
+    method: 'get',
+    params
+  })
+}
+

+ 53 - 5
src/api/order.js

@@ -1,8 +1,8 @@
 /*
  * @Author: error: error: git config user.name & please set dead value or install git && error: git config user.email & please set dead value or install git & please set dead value or install git
  * @Date: 2023-08-15 17:33:37
- * @LastEditors: wj 1454560336@qq.com
- * @LastEditTime: 2024-01-05 09:57:35
+ * @LastEditors: wenjie 1454560336@qq.com
+ * @LastEditTime: 2024-03-29 11:25:48
  * @FilePath: \admin-manage\src\api\order.js
  * @Description: 
  * 
@@ -14,16 +14,24 @@ import request from '@/utils/request'
 // 平台订单
 export function getList(data) {
   return request({
-    url: '/paymentserver/order/platform/search',
+    url: '/springbatchservice/order/platform/search',
     method: 'post',
     data
   })
 }
 
+// 订单详情
+export function orderDetail(data) {
+  return request({
+    url: '/springbatchservice/order/platform/orderDetail/'+data,
+    method: 'get',
+  })
+}
+
 // 获取退款分账信息
 export function transfer(params) {
   return request({
-    url: '/paymentserver/payment/transfer/'+params,
+    url: '/springbatchservice/pay/transfer/'+params,
     method: 'get',
   })
 }
@@ -31,7 +39,7 @@ export function transfer(params) {
 // 退款审核
 export function auditRefund(data) {
   return request({
-    url: '/paymentserver/payment/auditRefund',
+    url: '/springbatchservice/pay/auditRefund',
     method: 'post',
     data
   })
@@ -46,3 +54,43 @@ export function getCouponLog(params) {
   })
 }
 
+
+// 提现列表
+export function withdrawList(data) {
+  return request({
+    url: '/springbatchservice/pay/account/withdrawals/list',
+    method: 'post',
+    data
+  })
+}
+
+
+// 提现
+export function withdrawals(params) {
+  return request({
+    url: '/springbatchservice/pay/account/withdrawals',
+    method: 'get',
+    params
+  })
+}
+
+
+
+// 查询提现
+export function getDetail(params) {
+  return request({
+    url: '/springbatchservice/pay/account/platformDetail',
+    method: 'get',
+    params
+  })
+}
+
+// 分账
+export function subOrdersConfirm(data) {
+  return request({
+    url: '/springbatchservice/pay/subOrdersConfirm',
+    method: 'post',
+    data
+  })
+}
+

+ 31 - 3
src/api/payment.js

@@ -1,8 +1,8 @@
 /*
  * @Author: wj 1454560336@qq.com
  * @Date: 2023-11-17 10:25:15
- * @LastEditors: wen 1454560336@qq.com
- * @LastEditTime: 2024-01-16 15:51:01
+ * @LastEditors: wenjie 1454560336@qq.com
+ * @LastEditTime: 2024-03-28 13:42:07
  * @FilePath: \admin-manage\src\api\payment.js
  * @Description: 
  * 
@@ -169,8 +169,36 @@ export function companyAccountVerify(data) {
 // 分账列表
 export function getTransferList(data) {
   return request({
-    url: '/paymentserver/order/transfer/list',
+    url: '/springbatchservice/pay/transfer/list',
     method: 'post',
     data
   })
 }
+  
+// 获取商户下的签约列表
+export function complexList(data) {
+  return request({
+    url: '/paymentserver/signature/complexList',
+    method: 'post',
+    data
+  })
+}
+  
+// 获取商户下的已完成签约列表
+export function finishComplexList(data) {
+  return request({
+    url: '/paymentserver/signature/finishComplexList',
+    method: 'post',
+    data
+  })
+}
+  
+// 删除为签约完成的流程
+export function deleteComplex(data) {
+  return request({
+    url: '/paymentserver/signature/deleteComplex',
+    method: 'post',
+    data
+  })
+}
+

+ 2 - 2
src/api/shop.js

@@ -1,8 +1,8 @@
 /*
  * @Author: wj 1454560336@qq.com
  * @Date: 2023-11-16 17:14:43
- * @LastEditors: wj 1454560336@qq.com
- * @LastEditTime: 2023-11-29 11:53:52
+ * @LastEditors: wenjie 1454560336@qq.com
+ * @LastEditTime: 2024-03-21 10:46:41
  * @FilePath: \admin-manage\src\api\shop.js
  * @Description: 
  * 

+ 6 - 6
src/api/study.js

@@ -1,8 +1,8 @@
 /*
  * @Author: wj 1454560336@qq.com
  * @Date: 2023-12-22 14:17:16
- * @LastEditors: wj 1454560336@qq.com
- * @LastEditTime: 2024-01-03 17:17:35
+ * @LastEditors: wenjie 1454560336@qq.com
+ * @LastEditTime: 2024-03-25 19:30:59
  * @FilePath: \admin-manage\src\api\study.js
  * @Description: 
  * 
@@ -19,7 +19,7 @@ export function getList(params) {
 }
 
 //获取所有栏目
-export function getData(params) {
+export function getAllColumn(params) {
   return request({
     url: '/zswl-cloud-shop/column/data',
     method: 'get',
@@ -119,11 +119,11 @@ export function addOrUpdateCommunity(data) {
 }
 
 // 置顶
-export function top(data) {
+export function top(params) {
   return request({
     url: '/zswl-cloud-shop/communityItem/top',
-    method: 'post',
-    data
+    method: 'get',
+    params
   })
 }
 

+ 14 - 4
src/api/user.js

@@ -1,8 +1,8 @@
 /*
  * @Author: wj 1454560336@qq.com
  * @Date: 2023-09-18 10:57:47
- * @LastEditors: wj 1454560336@qq.com
- * @LastEditTime: 2023-12-04 13:44:27
+ * @LastEditors: wenjie 1454560336@qq.com
+ * @LastEditTime: 2024-03-25 11:59:15
  * @FilePath: \admin-manage\src\api\user.js
  * @Description: 
  * 
@@ -37,14 +37,24 @@ export function accountDetail(params) {
 }
 
 // 新增主体
-export function add(data) {
+export function addOrUpdateAccount(data) {
   return request({
-    url: '/zswl-cloud-shop/accountMain/add',
+    url: '/zswl-cloud-shop/accountMain/addOrUpdate',
     method: 'post',
     data
   })
 }
 
+// 删除主体
+export function delAccount(params) {
+  return request({
+    url: '/zswl-cloud-shop/accountMain/del',
+    method: 'get',
+    params
+  })
+}
+
+
 // 获取商户子类型
 export function getShopType(params) {
   return request({

+ 208 - 221
src/router/index.js

@@ -1,3 +1,13 @@
+/*
+ * @Author: wenjie 1454560336@qq.com
+ * @Date: 2024-03-05 11:36:07
+ * @LastEditors: wenjie 1454560336@qq.com
+ * @LastEditTime: 2024-03-29 11:43:36
+ * @FilePath: \admin-manage\src\router\index.js
+ * @Description: 
+ * 
+ * Copyright (c) 2024 by ${git_name_email}, All Rights Reserved. 
+ */
 import Vue from 'vue'
 import Router from 'vue-router'
 
@@ -139,7 +149,18 @@ export let constantRoutes = [{
           icon: ''
         },
         alwaysShow: true,
-        children: [{
+        children: [
+          {
+            id: 1,
+            path: '/operationManage/shopManage/shopType',
+            name: '/operationManage/shopManage/shopType',
+            component: () => import('@/views/operationManage/shopManage/shopType.vue'),
+            hidden:true,
+            meta: {
+              title: '店铺类型',
+              icon: ''
+            },
+          },{
             id: 1,
             path: '/operationManage/shopManage/index',
             name: '/operationManage/shopManage/index',
@@ -149,54 +170,7 @@ export let constantRoutes = [{
               icon: ''
             },
           },
-          {
-            id: 1,
-            path: '/operationManage/shopManage/shopDetail',
-            name: '/operationManage/shopManage/shopDetail',
-            hidden: true,
-            component: () => import('@/views/operationManage/shopManage/shopDetail.vue'),
-            meta: {
-              title: '店铺详情',
-              icon: '',
-              activeMenu: '/operationManage/shopManage/index'
-            },
-          },
-          {
-            id: 1,
-            path: '/operationManage/shopManage/shopDetail1',
-            name: '/operationManage/shopManage/shopDetail1',
-            hidden: true,
-            component: () => import('@/views/operationManage/shopManage/shopDetail1.vue'),
-            meta: {
-              title: '店铺详情',
-              icon: '',
-              activeMenu: '/operationManage/shopManage/index'
-            },
-          },
-          {
-            id: 1,
-            path: '/operationManage/shopManage/shopDetail2',
-            name: '/operationManage/shopManage/shopDetail2',
-            hidden: true,
-            component: () => import('@/views/operationManage/shopManage/shopDetail2.vue'),
-            meta: {
-              title: '店铺详情',
-              icon: '',
-              activeMenu: '/operationManage/shopManage/index'
-            },
-          },
-          {
-            id: 1,
-            path: '/operationManage/shopManage/shopDetail3',
-            name: '/operationManage/shopManage/shopDetail3',
-            hidden: true,
-            component: () => import('@/views/operationManage/shopManage/shopDetail3.vue'),
-            meta: {
-              title: '店铺详情',
-              icon: '',
-              activeMenu: '/operationManage/shopManage/index'
-            },
-          },
+          
           {
             id: 1,
             path: '/operationManage/shopManage/shopAdd',
@@ -256,45 +230,78 @@ export let constantRoutes = [{
           }
         ]
       },
-      {
-        id: 0,
-        path: '/operationManage/shopAudit/index',
-        component: operationLayout,
-        meta: {
-          title: '店铺审核',
-          icon: ''
-        },
-        alwaysShow: true,
-        children: [{
-            id: 1,
-            path: '/operationManage/shopAudit/index',
-            name: '/operationManage/shopAudit/index',
-            component: () => import('@/views/operationManage/shopAudit/index.vue'),
-            meta: {
-              title: '审核列表',
-              icon: ''
-            },
-          },
-          {
-            id: 1,
-            path: '/operationManage/shopAudit/audit',
-            name: '/operationManage/shopAudit/audit',
-            hidden:true,
-            component: () => import('@/views/operationManage/shopAudit/audit.vue'),
-            meta: {
-              title: '店铺审核',
-              icon: '',
-              activeMenu: '/operationManage/shopAudit/index'
-            },
-          },
-        ]
-      },
+      // {
+      //   id: 0,
+      //   path: '/operationManage/shopAudit/index',
+      //   component: operationLayout,
+      //   meta: {
+      //     title: '店铺审核',
+      //     icon: ''
+      //   },
+      //   alwaysShow: true,
+      //   children: [{
+      //       id: 1,
+      //       path: '/operationManage/shopAudit/index',
+      //       name: '/operationManage/shopAudit/index',
+      //       component: () => import('@/views/operationManage/shopAudit/index.vue'),
+      //       meta: {
+      //         title: '审核列表',
+      //         icon: ''
+      //       },
+      //     },
+      //     {
+      //       id: 1,
+      //       path: '/operationManage/shopAudit/audit',
+      //       name: '/operationManage/shopAudit/audit',
+      //       hidden:true,
+      //       component: () => import('@/views/operationManage/shopAudit/audit.vue'),
+      //       meta: {
+      //         title: '店铺审核',
+      //         icon: '',
+      //         activeMenu: '/operationManage/shopAudit/index'
+      //       },
+      //     },
+      //   ]
+      // },
+      // {
+      //   id: 0,
+      //   path: '/operationManage/goodsTemplate/index',
+      //   component: operationLayout,
+      //   meta: {
+      //     title: '规格模板',
+      //     icon: ''
+      //   },
+      //   alwaysShow: true,
+      //   children: [{
+      //       id: 1,
+      //       path: '/operationManage/goodsTemplate/index',
+      //       name: '/operationManage/goodsTemplate/index',
+      //       component: () => import('@/views/operationManage/goodsTemplate/index.vue'),
+      //       meta: {
+      //         title: '商品规格',
+      //         icon: ''
+      //       },
+      //     },
+      //     {
+      //       id: 1,
+      //       path: '/operationManage/goodsTemplate/addGoodsTemplate',
+      //       name: '/operationManage/goodsTemplate/addGoodsTemplate',
+      //       hidden:true,
+      //       component: () => import('@/views/operationManage/goodsTemplate/addGoodsTemplate.vue'),
+      //       meta: {
+      //         title: '添加规格',
+      //         icon: '',
+      //         activeMenu: '/operationManage/goodsTemplate/index'
+      //       },
+      //     },
+      //   ]
+      // },
       {
         id: 0,
         path: '/operationManage/goodsType/index',
         component: operationLayout,
         meta: {
-          title: '规格模板',
+          title: '商品分类',
           icon: ''
         },
         alwaysShow: true,
@@ -304,7 +311,7 @@ export let constantRoutes = [{
             name: '/operationManage/goodsType/index',
             component: () => import('@/views/operationManage/goodsType/index.vue'),
             meta: {
-              title: '商品规格',
+              title: '分类列表',
               icon: ''
             },
           },
@@ -315,7 +322,7 @@ export let constantRoutes = [{
             hidden:true,
             component: () => import('@/views/operationManage/goodsType/addGoodsType.vue'),
             meta: {
-              title: '添加规格',
+              title: '添加分类',
               icon: '',
               activeMenu: '/operationManage/goodsType/index'
             },
@@ -355,49 +362,49 @@ export let constantRoutes = [{
           },
         ]
       },
-      {
-        id: 0,
-        path: '/operationManage/goodsAudit/index',
-        component: operationLayout,
-        meta: {
-          title: '商品审核',
-          icon: ''
-        },
-        alwaysShow: true,
-        children: [{
-            id: 1,
-            path: '/operationManage/goodsAudit/index',
-            name: '/operationManage/goodsAudit/index',
-            component: () => import('@/views/operationManage/goodsAudit/index.vue'),
-            meta: {
-              title: '审核列表',
-              icon: ''
-            },
-          },
-          {
-            id: 1,
-            path: '/operationManage/goodsAudit/auditGoods',
-            name: '/operationManage/goodsAudit/auditGoods',
-            hidden:true,
-            component: () => import('@/views/operationManage/goodsAudit/auditGoods.vue'),
-            meta: {
-              title: '商品审核',
-              icon: '',
-              activeMenu: '/operationManage/goodsAudit/index'
-            },
-          },
-          // {
-          //   id: 1,
-          //   path: '/operationManage/goodsAudit/auditDetail',
-          //   name: '/operationManage/goodsAudit/auditDetail',
-          //   component: () => import('@/views/operationManage/goodsAudit/auditDetail.vue'),
-          //   meta: {
-          //     title: '审核详情',
-          //     icon: ''
-          //   },
-          // },
-        ]
-      },
+      // {
+      //   id: 0,
+      //   path: '/operationManage/goodsAudit/index',
+      //   component: operationLayout,
+      //   meta: {
+      //     title: '商品审核',
+      //     icon: ''
+      //   },
+      //   alwaysShow: true,
+      //   children: [{
+      //       id: 1,
+      //       path: '/operationManage/goodsAudit/index',
+      //       name: '/operationManage/goodsAudit/index',
+      //       component: () => import('@/views/operationManage/goodsAudit/index.vue'),
+      //       meta: {
+      //         title: '审核列表',
+      //         icon: ''
+      //       },
+      //     },
+      //     {
+      //       id: 1,
+      //       path: '/operationManage/goodsAudit/auditGoods',
+      //       name: '/operationManage/goodsAudit/auditGoods',
+      //       hidden:true,
+      //       component: () => import('@/views/operationManage/goodsAudit/auditGoods.vue'),
+      //       meta: {
+      //         title: '商品审核',
+      //         icon: '',
+      //         activeMenu: '/operationManage/goodsAudit/index'
+      //       },
+      //     },
+      //     // {
+      //     //   id: 1,
+      //     //   path: '/operationManage/goodsAudit/auditDetail',
+      //     //   name: '/operationManage/goodsAudit/auditDetail',
+      //     //   component: () => import('@/views/operationManage/goodsAudit/auditDetail.vue'),
+      //     //   meta: {
+      //     //     title: '审核详情',
+      //     //     icon: ''
+      //     //   },
+      //     // },
+      //   ]
+      // },
       {
         id: 0,
         path: '/operationManage/orderManage/index',
@@ -501,7 +508,7 @@ export let constantRoutes = [{
         path: '/operationManage/financeManage/index',
         component: operationLayout,
         meta: {
-          title: '分账管理',
+          title: '财务管理',
           icon: ''
         },
         alwaysShow: true,
@@ -514,28 +521,40 @@ export let constantRoutes = [{
             title: '分账列表',
             icon: ''
           },
-        }, ]
-      },
-      {
-        id: 0,
-        path: '/operationManage/ticketManage/index',
-        component: operationLayout,
-        meta: {
-          title: '核销券管理',
-          icon: ''
-        },
-        alwaysShow: true,
-        children: [{
+        }, 
+        {
           id: 1,
-          path: '/operationManage/ticketManage/index',
-          name: '/operationManage/ticketManage/index',
-          component: () => import('@/views/operationManage/ticketManage/index.vue'),
+          path: '/operationManage/financeManage/withdraw',
+          name: '/operationManage/financeManage/withdraw',
+          component: () => import('@/views/operationManage/financeManage/withdraw.vue'),
           meta: {
-            title: '核销券列表',
+            title: '账户余额',
             icon: ''
           },
-        }, ]
+        }, 
+        
+      ]
       },
+      // {
+      //   id: 0,
+      //   path: '/operationManage/ticketManage/index',
+      //   component: operationLayout,
+      //   meta: {
+      //     title: '核销管理',
+      //     icon: ''
+      //   },
+      //   alwaysShow: true,
+      //   children: [{
+      //     id: 1,
+      //     path: '/operationManage/ticketManage/index',
+      //     name: '/operationManage/ticketManage/index',
+      //     component: () => import('@/views/operationManage/ticketManage/index.vue'),
+      //     meta: {
+      //       title: '核销列表',
+      //       icon: ''
+      //     },
+      //   }, ]
+      // },
       {
         id: 0,
         path: '/operationManage/appMenuManage/index',
@@ -1000,79 +1019,47 @@ export let constantRoutes = [{
     children:[
       // {
       //   id: 0,
-      //   path: '/userManage/userManage',
+      //   path: '/userManage/agentManage',
       //   component: operationLayout,
-      //   redirect: '/userManage/userManage',
+      //   redirect: '/userManage/agentManage',
       //   meta: {
-      //     title: '用户管理',
+      //     title: '渠道商',
       //     icon: ''
       //   },
       //   children: [{
       //       id: 1,
-      //       path: '/userManage/userManage',
-      //       name: '/userManage/userManage',
-      //       component: () => import('@/views/userManage/userManage/index.vue'),
+      //       path: '/userManage/agentManage/index',
+      //       name: '/userManage/agentManage/index',
+      //       component: () => import('@/views/userManage/agentManage/index.vue'),
+      //       meta: {
+      //         title: '渠道商列表',
+      //         icon: ''
+      //       },
+      //     },
+      //     {
+      //       id: 1,
+      //       path: '/userManage/agentManage/addAgent',
+      //       name: '/userManage/agentManage/addAgent',
+      //       hidden:true,
+      //       component: () => import('@/views/userManage/agentManage/addAgent.vue'),
       //       meta: {
-      //         title: '用户管理',
+      //         title: '添加渠道商',
       //         icon: ''
       //       },
       //     },
       //     {
       //       id: 1,
-      //       path: '/userManage/addUser',
-      //       name: '/userManage/addUser',
-      //       component: () => import('@/views/userManage/userManage/addUser.vue'),
+      //       path: '/userManage/agentManage/editAgent',
+      //       name: '/userManage/agentManage/editAgent',
+      //       hidden:true,
+      //       component: () => import('@/views/userManage/agentManage/editAgent.vue'),
       //       meta: {
-      //         title: '添加用户',
+      //         title: '编辑渠道商',
       //         icon: ''
       //       },
       //     },
       //   ]
       // },
-      
-      {
-        id: 0,
-        path: '/userManage/agentManage',
-        component: operationLayout,
-        redirect: '/userManage/agentManage',
-        meta: {
-          title: '渠道商',
-          icon: ''
-        },
-        children: [{
-            id: 1,
-            path: '/userManage/agentManage/index',
-            name: '/userManage/agentManage/index',
-            component: () => import('@/views/userManage/agentManage/index.vue'),
-            meta: {
-              title: '渠道商列表',
-              icon: ''
-            },
-          },
-          {
-            id: 1,
-            path: '/userManage/agentManage/addAgent',
-            name: '/userManage/agentManage/addAgent',
-            hidden:true,
-            component: () => import('@/views/userManage/agentManage/addAgent.vue'),
-            meta: {
-              title: '添加渠道商',
-              icon: ''
-            },
-          },
-          {
-            id: 1,
-            path: '/userManage/agentManage/editAgent',
-            name: '/userManage/agentManage/editAgent',
-            hidden:true,
-            component: () => import('@/views/userManage/agentManage/editAgent.vue'),
-            meta: {
-              title: '编辑渠道商',
-              icon: ''
-            },
-          },
-        ]
-      },
       {
         id: 0,
         path: '/userManage/memberManage',
@@ -1137,26 +1124,26 @@ export let constantRoutes = [{
                 },
               ]
       },
-      {
-        id: 0,
-        path: '/setting/commissionManage',
-        component: operationLayout,
-        meta: {
-          title: '渠道佣金',
-          icon: ''
-        },
-        children: [{
-            id: 1,
-            path: '/setting/commissionManage',
-            name: '/setting/commissionManage',
-            component: () => import('@/views//setting/commissionManage/index.vue'),
-            meta: {
-              title: '渠道佣金',
-              icon: ''
-            },
-          },
-        ]
-      },
+      // {
+      //   id: 0,
+      //   path: '/setting/commissionManage',
+      //   component: operationLayout,
+      //   meta: {
+      //     title: '渠道佣金',
+      //     icon: ''
+      //   },
+      //   children: [{
+      //       id: 1,
+      //       path: '/setting/commissionManage',
+      //       name: '/setting/commissionManage',
+      //       component: () => import('@/views//setting/commissionManage/index.vue'),
+      //       meta: {
+      //         title: '渠道佣金',
+      //         icon: ''
+      //       },
+      //     },
+      //   ]
+      // },
       {
         id: 0,
         path: '/setting/setting',

+ 3 - 2
src/utils/config.js

@@ -1,8 +1,8 @@
 /*
  * @Author: wj 1454560336@qq.com
  * @Date: 2024-01-05 16:08:18
- * @LastEditors: error: error: git config user.name & please set dead value or install git && error: git config user.email & please set dead value or install git & please set dead value or install git
- * @LastEditTime: 2024-02-22 16:06:39
+ * @LastEditors: wenjie 1454560336@qq.com
+ * @LastEditTime: 2024-04-01 10:24:34
  * @FilePath: \admin-manage\src\utils\config.js
  * @Description: 124234
  * 
@@ -10,6 +10,7 @@
  */
 // const BASE_URL = 'https://api.zonelife.cn/';
 const BASE_URL = 'https://api.dev.zonelife.cn/';
+http://192.168.110.226:9002
 
 
 exports.BASE_URL = BASE_URL;

+ 3 - 3
src/utils/request.js

@@ -1,8 +1,8 @@
 /*
  * @Author: error: error: git config user.name & please set dead value or install git && error: git config user.email & please set dead value or install git & please set dead value or install git
  * @Date: 2022-08-02 14:50:38
- * @LastEditors: wen 1454560336@qq.com
- * @LastEditTime: 2024-01-17 10:57:10
+ * @LastEditors: wenjie 1454560336@qq.com
+ * @LastEditTime: 2024-03-29 09:24:08
  * @FilePath: \admin-manage\src\utils\request.js
  * @Description: 
  * 
@@ -62,7 +62,7 @@ service.interceptors.response.use(
     // 如果code不是 0, 这被判定为一个错误。
     if (res.state !== "Success") {
       Message({
-        message: res.msg||res.exception.message|| 'Error',
+        message: (!Array.isArray[res.content]?res.content:false)|| res.msg||res.exception.message|| 'Error',
         type: 'error',
         duration: 5 * 1000
       })

+ 2 - 1
src/views/login/index.vue

@@ -40,7 +40,7 @@
         </span>
       </el-form-item>
 
-      <el-button :loading="loading" round type="primary" class="login-btn" @click.native.prevent="handleLogin">登</el-button>
+      <el-button :loading="loading" round type="primary" class="login-btn" @click.native.prevent="handleLogin">登</el-button>
 
     </el-form>
   </div>
@@ -173,6 +173,7 @@ $cursor: #fff;
 
 /* reset element-ui css */
 .login-container {
+  min-width: 900px;
   .el-form-item__content{
     background: #F6F6F6;
     border-radius: 46px 46px 46px 46px;

+ 52 - 15
src/views/merchantManage/addUser.vue

@@ -111,18 +111,26 @@
 </template>
 
 <script>
-import { getShopType,add } from "@/api/user";
+import { getShopType,addOrUpdateAccount,accountDetail } from "@/api/user";
 import {getRegion} from '@/api/payment';
 import {debounce} from '@/utils/index';
 export default {
   data() {
+    var validatePhone = (rule, value, callback) => {
+      let reg = /^[1][3,4,5,6,7,8,9][0-9]{9}$/
+        if (value && reg.test(value)) {
+            callback();
+        }else{
+           callback(new Error('手机号不合法'));
+        }
+      };
     return {
         loading:false,
       setQuery: {
         accountChildType: "",
         accountId: "",
         accountName: "",
-        accountType: "202",
+        accountType: "202",//商户202  渠道201
         address: "",
         city: "",
         contactName: "",
@@ -142,19 +150,21 @@ export default {
         accountChildType: [
           { required: true, message: "请选择账户类型", trigger: "change" },
         ],
-        district: [
-          { required: true, message: "请选择所在区域", trigger: "change" },
-        ],
+        // district: [
+        //   { required: true, message: "请选择所在区域", trigger: "change" },
+        // ],
         contactName: [
           { required: true, message: "请输入联系人", trigger: "blur" },
         ],
         phoneNum: [
           { required: true, message: "请输入手机号", trigger: "blur" },
+            { validator: validatePhone, trigger: 'blur' }
         ],
-        notes: [
-          { required: true, message: "请输入备注", trigger: "blur" },
-        ],
+        // notes: [
+        //   { required: true, message: "请输入备注", trigger: "blur" },
+        // ],
       },
+      isInit:false,
       options: [],
       provinceList: [],//省
       cityList: [],//市
@@ -166,17 +176,24 @@ export default {
       if(val){
         this.getRegion('city',val)
       }
-      this.setQuery.city = ''
-      this.setQuery.district = ''
-      this.cityList = []
-      this.countyList = []
+      if(!this.isInit){
+        console.log(this.isInit);
+
+        this.setQuery.city = ''
+        this.setQuery.district = ''
+        this.cityList = []
+        this.countyList = []
+      }
     }),
     'setQuery.city':debounce(function(val) {
       if(val){
         this.getRegion('county',val)
       }
-       this.setQuery.district = ''
+      if(!this.isInit){
+        console.log(this.isInit);
+        this.setQuery.district = ''
         this.countyList = []
+      }
     }),
   },
   methods: {
@@ -201,12 +218,28 @@ export default {
           }
         }
       });
+    },
+    accountDetail(accountId) {
+      this.isInit = true
+      accountDetail({accountId}).then((res) => {
+        if (res.state == "Success") {
+          this.setQuery = res.content
+          setTimeout(() => {
+            this.isInit = false
+          }, 1000);
+         
+        }
+      });
     },
      save() {
          this.$refs.setQuery.validate((v) => {
              if (v) {
             this.loading = true;
-          add(this.setQuery).then((res) => {
+            let obj = JSON.parse(JSON.stringify(this.setQuery))
+            if(this.$route.query.id){
+              delete obj.phoneNum
+            }
+          addOrUpdateAccount(obj).then((res) => {
             this.loading = false;
             if (res.state == "Success") {
               this.$notify({
@@ -229,7 +262,7 @@ export default {
                 phoneNum: "",
                 province: "",
               };
-              this.$router.push("/userManage/shopManage/index");
+              this.$router.push("/merchantManage/index");
             }
           });
         }
@@ -238,6 +271,10 @@ export default {
   },
 
   created() {
+    if(this.$route.query.title == '编辑商户'){
+      // this.setQuery = JSON.parse( sessionStorage.getItem('shopUser') )
+      this.accountDetail(this.$route.query.id)
+    }
     this.getShopType();
     this.getRegion('province');
   },

+ 168 - 20
src/views/merchantManage/index.vue

@@ -9,6 +9,15 @@
           placeholder="请输入门店名称"
           class="item-width-200 "
         ></el-input>
+        <el-button
+        class="ml10"
+        type="primary"
+        size="small"
+        icon="el-icon-search"
+        @click="handleSearch"
+      >
+        搜索
+      </el-button>
       </div>
       <el-button class="add-btn" type="primary" size="small" @click="handleAdd"
         >添加</el-button
@@ -70,8 +79,14 @@
 
       <el-table-column prop="address" align="center" label="操作">
         <template slot-scope="scope">
-          <el-button type="text" size="small" @click="handleDetail(scope.row)"
-            >详情</el-button
+          <el-button type="text" size="small" @click="handleEdit(scope.row)"
+            >编辑</el-button
+          >
+           <el-button type="text" size="small" @click="handle(scope.row.accountId,scope.row.accountChildType)"
+            >账户</el-button
+          >
+           <el-button type="text" size="small" @click="handleDel(scope.row.accountId)"
+            >删除</el-button
           >
         </template>
       </el-table-column>
@@ -89,12 +104,40 @@
       >
       </el-pagination>
     </div>
+
+    <el-dialog title="银联商户管理" width="70%" :visible.sync="dialogTableVisible">
+    <el-table v-loading="loading1" :data="accountData">
+      <el-table-column align="center" property="shop_name" label="营业名称" ></el-table-column>
+      <el-table-column align="center" property="shop_lic" label="营业执照号码"></el-table-column>
+      <el-table-column align="center" property="mer_no" label="银联子商户账号"></el-table-column>
+      <el-table-column align="center" property="apply_status_msg" label="状态"></el-table-column>
+      <el-table-column align="center" property="address" label="操作">
+         <template slot-scope="scope">
+           <el-button type="text" size="small" @click="handleAccountDetail(scope.row,scope.row.accesser_user_id)"
+            >查看</el-button
+          >
+          <el-button type="text" size="small" @click="handleAccountEdit(scope.row,scope.row.accesser_user_id)"
+            >编辑</el-button
+          >
+          <el-button type="text" size="small" @click="handleAccountDel(scope.row.accesser_user_id)"
+            >删除</el-button
+          >
+        </template>
+      </el-table-column>
+    </el-table>
+     <div slot="footer" class="dialog-footer">
+    <el-button @click="dialogTableVisible = false">关闭</el-button>
+    <el-button type="primary" @click="handleAccountAdd">添加</el-button>
+  </div>
+  </el-dialog>
+
   </div>
 </template>
   
   <script>
   import {debounce} from '@/utils/index';
-  import { getList,getShopType } from '@/api/user'
+  import { getList,getShopType,delAccount } from '@/api/user'
+  import { complexList,deleteComplex} from '@/api/payment';
   
 export default {
   name: "shopManage",
@@ -102,8 +145,12 @@ export default {
     return {
       that:this,
       tableData: [],
+      accountData:[],
       options: [],
       loading: false,
+      loading1: false,
+      dialogTableVisible:false,
+      accountId:'',//当前弹框的主体id
       query: {
         shopName: "",
         currentPage: 1,
@@ -112,15 +159,14 @@ export default {
       total: 0,
     };
   },
-  watch: {
-    query: {
-      handler: debounce(function(val) {
-        this.getList()
-        
-      }),
-      deep:true
-    }
-  },
+  // watch: {
+  //   query: {
+  //     handler: debounce(function(val) {
+  //       this.getList()
+  //     }),
+  //     deep:true
+  //   }
+  // },
   filters: {
     filterType: function(val,that) {
       let msg 
@@ -129,23 +175,97 @@ export default {
           msg = item.label
         }
       })
+      console.log(msg);
       return msg
     }
   },
   methods: {
+    handleSearch(){
+      this.query.currentPage = 1
+      this.getList();
+
+    },
+    handleAccountAdd(){
+      this.$router.push({path:"/operationManage/shopManage/shopType",query:{id:this.accountId,mode:'add'}});
+
+    },
+    handleAccountDetail(row,accesseId){
+      let type
+      if(row.reg_mer_type == '02'){
+        type = 1
+      }else if(row.reg_mer_type == '01'){
+        type = 2
+      }else if(row.reg_mer_type == '00'){
+        type = 3
+      }else if(row.reg_mer_type == '03'){
+        type = 4
+      }
+      this.$router.push({path:"/operationManage/shopManage/shopAdd"+type,query:{id:this.accountId,accesseId,mode:'detail'}});
+
+    },
+    handleAccountEdit(row,accesseId){
+       let type
+      if(row.reg_mer_type == '02'){
+        type = 1
+      }else if(row.reg_mer_type == '01'){
+        type = 2
+      }else if(row.reg_mer_type == '00'){
+        type = 3
+      }else if(row.reg_mer_type == '03'){
+        type = 4
+      }
+      this.$router.push({path:"/operationManage/shopManage/shopAdd"+type,query:{id:this.accountId,accesseId,mode:'edit'}});
+
+    },
+    handleAccountDel(accesseId){
+        this.$confirm('此操作将永久删除该数据, 是否继续?', '提示', {
+          confirmButtonText: '确定',
+          cancelButtonText: '取消',
+          type: 'warning'
+        }).then(() => {
+          this.deleteComplex(this.accountId,accesseId)
+        })
+    },
     handleAdd() {
-      this.$router.push("/userManage/shopManage/addUser");
+      this.$router.push("/merchantManage/addUser");
+    },
+    handleDel(accountId){
+        this.$confirm('此操作将永久删除该数据, 是否继续?', '提示', {
+          confirmButtonText: '确定',
+          cancelButtonText: '取消',
+          type: 'warning'
+        }).then(() => {
+         delAccount({accountId}).then(res=>{
+              if(res.state == 'Success'){
+                  this.$notify({
+                    title: '成功',
+                    message: '操作成功',
+                    type: 'success'
+                  });
+                  this.query.currentPage = 1
+                  this.getList()
+              }
+          })
+        })
     },
-    handle(item, index) {
-      this.$set(item, "status", this.tableData[index].status == 1 ? 0 : 1);
+    handle(id,type) {
+      this.accountId = id
+       this.dialogTableVisible = true
+        this.complexList(id)
+      // if(type == 302){//入驻商户
+      //   this.dialogTableVisible = true
+      //   this.complexList(id)
+      // }else{
+
+      // }
     },
-    handleDel(){},
-    handleDetail(row) {
+    handleEdit(row) {
       sessionStorage.setItem('shopUser',JSON.stringify(row))
       this.$router.push({
-        path:"/userManage/shopManage/shopDetail",
+        path:"/merchantManage/addUser",
         query:{
-          id:row.accountId
+          id:row.accountId,
+          title:'编辑商户'
         }
       });
     },
@@ -163,7 +283,7 @@ export default {
       getList(this.query).then(res=>{
         this.loading = false;
           if(res.state == 'Success'){
-            this.tableData = res.content
+            this.tableData = res.content.records
             this.total = res.content.total
           }
       })
@@ -182,9 +302,37 @@ export default {
         }
       });
     },
+    complexList(epId){
+      this.loading1 = true
+      complexList({
+        "accesseId": "",
+        "epId": epId
+      }).then(res=>{
+        this.loading1 = false
+        if (res.state == "Success") {
+            this.accountData = res.content
+        }
+      })
+    },
+    deleteComplex(epId,accesseId){
+      deleteComplex({
+        accesseId,
+        epId
+      }).then(res=>{
+        if (res.state == "Success") {
+            this.$notify({
+                title: '成功',
+                message: '操作成功',
+                type: 'success'
+              });
+              this.complexList(epId)
+        }
+      })
+    },
   },
   created() {
     this.getList()
+    this.getShopType()
   },
 };
 </script>

+ 21 - 3
src/views/operationManage/advertisingManage/addAdv.vue

@@ -53,6 +53,18 @@
           class="item-width-300"
         ></el-input>
       </el-form-item>
+      <el-form-item label="展示位置顺序:" prop="showSort">
+        <el-input
+          v-model.number="setQuery.showSort"
+          class="item-width-300"
+        ></el-input>
+      </el-form-item>
+       <el-form-item label="是否显示:">
+          <el-radio-group v-model="setQuery.status">
+          <el-radio :label="1">显示</el-radio>
+          <el-radio :label="2">隐藏</el-radio>
+        </el-radio-group>
+      </el-form-item>
 
     </el-form>
 
@@ -79,15 +91,17 @@ export default {
           "advertsType": 1,
           "jumpUrl": "",
           "menuId": '',
-          "sort": 0
+          "sort": 0,
+          "showSort":0,
+          "status":1
         },
       options:[
         {
-          label:'惠生活',
+          label:'首页Banner',
           value:1
         },
         {
-          label:'研学',
+          label:'首页广告位',
           value:2
         }
       ]
@@ -101,6 +115,7 @@ export default {
         advertsName: [{ required: true, message: "请输入广告名称", trigger: "blur" }],
         jumpUrl: [{ required: true, message: "请输入调整链接", trigger: "blur" }],
         sort: [{ required: true, message: "请输入排序权重", trigger: "blur" }],
+        showSort: [{ required: true, message: "请输入广告顺序", trigger: "blur" }],
       }
     }
   },
@@ -133,6 +148,9 @@ export default {
     },
   },
   created () {
+    if(this.$route.query.mode == 'edit'){
+        this.setQuery = JSON.parse(sessionStorage.getItem('advItem'))
+    }
   },
 };
 </script>

+ 42 - 13
src/views/operationManage/advertisingManage/index.vue

@@ -18,6 +18,15 @@
           >
           </el-option>
         </el-select>
+        <el-button
+        class="ml10"
+        type="primary"
+        size="small"
+        icon="el-icon-search"
+        @click="handleSearch"
+      >
+        搜索
+      </el-button>
       </div>
       <el-button class="add-btn" type="primary" size="small" @click="handleAdd"
         >添加</el-button
@@ -66,6 +75,16 @@
         show-overflow-tooltip
       >
       </el-table-column>
+      <el-table-column
+        prop="sort"
+        align="center"
+        label="状态"
+        show-overflow-tooltip
+      >
+       <template slot-scope="scope">
+          <span>{{scope.row.status == 1?'显示':'隐藏'}}</span>
+        </template>
+      </el-table-column>
       <el-table-column prop="address" align="center" label="操作">
         <template slot-scope="scope">
           <el-button type="text" size="small" @click="handleEdit(scope.row)">编辑</el-button>
@@ -99,18 +118,17 @@ export default {
       tableData: [],
        options:[
         {
-          label:'惠生活',
+          label:'首页banner',
           value:1
         },
         {
-          label:'研学',
+          label:'首页广告位',
           value:2
         }
       ],
       loading: false,
       query: {
-        menuId: "",
-        bannerName: "",
+        advertsType:'',
         currentPage: 1,
         pageSize: 10,
       },
@@ -118,18 +136,29 @@ export default {
       total: 0,
     };
   },
-  watch: {
-    query: {
-      handler: debounce(function (val) {
-    this.advList()
-      }),
-      deep: true,
-    },
-  },
+  // watch: {
+  //   query: {
+  //     handler: debounce(function (val) {
+  //       this.advList()
+  //     }),
+  //     deep: true,
+  //   },
+  // },
   methods: {
+    handleSearch(){
+      this.query.currentPage = 1
+      this.advList();
+
+    },
     handleEdit(row){
       sessionStorage.setItem('advItem',JSON.stringify(row))
-      this.$router.push('/operationManage/advertisingManage/editAdv')
+      this.$router.push({
+        path:'/operationManage/advertisingManage/addAdv',
+        query:{
+          mode:'edit',
+          title:'编辑广告位'
+        }
+      })
     },
     handleAdd(){
       this.$router.push('/operationManage/advertisingManage/addAdv')

+ 17 - 42
src/views/operationManage/appMenuManage/addMenu.vue

@@ -12,36 +12,21 @@
           class="item-width-300"
         ></el-input>
       </el-form-item>
-    <el-form-item label="菜单编码:" prop="menuCode">
-        <el-input
-          v-model="setQuery.menuCode"
-          class="item-width-300"
-        ></el-input>
-      </el-form-item>
+
        <el-form-item label="菜单上方文字:">
         <el-input
           v-model="setQuery.labelAbove"
           class="item-width-300"
         ></el-input>
       </el-form-item>
-      <el-form-item label="菜单下方文字:">
-        <el-input
-          v-model="setQuery.labelBelow"
-          class="item-width-300"
-        ></el-input>
-      </el-form-item>
+
        <el-form-item label="域名地址:" prop="domainUrl">
         <el-input
           v-model="setQuery.domainUrl"
           class="item-width-300"
         ></el-input>
       </el-form-item>
-        <el-form-item label="链接地址:" prop="linkUrl">
-        <el-input
-          v-model="setQuery.linkUrl"
-          class="item-width-300"
-        ></el-input>
-      </el-form-item>
+
        <el-form-item label="排序:" prop="sort">
         <el-input
           v-model.number="setQuery.sort"
@@ -54,20 +39,13 @@
         v-model="setQuery.status"
         active-text="显示"
         inactive-text="隐藏"
-        active-value="2"
-        inactive-value="1"
+        :active-value="2"
+        :inactive-value="1"
         active-color="#13ce66"
         inactive-color="#ff4949">
         </el-switch>
       </el-form-item>
 
-    <el-form-item label="备注:" prop="note">
-        <el-input
-          v-model="setQuery.note"
-          class="item-width-300"
-        ></el-input>
-      </el-form-item>
-
       <el-form-item label="图标:" prop="imgUrl">
         <Upload
           type="imgUrl"
@@ -79,17 +57,7 @@
           @uploadEnd="uploadEnd"
         ></Upload>
       </el-form-item>
-      <el-form-item label="分类顶部图:" prop="secondaryImg">
-        <Upload
-          type="secondaryImg"
-          id="secondaryImg"
-          width="150px"
-          height="150px"
-          uploadType="SHOP_INFO"
-          :imgUrl="setQuery.secondaryImg"
-          @uploadEnd="uploadEnd"
-        ></Upload>
-      </el-form-item>
+    
 
     </el-form>
 
@@ -112,6 +80,8 @@ export default {
     return {
         loading:false,
       setQuery: {
+        "menuLevel":1,
+        "parentId":'',
         "domainUrl": "",
         "id": 0,
         "imgUrl": "",
@@ -127,13 +97,10 @@ export default {
       },
       rules: {
         menuName: [{ required: true, message: "请输入菜单名称", trigger: "blur" }],
-        menuCode: [{ required: true, message: "请输入菜单编码", trigger: "blur" }],
-        // domainUrl: [{ required: true, message: "请输入域名地址", trigger: "blur" }],
-        linkUrl: [{ required: true, message: "请输入链接地址", trigger: "blur" }],
+        domainUrl: [{ required: true, message: "请输入链接地址", trigger: "blur" }],
         imgUrl: [{ required: true, message: "请输入图标", trigger: "blur" }],
         sort: [{ required: true, message: "请输入权重", trigger: "blur" }],
         secondaryImg: [{ required: true, message: "请上传分类顶部图", trigger: "change" }],
-        note: [{ required: true, message: "请输入备注", trigger: "blur" }],
       },
     };
   },
@@ -164,6 +131,14 @@ export default {
       });
     },
   },
+  created () {
+    if(this.$route.query.title == '编辑菜单'){
+      this.setQuery = JSON.parse(sessionStorage.getItem('menuItem')) 
+    }else{
+      this.setQuery.parentId = this.$route.query.parentId
+      this.setQuery.menuLevel = this.$route.query.menuLevel || 1
+    }
+  },
 };
 </script>
 

+ 31 - 16
src/views/operationManage/appMenuManage/index.vue

@@ -33,13 +33,6 @@
         show-overflow-tooltip
       >
       </el-table-column>
-      <el-table-column
-        prop="menuCode"
-        align="center"
-        label="菜单编码"
-        show-overflow-tooltip
-      >
-      </el-table-column>
       <el-table-column
         prop="sort"
         align="center"
@@ -54,13 +47,7 @@
         show-overflow-tooltip
       >
       </el-table-column>
-       <el-table-column
-        prop="linkUrl"
-        align="center"
-        label="链接地址"
-        show-overflow-tooltip
-      >
-      </el-table-column>
+       
        <el-table-column
         prop="status"
         align="center"
@@ -74,6 +61,7 @@
 
       <el-table-column prop="address" align="center" label="操作">
         <template slot-scope="scope">
+          <el-button type="text" size="small" v-if="$route.query.title != '二级菜单'" @click="handle(scope.row.id)">查看下级</el-button>
           <el-button type="text" size="small" @click="handleEdit(scope.row)">编辑</el-button>
           <el-button type="text" size="small" @click="handleDel(scope.row.id)">删除</el-button>
         </template>
@@ -107,6 +95,7 @@ export default {
       query: {
         status: "",
         menuName: "",
+        parentId:'',
         currentPage: 1,
         pageSize: 10,
       },
@@ -123,12 +112,37 @@ export default {
     },
   },
   methods: {
+    handle(id){
+      let title
+      if(!this.$route.query.title){
+          title = '二级菜单'
+      }
+         this.$router.push({
+            path:'/operationManage/appMenuManage/index',
+            query:{
+                parentId:id,
+                title
+            }
+         })
+    },
     handleEdit(row){
       sessionStorage.setItem('menuItem',JSON.stringify(row))
-      this.$router.push('/operationManage/appMenuManage/editMenu')
+      this.$router.push({
+        path:'/operationManage/appMenuManage/addMenu',
+        query:{
+          title:'编辑菜单',
+        }
+      })
     },
     handleAdd(){
-      this.$router.push('/operationManage/appMenuManage/addMenu')
+      this.$router.push({
+         path:'/operationManage/appMenuManage/addMenu',
+         query:{
+           title:'新增菜单',
+           parentId:this.$route.query.parentId,
+           menuLevel:this.$route.query.title == '二级菜单'?2:1
+         }
+      })
     },
     // 点击删除
     handleDel(id) {
@@ -170,6 +184,7 @@ export default {
     }
   },
   created() {
+    this.query.parentId = this.$route.query.parentId
     this.getMenu()
   },
 };

+ 37 - 46
src/views/operationManage/bannerManage/index.vue

@@ -24,6 +24,15 @@
           >
           </el-option>
         </el-select>
+        <el-button
+        class="ml10"
+        type="primary"
+        size="small"
+        icon="el-icon-search"
+        @click="handleSearch"
+      >
+        搜索
+      </el-button>
       </div>
       <el-button class="add-btn" type="primary" size="small" @click="handleAdd"
         >添加</el-button
@@ -61,6 +70,9 @@
         label="栏目"
         show-overflow-tooltip
       >
+       <template slot-scope="scope">
+          <span>{{scope.row.menuId |filterMenu(that)}}</span>
+        </template>
       </el-table-column>
       <el-table-column
         prop="jumpUrl"
@@ -109,46 +121,9 @@ export default {
   name: "bannerManage",
   data() {
     return {
-     
+     that:this,
       tableData: [],
-      options: [
-        // {
-        //   value: "0",
-        //   label: "全部类型",
-        // },
-        // {
-        //   value: "1",
-        //   label: "加油充电",
-        // },
-        // {
-        //   value: "2",
-        //   label: "酒店民宿",
-        // },
-        // {
-        //   value: "3",
-        //   label: "餐饮美食",
-        // },
-        // {
-        //   value: "4",
-        //   label: "慧妍学",
-        // },
-        // {
-        //   value: "5",
-        //   label: "超市购物",
-        // },
-        // {
-        //   value: "6",
-        //   label: "健身运动",
-        // },
-        // {
-        //   value: "7",
-        //   label: "医疗健康",
-        // },
-        // {
-        //   value: "8",
-        //   label: "家政服务",
-        // },
-      ],
+      options: [],
       loading: false,
       query: {
         menuId: "",
@@ -160,15 +135,31 @@ export default {
       total: 0,
     };
   },
-  watch: {
-    query: {
-      handler: debounce(function (val) {
-    this.bannerList()
-      }),
-      deep: true,
-    },
+  // watch: {
+  //   query: {
+  //     handler: debounce(function (val) {
+  //       this.bannerList()
+  //     }),
+  //     deep: true,
+  //   },
+  // },
+  filters: {
+    filterMenu: function(value,that) {
+      let msg
+      that.options.map(item=>{
+          if(item.value == value){
+            msg = item.label
+          }
+      })
+      return msg;
+    }
   },
   methods: {
+    handleSearch(){
+      this.query.currentPage = 1
+      this.bannerList();
+
+    },
     handleEdit(row){
       sessionStorage.setItem('bannerItem',JSON.stringify(row))
       this.$router.push('/operationManage/bannerManage/editBanner')

+ 47 - 59
src/views/operationManage/financeManage/index.vue

@@ -1,27 +1,6 @@
 <template>
   <div class="financeManage app-container">
-    <div class="data-box">
-      <div class="item">
-        <div class="label">账户余额</div>
-        <div class="value">¥100.00</div>
-      </div>
-      <div class="item">
-        <div class="label">冻结金额</div>
-        <div class="value">¥100.00</div>
-      </div>
-      <div class="item">
-        <div class="label">待结算金额</div>
-        <div class="value">¥100.00</div>
-      </div>
-      <div class="item">
-        <div class="label">可提现金额</div>
-        <div class="value">¥100.00</div>
-      </div>
-      <div class="item">
-        <div class="label">交易笔数</div>
-        <div class="value">¥100.00</div>
-      </div>
-    </div>
+   
     <div class="search">
         <el-input
           v-model="query.noOrGName"
@@ -43,6 +22,15 @@
         end-placeholder="结束日期"
         align="right">
     </el-date-picker>
+     <el-button
+        class="ml10"
+        type="primary"
+        size="small"
+        icon="el-icon-search"
+        @click="handleSearch"
+      >
+        搜索
+      </el-button>
     </div>
 
     <el-table
@@ -60,14 +48,11 @@
       >
       </el-table-column>
       <el-table-column
-        prop="createTime"
+        prop="payTime"
         align="center"
         label="订单时间"
         show-overflow-tooltip
       >
-        <template slot-scope="scope">
-          {{timeFormat(scope.row.createTime)}}
-        </template>
       </el-table-column>
       <el-table-column
         prop="shopName"
@@ -75,6 +60,9 @@
         label="店铺名称"
         show-overflow-tooltip
       >
+        <template slot-scope="scope">
+          {{scope.row.shopInfo.shopName}}
+        </template>
       </el-table-column>
       <el-table-column
         prop="payAmount"
@@ -82,9 +70,7 @@
         label="订单金额"
         show-overflow-tooltip
       >
-        <template slot-scope="scope">
-          {{scope.row.transfer.totalAmount}}
-        </template>
+      
       </el-table-column>
       <el-table-column
         prop="createTime"
@@ -93,17 +79,27 @@
         show-overflow-tooltip
       >
       <template slot-scope="scope">
-          {{scope.row.transfer.platAmount}}
+          {{scope.row.platform}}
         </template>
       </el-table-column>
        <el-table-column
         prop="createTime"
         align="center"
-        label="店铺分账金额"
+        label="购买店铺分账金额"
         show-overflow-tooltip
       >
       <template slot-scope="scope">
-          {{scope.row.transfer.shopAmount}}
+          {{scope.row.buyShop}}
+        </template>
+      </el-table-column>
+       <el-table-column
+        prop="createTime"
+        align="center"
+        label="核销店铺分账金额"
+        show-overflow-tooltip
+      >
+      <template slot-scope="scope">
+          {{scope.row.useShop}}
         </template>
       </el-table-column>
        <el-table-column
@@ -113,7 +109,7 @@
         show-overflow-tooltip
       >
       <template slot-scope="scope">
-        <span :class="[scope.row.transfer.finish?'green':'red']"> {{scope.row.transfer.finish ?'分账成功':'未分账'}}</span>
+        <span :class="[scope.row.transfer?'green':'red']"> {{scope.row.transfer ?'分账成功':'未分账'}}</span>
         </template>
       </el-table-column>
     </el-table>
@@ -124,7 +120,7 @@
         background
         :current-page="query.page"
         :page-sizes="[10, 20, 30, 40]"
-        :page-size="query.pageSize"
+        :page-size="query.size"
         layout="total, sizes, prev, pager, next, jumper"
         :total="total"
       >
@@ -167,7 +163,7 @@ export default {
         startTime: "",
         endTime: "",
         page: 1,
-        pageSize: 10,
+        size: 10,
       },
       total: 0,
       pickerOptions: {
@@ -200,12 +196,12 @@ export default {
     };
   },
  watch: {
-    query: {
-      handler: debounce(function(val) {
-        this.getTransferList()
-      }),
-      deep:true
-    },
+    // query: {
+    //   handler: debounce(function(val) {
+    //     this.getTransferList()
+    //   }),
+    //   deep:true
+    // },
     date(val){
       if(val){
         this.query.startTime = val[0]
@@ -217,15 +213,24 @@ export default {
     }
   },
   methods: {
+     handleSearch(){
+      this.query.page = 1
+      this.getTransferList();
+
+    },
     timeFormat(val){
       return timeFormat(val)
     },
     handleSizeChange(val) {
       this.query.page = 1;
-      this.query.pageSize = val;
+      this.query.size = val;
+      this.getTransferList();
+
     },
     handleCurrentChange(val) {
       this.query.page = val;
+      this.getTransferList();
+
     },
     getTransferList(){
       this.loading = true
@@ -247,25 +252,8 @@ export default {
 </script>
   
 <style lang="scss" scoped>
-@import '@/styles/element-variables.scss';
 .financeManage {
 
-  .data-box{
-    display: flex;
-    .item{
-      flex: 1;
-      padding: 15px 10px 20px;
-      .label{
-        font-size: 12px;
-        color: #222;
-      }
-      .value{
-        font-size: 24px;
-        color: $--color-primary;
-        margin-top: 10px;
-      }
-    }
-  }
   
 }
 

+ 469 - 0
src/views/operationManage/financeManage/withdraw.vue

@@ -0,0 +1,469 @@
+<template>
+  <div class="withdraw app-container">
+   
+   <div class="data-box">
+
+    <div class="left" v-loading="moneyLoading">
+      <div class="item">
+        <div class="label-box">
+          <div class="text"> 帐户资金余额(元)</div>
+            <el-tooltip class="item" effect="dark" content="交易完成的订单金额=可提现金额" placement="top-start">
+            <i class="el-icon-warning-outline"></i>
+          </el-tooltip>
+        </div>
+
+        <div class="value-box">
+          <div class="text">{{money.ready}}</div>
+           <el-button class="btn" size="small" type="primary" @click="handleWithdraw">提现</el-button>
+        </div>
+      </div>
+       <div class="item">
+        <div class="label-box">
+          <div class="text">待结算金额(元)</div>
+            <el-tooltip class="item" effect="dark" content="交易未完成的订单总金额,消费者确认收货/核销48小时后后将自动转入帐户资金余额" placement="top-start">
+            <i class="el-icon-warning-outline"></i>
+          </el-tooltip>
+        </div>
+
+        <div class="value-box">
+          <div class="text">{{money.await}}</div>
+        </div>
+      </div>
+       <div class="item">
+        <div class="label-box">
+          <div class="text"> 不可用现金额(元)</div>
+            <el-tooltip class="item" effect="dark" content="提现中或者退款中的冻结帐户资金余额" placement="top-start">
+            <i class="el-icon-warning-outline"></i>
+          </el-tooltip>
+        </div>
+
+        <div class="value-box">
+          <div class="text">{{money.freeze}}</div>
+        </div>
+      </div>
+
+    </div>
+    <div class="right">
+      {{shopName}}
+    </div>
+   </div>
+   
+     <div class="search">
+        <el-input
+          v-model="query.noOrGName"
+          size="small"
+          placeholder="请输入订单编号"
+          class="item-width-200 "
+        ></el-input>
+
+        <el-date-picker
+          size="small"
+        v-model="date"
+        value-format="timestamp"
+        class="item-width-400 ml10"
+        type="daterange"
+        :default-time="['00:00:00','23:59:59']"
+        :picker-options="pickerOptions"
+        range-separator="至"
+        start-placeholder="开始日期"
+        end-placeholder="结束日期"
+        align="right">
+    </el-date-picker>
+    <el-button
+        class="ml10"
+        type="primary"
+        size="small"
+        icon="el-icon-search"
+        @click="handleSearch"
+      >
+        搜索
+      </el-button>
+    </div>
+
+    <el-table
+      :data="tableData"
+      tooltip-effect="dark"
+      border
+      v-loading="loading"
+      style="width: 100%"
+    >
+     
+      <el-table-column
+        prop="payTime"
+        align="center"
+        label="订单时间"
+        show-overflow-tooltip
+      >
+      </el-table-column>
+      <el-table-column
+        prop="shopName"
+        align="center"
+        label="商品名称"
+        show-overflow-tooltip
+      >
+        <template slot-scope="scope">
+          {{scope.row.goodsInfo.goodsName}}
+        </template>
+      </el-table-column>
+       <el-table-column
+        align="center"
+        label="交易订单号"
+        prop="orderNo"
+        show-overflow-tooltip
+      >
+      </el-table-column>
+      <el-table-column
+        prop="createTime"
+        align="center"
+        label="金额(元)"
+        show-overflow-tooltip
+      >
+      <template slot-scope="scope">
+        <span class="green">+{{scope.row.platform}}</span>
+        </template>
+      </el-table-column>
+  
+       <el-table-column
+        prop="createTime"
+        align="center"
+        label="状态"
+        show-overflow-tooltip
+      >
+      <template slot-scope="scope">
+        <span :class="[scope.row.transfer?'green':'red']"> {{scope.row.transfer ?'交易成功':'交易未完成'}}</span>
+        </template>
+      </el-table-column>
+    </el-table>
+    <div class="page-box">
+      <el-pagination
+        @size-change="handleSizeChange"
+        @current-change="handleCurrentChange"
+        background
+        :current-page="query.page"
+        :page-sizes="[10, 20, 30, 40]"
+        :page-size="query.size"
+        layout="total, sizes, prev, pager, next, jumper"
+        :total="total"
+      >
+      </el-pagination>
+    </div>
+
+
+    <el-dialog title="提现" width="900px" :close-on-click-modal="false" :visible.sync="dialogFormVisible">
+        <div class="notice">共 {{total1}}笔订单,提现金额 {{money.ready}}元</div>
+    <el-table
+        :data="tableData1"
+        tooltip-effect="dark"
+        border
+        v-loading="loading1"
+        style="width: 100%"
+        >
+        
+        <el-table-column
+            prop="createTime"
+            align="center"
+            label="订单时间"
+            show-overflow-tooltip
+        >
+            <template slot-scope="scope">
+            {{timeFormat(Number(scope.row.createTime) )}}
+            </template>
+        </el-table-column>
+        <el-table-column
+            prop="goodsName"
+            align="center"
+            label="商品名称"
+            show-overflow-tooltip
+        >
+        </el-table-column>
+        <el-table-column
+            align="center"
+            label="订单编号"
+            prop="orderNo"
+            show-overflow-tooltip
+        >
+        </el-table-column>
+        <el-table-column
+            prop="Amount"
+            align="center"
+            label="金额"
+            show-overflow-tooltip
+        >
+        <template slot-scope="scope">
+            <span class="green"> +{{scope.row.Amount}}</span>
+            </template>
+        </el-table-column>
+        <el-table-column
+            prop="createTime"
+            align="center"
+            label="状态"
+            show-overflow-tooltip
+        >
+        <template slot-scope="scope">
+            {{scope.row.transferAll?'交易成功':'交易未完成'}}
+            </template>
+        </el-table-column>
+        </el-table>
+        <div class="page-box">
+        <el-pagination
+            @size-change="handleSizeChange1"
+            @current-change="handleCurrentChange1"
+            background
+            :current-page="query1.page"
+            :page-sizes="[10, 20, 30, 40]"
+            :page-size="query1.size"
+            layout="total, sizes, prev, pager, next, jumper"
+            :total="total1"
+        >
+        </el-pagination>
+        </div>
+      <div slot="footer" class="dialog-footer">
+        <el-button @click="dialogFormVisible = false">取 消</el-button>
+        <el-button type="primary" :disabled="!tableData1.length" :loading="btnLoading" @click="withdraw">全部提现</el-button>
+      </div>
+  </el-dialog>
+
+  </div>
+</template>
+  
+  <script>
+  import {withdrawList,withdrawals,getDetail} from '@/api/order'
+  import {getTransferList} from '@/api/payment'
+  
+  import {debounce,timeFormat} from '@/utils/index'
+export default {
+  name: "withdraw",
+  data() {
+    return {
+      date:'',
+      shopName:localStorage.getItem('shopName'),
+      dialogFormVisible:false,
+      tableData: [],
+      tableData1: [],
+      btnLoading: false,
+      loading: false,
+      loading1: false,
+      moneyLoading: false,
+       query: {
+        noOrGName: "",
+        startTime: "",
+        endTime: "",
+        page: 1,
+        size: 10,
+      },
+       query1: {
+        page: 1,
+        size: 10,
+      },
+      total: 0,
+      total1: 0,
+      money:{
+        await:0,
+        freeze:0,
+        ready:0
+      },
+      pickerOptions: {
+          shortcuts: [{
+            text: '最近一周',
+            onClick(picker) {
+              const end = new Date();
+              const start = new Date();
+              start.setTime(start.getTime() - 3600 * 1000 * 24 * 6);
+              picker.$emit('pick', [start, end]);
+            }
+          }, {
+            text: '最近一个月',
+            onClick(picker) {
+              const end = new Date();
+              const start = new Date();
+              start.setTime(start.getTime() - 3600 * 1000 * 24 * 30);
+              picker.$emit('pick', [start, end]);
+            }
+          }, {
+            text: '最近三个月',
+            onClick(picker) {
+              const end = new Date();
+              const start = new Date();
+              start.setTime(start.getTime() - 3600 * 1000 * 24 * 90);
+              picker.$emit('pick', [start, end]);
+            }
+          }]
+        },
+    };
+  },
+  watch: {
+    // query: {
+    //   handler: debounce(function(val) {
+    //     this.query.page = 1
+    //     this.getTransferList()
+    //   }),
+    //   deep:true
+    // },
+    date(val){
+      if(val){
+        this.query.startTime = val[0]
+        this.query.endTime = val[1]
+      }else{
+        this.query.startTime = ''
+        this.query.endTime = ''
+      }
+    }
+  },
+  methods: {
+    handleSearch(){
+      this.query.page = 1
+      this.getTransferList();
+      this.getDetail()
+    },
+    withdraw(){
+         this.$confirm(`此操作将提现${this.money.ready}元, 是否继续?`, '提示', {
+          confirmButtonText: '确定',
+          cancelButtonText: '取消',
+          type: 'warning'
+        }).then(() => {
+             this.btnLoading = true
+            withdrawals().then(res=>{
+                this.btnLoading = false
+                if(res.state == 'Success'){
+                this.dialogFormVisible = true
+                 this.$notify({
+                    title: "成功",
+                    message: "操作成功",
+                    type: "success",
+                });
+                }
+            })
+        })
+       
+    },
+    
+    handleWithdraw(){
+      this.dialogFormVisible = true
+      this.withdrawList()
+
+    },
+    timeFormat(val){
+      return timeFormat(val)
+    },
+    handleSizeChange(val) {
+      this.query.page = 1;
+      this.query.size = val;
+      this.getTransferList();
+      
+    },
+    handleCurrentChange(val) {
+      this.query.page = val;
+      this.getTransferList();
+
+    },
+     handleSizeChange1(val) {
+      this.query1.page = 1;
+      this.query1.size = val;
+      this.withdrawList()
+    },
+    handleCurrentChange1(val) {
+      this.query1.page = val;
+      this.withdrawList()
+
+    },
+    withdrawList(){
+      this.loading1 = true
+      let obj = JSON.parse(JSON.stringify(this.query1))
+      // --obj.page
+      withdrawList(obj).then(res=>{
+        this.loading1 = false
+        if(res.state == 'Success'){
+          this.tableData1 = res.content.content
+          this.total1 = res.content.totalElements
+        }
+      })
+    },
+     getTransferList(){
+      this.loading = true
+      let obj = JSON.parse(JSON.stringify(this.query))
+      --obj.page
+      getTransferList(obj).then(res=>{
+        this.loading = false
+        if(res.state == 'Success'){
+          this.tableData = res.content.content
+          this.total = res.content.totalElements
+        }
+      })
+    },
+    getDetail(){
+      this.moneyLoading = true
+      getDetail().then(res=>{
+        this.moneyLoading = false
+         if(res.state == 'Success'){
+          this.money = res.content
+          
+        }
+      })
+    }
+  },
+  created() {
+   this.getTransferList()
+   this.getDetail()
+  },
+};
+</script>
+  
+<style lang="scss" scoped>
+// @import '@/styles/element-variables.scss';
+.withdraw {
+
+  .data-box{
+    display: flex;
+    justify-content: space-between;
+    margin-bottom: 30px;
+     .left,.right{
+      background: rgba(250, 250, 250, 1);
+      border-radius: 12px;
+      padding: 30px;
+    }
+    .left{
+      flex: 1;
+     display: flex;
+     .item{
+      flex: 1;
+      .label-box{
+        display: flex;
+        align-items: center;
+        .text{
+          color: #666;
+          font-size: 16px;
+        }
+        i{
+          width: 16px;
+        }
+      }
+      .value-box{
+         display: flex;
+        align-items: center;
+        margin-top: 30px;
+        .text{
+          color: #222;
+          font-size: 26px;
+          font-weight: 600;
+        }
+        .btn{
+          margin-left: 20px;
+        }
+      }
+     }
+    }
+    .right{
+      width: 350px;
+      font-size: 16px;
+      margin-left: 30px;
+      display: flex;
+      align-items: center;
+    }
+  }
+  .notice{
+    margin-bottom: 20px;
+  }
+}
+
+</style>
+  

+ 0 - 471
src/views/operationManage/goodsManage/addGoods.vue

@@ -1,471 +0,0 @@
-<template>
-  <div class="goodsDetail app-container">
-    <el-form
-      :model="setQuery"
-      ref="setQuery"
-      :rules="rules"
-      label-width="130px"
-    >
-      <el-form-item label="商品名称:" prop="goodsName">
-        <el-input
-          v-model="setQuery.goodsName"
-          disabled
-          :maxlength="11"
-          class="item-width-300"
-        ></el-input>
-      </el-form-item>
-       <el-form-item label="商品类型:" prop="goodsType">
-        <el-select v-model="setQuery.goodsType" disabled class="item-width-300" placeholder="请选择商品类型">
-            <el-option
-            v-for="item in options"
-            :key="item.value"
-            :label="item.label"
-            :value="item.value">
-            </el-option>
-        </el-select>
-      </el-form-item>
-      <el-form-item v-if="setQuery.phone == 1" label="立减额度:" prop="IDnumber">
-        <el-input
-        disabled
-          v-model.number="setQuery.IDnumber"
-          :maxlength="18"
-          class="item-width-300"
-        >
-        <template slot="append">元</template>
-        </el-input>
-      </el-form-item>
-      <el-form-item v-else-if="setQuery.phone == 2" label="折扣率:" prop="IDnumber">
-        <el-input
-        disabled
-          v-model.number="setQuery.IDnumber"
-          :maxlength="18"
-          class="item-width-300"
-        >
-        <template slot="append">%</template>
-        </el-input>
-      </el-form-item>
-      <el-form-item v-else-if="setQuery.phone == 3" label="满减规则:" prop="IDnumber">
-        <el-input
-        disabled
-          v-model.number="setQuery.IDnumber"
-          :maxlength="18"
-          class="item-width-150"
-        >
-        </el-input>
-        减
-         <el-input
-         disabled
-          v-model.number="setQuery.name"
-          :maxlength="18"
-          class="item-width-100"
-        >
-        </el-input>
-      </el-form-item>
-      <el-form-item label="使用限制时间:" prop="shopName">
-       <div class="tabs">
-        <div class="tab" v-for="(item,index) in tabs" :class="[tab == index?'active':'']" :key="item" @click="handleTab(index)">{{item}}</div>
-       </div>
-         <el-date-picker
-         disabled
-         v-show="tab == 1"
-        v-model="date"
-        type="datetimerange"
-        class="item-width-400"
-        :picker-options="pickerOptions"
-        range-separator="至"
-        start-placeholder="开始日期"
-        end-placeholder="结束日期"
-        align="right">
-        </el-date-picker>
-
-          <el-select
-          disabled
-          v-show="tab == 2 || tab == 3"
-        v-model="value2"
-        multiple
-        clearable
-        filterable
-        class="item-width-400"
-        placeholder="请选择">
-        <el-option
-        v-for="item in nums"
-        :key="item"
-        :label="(nums == 7 ?'每周':'每月') + item + (nums == 31 ?'号':'')"
-        :value="item">
-        </el-option>
-    </el-select>
-
-      </el-form-item>
-      <el-form-item label="商品说明:">
-        <el-input
-        disabled
-          type="textarea"
-          placeholder="请输入商品说明"
-          v-model="setQuery.phone"
-          maxlength="400"
-          :rows="6"
-           class="item-width-500"
-          show-word-limit
-        >
-        </el-input>
-      </el-form-item>
-      <el-form-item label="商品购买设置:" prop="shopName">
-        <el-table
-      :data="setQuery.details"
-      tooltip-effect="dark"
-      border
-      style="width: 600px"
-    >
-      <el-table-column
-        align="center"
-        label="人员类型"
-        prop="setMealId"
-        show-overflow-tooltip
-      >
-      <template slot-scope="scope">
-        {{scope.row.setMealId | filterMeal(that)}}
-      </template>
-      </el-table-column>
-      <el-table-column
-        prop="shopName"
-        align="center"
-        label="购买设置"
-        show-overflow-tooltip
-      >
-       <template slot-scope="scope">
-          <el-checkbox :true-label="1" :false-label="2" v-model="scope.row.buySet">限制购买</el-checkbox>
-        </template>
-      </el-table-column>
-      <el-table-column
-        prop="shopName"
-        align="center"
-        label="限购数量"
-        show-overflow-tooltip
-      >
-       <template slot-scope="scope">
-         <el-input
-          v-model="scope.row.buyNum"
-          :maxlength="8"
-          size="small"
-          class="item-width-100"
-        >
-        </el-input>
-        </template>
-      </el-table-column>
-      <el-table-column
-        prop="shopName"
-        align="center"
-        label="优惠价格"
-        show-overflow-tooltip
-      >
-       <template slot-scope="scope">
-         <el-input
-          v-model="scope.row.buyPrice"
-          :maxlength="8"
-          size="small"
-          class="item-width-100"
-        >
-        </el-input>
-        </template>
-      </el-table-column>
-    </el-table>
-      </el-form-item>
-    </el-form>
-
-    <div class="btn-group">
-       <el-button>取 消</el-button>
-     <el-button type="primary" :loading="loading"  @click="save">确 定</el-button>
-    </div>
-
-  </div>
-</template>
-
-<script>
-import Upload from '@/components/Upload';
-import {get,goodsCouponSet} from '@/api/goods';
-import {getSetMealNameAndId} from '@/api/common'
-export default {
-    components: {
-        Upload,
-    },
-  data() {
-    return {
-        that:this,
-        nums:7,
-        value2:'',
-        tabs:['不限制','自定义时间','每周','每月'],
-        tab:0,
-        date:'',
-        loading:false,
-        tableData:[
-        {
-          name:'非会员',shopName:1,check:true
-        },
-        {
-          name:'10元套餐会员',shopName:1,check:false
-        },
-        {
-          name:'20元套餐会员',shopName:1,check:false
-        },
-        {
-          name:'30元套餐会员',shopName:1,check:false
-        }
-      ],
-      setQuery: {
-        "advent": 0,
-        "condition": 0,
-        "day": 0,
-        "details": [
-          {
-            "buyNum": 0,
-            "buyPrice": 0,
-            "buySet": 0,
-            "setMealId": 0
-          }
-        ],
-        "discount": 0,
-        "exchangeCodeDataId": "",
-        "goodsCode": "",
-        "goodsDescribe": "",
-        "goodsId": "",
-        "goodsImg": "",
-        "goodsName": "",
-        "goodsType": "",
-        "goodsWeight": 0,
-        "realPrice": 0,
-        "sharePlatformVo": {
-          "createTime": "",
-          "cycle": 0,
-          "platformRate": 0,
-          "shareRule": "",
-          "shareType": 0,
-          "shopRate": 0
-        },
-        "stockCount": 0,
-        "useEndTime": "",
-        "useMethod": 0,
-        "useRangeList": {},
-        "useRangeType": 0,
-        "useStartTime": "",
-        "useType": 0,
-        "validEndTime": "",
-        "validStartTime": "",
-        "validType": 0
-      },
-      rules: {
-        name: [{ required: true, message: "请输入用户名", trigger: "blur" }],
-        shopName: [
-          { required: true, message: "请输入商铺名称", trigger: "blur" },
-        ],
-        phone: [
-          { required: true, message: "请输入商铺手机号", trigger: "blur" },
-        ],
-        IDnumber: [
-          { required: true, message: "请输入身份证号", trigger: "blur" },
-        ],
-      },
-      options: [
-        {
-          value: "1",
-          label: "立减券",
-        },
-        {
-          value: "2",
-          label: "折扣券",
-        },
-        {
-          value: "3",
-          label: "满减券",
-        },
-      ],
-      mealOption:[],
-       pickerOptions: {
-          shortcuts: [{
-            text: '最近一周',
-            onClick(picker) {
-              const end = new Date();
-              const start = new Date();
-              start.setTime(start.getTime() - 3600 * 1000 * 24 * 6);
-              picker.$emit('pick', [start, end]);
-            }
-          }, {
-            text: '最近一个月',
-            onClick(picker) {
-              const end = new Date();
-              const start = new Date();
-              start.setTime(start.getTime() - 3600 * 1000 * 24 * 30);
-              picker.$emit('pick', [start, end]);
-            }
-          }, {
-            text: '最近三个月',
-            onClick(picker) {
-              const end = new Date();
-              const start = new Date();
-              start.setTime(start.getTime() - 3600 * 1000 * 24 * 90);
-              picker.$emit('pick', [start, end]);
-            }
-          }]
-        },
-    };
-  },
-  filters: {
-    filterMeal: function(val,that) {
-      let msg
-      that.mealOption.map(item=>{
-        if(val == item.value){
-          msg = item.label
-        }else if(val === 0){
-          msg = '无套餐'
-        }
-      })
-      return msg
-    }
-  },
-  methods: {
-    handleTab(val){
-        this.tab = val
-        val == 2?this.nums =7:this.nums =31
-    },
-    save() {
-      this.$refs.setQuery.validate((v) => {
-        if (v) {
-           this.loading = true
-            goodsCouponSet(this.setQuery.details).then(res=>{
-              this.loading = true
-              if(res.state == 'Success'){
-                 this.$notify({
-                  title: '成功',
-                  message: '操作成功',
-                  type: 'success'
-                });
-                this.$router.push('/shopManage/index')
-              }
-              
-            })
-        }
-      });
-    },
-
-     // 商品详情
-    get(){
-      this.loading = true
-      get({goodsId:this.$route.query.id,shopId:this.$route.query.shopId}).then(res=>{
-      this.loading = false
-          if(res.state == 'Success'){
-            this.setQuery = res.content
-            this.setQuery.shopId = localStorage.getItem('epid')
-            // 使用时间为自定义时
-            if(this.setQuery.useType == 2){
-              this.date = [this.setQuery.useStartTime,this.setQuery.useEndTime]
-            }
-            // 限制有效期
-            if(this.setQuery.validType == 2){
-              this.date1 = [this.setQuery.validStartTime,this.setQuery.validEndTime]
-            }
-            this.setQuery.exchangeCodeDataCode = this.setQuery.exchangeCodeDataId
-            this.form.shareId = this.setQuery.shareId 
-            // 初始化购买设置
-            if(!this.setQuery.details){
-              this.setQuery.details = []
-              this.mealOption.map(item=>{
-                this.setQuery.details.push({
-                    "buyNum": 0,
-                    "buyPrice": this.setQuery.realPrice,
-                    "buySet": 1,
-                    "setMealId": item.value
-                })
-              })
-            }
-          }
-      })
-    },
-    getSetMealNameAndId(){
-      return new Promise((resolve,reject)=>{
-        getSetMealNameAndId().then(res=>{
-          if(res.state == 'Success'){
-            for (const key in res.content) {
-              if (Object.hasOwnProperty.call(res.content, key)) {
-                this.mealOption.push({
-                  label:res.content[key],
-                  value:key
-                })
-              }
-            }
-            this.mealOption.unshift({
-              label:'无套餐',
-              value:0
-            })
-            resolve()
-          }
-        })
-      })
-    },
-
-    // get(){
-    //   this.loading = true
-    //   get({goodsId:this.$route.query.id,shopId:this.$route.query.shopId}).then(res=>{
-    //     this.loading = false
-    //     if(res.state == 'Success'){
-    //        this.setQuery = res.content
-    //     }
-    //   })
-    // },
-    // getSetMealNameAndId(){
-    //   getSetMealNameAndId().then(res=>{
-    //     if(res.state == 'Success'){
-    //       for (const key in res.content) {
-    //         if (Object.hasOwnProperty.call(res.content, key)) {
-    //           this.mealOption.push({
-    //             label:res.content[key],
-    //             value:key
-    //           })
-    //         }
-    //       }
-    //        this.mealOption.unshift({
-    //           label:'无套餐',
-    //           value:0
-    //         })
-    //     }
-    //   })
-    // }
-  },
-  created () {
-    this.get();
-    this.getSetMealNameAndId()
-  },
-};
-</script>
-
-<style lang="scss" scoped>
-@import '@/styles/element-variables';
-.goodsDetail {
-    pointer-events:none;
-    cursor:not-allowed;
-  padding-bottom: 40px;
-  .btn-group{
-    display: flex;
-    align-items: center;
-    justify-content: center;
-  }
-  .tabs{
-    display:flex;
-    border-radius: 4px;
-    margin-bottom: 10px;
-    cursor: pointer;
-    .tab{
-        width: 90px;
-        height: 30px;
-        line-height: 30px;
-        text-align: center;
-        border: 1px solid #f1f1f1;
-    }
-  }
-  .active{
-    color: $--color-primary;
-    border: 1px solid $--color-primary!important;
-    background: #d1d3fa;
-        border-radius: 4px;
-
-  }
-}
-</style>

Разница между файлами не показана из-за своего большого размера
+ 466 - 544
src/views/operationManage/goodsManage/goodsDetail.vue


+ 894 - 0
src/views/operationManage/goodsManage/goodsDetail1.vue

@@ -0,0 +1,894 @@
+<template>
+  <div class="addGoods app-container">
+    <el-form
+      :model="setQuery"
+      ref="setQuery"
+      :rules="rules"
+      v-loading="loading"
+      label-width="150px"
+    >
+      <el-form-item label="商品图片:">
+        <Upload
+          disabled
+          width="100px"
+          height="100px"
+          type="goodsImg"
+          :imgUrl="setQuery.goodsImg"
+          @uploadEnd="uploadEnd"
+        ></Upload>
+      </el-form-item>
+      <el-form-item label="商品名称:" prop="goodsName">
+        <el-input
+          disabled
+          v-model="setQuery.goodsName"
+          class="item-width-300"
+        ></el-input>
+      </el-form-item>
+      <el-form-item label="商品类型:" prop="goodsType">
+        <el-select
+          disabled
+          v-model="setQuery.goodsType"
+          class="item-width-300"
+          placeholder="请选择商品类型"
+        >
+          <el-option
+            v-for="item in options"
+            :key="item.value"
+            :label="item.label"
+            :value="item.value"
+          >
+          </el-option>
+        </el-select>
+      </el-form-item>
+
+      <template v-if="setQuery.goodsType == 1">
+        <el-form-item label="优惠券类型:" prop="goodsCode">
+          <el-select
+            disabled
+            v-model="setQuery.goodsCode"
+            class="item-width-300"
+            placeholder="请选择优惠券类型"
+          >
+            <el-option
+              v-for="item in options1"
+              :key="item.value"
+              :label="item.label"
+              :value="item.value"
+            >
+            </el-option>
+          </el-select>
+        </el-form-item>
+
+        <el-form-item
+          v-if="setQuery.goodsCode == 102"
+          label="立减额度:"
+          prop="discount"
+        >
+          <el-input
+            disabled
+            v-model.number="setQuery.discount"
+            :maxlength="18"
+            class="item-width-300"
+          >
+            <template slot="append">元</template>
+          </el-input>
+        </el-form-item>
+
+        <el-form-item
+          v-else-if="setQuery.goodsCode == 103"
+          label="折扣率:"
+          prop="discount"
+        >
+          <el-input
+            disabled
+            v-model.number="setQuery.discount"
+            :maxlength="18"
+            class="item-width-300"
+          >
+            <template slot="append">%</template>
+          </el-input>
+        </el-form-item>
+        <el-form-item
+          v-else-if="setQuery.goodsCode == 104"
+          label="满减规则:"
+          prop="discount"
+        >
+          <el-input
+            disabled
+            v-model.number="setQuery.condition"
+            :maxlength="18"
+            class="item-width-150"
+          >
+          </el-input>
+          减
+          <el-input
+            disabled
+            v-model.number="setQuery.discount"
+            :maxlength="18"
+            class="item-width-100"
+          >
+          </el-input>
+        </el-form-item>
+      </template>
+
+      <!-- 研学 -->
+      <template v-else-if="setQuery.goodsType == 6">
+        <el-form-item label="研学栏目:" prop="columnId">
+          <el-cascader
+            disabled
+            class="item-width-300"
+            v-model="setQuery.columnId"
+            show-all-levels
+            :options="columnOptions"
+            :props="{ value: 'id', label: 'columnName', children: 'pages' }"
+            clearable
+          ></el-cascader>
+        </el-form-item>
+      </template>
+
+      <el-form-item label="售价:" prop="realPrice">
+        <el-input
+          disabled
+          v-model.number="setQuery.realPrice"
+          :maxlength="18"
+          class="item-width-300"
+        >
+          <template slot="append">元</template>
+        </el-input>
+      </el-form-item>
+      <el-form-item
+        label="库存:"
+        v-if="setQuery.goodsCode == 101"
+        prop="exchangeCodeDataCode"
+      >
+        <el-select
+          disabled
+          v-model="setQuery.exchangeCodeDataCode"
+          class="item-width-300"
+          placeholder="请选择库存"
+        >
+          <el-option
+            v-for="item in options2"
+            :key="item.value"
+            :label="item.label"
+            :value="item.value"
+          >
+          </el-option>
+        </el-select>
+      </el-form-item>
+      <el-form-item label="库存:" v-else prop="stockCount">
+        <el-input
+          disabled
+          v-model.number="setQuery.stockCount"
+          :maxlength="18"
+          class="item-width-300"
+        >
+        </el-input>
+      </el-form-item>
+
+      <template
+        v-if="
+          setQuery.goodsCode == 102 ||
+          setQuery.goodsCode == 103 ||
+          setQuery.goodsCode == 104
+        "
+      >
+        <el-form-item disabled label="有效期限制:" prop="validType">
+          <el-radio disabled v-model="setQuery.validType" :label="1"
+            >不限制</el-radio
+          >
+          <el-radio disabled v-model="setQuery.validType" :label="2"
+            >限制</el-radio
+          >
+          <div v-show="setQuery.validType == 2">
+            <el-date-picker
+              disabled
+              v-model="date1"
+              type="datetimerange"
+              class="item-width-400"
+              value-format="yyyy-MM-dd HH:mm:ss"
+              :picker-options="pickerOptions"
+              range-separator="至"
+              start-placeholder="开始日期"
+              end-placeholder="结束日期"
+              align="right"
+            >
+            </el-date-picker>
+          </div>
+        </el-form-item>
+
+        <el-form-item disabled label="使用限制时间:" prop="shopName">
+          <div class="tabs">
+            <div
+              class="tab"
+              v-for="(item, index) in tabs"
+              :class="[setQuery.useType == index + 1 ? 'active' : '']"
+              :key="item"
+              @click="handleTab(index + 1)"
+            >
+              {{ item }}
+            </div>
+          </div>
+          <el-date-picker
+            disabled
+            v-show="setQuery.useType == 2"
+            v-model="date"
+            type="datetimerange"
+            class="item-width-400"
+            value-format="yyyy-MM-dd HH:mm:ss"
+            :picker-options="pickerOptions"
+            range-separator="至"
+            start-placeholder="开始日期"
+            end-placeholder="结束日期"
+            align="right"
+          >
+          </el-date-picker>
+
+          <el-select
+            disabled
+            v-show="setQuery.useType == 3 || setQuery.useType == 4"
+            v-model="setQuery.day"
+            clearable
+            filterable
+            class="item-width-400"
+            placeholder="请选择"
+          >
+            <el-option
+              v-for="item in nums"
+              :key="item"
+              :label="
+                (nums == 7 ? '每周' : '每月') + item + (nums == 31 ? '号' : '')
+              "
+              :value="item"
+            >
+            </el-option>
+          </el-select>
+        </el-form-item>
+
+        <el-form-item label="过期自动退:" prop="advent">
+          <el-radio disabled v-model="setQuery.advent" :label="1">是</el-radio>
+          <el-radio disabled v-model="setQuery.advent" :label="2">否</el-radio>
+        </el-form-item>
+
+        <el-form-item label="支付抵扣限制:" prop="useMethod">
+          <el-radio disabled v-model="setQuery.useMethod" :label="1"
+            >线上和线下</el-radio
+          >
+          <el-radio disabled v-model="setQuery.useMethod" :label="2"
+            >仅线上</el-radio
+          >
+          <el-radio disabled v-model="setQuery.useMethod" :label="3"
+            >仅线下</el-radio
+          >
+        </el-form-item>
+
+        <el-form-item disabled label="优惠券适用商品范围:" prop="useRangeType">
+          <el-radio disabled v-model="setQuery.useRangeType" :label="1"
+            >全部商品</el-radio
+          >
+          <el-radio disabled v-model="setQuery.useRangeType" :label="2"
+            >指定商品</el-radio
+          >
+        </el-form-item>
+
+        <template v-if="setQuery.useRangeType == 2 && setQuery.useMethod != 3">
+          <el-table
+            :data="tableData"
+            tooltip-effect="dark"
+            border
+            v-loading="tableLoading"
+            style="width: 100%"
+          >
+            <el-table-column
+              align="center"
+              label="商品名称"
+              prop="goodsName"
+              show-overflow-tooltip
+            >
+            </el-table-column>
+            <el-table-column
+              prop="goodsType"
+              align="center"
+              label="类型"
+              show-overflow-tooltip
+            >
+              <template slot-scope="scope">
+                {{ scope.row.goodsType == 1 ? "优惠券" : "研学" }}
+              </template>
+            </el-table-column>
+            <el-table-column
+              prop="discountContent"
+              align="center"
+              label="所属店铺"
+              show-overflow-tooltip
+            >
+            </el-table-column>
+            <el-table-column prop="address" align="center" label="操作">
+              <template slot-scope="scope">
+                <el-button type="text" size="small" @click="">查看</el-button>
+              </template>
+            </el-table-column>
+          </el-table>
+          <div class="page-box">
+            <el-pagination
+              @size-change="handleSizeChange"
+              @current-change="handleCurrentChange"
+              background
+              :current-page="query.currentPage"
+              :page-sizes="[10]"
+              :page-size="query.pageSize"
+              layout="total, sizes, prev, pager, next, jumper"
+              :total="total"
+            >
+            </el-pagination>
+          </div>
+        </template>
+      </template>
+
+      <!-- 研学 -->
+      <template v-if="setQuery.goodsType == 6">
+        <el-form-item label="使用限制时间:" prop="shopName">
+          <div class="tabs">
+            <div
+              class="tab"
+              v-for="(item, index) in tabs"
+              :class="[setQuery.useType == index + 1 ? 'active' : '']"
+              :key="item"
+              @click="handleTab(index + 1)"
+            >
+              {{ item }}
+            </div>
+          </div>
+          <el-date-picker
+            v-show="setQuery.useType == 2"
+            v-model="date"
+            type="datetimerange"
+            class="item-width-400"
+            value-format="yyyy-MM-dd HH:mm:ss"
+            :picker-options="pickerOptions"
+            range-separator="至"
+            start-placeholder="开始日期"
+            end-placeholder="结束日期"
+            align="right"
+          >
+          </el-date-picker>
+
+          <el-select
+            v-show="setQuery.useType == 3 || setQuery.useType == 4"
+            v-model="setQuery.day"
+            clearable
+            filterable
+            class="item-width-400"
+            placeholder="请选择"
+          >
+            <el-option
+              v-for="item in nums"
+              :key="item"
+              :label="
+                (nums == 7 ? '每周' : '每月') + item + (nums == 31 ? '号' : '')
+              "
+              :value="item"
+            >
+            </el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="研学商品顶部图:" prop="studyItem">
+          <div class="notice">需真实展示店内环境情况 查看示例图</div>
+          <div class="notice">
+            (图片支持jpg, png, bmp格式,建议上传100kb~500kb大小文件)
+          </div>
+          <Upload
+            type="studyItem"
+            id="studyItem"
+            width="300px"
+            height="200px"
+            uploadType="GOODS_INFO"
+            :imgUrl="setQuery.studyItem"
+            @uploadEnd="uploadEnd"
+          ></Upload>
+        </el-form-item>
+      </template>
+
+      <el-form-item label="商品详情:" prop="goodsDescribe">
+        <div style="border: 1px solid #E4E7ED; width: 500px;border-radius:4px;padding:0 15px;min-height:60px;" v-html="setQuery.goodsDescribe">
+        </div>
+      </el-form-item>
+
+      <el-form-item label="商品购买设置:">
+        <el-table
+          :data="setQuery.details"
+          tooltip-effect="dark"
+          border
+          style="width: 600px"
+        >
+          <el-table-column
+            align="center"
+            label="人员类型"
+            prop="setMealId"
+            show-overflow-tooltip
+          >
+            <template slot-scope="scope">
+              {{ scope.row.setMealId | filterMeal(that) }}
+            </template>
+          </el-table-column>
+          <el-table-column
+            prop="shopName"
+            align="center"
+            label="购买设置"
+            show-overflow-tooltip
+          >
+            <template slot-scope="scope">
+              <el-checkbox
+                :true-label="2"
+                :false-label="1"
+                v-model="scope.row.buySet"
+                >限制购买</el-checkbox
+              >
+            </template>
+          </el-table-column>
+          <el-table-column
+            prop="shopName"
+            align="center"
+            label="限购数量"
+            show-overflow-tooltip
+          >
+            <template slot-scope="scope">
+              <el-input
+                v-model="scope.row.buyNum"
+                :maxlength="8"
+                size="small"
+                class="item-width-100"
+              >
+              </el-input>
+            </template>
+          </el-table-column>
+          <el-table-column
+            prop="shopName"
+            align="center"
+            label="优惠价格"
+            show-overflow-tooltip
+          >
+            <template slot-scope="scope">
+              <el-input
+                v-model="scope.row.buyPrice"
+                :maxlength="8"
+                size="small"
+                class="item-width-100"
+              >
+              </el-input>
+            </template>
+          </el-table-column>
+        </el-table>
+      </el-form-item>
+        <el-form-item label="分账规则:" prop="shareId">
+        <el-select
+          v-model="setQuery.shareId"
+          class="item-width-300"
+          placeholder="请选择分账规则"
+        >
+          <el-option
+            v-for="item in ruleOptions"
+            :key="item.value"
+            :label="item.label"
+            :value="item.value"
+          >
+          </el-option>
+        </el-select>
+      </el-form-item>
+
+    </el-form>
+
+    <div class="btn-group" v-if="mode != 'detail'">
+      <el-button>取 消</el-button>
+      <el-button type="primary" :loading="loading" @click="save"
+        >确 定</el-button
+      >
+    </div>
+  </div>
+</template>
+
+<script>
+import {
+  allCouponByShop,
+  get,
+  getGoodsCoupon,
+  search,
+  goodsCouponSet,
+  addOrUpdate
+} from "@/api/goods";
+import { getSetMealNameAndId } from "@/api/common";
+import { getData } from "@/api/study";
+import {getRuleList } from "@/api/rule";
+
+import Upload from "@/components/Upload";
+export default {
+  components: {
+    Upload,
+  },
+  data() {
+    return {
+      mode: "add",
+      that: this,
+      nums: 7,
+      value2: "",
+      tabs: ["不限制", "自定义时间", "每周", "每月"],
+      tab: 0,
+      date: "",
+      date1: "",
+      loading: false,
+      tableLoading: false,
+      tableData: [],
+      imgList: [],
+      ruleOptions:[],
+      query: {
+        shopId: localStorage.getItem("epid"),
+        currentPage: 1,
+        pageSize: 10,
+      },
+      total: 0,
+      setQuery: {
+        advent: 1,
+        condition: 0,
+        day: 0,
+        discount: 0,
+        exchangeCodeDataCode: "",
+        goodsCode: "",
+        goodsDescribe: "",
+        goodsId: "",
+        goodsImg: "",
+        goodsName: "",
+        goodsType: "",
+        goodsWeight: 0,
+        realPrice: 0,
+        shopId: localStorage.getItem("epid"),
+        stockCount: 0,
+        useEndTime: "",
+        useMethod: 1,
+        useRange: "",
+        useRangeType: 1,
+        useStartTime: "",
+        useType: 1,
+        validEndTime: "",
+        validStartTime: "",
+        validType: 1,
+      },
+      rules: {
+        condition: [
+          { required: true, message: "请输入满足条件", trigger: "blur" },
+        ],
+        discount: [
+          { required: true, message: "请输入	优惠值", trigger: "blur" },
+        ],
+        goodsCode: [
+          { required: true, message: "请选择优惠券类型", trigger: "change" },
+        ],
+        // goodsDescribe: [{ required: true, message: "请输入", trigger: "blur" }],
+        goodsName: [
+          { required: true, message: "请输入商品名称", trigger: "blur" },
+        ],
+        goodsType: [
+          { required: true, message: "请选择商品类型", trigger: "change" },
+        ],
+        realPrice: [{ required: true, message: "请输入售价", trigger: "blur" }],
+        stockCount: [
+          { required: true, message: "请输入库存", trigger: "blur" },
+        ],
+        shareId: [{ required: true, message: "请选择分账规则", trigger: "change" }],
+        // goodsType: [{ required: true, message: "请选择商品类型", trigger: "change" }],
+        // goodsType: [{ required: true, message: "请选择商品类型", trigger: "change" }],
+        // goodsType: [{ required: true, message: "请选择商品类型", trigger: "change" }],
+      },
+      options: [
+        {
+          value: "1",
+          label: "优惠券",
+        },
+        {
+          value: "6",
+          label: "研学",
+        },
+      ],
+      options1: [
+        // {
+        //   value: "102",
+        //   label: "立减券",
+        // },
+        // {
+        //   value: "103",
+        //   label: "折扣券",
+        // },
+        // {
+        //   value: "104",
+        //   label: "满减券",
+        // },
+        // {
+        //   value: "101",
+        //   label: "兑换码",
+        // },
+      ],
+      options2: [],
+      mealOption: [],
+      pickerOptions: {
+        shortcuts: [
+          {
+            text: "最近一周",
+            onClick(picker) {
+              const end = new Date();
+              const start = new Date();
+              start.setTime(start.getTime() - 3600 * 1000 * 24 * 6);
+              picker.$emit("pick", [start, end]);
+            },
+          },
+          {
+            text: "最近一个月",
+            onClick(picker) {
+              const end = new Date();
+              const start = new Date();
+              start.setTime(start.getTime() - 3600 * 1000 * 24 * 30);
+              picker.$emit("pick", [start, end]);
+            },
+          },
+          {
+            text: "最近三个月",
+            onClick(picker) {
+              const end = new Date();
+              const start = new Date();
+              start.setTime(start.getTime() - 3600 * 1000 * 24 * 90);
+              picker.$emit("pick", [start, end]);
+            },
+          },
+        ],
+      },
+    };
+  },
+  watch: {
+    // 使用限制时间
+    date(val) {
+      if (val) {
+        this.setQuery.useStartTime = val[0];
+        this.setQuery.useEndTime = val[1];
+      } else {
+        this.setQuery.useStartTime = "";
+        this.setQuery.useEndTime = "";
+      }
+    },
+    // 有效期时间
+    date1(val) {
+      if (val) {
+        this.setQuery.validStartTime = val[0];
+        this.setQuery.validEndTime = val[1];
+      } else {
+        this.setQuery.validStartTime = "";
+        this.setQuery.validEndTime = "";
+      }
+    },
+  },
+  filters: {
+    filterMeal: function (val, that) {
+      let msg;
+      that.mealOption.map((item) => {
+        if (val == item.value) {
+          msg = item.label;
+        } else if (val === 0) {
+          msg = "无套餐";
+        }
+      });
+      return msg;
+    },
+  },
+  methods: {
+    // 获取研学栏目
+    getData() {
+      getData().then((res) => {
+        if (res.state == "Success") {
+          this.columnOptions = res.content;
+        }
+      });
+    },
+    uploadEnd(val) {
+      this.setQuery[val.type] = val.url;
+    },
+    handleSizeChange(val) {
+      this.query.currentPage = 1;
+      this.query.pageSize = val;
+      this.allCouponByShop();
+    },
+    handleCurrentChange(val) {
+      this.query.currentPage = val;
+      this.allCouponByShop();
+    },
+    handleTab(val) {
+      if (this.mode == "detail") return;
+      this.setQuery.useType = val;
+      this.setQuery.day = "";
+      val == 3 ? (this.nums = 7) : (this.nums = 31);
+    },
+    save() {
+      this.$refs.setQuery.validate((v) => {
+        if (v) {
+          this.setQuery.goodsId = this.$route.query.id
+          addOrUpdate(this.setQuery).then((res) => {
+            this.loading = false;
+            if (res.state == "Success") {
+              this.goodsCouponSet();
+            }
+          })
+        }
+      });
+    },
+    // 获取兑换码库存
+    getCode() {
+      search({ currentPage: 1, pageSize: 999 }).then((res) => {
+        if (res.state == "Success") {
+          res.content.records.map((item) => {
+            this.options2.push({
+              label: item.exchangeCodeDataName + `(${item.totalNum})`,
+              value: item.exchangeCodeDataId,
+            });
+          });
+        }
+      });
+    },
+    // 获取优惠券类型
+    getGoodsCoupon() {
+      getGoodsCoupon().then((res) => {
+        if (res.state == "Success") {
+          for (const key in res.content) {
+            if (Object.hasOwnProperty.call(res.content, key)) {
+              this.options1.push({
+                label: res.content[key],
+                value: key,
+              });
+            }
+          }
+        }
+      });
+    },
+    // 所有商品
+    allCouponByShop() {
+      this.tableLoading = true;
+      allCouponByShop(this.query).then((res) => {
+        this.tableLoading = false;
+        if (res.state == "Success") {
+          this.tableData = res.content;
+        }
+      });
+    },
+    // 商品详情
+    get() {
+      this.loading = true;
+      get({
+        goodsId: this.$route.query.id,
+        shopId: this.$route.query.shopId,
+      }).then((res) => {
+        this.loading = false;
+        if (res.state == "Success") {
+          this.setQuery = res.content;
+          this.setQuery.shopId = localStorage.getItem("epid");
+          // 使用时间为自定义时
+          if (this.setQuery.useType == 2) {
+            this.date = [this.setQuery.useStartTime, this.setQuery.useEndTime];
+          }
+          // 限制有效期
+          if (this.setQuery.validType == 2) {
+            this.date1 = [
+              this.setQuery.validStartTime,
+              this.setQuery.validEndTime,
+            ];
+          }
+          this.setQuery.exchangeCodeDataCode = this.setQuery.exchangeCodeDataId;
+          // 初始化购买设置
+          if (!this.setQuery.details) {
+            this.setQuery.details = [];
+            this.mealOption.map((item) => {
+              this.setQuery.details.push({
+                buyNum: 0,
+                buyPrice: this.setQuery.realPrice,
+                buySet: 2,
+                setMealId: item.value,
+              });
+            });
+          }
+        }
+      });
+    },
+    getSetMealNameAndId() {
+      return new Promise((resolve, reject) => {
+        getSetMealNameAndId().then((res) => {
+          if (res.state == "Success") {
+            for (const key in res.content) {
+              if (Object.hasOwnProperty.call(res.content, key)) {
+                this.mealOption.push({
+                  label: res.content[key],
+                  value: key,
+                });
+              }
+            }
+            resolve();
+          }
+        });
+      });
+    },
+    // 商品购买配置
+    goodsCouponSet() {
+      this.loading = true;
+      goodsCouponSet({
+        goodsCouponSets: this.setQuery.details,
+        goodsId: this.$route.query.id,
+        shopId: this.$route.query.shopId,
+      }).then((res) => {
+        this.loading = true;
+        if (res.state == "Success") {
+          this.$notify({
+            title: "成功",
+            message: "操作成功",
+            type: "success",
+          });
+          this.$router.push("/operationManage/goodsManage/index");
+        }
+      });
+    },
+    // 规则
+    getRuleList() {
+      getRuleList({currentPage:1,pageSize:999}).then((res) => {
+        if (res.state == "Success") {
+          res.content.records.map(item=>{
+            this.ruleOptions.push({
+              label:item.shareRule,
+              value:item.id
+            })
+          })
+        }
+      });
+    },
+  },
+  created() {
+    this.mode = this.$route.query.mode || "add";
+    this.getCode();
+    this.getData();
+    this.getGoodsCoupon();
+    this.getRuleList()
+    this.getSetMealNameAndId().then(() => {
+      if (this.$route.query.id) {
+        this.get();
+      }
+    });
+  },
+};
+</script>
+
+<style lang="scss" scoped>
+@import "@/styles/element-variables";
+.addGoods {
+  padding-bottom: 40px;
+  .btn-group {
+    display: flex;
+    align-items: center;
+    justify-content: center;
+  }
+  .tabs {
+    display: flex;
+    border-radius: 4px;
+    margin-bottom: 10px;
+    cursor: pointer;
+    .tab {
+      width: 90px;
+      height: 30px;
+      line-height: 30px;
+      text-align: center;
+      border: 1px solid #f1f1f1;
+    }
+  }
+  .active {
+    color: $--color-primary;
+    border: 1px solid $--color-primary !important;
+    background: #d1d3fa;
+    border-radius: 4px;
+  }
+
+  .notice {
+    font-size: 12px;
+    color: #ccc;
+  }
+}
+</style>

+ 67 - 55
src/views/operationManage/goodsManage/index.vue

@@ -1,34 +1,11 @@
 
 <template>
   <div class="goodsList app-container">
-    <div class="search">
-      <div>
-        <el-input
-          v-model="query.goodsName"
-          size="small"
-          placeholder="请输入商品名称"
-          class="item-width-200"
-        ></el-input>
-        <!-- <el-select
-          v-model="query.state"
-          size="small"
-          clearable
-          class="item-width-200 ml10"
-          placeholder="请选择状态"
-        >
-          <el-option
-            v-for="item in options"
-            :key="item.value"
-            :label="item.label"
-            :value="item.value"
-          >
-          </el-option>
-        </el-select> -->
-      </div>
-      <!-- <el-button class="add-btn" type="primary" size="small" @click="handleAdd"
-        >添加</el-button
-      > -->
-    </div>
+   <el-tabs v-model="activeName">
+    <el-tab-pane label="上架商品" name="上架商品"></el-tab-pane>
+    <el-tab-pane label="待审核商品" name="待审核商品"></el-tab-pane>
+    <el-tab-pane label="审核未通过商品" name="审核未通过商品"></el-tab-pane>
+  </el-tabs>
 
     <el-table
       :data="tableData"
@@ -37,13 +14,7 @@
       v-loading="loading"
       style="width: 100%"
     >
-      <el-table-column
-        align="center"
-        label="排序"
-        prop="goodsWeight"
-        show-overflow-tooltip
-      >
-      </el-table-column>
+    
       <el-table-column
         align="center"
         label="商品图片"
@@ -56,7 +27,7 @@
       </el-table-column>
       <el-table-column
         align="center"
-        label="商品信息"
+        label="商品名称"
         prop="goodsName"
         show-overflow-tooltip
       >
@@ -78,7 +49,7 @@
         show-overflow-tooltip
       >
        <template slot-scope="scope">
-        <span>{{scope.row.state|filterState}}</span> 
+        <span>{{scope.row.status|filterState}}</span> 
        </template>
       </el-table-column>
       <el-table-column
@@ -89,11 +60,30 @@
       >
       </el-table-column>
 
+      <template v-if="activeName == '审核未通过商品'">
+        <el-table-column
+          prop="applyTime"
+          align="center"
+          label="申请时间"
+          show-overflow-tooltip
+        >
+        </el-table-column>
+        <el-table-column
+          prop="checkTime"
+          align="center"
+          label="审核时间"
+          show-overflow-tooltip
+        >
+        </el-table-column>
+      </template>
+
       <el-table-column prop="address" align="center" label="操作">
         <template slot-scope="scope">
-          <el-button type="text" size="small" @click="handleDetail(scope.row)">配置</el-button>
-          <el-button v-if="scope.row.state == 3" type="text" size="small" @click="handleApply(scope.row,4)">下架</el-button>
-          <el-button v-if="scope.row.state == 4" type="text" size="small" @click="handleApply(scope.row,3)">上架</el-button>
+           <el-button type="text" size="small" v-if="activeName== '上架商品' || activeName== '审核未通过商品'" @click="handleDetail(scope.row,'detail')">查看</el-button>
+          <el-button type="text" size="small" v-if="activeName== '待审核商品'" @click="handleDetail(scope.row,'audit')">审核</el-button>
+          <el-button type="text" size="small" v-else-if="activeName== '上架商品'" @click="handleDetail(scope.row,'edit')">配置</el-button>
+          <el-button v-if="scope.row.status == 3" type="text" size="small" @click="handleApply(scope.row,4)">下架</el-button>
+          <el-button v-if="scope.row.status == 4" type="text" size="small" @click="handleApply(scope.row,3)">上架</el-button>
         </template>
       </el-table-column>
     </el-table>
@@ -120,6 +110,7 @@ export default {
   name: "goodsList",
   data() {
     return {
+      activeName:'上架商品',
       options: [
         {
           value: "3",
@@ -133,7 +124,8 @@ export default {
       tableData: [],
       loading: false,
       query: {
-        state: 3,
+        applyState:'',
+        status: '3',
         goodsName: "",
         currentPage: 1,
         pageSize: 10,
@@ -143,12 +135,28 @@ export default {
     };
   },
   watch: {
-    query: {
-      handler: debounce(function (val) {
+    activeName(val){
+      if(val == '上架商品'){
+        this.query.status = 3
+        this.query.applyState = ''
+        
+      }else if(val == '待审核商品'){
+        this.query.status = null
+        this.query.applyState = 1
+      }else if(val == '审核未通过商品'){
+        this.query.status = ''
+        this.query.applyState = 3
+      }
+      this.query.currentPage = 1
         this.goodsList()
-      }),
-      deep: true,
+
     },
+    // query: {
+    //   handler: debounce(function (val) {
+    //     this.goodsList()
+    //   }),
+    //   deep: true,
+    // },
   },
   filters: {
     filterState: function(value) {
@@ -169,22 +177,26 @@ export default {
       } 
     },
     filterType:function(val){
-      if(val== 1){
-        return '优惠券'
-      }else if(val == 6){
-        return '研学'
-      }else if(val == 5){
-        return '商品'
+      if(val== 801){
+        return '研学商品'
+      }else if(val == 802){
+        return '虚拟商品充值'
+      }else if(val == 803){
+        return '餐饮商品'
+      }else{
+        return '新添加商品'
+        
       }
     }
   },
   methods: {
-    handleDetail(row){
+    handleDetail(row,mode){
       this.$router.push({
         path:'/operationManage/goodsManage/goodsDetail',
         query:{
           id:row.goodsId,
-          shopId:row.shopId
+          mode
+          // shopId:row.shopId
         }
       })
     },
@@ -194,9 +206,9 @@ export default {
     // 点击下架
     handleApply(row,state) {
        let msg;
-       if(row.state == 3){//已上架
+       if(row.status == 3){//已上架
             msg = '下架'
-        }else if(row.state == 4){//已下架
+        }else if(row.status == 4){//已下架
             msg = '上架'
         }
       this.$confirm(`此操作将${msg}该商品, 是否继续?`, '提示', {

+ 153 - 0
src/views/operationManage/goodsTemplate/addGoodsTemplate.vue

@@ -0,0 +1,153 @@
+<template>
+  <div class="addGoodsType app-container" v-loading="loading1">
+    <el-form
+      :model="setQuery"
+      ref="setQuery"
+      :rules="rules"
+      label-width="130px"
+    >
+      <el-form-item label="模版名称:" prop="setMealName">
+        <el-input
+          v-model="setQuery.setMealName"
+          :maxlength="11"
+          class="item-width-300"
+        ></el-input>
+      </el-form-item>
+      <el-form-item label="所属商品:" prop="setMealCode">
+        <el-input
+          v-model="setQuery.setMealCode"
+          :maxlength="11"
+          class="item-width-300"
+        ></el-input>
+      </el-form-item>
+      <el-form-item :label="'商品属性'+(index+1)+':'" v-for="(item,index) in setQuery.list" :key="index"  :prop="'list.' + index + '.key'" :rules="{
+      required: true, message: '商品属性不能为空', trigger: 'blur'
+    }">
+        <div class="item" >
+          <el-input
+            placeholder="请输入属性名称"
+            v-model="item.key"
+            class="item-width-300"
+          >
+          </el-input>
+          <i class="icon el-icon-plus" @click="add(index,'list')"></i>
+          <i class="icon el-icon-minus" @click="remove(index,'list')"></i>
+        </div>
+      </el-form-item>
+      <el-form-item :label="'商品规格'+(index+1)+':'" v-for="(item,index) in setQuery.list1" :key="index"  :prop="'list.' + index + '.key'" :rules="{
+      required: true, message: '商品规格不能为空', trigger: 'blur'
+    }">
+        <div class="item" >
+          <el-input
+            placeholder="请输入属性名称"
+            v-model="item.key"
+            class="item-width-300"
+          >
+          </el-input>
+          <i class="icon el-icon-plus" @click="add(index,'list1')"></i>
+          <i class="icon el-icon-minus" @click="remove(index,'list1')"></i>
+        </div>
+      </el-form-item>
+    </el-form>
+
+    <div class="btn-group">
+      <el-button>取 消</el-button>
+      <el-button type="primary" :loading="loading" @click="save"
+        >确 定</el-button
+      >
+    </div>
+  </div>
+</template>
+
+<script>
+import { addOrUpdate } from "@/api/common";
+export default {
+  data() {
+    return {
+      loading: false,
+      loading1: false,
+      setQuery: {
+        setMealCode: 0,
+        setMealDetail: "",
+        setMealId: 0,
+        setMealName: "",
+         list:[
+            {
+              key:''
+            },
+          ],
+          list1:[
+            {
+              key:''
+            },
+          ],
+      },
+      rules: {
+        setMealCode: [
+          { required: true, message: "请输入套餐code", trigger: "blur" },
+        ],
+        setMealName: [
+          { required: true, message: "请输入套餐名称", trigger: "blur" },
+        ],
+      },
+    };
+  },
+  methods: {
+    add(index){
+      this.setQuery.list.splice(index+1,0,{key:''})
+    },
+    remove(index){
+      if(this.setQuery.list.length == 1) return
+      this.setQuery.list.splice(index,1)
+    },
+    save() {
+      // this.loading = true;
+      this.$refs.setQuery.validate((v) => {
+        if (v) {
+          // addOrUpdate(this.setQuery).then((res) => {
+          //   this.loading = false;
+          //   if (res.state == "Success") {
+          //     this.$notify({
+          //       title: "成功",
+          //       message: "操作成功",
+          //       type: "success",
+          //     });
+          //     this.setQuery = {
+          //       setMealCode: 0,
+          //       setMealDetail: "",
+          //       setMealId: 0,
+          //       setMealName: "",
+          //     };
+          //     this.$router.push("/operationManage/goodsType/index");
+          //   }
+          // });
+        }
+      });
+    },
+  },
+  created () {
+  },
+};
+</script>
+
+<style lang="scss" scoped>
+.addGoodsType {
+  padding-bottom: 40px;
+  .item{
+    display: flex;
+    align-items: center;
+    margin-bottom: 10px;
+    .icon{
+      font-size: 18px;
+      font-weight: bold;
+      margin-left: 10px;
+      cursor: pointer;
+    }
+  }
+  .btn-group {
+    display: flex;
+    align-items: center;
+    justify-content: center;
+  }
+}
+</style>

+ 187 - 0
src/views/operationManage/goodsTemplate/index.vue

@@ -0,0 +1,187 @@
+
+<template>
+  <div class="goodsTemplate app-container">
+    <div class="search">
+      <el-button class="add-btn" type="primary" size="small" @click="handleAdd"
+        >添加</el-button
+      >
+    </div>
+
+    <el-table
+      :data="tableData"
+      tooltip-effect="dark"
+      border
+      v-loading="loading"
+      style="width: 100%"
+    >
+      <el-table-column
+        align="center"
+        label="模版名称"
+        prop="setMealCode"
+        show-overflow-tooltip
+      >
+      </el-table-column>
+      <el-table-column
+        prop="setMealName"
+        align="center"
+        label="商品类型"
+        show-overflow-tooltip
+      >
+      </el-table-column>
+  
+      <el-table-column
+        prop="createTime"
+        align="center"
+        label="状态"
+        show-overflow-tooltip
+      >
+        <template slot-scope="scope">
+          <span :class="[scope.row.status == 1?'green':'red']">{{ scope.row.status == 1 ? "启用" : "禁用"}}</span>
+        </template>
+      </el-table-column>
+      <el-table-column align="center" label="操作">
+        <template slot-scope="scope">
+          <el-button
+            type="text"
+            size="small"
+            @click="handle(scope.row)"
+            >{{ scope.row.status == 1 ? "禁用" : "启用" }}</el-button
+          >
+          <el-button type="text" size="small" @click="handleEdit(scope.row.id)"
+            >修改</el-button
+          >
+          <el-button type="text" size="small" @click="handleDel(scope.row)"
+            >删除</el-button
+          >
+        </template>
+      </el-table-column>
+    </el-table>
+    <div class="page-box">
+      <el-pagination
+        @size-change="handleSizeChange"
+        @current-change="handleCurrentChange"
+        background
+        :current-page="query.currentPage"
+        :page-sizes="[10, 20, 30, 40]"
+        :page-size="query.pageSize"
+        layout="total, sizes, prev, pager, next, jumper"
+        :total="total"
+      >
+      </el-pagination>
+    </div>
+  </div>
+</template>
+  
+  <script>
+import { debounce } from "@/utils/index";
+import { getList,operate } from "@/api/common";
+export default {
+  name: "goodsTemplate",
+  data() {
+    return {
+      options: [
+        {
+          value: "0",
+          label: "全部状态",
+        },
+        {
+          value: "1",
+          label: "已完成",
+        },
+        {
+          value: "2",
+          label: "进行中",
+        },
+        {
+          value: "3",
+          label: "失败",
+        },
+      ],
+      tableData: [],
+      loading: false,
+      query: {
+        currentPage: 1,
+        pageSize: 10,
+      },
+      title: "",
+      total: 0,
+    };
+  },
+  watch: {
+    query: {
+      handler: debounce(function (val) {
+          this.getList()
+
+      }),
+      deep: true,
+    },
+  },
+  methods: {
+    handle(row){
+       this.$confirm(`此操作将${row.status == 1?'禁用':'启用'}该条数据, 是否继续?`, '提示', {
+          confirmButtonText: '确定',
+          cancelButtonText: '取消',
+          type: 'warning'
+        }).then(() => {
+          operate({setMealId:row.id,status:row.status == 1?2:1}).then(res=>{
+            if (res.state == "Success") {
+              this.$notify({
+                title: '提示',
+                message: '操作成功',
+                type: 'success'
+              });
+              this.getList()
+            }
+          })
+         
+        })
+      
+    },
+    handleEdit(id){
+      this.$router.push({
+        path:"/operationManage/goodsTemplate/addGoodsTemplate",
+        query:{
+          id
+        }
+      });
+    },
+    handleAdd() {
+      this.$router.push("/operationManage/goodsTemplate/addGoodsTemplate");
+    },
+    handleDel(row) {},
+    handleSizeChange(val) {
+      this.query.currentPage = 1;
+      this.query.pageSize = val;
+      this.getList();
+    },
+    handleCurrentChange(val) {
+      this.query.currentPage = val;
+      this.getList();
+    },
+
+    search() {
+      this.query.currentPage = 1;
+      this.getList();
+    },
+    getList() {
+      this.loading = true
+      getList(this.query).then((res) => {
+        this.loading = false
+        if (res.state == "Success") {
+          this.tableData = res.content.records;
+          this.total = res.content.total
+        }
+      });
+    },
+  },
+  created() {
+    this.getList();
+  },
+};
+</script>
+  
+<style lang="scss" >
+.goodsTemplate {
+}
+</style>
+  

+ 102 - 96
src/views/operationManage/goodsType/addGoodsType.vue

@@ -1,150 +1,156 @@
 <template>
-  <div class="addGoodsType app-container" v-loading="loading1">
+  <div class="addMenu app-container">
     <el-form
       :model="setQuery"
       ref="setQuery"
       :rules="rules"
       label-width="130px"
     >
-      <el-form-item label="模版名称:" prop="setMealName">
+
+      <el-form-item label="分类名称:" prop="cateName">
         <el-input
-          v-model="setQuery.setMealName"
-          :maxlength="11"
+          v-model="setQuery.cateName"
           class="item-width-300"
         ></el-input>
       </el-form-item>
-      <el-form-item label="所属商品:" prop="setMealCode">
+      
+       <el-form-item label="排序:" prop="sort">
         <el-input
-          v-model="setQuery.setMealCode"
-          :maxlength="11"
+        type="number"
+          v-model.number="setQuery.sort"
           class="item-width-300"
         ></el-input>
       </el-form-item>
-      <el-form-item :label="'商品属性'+(index+1)+':'" v-for="(item,index) in setQuery.list" :key="index"  :prop="'list.' + index + '.key'" :rules="{
-      required: true, message: '商品属性不能为空', trigger: 'blur'
-    }">
-        <div class="item" >
-          <el-input
-            placeholder="请输入属性名称"
-            v-model="item.key"
-            class="item-width-300"
-          >
-          </el-input>
-          <i class="icon el-icon-plus" @click="add(index,'list')"></i>
-          <i class="icon el-icon-minus" @click="remove(index,'list')"></i>
-        </div>
-      </el-form-item>
-      <el-form-item :label="'商品规格'+(index+1)+':'" v-for="(item,index) in setQuery.list1" :key="index"  :prop="'list.' + index + '.key'" :rules="{
-      required: true, message: '商品规格不能为空', trigger: 'blur'
-    }">
-        <div class="item" >
-          <el-input
-            placeholder="请输入属性名称"
-            v-model="item.key"
-            class="item-width-300"
-          >
-          </el-input>
-          <i class="icon el-icon-plus" @click="add(index,'list1')"></i>
-          <i class="icon el-icon-minus" @click="remove(index,'list1')"></i>
-        </div>
+
+      <el-form-item label="上级分类:" prop="parentId">
+        <el-cascader :disabled="this.$route.query.mode=='edit'" class="item-width-300" v-model="setQuery.parentId" :show-all-levels="false" :options="options1" :props="{ checkStrictly: true,value:'id',label:'cateName',children:'child' }" clearable></el-cascader>
+       
       </el-form-item>
+
     </el-form>
 
     <div class="btn-group">
-      <el-button>取 消</el-button>
-      <el-button type="primary" :loading="loading" @click="save"
-        >确 定</el-button
-      >
+       <el-button>取 消</el-button>
+     <el-button type="primary" :loading="loading"  @click="save">确 定</el-button>
     </div>
   </div>
 </template>
 
 <script>
-import { addOrUpdate } from "@/api/common";
+import Upload from '@/components/Upload'
+import {addOrUpdateGoodsType,getData} from '@/api/goods'
 export default {
+    components: {
+        Upload,
+    },
   data() {
     return {
-      loading: false,
-      loading1: false,
-      setQuery: {
-        setMealCode: 0,
-        setMealDetail: "",
-        setMealId: 0,
-        setMealName: "",
-         list:[
+        loading:false,
+        options:[
             {
-              key:''
+                label:'纵向',
+                value:1
             },
-          ],
-          list1:[
             {
-              key:''
-            },
-          ],
-      },
-      rules: {
-        setMealCode: [
-          { required: true, message: "请输入套餐code", trigger: "blur" },
-        ],
-        setMealName: [
-          { required: true, message: "请输入套餐名称", trigger: "blur" },
+                label:'横向',
+                value:2
+            }
         ],
+        options1:[],
+      setQuery: {
+        "cateLevel": 1,
+        "cateName": "",
+        "parentId": [],
+        "sort": 0,
+        },
+      rules: {
+        cateName: [{ required: true, message: "请输入栏目名称", trigger: "blur" }],
+        sort: [{ required: true, message: "请输入权重", trigger: "blur" }],
       },
     };
   },
   methods: {
-    add(index){
-      this.setQuery.list.splice(index+1,0,{key:''})
+    chooseParent(val){
+        this.setQuery.cateLevel = val.length + 1
+        if(val.length){
+            this.setQuery.parentId = val[val.length-1]
+        }else{
+            this.setQuery.parentId = 0
+        }
     },
-    remove(index){
-      if(this.setQuery.list.length == 1) return
-      this.setQuery.list.splice(index,1)
+    uploadEnd(val){
+      this.setQuery[val.type] = val.url
     },
     save() {
-      // this.loading = true;
       this.$refs.setQuery.validate((v) => {
         if (v) {
-          // addOrUpdate(this.setQuery).then((res) => {
-          //   this.loading = false;
-          //   if (res.state == "Success") {
-          //     this.$notify({
-          //       title: "成功",
-          //       message: "操作成功",
-          //       type: "success",
-          //     });
-          //     this.setQuery = {
-          //       setMealCode: 0,
-          //       setMealDetail: "",
-          //       setMealId: 0,
-          //       setMealName: "",
-          //     };
-          //     this.$router.push("/operationManage/goodsType/index");
-          //   }
-          // });
+          this.loading = true
+          let obj = JSON.parse(JSON.stringify(this.setQuery))
+          obj.parentId = this.setQuery.parentId[this.setQuery.parentId.length-1]
+          obj.cateLevel = this.setQuery.parentId.length + 1
+          addOrUpdateGoodsType(obj).then(res=>{
+            this.loading = false
+
+            if(res.state == 'Success'){
+
+              this.$notify({
+                  title: '成功',
+                  message: '操作成功',
+                  type: 'success'
+                });
+               
+                  this.$router.push('/operationManage/goodsType/index')
+            }
+          })
+              
         }
       });
     },
+    filter(data){
+          data.map(item=>{
+            if(item.pages&&item.pages.length){
+              item.pages.map(i=>{
+                delete i.pages
+              })
+            }
+          })
+          return data
+    },
+    getData(){
+      getData().then(res=>{
+        if(res.state == 'Success'){
+          this.options1 = this.filter(res.content)
+        }
+      })
+    }
+  },
+  beforeDestroy(){
+      sessionStorage.removeItem('studyMenu')
   },
   created () {
+    this.getData()
+    // 当前id 编辑时才有
+    if(this.$route.query.mode){
+        let menuInfo = JSON.parse(sessionStorage.getItem('studyMenu'))
+        this.setQuery.id = menuInfo.id
+        this.setQuery.cateLevel = menuInfo.cateLevel
+        this.setQuery.cateName = menuInfo.cateName
+        this.setQuery.sort = menuInfo.sort
+
+    }
+    if(this.$route.query.parentId && this.$route.query.level == '二级分类'){
+      this.setQuery.parentId = [Number(this.$route.query.parentId) ]
+    }else if(this.$route.query.parentId && this.$route.query.level == '三级分类'){
+      this.setQuery.parentId = (this.$route.query.id? [Number(this.$route.query.parentId),Number(this.$route.query.id)]: [Number(this.$route.query.parentId)])
+    }
   },
 };
 </script>
 
 <style lang="scss" scoped>
-.addGoodsType {
+.addMenu {
   padding-bottom: 40px;
-  .item{
-    display: flex;
-    align-items: center;
-    margin-bottom: 10px;
-    .icon{
-      font-size: 18px;
-      font-weight: bold;
-      margin-left: 10px;
-      cursor: pointer;
-    }
-  }
-  .btn-group {
+  .btn-group{
     display: flex;
     align-items: center;
     justify-content: center;

+ 129 - 91
src/views/operationManage/goodsType/index.vue

@@ -1,7 +1,39 @@
 
 <template>
   <div class="goodsType app-container">
-    <div class="search">
+   <div class="search">
+      <div>
+        <el-input
+          v-model="query.cateName"
+          size="small"
+          placeholder="请输入名称"
+          class="item-width-200 "
+        ></el-input>
+         <el-button
+        class="ml10"
+        type="primary"
+        size="small"
+         icon="el-icon-search"
+        @click="handleSearch"
+      >
+        搜索
+      </el-button>
+        <!-- <el-select
+          v-model="query.columnId"
+          size="small"
+          clearable
+          class="item-width-200 ml10"
+          placeholder="请选择栏目"
+        >
+          <el-option
+            v-for="item in options"
+            :key="item.value"
+            :label="item.label"
+            :value="item.value"
+          >
+          </el-option>
+        </el-select> -->
+      </div>
       <el-button class="add-btn" type="primary" size="small" @click="handleAdd"
         >添加</el-button
       >
@@ -14,45 +46,28 @@
       v-loading="loading"
       style="width: 100%"
     >
+ 
       <el-table-column
+        prop="cateName"
         align="center"
-        label="模版名称"
-        prop="setMealCode"
+        label="分类名称"
         show-overflow-tooltip
       >
       </el-table-column>
+      
       <el-table-column
-        prop="setMealName"
-        align="center"
-        label="商品类型"
-        show-overflow-tooltip
-      >
-      </el-table-column>
-  
-      <el-table-column
-        prop="createTime"
+        prop="sort"
         align="center"
-        label="状态"
+        label="排序"
         show-overflow-tooltip
       >
-        <template slot-scope="scope">
-          <span :class="[scope.row.status == 1?'green':'red']">{{ scope.row.status == 1 ? "启用" : "禁用"}}</span>
-        </template>
       </el-table-column>
-      <el-table-column align="center" label="操作">
+
+      <el-table-column prop="address" align="center" label="操作">
         <template slot-scope="scope">
-          <el-button
-            type="text"
-            size="small"
-            @click="handle(scope.row)"
-            >{{ scope.row.status == 1 ? "禁用" : "启用" }}</el-button
-          >
-          <el-button type="text" size="small" @click="handleEdit(scope.row.id)"
-            >修改</el-button
-          >
-          <el-button type="text" size="small" @click="handleDel(scope.row)"
-            >删除</el-button
-          >
+          <el-button type="text" size="small" v-if="$route.query.title != '三级分类'" @click="handle(scope.row.id)">查看下级</el-button>
+          <el-button type="text" size="small" @click="handleEdit(scope.row)">编辑</el-button>
+          <el-button type="text" size="small" @click="handleDel(scope.row.id)">删除</el-button>
         </template>
       </el-table-column>
     </el-table>
@@ -74,32 +89,17 @@
   
   <script>
 import { debounce } from "@/utils/index";
-import { getList,operate } from "@/api/common";
+import {getGoodsType,delGoodsType} from '@/api/goods';
 export default {
   name: "goodsType",
   data() {
     return {
-      options: [
-        {
-          value: "0",
-          label: "全部状态",
-        },
-        {
-          value: "1",
-          label: "已完成",
-        },
-        {
-          value: "2",
-          label: "进行中",
-        },
-        {
-          value: "3",
-          label: "失败",
-        },
-      ],
       tableData: [],
+      options:[],
       loading: false,
       query: {
+        parentId: 0,
+        cateName: "",
         currentPage: 1,
         pageSize: 10,
       },
@@ -107,81 +107,119 @@ export default {
       total: 0,
     };
   },
-  watch: {
-    query: {
-      handler: debounce(function (val) {
-          this.getList()
+  // watch: {
+  //   query: {
+  //     handler: debounce(function (val) {
+  //       this.getList()
+  //     }),
+  //     deep: true,
+  //   },
+  // },
+  methods: {
+    handleSearch(){
+      this.query.currentPage = 1
+      this.getList();
 
-      }),
-      deep: true,
     },
-  },
-  methods: {
-    handle(row){
-       this.$confirm(`此操作将${row.status == 1?'禁用':'启用'}该条数据, 是否继续?`, '提示', {
+    handle(id){
+     
+      let title,parentId
+      if(!this.$route.query.title){
+          title = '二级分类'
+          parentId = id
+      }else if(this.$route.query.title == '二级分类'){
+        title = '三级分类'
+          parentId = this.$route.query.parentId
+      }
+       
+         this.$router.push({
+            path:'/operationManage/goodsType/index',
+            query:{
+                id,
+                parentId,
+                title
+            }
+         })
+    },
+    handleEdit(row){
+      
+      sessionStorage.setItem('studyMenu',JSON.stringify(row))
+      this.$router.push({
+        path:'/operationManage/goodsType/addGoodsType',
+        query:{
+            mode:'edit',
+            title:'编辑分类',
+            id:this.$route.query.id,
+            parentId:this.$route.query.parentId || 0,
+            level:this.$route.query.title
+        }
+      })
+    },
+    handleAdd(){
+      this.$router.push({
+        path:'/operationManage/goodsType/addGoodsType',
+        query:{
+          id:this.$route.query.id,
+          parentId:this.$route.query.parentId || 0,
+          level:this.$route.query.title
+        }
+      })
+    },
+    // 点击删除
+    handleDel(id) {
+       this.$confirm(`此操作将删除该数据, 是否继续?`, '提示', {
           confirmButtonText: '确定',
           cancelButtonText: '取消',
           type: 'warning'
         }).then(() => {
-          operate({setMealId:row.id,status:row.status == 1?2:1}).then(res=>{
-            if (res.state == "Success") {
-              this.$notify({
-                title: '提示',
+          delGoodsType({id}).then(res=>{
+            if(res.state == 'Success'){
+               this.$notify({
+                title: '成功',
                 message: '操作成功',
                 type: 'success'
               });
               this.getList()
             }
           })
-         
         })
-      
     },
-    handleEdit(id){
-      this.$router.push({
-        path:"/operationManage/goodsType/addGoodsType",
-        query:{
-          id
-        }
-      });
-    },
-    handleAdd() {
-      this.$router.push("/operationManage/goodsType/addGoodsType");
-    },
-    handleDel(row) {},
     handleSizeChange(val) {
       this.query.currentPage = 1;
       this.query.pageSize = val;
-      this.getList();
+    this.getList()
     },
     handleCurrentChange(val) {
       this.query.currentPage = val;
-      this.getList();
+    this.getList()
     },
-
-    search() {
-      this.query.currentPage = 1;
-      this.getList();
-    },
-    getList() {
+    getList(){
       this.loading = true
-      getList(this.query).then((res) => {
+      getGoodsType(this.query).then(res=>{
         this.loading = false
-        if (res.state == "Success") {
-          this.tableData = res.content.records;
+        if(res.state == 'Success'){
+          this.tableData = res.content.records
           this.total = res.content.total
         }
-      });
-    },
+      })
+    }
   },
   created() {
-    this.getList();
+    this.query.parentId = this.$route.query.id || 0
+    this.getList()
   },
 };
 </script>
   
-<style lang="scss" >
+<style lang="scss" scoped>
 .goodsType {
+  .search{
+    justify-content: space-between;
+  }
+  .icon{
+    width: 80px;
+    height: 80px;
+  }
 }
 </style>
   

+ 36 - 10
src/views/operationManage/orderManage/index.vue

@@ -33,6 +33,15 @@
           >
           </el-option>
         </el-select>
+        <el-button
+        class="ml10"
+        type="primary"
+        size="small"
+        icon="el-icon-search"
+        @click="handleSearch"
+      >
+        搜索
+      </el-button>
     </div>
 
     <el-table
@@ -56,7 +65,7 @@
         show-overflow-tooltip
       >
       <template slot-scope="scope">
-        {{scope.row.goodsList[0].goodsName}}
+        {{scope.row.goodsModelList[0].goodsInfo.goodsName}}
       </template>
       </el-table-column>
       <!-- <el-table-column
@@ -72,6 +81,9 @@
         label="售价"
         show-overflow-tooltip
       >
+      <template slot-scope="scope">
+        {{scope.row.goodsModelList[0].goodsInfo.realPrice}}
+      </template>
       </el-table-column>
       <el-table-column
         prop="payAmount"
@@ -87,7 +99,7 @@
         show-overflow-tooltip
       >
       <template slot-scope="scope">
-        {{scope.row.orderType | filterType}}
+        {{scope.row.goodsModelList[0].goodsState | filterType}}
       </template>
       </el-table-column>
       <el-table-column
@@ -96,6 +108,9 @@
         label="店铺名称"
         show-overflow-tooltip
       >
+       <template slot-scope="scope">
+        {{scope.row.shopInfo.shopName }}
+      </template>
       </el-table-column>
       <el-table-column
         prop="createTime"
@@ -185,13 +200,13 @@ export default {
     };
   },
  watch: {
-    query: {
-      handler: debounce(function(val) {
-   this.getList()
+    // query: {
+    //   handler: debounce(function(val) {
+    //     this.getList()
         
-      }),
-      deep:true
-    },
+    //   }),
+    //   deep:true
+    // },
     date(val){
       if(val){
         this.query.startTime = val[0]
@@ -227,12 +242,22 @@ export default {
     }
   },
   methods: {
+     handleSearch(){
+      this.query.page = 1
+      this.getList();
+
+    },
     timeFormat(val){
       return timeFormat(val)
     },
     handleDetail(row){
-      localStorage.setItem('orderItem',JSON.stringify(row))
-      this.$router.push('/operationManage/orderManage/payDetail')
+      // localStorage.setItem('orderItem',JSON.stringify(row))
+      this.$router.push({
+        path:'/operationManage/orderManage/payDetail',
+        query:{
+           orderNo:row.orderNo,
+        }
+      })
     },
     handleSizeChange(val) {
       this.query.page = 1;
@@ -259,6 +284,7 @@ export default {
         this.loading = false
         if(res.state == 'Success'){
           this.tableData = res.content.content
+          console.log(this.tableData);
           this.total = res.content.totalElements
         }
       })

+ 43 - 21
src/views/operationManage/orderManage/list.vue

@@ -33,6 +33,15 @@
           >
           </el-option>
         </el-select>
+        <el-button
+        class="ml10"
+        type="primary"
+        size="small"
+        icon="el-icon-search"
+        @click="handleSearch"
+      >
+        搜索
+      </el-button>
     </div>
 
     <el-table
@@ -56,7 +65,7 @@
         show-overflow-tooltip
       >
       <template slot-scope="scope">
-        <img :src="scope.row.goodsList[0].goodsImg" alt="" class="icon">
+        <img :src="scope.row.goodsModelList[0].goodsInfo.goodsPath" alt="" class="icon">
       </template>
       </el-table-column>
       <el-table-column
@@ -66,7 +75,7 @@
         show-overflow-tooltip
       >
       <template slot-scope="scope">
-        {{scope.row.goodsList[0].goodsName}}
+        {{scope.row.goodsModelList[0].goodsInfo.goodsName}}
       </template>
       </el-table-column>
       <el-table-column
@@ -76,22 +85,19 @@
         show-overflow-tooltip
       >
        <template slot-scope="scope">
-        {{goodsTypeObj[scope.row.goodsList[0].goodsCode] }}
+        {{goodsTypeObj[scope.row.goodsModelList[0].goodsInfo.goodsType] }}
       </template>
       </el-table-column>
-      <el-table-column
-        prop="goodsAmount"
-        align="center"
-        label="售价"
-        show-overflow-tooltip
-      >
-      </el-table-column>
+    
       <el-table-column
         prop="payAmount"
         align="center"
         label="订单金额"
         show-overflow-tooltip
       >
+       <template slot-scope="scope">
+        {{scope.row.goodsModelList[0].payAmount}}
+      </template>
       </el-table-column>
       <el-table-column
         prop="createTime"
@@ -100,7 +106,7 @@
         show-overflow-tooltip
       >
       <template slot-scope="scope">
-        {{scope.row.orderType | filterType}}
+        {{scope.row.goodsModelList[0].goodsState | filterType}}
       </template>
       </el-table-column>
       <el-table-column
@@ -109,6 +115,9 @@
         label="店铺名称"
         show-overflow-tooltip
       >
+       <template slot-scope="scope">
+        {{scope.row.shopInfo.shopName}}
+      </template>
       </el-table-column>
       <el-table-column
         prop="createTime"
@@ -122,8 +131,8 @@
       </el-table-column>
        <el-table-column prop="address" align="center" label="操作">
         <template slot-scope="scope">
-          <el-button type="text" size="small" @click="handleDetail(scope.row)">详情</el-button>
-          <el-button type="text" size="small" v-if="scope.row.orderType == 'APPLY_REFUND'" @click="handleDetail(scope.row)">介入处理</el-button>
+          <el-button type="text" size="small" @click="handleDetail(scope.row,'detail')">详情</el-button>
+          <el-button type="text" size="small" v-if="scope.row.goodsModelList[0].goodsState == 'APPLY_REFUND'" @click="handleDetail(scope.row,'refund')">介入处理</el-button>
         </template>
       </el-table-column>
     </el-table>
@@ -200,13 +209,13 @@ export default {
     };
   },
  watch: {
-    query: {
-      handler: debounce(function(val) {
-   this.getList()
+    // query: {
+    //   handler: debounce(function(val) {
+    //    this.getList()
         
-      }),
-      deep:true
-    },
+    //   }),
+    //   deep:true
+    // },
     date(val){
       if(val){
         this.query.startTime = val[0]
@@ -242,13 +251,26 @@ export default {
     }
   },
   methods: {
+    handleSearch(){
+      this.query.page = 1
+      this.getList();
+
+    },
     timeFormat(val){
       return timeFormat(val)
     },
-    handleDetail(row){
+    handleDetail(row,mode){
       localStorage.setItem('orderItem',JSON.stringify(row))
-      this.$router.push('/operationManage/orderManage/orderDetail')
+      this.$router.push({
+        path:'/operationManage/orderManage/orderDetail',
+        query:{
+          mode,
+          orderNo:row.orderNo,
+          id:row.goodsModelList[0].id
+        }
+      })
     },
+   
     handleSizeChange(val) {
       this.query.page = 1;
       this.query.size = val;

+ 161 - 40
src/views/operationManage/orderManage/orderDetail.vue

@@ -1,8 +1,8 @@
 <!--
  * @Author: wj 1454560336@qq.com
  * @Date: 2023-11-01 14:21:43
- * @LastEditors: wj 1454560336@qq.com
- * @LastEditTime: 2024-01-11 09:30:44
+ * @LastEditors: wenjie 1454560336@qq.com
+ * @LastEditTime: 2024-03-31 11:47:46
  * @FilePath: \admin-manage\src\views\operationManage\orderManage\orderDetail.vue
  * @Description: 
  * 
@@ -32,6 +32,10 @@
         label="付款时间"
         show-overflow-tooltip
       >
+       <template slot-scope="scope">
+        {{scope.row.payment&&scope.row.payment.paymentTime?scope.row.payment.paymentTime : '-'}}
+      </template>
+     
       </el-table-column>
       <el-table-column
         prop="payAmount"
@@ -47,7 +51,7 @@
         show-overflow-tooltip
       >
         <template slot-scope="scope">
-        {{scope.row.paymentWay | filterPay}}
+        {{scope.row.payment.paymentWay | filterPay}}
       </template>
       </el-table-column>
       <el-table-column
@@ -57,7 +61,7 @@
         show-overflow-tooltip
       >
       <template slot-scope="scope">
-        {{scope.row.orderType | filterType}}
+        {{scope.row.goodsList[0].goodsState | filterType}}
       </template>
       </el-table-column>
     </el-table>
@@ -84,16 +88,20 @@
         label="下单时间"
         show-overflow-tooltip
       >
+        <template slot-scope="scope">
+        {{scope.row.payment&&scope.row.payment.createTime? timeFormat(scope.row.payment.createTime):'-' }}
+      </template>
       </el-table-column>
       <el-table-column
-        prop="goodsAmount"
+        prop="payAmount"
         align="center"
         label="订单金额"
         show-overflow-tooltip
       >
+     
       </el-table-column>
       <el-table-column
-        prop="createTime"
+        prop="discountAmount"
         align="center"
         label="使用优惠券"
         show-overflow-tooltip
@@ -124,7 +132,7 @@
         show-overflow-tooltip
       >
       <template slot-scope="scope">
-        <img :src="scope.row.goodsList[0].goodsImg" alt="" class="icon">
+        <img :src="scope.row.goodsList[0].goodsInfo.goodsPath" alt="" class="icon">
       </template>
       </el-table-column>
       <el-table-column
@@ -134,7 +142,7 @@
         show-overflow-tooltip
       >
       <template slot-scope="scope">
-        {{scope.row.goodsList[0].goodsName}}
+        {{scope.row.goodsList[0].goodsInfo.goodsName}}
       </template>
       </el-table-column>
       <el-table-column
@@ -143,6 +151,9 @@
         label="售价"
         show-overflow-tooltip
       >
+       <template slot-scope="scope">
+        {{scope.row.goodsList[0].goodsInfo.realPrice}}
+      </template>
       </el-table-column>
        <el-table-column
         prop="createTime"
@@ -151,23 +162,79 @@
         show-overflow-tooltip
       >
        <template slot-scope="scope">
-        {{goodsTypeObj[scope.row.goodsList[0].goodsCode] }}
+        {{goodsTypeObj[scope.row.goodsList[0].goodsInfo.goodsType] }}
       </template>
       </el-table-column>
     </el-table>
 
-        <div class="apply">
+    <template v-if="tableData[0].goodsList[0].verifyModel">
+       
+        <div class="title">核销信息</div>
+
+      <el-table
+        :data="tableData"
+        tooltip-effect="dark"
+        border
+        v-loading="loading"
+        style="width: 100%"
+        >
+          <el-table-column
+            prop="payAmount"
+            align="center"
+            label="商品名称"
+            show-overflow-tooltip
+        >
+        <template slot-scope="scope">
+            {{scope.row.goodsList[0].verifyModel.goodsName }}
+        </template>
+        </el-table-column>
+        <el-table-column
+            prop="createTime"
+            align="center"
+            label="核销时间"
+            show-overflow-tooltip
+        >
+            <template slot-scope="scope">
+            {{scope.row.goodsList[0].verifyModel&&scope.row.goodsList[0].verifyModel.checkTime? timeFormat(scope.row.goodsList[0].verifyModel.checkTime):'-' }}
+        </template>
+        </el-table-column>
+        <el-table-column
+            prop="payAmount"
+            align="center"
+            label="核销店铺"
+            show-overflow-tooltip
+        >
+        <template slot-scope="scope">
+            {{scope.row.goodsList[0].verifyModel.shopName }}
+        </template>
+        </el-table-column>
+        <el-table-column
+            prop="payAmount"
+            align="center"
+            label="核销人员"
+            show-overflow-tooltip
+        >
+        <template slot-scope="scope">
+            {{scope.row.goodsList[0].verifyModel.employeeName }}
+        </template>
+        </el-table-column>
+      
+        </el-table>
+    </template>
+
+
+        <div class="apply" v-if="mode == 'refund'">
             <el-button class="btn" size="small" @click="handleBtn">立即处理</el-button>
             <div class="top-info">
                 <div class="sub-title">用户申请退款</div>
-                <div class="time">申请时间: {{tableData[0].refund.applicationRefundTime}}</div>
+                <div class="time">申请时间: {{timeFormat(tableData[0].goodsList[0].refundLog.createTime) }}</div>
             </div>
             <div class="info">
                 <div class="label">退款金额:</div>
                 <div class="money">¥{{tableData[0].payAmount}}</div>
             </div>
             <div class="reason">
-              {{tableData[0].refund.remark}}
+              {{tableData[0].goodsList[0].refundLog.remark}}
             </div>
         </div>
 
@@ -175,7 +242,7 @@
 
      <!-- 退款处理 -->
     <el-dialog title="退款处理" width="470px" :visible.sync="dialogFormVisible">
-    <el-form :model="query" label-width="140px">
+    <el-form :model="query" label-width="140px" ref="query" :rules="rules">
         <el-form-item label="处理方案">
           <el-select v-model="query.type" size="small" class="item-width-200" placeholder="请选择">
             <el-option
@@ -186,13 +253,16 @@
             </el-option>
         </el-select>
         </el-form-item>
-        <el-form-item label="商户退款金额" prop="shopAmount">
-            <el-input type="number" v-model.number="query.shopAmount" :disabled="query.type == 1" size="small" class="item-width-200" autocomplete="off"></el-input>
+        <el-form-item label="购买店铺退款金额" prop="buyShopAmount">
+            <el-input type="number" v-model.number="query.buyShopAmount" :disabled="query.type == 1" size="small" class="item-width-200" autocomplete="off"></el-input>
+        </el-form-item>
+         <el-form-item label="核销店铺退款金额" prop="useShopAmount">
+            <el-input type="number" v-model.number="query.useShopAmount" :disabled="query.type == 1" size="small" class="item-width-200" autocomplete="off"></el-input>
         </el-form-item>
          <el-form-item label="平台退款金额" prop="platformAmount">
             <el-input type="number" v-model.number="query.platformAmount" :disabled="query.type == 1" size="small" class="item-width-200" autocomplete="off"></el-input>
         </el-form-item>
-         <el-form-item label="用户退款金额">
+         <el-form-item label="用户退款金额">
             <el-input v-model="total" disabled size="small" class="item-width-200" autocomplete="off"></el-input>
         </el-form-item>
     </el-form>
@@ -206,24 +276,30 @@
 </template>
 
 <script>
-import {auditRefund,transfer} from '@/api/order'
+import {auditRefund,transfer,orderDetail,subOrdersConfirm} from '@/api/order'
+  import {timeFormat} from '@/utils/index'
     export default {
         data() {
             return {
+                mode:'',
                 loading:false,
                 btnLoading:false,
                 dialogFormVisible:false,
                 query:{
                     "type":'1',
                     "orderType":'APPLY_REFUNDING',
-                    "orderNo": "",
+                    "id": "",
                     "platformAmount": 0,
                     "refundAmount": 0,
                     "refundDesc": "",
-                    "shopAmount": 0
+                    "buyShopAmount": 0,
+                    "useShopAmount": 0
                 },
                 rules: {
-                    shopAmount: [
+                    buyShopAmount: [
+                    { required: true, message: "请输入商户退款金额", trigger: "blur" },
+                    ],
+                     useShopAmount: [
                     { required: true, message: "请输入商户退款金额", trigger: "blur" },
                     ],
                      platformAmount: [
@@ -248,7 +324,7 @@ import {auditRefund,transfer} from '@/api/order'
         },
         computed: {
             total() {
-                this.query.refundAmount = this.query.shopAmount + this.query.platformAmount
+                this.query.refundAmount = this.query.useShopAmount + this.query.platformAmount+ this.query.buyShopAmount
                 return this.query.refundAmount
             }
         },
@@ -283,37 +359,82 @@ import {auditRefund,transfer} from '@/api/order'
             }
         },
         methods: {
+            timeFormat(val){
+                 return timeFormat(val)
+            },
             handleBtn() {
-                this.dialogFormVisible = true
+                if(this.tableData[0].payment.transferAll){
+                    this.dialogFormVisible = true
+                }else{
+                    this.$confirm('此订单未完成分账, 是否立即分账?(确认分账后,第二天00:00:00后可以退款)', '分账', {
+                    confirmButtonText: '确定',
+                    cancelButtonText: '取消',
+                    type: 'warning'
+                    }).then(() => {
+                        subOrdersConfirm({
+                            "goodId": this.tableData[0].goodsList[0].id,
+                            "useShop": this.tableData[0].shopId
+                            }).then(res=>{
+                            if(res.state == 'Success'){
+                                this.orderDetail(this.$route.query.orderNo)
+                                this.$notify({
+                                    title: "成功",
+                                    message: "操作成功",
+                                    type: "success",
+                                });
+                            }
+                        })
+                    })
+                }
             },
             auditRefund(){
-                this.btnLoading = true
-                auditRefund(this.query).then(res=>{
-                    this.btnLoading = false
-                    if(res.state == 'Success'){
-                        this.dialogFormVisible = false
-                         this.$notify({
-                            title: "成功",
-                            message: "操作成功",
-                            type: "success",
-                        });
+                 this.$refs.query.validate((v) => {
+                    if (v) {
+                        this.btnLoading = true
+                        // let obj = JSON.parse(JSON.stringify(this.query))
+                        // obj.
+                        auditRefund(this.query).then(res=>{
+                            this.btnLoading = false
+                            if(res.state == 'Success'){
+                                this.dialogFormVisible = false
+                                 this.$notify({
+                                    title: "成功",
+                                    message: "操作成功",
+                                    type: "success",
+                                });
+                            }
+                        })
                     }
-                })
+                 })
             },
-             transfer(){
-                transfer(this.query.orderNo).then(res=>{
+             transfer(orderNo){
+                transfer(orderNo).then(res=>{
                     if(res.state == 'Success'){
-                        this.query.platformAmount = res.content[0].platAmount
-                        this.query.shopAmount = res.content[0].shopAmount
+                        this.query.platformAmount = res.content.platform
+                        this.query.buyShopAmount = res.content.buyShop
+                        this.query.useShopAmount = res.content.useShop
                     }
                 })
             },
+            orderDetail(id){
+                this.loading = true
+                orderDetail(id).then(res=>{
+                    this.loading = false
+                     if(res.state == 'Success'){
+                        this.tableData = [res.content];
+                     }
+                })
+            }
         },
         created () {
             this.goodsTypeObj = JSON.parse(sessionStorage.getItem('goodsTypeObj'))
-            this.tableData = [JSON.parse(localStorage.getItem("orderItem"))];
-            this.query.orderNo = this.tableData[0].orderNo
-            this.transfer()
+            // this.tableData = [JSON.parse(localStorage.getItem("orderItem"))];
+            this.query.id = this.$route.query.id
+            this.mode = this.$route.query.mode
+            this.orderDetail(this.$route.query.orderNo)
+            if(this.$route.query.mode != 'detail'){
+                this.transfer(this.$route.query.id)
+            }
         },
     }
 </script>

+ 62 - 39
src/views/operationManage/orderManage/payDetail.vue

@@ -1,8 +1,8 @@
 <!--
  * @Author: wj 1454560336@qq.com
  * @Date: 2023-11-01 14:21:43
- * @LastEditors: wj 1454560336@qq.com
- * @LastEditTime: 2024-01-04 15:13:41
+ * @LastEditors: wenjie 1454560336@qq.com
+ * @LastEditTime: 2024-03-27 19:35:59
  * @FilePath: \admin-manage\src\views\operationManage\orderManage\payDetail.vue
  * @Description: 
  * 
@@ -32,6 +32,9 @@
         label="付款时间"
         show-overflow-tooltip
       >
+        <template slot-scope="scope">
+          {{ scope.row.payment.paymentTime || "-" }}
+        </template>
       </el-table-column>
       <el-table-column
         prop="payAmount"
@@ -47,8 +50,8 @@
         show-overflow-tooltip
       >
         <template slot-scope="scope">
-        {{scope.row.paymentWay | filterPay}}
-      </template>
+          {{ scope.row.payment.paymentWay | filterPay }}
+        </template>
       </el-table-column>
       <el-table-column
         prop="orderType"
@@ -56,9 +59,9 @@
         label="状态"
         show-overflow-tooltip
       >
-      <template slot-scope="scope">
-        {{scope.row.orderType | filterType}}
-      </template>
+        <template slot-scope="scope">
+          {{ scope.row.goodsList[0].goodsState | filterType }}
+        </template>
       </el-table-column>
     </el-table>
 
@@ -84,16 +87,23 @@
         label="下单时间"
         show-overflow-tooltip
       >
+        <template slot-scope="scope">
+          {{
+            scope.row.payment && scope.row.payment.createTime
+              ? timeFormat(scope.row.payment.createTime)
+              : "-"
+          }}
+        </template>
       </el-table-column>
       <el-table-column
-        prop="goodsAmount"
+        prop="payAmount"
         align="center"
         label="订单金额"
         show-overflow-tooltip
       >
       </el-table-column>
       <el-table-column
-        prop="createTime"
+        prop="discountAmount"
         align="center"
         label="使用优惠券"
         show-overflow-tooltip
@@ -111,6 +121,9 @@
 </template>
 
 <script>
+import { orderDetail } from "@/api/order";
+  import {timeFormat} from '@/utils/index'
+
 export default {
   data() {
     return {
@@ -141,42 +154,52 @@ export default {
     };
   },
   filters: {
-    filterType: function(val) {
-        if(val == 'APPLY_REFUND'){
-            return '退款审核中'
-        }else if(val == 'CLOSE'){
-            return '关闭订单'
-        }else if(val == 'REFUNDED'){
-            return '已退款'
-        }else if(val == 'REFUSAL_REFUND'){
-            return '拒绝退款'
-        }else if(val == 'USED'){
-            return '订单已完成'
-        }else if(val == 'WAIT_PAYMENT'){
-            return '待付款'
-        }else if(val == 'WAIT_USE'){
-            return '待使用'
-        }
+    filterType: function (val) {
+      if (val == "APPLY_REFUND") {
+        return "退款审核中";
+      } else if (val == "CLOSE") {
+        return "关闭订单";
+      } else if (val == "REFUNDED") {
+        return "已退款";
+      } else if (val == "REFUSAL_REFUND") {
+        return "拒绝退款";
+      } else if (val == "USED") {
+        return "订单已完成";
+      } else if (val == "WAIT_PAYMENT") {
+        return "待付款";
+      } else if (val == "WAIT_USE") {
+        return "待使用";
+      }
+    },
+    filterPay(val) {
+      if (val == "wx.unifiedOrder") {
+        return "微信支付";
+      } else if (val == "trade.create") {
+        return "支付宝支付";
+      } else if (val == "uac.miniOrder") {
+        return "云闪付支付";
+      } else {
+        return "-";
+      }
     },
-    filterPay(val){
-        if(val == 'wx.unifiedOrder'){
-            return '微信支付'
-        }else if(val == 'trade.create'){
-            return '支付宝支付'
-        }else if(val == 'uac.miniOrder'){
-            return '云闪付支付'
-        }else{
-            return '-'
-        }
-    }
   },
   methods: {
-    handleBtn() {
-      this.dialogFormVisible = true;
+    timeFormat(val) {
+      return timeFormat(val);
+    },
+    orderDetail(id) {
+      this.loading = true
+      orderDetail(id).then((res) => {
+        this.loading = false
+        if (res.state == "Success") {
+          this.tableData = [res.content];
+        }
+      });
     },
   },
   created() {
-    this.tableData = [JSON.parse(localStorage.getItem("orderItem"))];
+    // this.tableData = [JSON.parse(localStorage.getItem("orderItem"))];
+    this.orderDetail(this.$route.query.orderNo);
   },
 };
 </script>

+ 38 - 36
src/views/operationManage/shopManage/index.vue

@@ -38,6 +38,15 @@
           >
           </el-option>
         </el-select>
+        <el-button
+        class="ml10"
+        type="primary"
+        size="small"
+        icon="el-icon-search"
+        @click="handleSearch"
+      >
+        搜索
+      </el-button>
       </div>
 
       <el-button
@@ -76,16 +85,7 @@
         show-overflow-tooltip
       >
       </el-table-column>
-       <el-table-column
-        align="center"
-        label="企业类型"
-        prop="shopType"
-        show-overflow-tooltip
-      >
-       <template slot-scope="scope">
-          {{ scope.row.shopType | filterShopType() }}
-        </template>
-      </el-table-column>
+      
       <el-table-column
         prop="shopMenuId"
         align="center"
@@ -97,7 +97,7 @@
         </template>
       </el-table-column>
       <el-table-column
-        prop="createTime"
+        prop="shopMainName"
         align="center"
         label="所属主体"
         show-overflow-tooltip
@@ -117,13 +117,7 @@
         show-overflow-tooltip
       >
       </el-table-column>
-      <el-table-column
-        prop="sort"
-        align="center"
-        label="权重排序"
-        show-overflow-tooltip
-      >
-      </el-table-column>
+     
       <el-table-column
         align="center"
         prop="state"
@@ -134,7 +128,7 @@
           <span :class="[scope.row.state == 1?'green':'red']">{{ scope.row.state == 1 ? "正常" : "禁用" }}</span>
         </template>
       </el-table-column>
-      <el-table-column
+      <!-- <el-table-column
         align="center"
         prop="authStatus"
         label="银联状态"
@@ -143,7 +137,7 @@
         <template slot-scope="scope">
           <span :class="[filterColor(scope.row.authStatus)]">{{ scope.row.authStatus | filterAuth }}</span>
         </template>
-      </el-table-column>
+      </el-table-column> -->
       <el-table-column prop="address" width="180px" fixed="right" align="center" label="操作">
         <template slot-scope="scope">
           <el-button
@@ -152,12 +146,12 @@
             @click="handleDetail(scope.row.shopId)"
             >店铺资料</el-button
           >
-          <el-button
+          <!-- <el-button
             type="text"
             size="small"
             @click="jump(scope.row.shopId,scope.row.shopType)"
             >银联</el-button
-          >
+          > -->
           <el-button
             type="text"
             size="small"
@@ -251,23 +245,26 @@ export default {
       total: 0,
     };
   },
-  watch: {
-    query: {
-      handler: debounce(function (val) {
-        this.getList();
-      }),
-      deep: true,
-    },
-  },
+  // watch: {
+  //   query: {
+  //     handler: debounce(function (val) {
+  //       this.getList();
+  //     }),
+  //     deep: true,
+  //   },
+  // },
   filters: {
-    filterType: function(val,that) {
-      let value
+    filterType: function(value,that) {
+       let msg = ''
+      let arr = value.split(',')
       that.options.map(item=>{
-          if(item.value == val){
-            value = item.label
+        arr.map(i=>{
+          if(item.value == i){
+            msg+=item.label + '/'
           }
+        })
       })
-        return value
+      return msg.substring(0,msg.length-1);
 
     },
     filterAuth: function(val) {
@@ -291,9 +288,14 @@ export default {
       }else if(val == 4){
         return '机关事业单位或社会团体'
       }
-    }
+    },
   },
   methods: {
+    handleSearch(){
+      this.query.currentPage = 1
+      this.getList();
+
+    },
     filterColor(val) {
       if(val == 0){
         return 'gray'

+ 211 - 99
src/views/operationManage/shopManage/shopAdd.vue

@@ -1,8 +1,8 @@
 <!--
  * @Author: error: error: git config user.name & please set dead value or install git && error: git config user.email & please set dead value or install git & please set dead value or install git
  * @Date: 2023-05-26 16:37:34
- * @LastEditors: error: error: git config user.name & please set dead value or install git && error: git config user.email & please set dead value or install git & please set dead value or install git
- * @LastEditTime: 2024-02-22 16:36:27
+ * @LastEditors: wenjie 1454560336@qq.com
+ * @LastEditTime: 2024-03-28 18:45:55
  * @FilePath: \admin-manage\src\views\operationManage\shopManage\shopAdd.vue
  * @Description: 
  * 
@@ -18,7 +18,9 @@
       :disabled="disabled"
       label-width="130px"
     >
-    <el-form-item label="主体名称:" prop="shopMainId">
+    <el-tabs v-model="activeName">
+    <el-tab-pane label="基本信息" name="1">
+      <el-form-item label="商铺主体:" prop="shopMainId">
         <el-select v-model="setQuery.shopMainId" size="small" filterable class="item-width-300" placeholder="请搜索选择店铺主体">
           <el-option
             v-for="item in shopMainOptions"
@@ -28,6 +30,28 @@
           </el-option>
         </el-select>
       </el-form-item>
+      <el-form-item label="店铺经营类型:" prop="shopMenuId">
+        <!-- <el-select v-model="setQuery.shopMenuId" size="small" class="item-width-300" placeholder="请选择店铺经营类型">
+          <el-option
+            v-for="item in options"
+            :key="item.value"
+            :label="item.label"
+            :value="item.value">
+          </el-option>
+        </el-select> -->
+        <el-cascader
+         size="small" 
+         class="item-width-300" 
+         placeholder="请选择店铺经营类型"
+         v-model="setQuery.shopMenuId"
+        :options="options"
+        :props="{
+          value:'id',
+          label:'menuName',
+          children:'child',
+        }"
+        ></el-cascader>
+      </el-form-item>
       <el-form-item label="店铺名称:" prop="shopName">
         <el-input
           v-model.number="setQuery.shopName"
@@ -36,6 +60,16 @@
           class="item-width-300"
         ></el-input>
       </el-form-item>
+      <!-- <el-form-item label="店铺类型:" prop="shopType">
+        <el-select v-model="setQuery.shopType" size="small" class="item-width-300" placeholder="请选择店铺经营类型">
+          <el-option
+            v-for="item in options1"
+            :key="item.value"
+            :label="item.label"
+            :value="item.value">
+          </el-option>
+        </el-select>
+      </el-form-item> -->
       <el-form-item label="店铺地址:" prop="address">
          <el-input
          disabled
@@ -46,25 +80,17 @@
           ></el-input>
           <i class="el-icon-location ml10 position red" @click="chooseAddress"></i>
       </el-form-item>
-       <el-form-item label="店铺类型:" prop="shopType">
-        <el-select v-model="setQuery.shopType" size="small" class="item-width-300" placeholder="请选择店铺经营类型">
-          <el-option
-            v-for="item in options1"
-            :key="item.value"
-            :label="item.label"
-            :value="item.value">
-          </el-option>
-        </el-select>
-      </el-form-item>
-      <el-form-item label="店铺经营类型:" prop="shopMenuId">
-        <el-select v-model="setQuery.shopMenuId" size="small" class="item-width-300" placeholder="请选择店铺经营类型">
-          <el-option
-            v-for="item in options"
-            :key="item.value"
-            :label="item.label"
-            :value="item.value">
-          </el-option>
-        </el-select>
+       
+       <el-form-item label="店铺简介:">
+        <el-input
+          type="textarea"
+          placeholder="请输入店铺简介"
+          v-model="setQuery.detailContent"
+          maxlength="400"
+          class="item-width-500"
+          show-word-limit
+        >
+        </el-input>
       </el-form-item>
 
       <el-form-item label="店铺头像:" prop="logoPath">
@@ -79,37 +105,91 @@
           @uploadEnd="uploadEnd"
         ></Upload>
       </el-form-item>
-      <el-form-item label="店铺门头图片:" prop="doorImg">
+      <el-form-item label="店铺图片:" prop="detailImg">
         <Upload
-          type="doorImg"
-          id="doorImg"
+          type="detailImg"
+          id="detailImg"
           width="250px"
           height="150px"
           :disabled="mode == 'detail'"
           uploadType="SHOP_INFO"
-          :imgUrl="setQuery.doorImg"
+          :imgUrl="setQuery.detailImg"
           @uploadEnd="uploadEnd"
         ></Upload>
       </el-form-item>
-
-      <el-form-item label="店铺简介:">
-        <el-input
-          type="textarea"
-          placeholder="请输入店铺简介"
-          v-model="setQuery.detailContent"
-          maxlength="400"
-          class="item-width-500"
-          show-word-limit
-        >
-        </el-input>
-      </el-form-item>
-      
-      <!-- <el-form-item label="店铺状态:">
+       <!-- <el-form-item label="店铺状态:">
         <el-radio-group v-model="setQuery.doorImg">
             <el-radio :label="1">关闭</el-radio>
             <el-radio :label="2">运营中</el-radio>
           </el-radio-group>
       </el-form-item> -->
+    </el-tab-pane>
+    <el-tab-pane label="其他信息" name="2">
+        <el-form-item label="经营商品类型:" prop="serviceCode">
+        <el-checkbox-group v-model="setQuery.serviceCode">
+          <el-checkbox label="801">研学商品</el-checkbox>
+          <el-checkbox label="802">虚拟商品充值</el-checkbox>
+          <el-checkbox label="803">餐饮商品</el-checkbox>
+        </el-checkbox-group>
+      </el-form-item>
+        <el-form-item label="经营商品分类:" prop="serviceCate">
+
+       <el-cascader
+        v-model="setQuery.serviceCate"
+        :options="typeOptions"
+        :props="{
+          value:'id',
+          label:'cateName',
+          children:'child'
+        }"
+        @change=""></el-cascader>
+      </el-form-item>
+      <el-form-item label="银联分账帐户:">
+        <el-select v-model="setQuery.authAccount" size="small" filterable class="item-width-300" placeholder="请搜索选择店铺主体">
+          <el-option
+            v-for="item in authOptions"
+            :key="item.value"
+            :label="item.label"
+            :value="item.value">
+          </el-option>
+        </el-select>
+      </el-form-item>
+      <el-form-item label="分账规则:" prop="shareId">
+            <el-select
+              v-model="setQuery.shareId"
+              class="item-width-300"
+              placeholder="请选择分账规则"
+            >
+              <el-option
+                v-for="item in ruleOptions"
+                :key="item.value"
+                :label="item.label"
+                :value="item.value"
+              >
+              </el-option>
+            </el-select>
+          </el-form-item>
+        <el-form-item label="店铺搜索:">
+
+       <el-radio-group v-model="setQuery.searchEnable">
+        <el-radio :label="1">可搜索</el-radio>
+        <el-radio :label="2">不可搜索</el-radio>
+      </el-radio-group>
+      </el-form-item>
+
+       <el-form-item label="店铺状态:" >
+
+       <el-radio-group :disabled="!setQuery.authAccount" v-model="setQuery.state">
+        <el-radio :label="1">运营中</el-radio>
+        <el-radio :label="3">关闭</el-radio>
+      </el-radio-group>
+      </el-form-item>
+
+    </el-tab-pane>
+    
+  </el-tabs>
+    
+     
    
     </el-form>
 
@@ -147,8 +227,10 @@
 <script>
 import Upload from "@/components/Upload";
 import { add, detail, update,getMainName } from "@/api/shop";
-import {getMenuName} from '@/api/appConfig';
-import {getRuleList} from '@/api/commission'
+import {getMenuData} from '@/api/appConfig';
+import {getRuleList} from '@/api/rule'
+import {getData} from '@/api/goods'
+import {finishComplexList} from '@/api/payment'
 import { debounce } from "@/utils/index";
 export default {
   components: {
@@ -156,6 +238,8 @@ export default {
   },
   data() {
     return {
+      checkList:[],
+      activeName:"1",
       map:null,
       mode:'detail',//编辑模式
       showMap:false,
@@ -166,9 +250,6 @@ export default {
         detailImg: "",
         district: "",
         doorImg: "",
-        handlerImg: "",
-        idCardBack: "",
-        idCardFront: "",
         idCardNo: "",
         logoPath: "",
         mapLat: "",
@@ -181,8 +262,16 @@ export default {
         shopName: "",
         shopType: '',
         source:'2',
-        shareChannelId:''
+        shareId:'',
+        shareChannelId:'',
+        serviceCode:[],//经营类型
+        serviceCate:[],//商品分类
+        authAccount:"",
+        searchEnable:1,
+        state:3,
       },
+      authOptions:[],//银联账号
+      typeOptions:[],//商品分类
       ruleOptions:[],
       options:[],
       options1:[
@@ -229,8 +318,8 @@ export default {
         logoPath: [
           { required: true, message: "请上传店铺头像", trigger: "change" },
         ],
-        doorImg: [
-          { required: true, message: "请上传门头照", trigger: "change" },
+        shareId: [
+          { required: true, message: "请选择分账规则", trigger: "change" },
         ],
         detailImg: [
           { required: true, message: "请上传店铺详情图", trigger: "change" },
@@ -238,32 +327,11 @@ export default {
         businessImg: [
           { required: true, message: "请上传营业执照", trigger: "change" },
         ],
-        serviceName: [
-          { required: true, message: "请输入联系人", trigger: "blur" },
-        ],
-        serviceTel: [
-          { required: true, message: "请输入客服电话", trigger: "blur" },
-        ],
-        idCardBack: [
-          {
-            required: true,
-            message: "请上传法人身份证反面照",
-            trigger: "change",
-          },
+        serviceCate: [
+          { required: true, message: "请选择经营商品分类", trigger: "change" },
         ],
-        idCardFront: [
-          {
-            required: true,
-            message: "请上传法人身份证正面照",
-            trigger: "change",
-          },
-        ],
-        handlerImg: [
-          {
-            required: true,
-            message: "请上传法人手持身份证照",
-            trigger: "change",
-          },
+        serviceCode: [
+          { required: true, message: "请选择经营商品类型", trigger: "change" },
         ],
       },
     };
@@ -289,7 +357,20 @@ export default {
             }
         }, that.setQuery.city)
       }
-    })
+    }),
+    "setQuery.shopMainId":function(val){
+      if(val){
+        this.finishComplexList()
+      }else{
+          this.authOptions = []
+        
+      }
+    },
+    'setQuery.authAccount'(val){
+        if(!val){
+          this.setQuery.state = 3
+        }
+    }
   },
   methods: {
     edit(){
@@ -310,12 +391,18 @@ export default {
           } else {
             this.add();
           }
+        }else{
+          this.$message.error('请检查是否有必填项未填');
         }
       });
     },
     add() {
       this.loading = true;
-      add(this.setQuery).then((res) => {
+      let obj = JSON.parse(JSON.stringify(this.setQuery))
+      obj.serviceCode = obj.serviceCode.toString()
+      obj.serviceCate = obj.serviceCate.toString()
+      obj.shopMenuId = obj.shopMenuId.toString()
+      add(obj).then((res) => {
         this.loading = false;
         if (res.state == "Success") {
           this.$notify({
@@ -330,7 +417,12 @@ export default {
     },
     update() {
       this.loading = true;
-      update(this.setQuery).then((res) => {
+      let obj = JSON.parse(JSON.stringify(this.setQuery))
+      obj.serviceCode = obj.serviceCode.toString()
+      obj.serviceCate = obj.serviceCate.toString()
+      obj.shopMenuId = obj.shopMenuId.toString()
+
+      update(obj).then((res) => {
         this.loading = false;
         if (res.state == "Success") {
           this.$notify({
@@ -353,22 +445,17 @@ export default {
         this.pageLoading = false;
         if (res.state == "Success") {
           this.setQuery = res.content;
+          this.setQuery.serviceCode = this.setQuery.serviceCode.split(',')
+          this.setQuery.serviceCate = this.setQuery.serviceCate.split(',').map(item=> Number(item))
+          this.setQuery.shopMenuId = this.setQuery.shopMenuId.split(',').map(item=> Number(item))
         }
       });
     },
     // 获取经营类型
     getMenuName(){
-      getMenuName().then(res=>{
+      getMenuData().then(res=>{
         if(res.state == 'Success'){
-          for (const key in res.content) {
-            if (res.content.hasOwnProperty.call(res.content, key)) {
-                this.options.push({
-                  label:res.content[key],
-                  value:Number(key) 
-                })              
-            }
-          }
-          
+             this.options = res.content
         }
       })
     },
@@ -445,24 +532,49 @@ export default {
           this.showMap = false
         })
     },
-    getRuleList(){
-      getRuleList().then(res=>{
+    // 规则
+    getRuleList() {
+      getRuleList({currentPage:1,pageSize:999}).then((res) => {
+        if (res.state == "Success") {
+          res.content.records.map(item=>{
+            this.ruleOptions.push({
+              label:item.shareRule,
+              value:item.id
+            })
+          })
+        }
+      });
+    },
+    // 获取商品分类
+    getData(){
+      getData().then(res=>{
         if(res.state == 'Success'){
-          console.log(res.content.records);
-          this.ruleOptions = res.content.records.filter(item=>item.shareType == 2)
-          // for (const key in res.content) {
-          //   if (Object.hasOwnProperty.call(res.content, key)) {
-          //     this.shopMainOptions.push({
-          //       label:res.content[key],
-          //       value:key
-          //     })
-          //   }
-          // }
-        } 
+          this.typeOptions = res.content
+        }
+      })
+    },
+    // 获取当前主体下面的已签约银联账号
+    finishComplexList(){
+      finishComplexList({
+        "accesseId": "",
+        "epId": this.setQuery.shopMainId
+      }).then(res=>{
+         if(res.state == 'Success'){
+          let list = []
+          res.content.map(item=>{
+              list.push({
+                value:item.accesser_user_id,
+                label:item.externalName
+              })
+          })
+          this.authOptions = list
+        }
       })
     }
   },
   created() {
+    // this.finishComplexList()
+    this.getData()
     this.getRuleList()
     this.getMenuName()
     this.getMainName()

+ 54 - 33
src/views/operationManage/shopManage/shopAdd1.vue

@@ -1,8 +1,8 @@
 <!--
  * @Author: wj 1454560336@qq.com
  * @Date: 2023-09-18 10:57:47
- * @LastEditors: error: error: git config user.name & please set dead value or install git && error: git config user.email & please set dead value or install git & please set dead value or install git
- * @LastEditTime: 2024-02-21 14:19:12
+ * @LastEditors: wenjie 1454560336@qq.com
+ * @LastEditTime: 2024-03-29 15:39:45
  * @FilePath: \admin-manage\src\views\operationManage\shopManage\shopAdd1.vue
  * @Description: 
  * 
@@ -515,6 +515,7 @@ export default {
       loading: false,
       imgList: [],
       date: [],
+      accesseId:'',
       setQuery: {
         accesser_user_id: "",
         bank_acct_name: "",
@@ -591,7 +592,7 @@ export default {
         shop_name: [
           { required: true, message: "请输入商铺名称", trigger: "blur" },
         ],
-        phone: [
+        legal_mobile: [
           { required: true, message: "请输入商铺手机号", trigger: "blur" },
         ],
         mchntType: [
@@ -836,9 +837,9 @@ export default {
     // 点击我已签约
     handleSign() {
       this.signLoading = true;
-      this.applyQry(this.setQuery.ums_reg_id).then(() => {
+      this.applyQry(this.setQuery.ums_reg_id,).then(() => {
         this.showSign = false;
-        this.$router.push("/operationManage/shopManage/index");
+        this.$router.push("/merchantManage/index");
       });
     },
     handleTab(val) {
@@ -949,16 +950,9 @@ export default {
                   .then((r) => {
                     return this.bankInfo();
                   })
-                  .then(()=>{
-                    return this.shareholderInfo();
-
-                  })
                   .then((res) => {
                       return this.complexUpload();
                   })
-                  .then((id) => {
-                    return this.requestAccountVerify(id);
-                  })
                   .then((id) => {
                     return this.agreementSign(id);
                   })
@@ -976,16 +970,22 @@ export default {
       }
     },
     startComplex() {
+      return new Promise((resolve, reject) => {
       startComplex({
+        accesseId:'',
         epId: this.$route.query.id,
         reg_mer_type: "02",
-      }).then((res) => {});
+      }).then((res) => {
+        this.accesseId =  res.content.accesser_user_id
+        resolve(res)
+      });
+      })
     },
     // 获取签约流程
     complexIng() {
       this.loading = true;
       return new Promise((resolve, reject) => {
-        complexIng({ epId: this.$route.query.id }).then((res) => {
+        complexIng({ accesseId:this.$route.query.accesseId||this.accesseId,epId: this.$route.query.id }).then((res) => {
           this.loading = false;
           if (res.state == "Success") {
             if (res.content && res.content.shop_name && res.content.shop_addr_ext) {
@@ -1047,6 +1047,7 @@ export default {
     // 商户信息
     shopInfo() {
       let obj = {
+        accesseId:this.$route.query.accesseId||this.accesseId,
         developingPersonID: "",
         fax: "",
         mchntType: this.setQuery.mchntType,
@@ -1084,6 +1085,7 @@ export default {
     // 法人信息
     legal() {
       let obj = {
+        accesseId:this.$route.query.accesseId||this.accesseId,
         epId: this.$route.query.id,
         legal_card_deadline: this.setQuery.legal_card_deadline,
         legal_card_start: this.setQuery.legal_card_start,
@@ -1120,6 +1122,7 @@ export default {
       this.$set(this.setQuery, this.picObj[val.type], val.url);
       // this.setQuery.idCardImg = val.url
       let obj = {
+        accesseId:this.$route.query.accesseId||this.accesseId,
         epId: this.$route.query.id,
         fileUrl: val.url,
         picType: val.type,
@@ -1129,6 +1132,7 @@ export default {
     // 结算信息
     bankInfo() {
       let obj = {
+        accesseId:this.$route.query.accesseId||this.accesseId,
         bank_acct_name: this.setQuery.bank_acct_name,
         bank_acct_no: this.setQuery.bank_acct_no,
         bank_acct_type: "0",
@@ -1162,7 +1166,7 @@ export default {
     // 档案提交
     complexUpload() {
       return new Promise((resolve, reject) => {
-        complexUpload({ epId: this.$route.query.id })
+        complexUpload({ accesseId:this.$route.query.accesseId||this.accesseId,epId: this.$route.query.id })
           .then((res) => {
             if (res.state == "Success") {
               resolve(res.content.ums_reg_id);
@@ -1204,7 +1208,7 @@ export default {
     // 入网状态查询
     applyQry(ums_reg_id) {
       return new Promise((resolve, reject) => {
-        applyQry({ epId: this.$route.query.id, ums_reg_id })
+        applyQry({ epId: this.$route.query.id,accesseId:this.$route.query.accesseId||this.accesseId, ums_reg_id })
           .then((res) => {
             if (res.state == "Success") {
               this.$message({
@@ -1309,23 +1313,40 @@ export default {
   mounted() {},
   created() {
     this.mode = this.$route.query.mode || "add";
-    this.complexIng()
-      .then((res) => {
-        // 没有开始填写
-        if (!res.content) {
-          this.startComplex();
-        } else if (
-          res.content.ums_reg_id &&
-          res.content.apply_status === "00"
-        ) {
-          //资料提交  没有银联签约
-          this.agreementSign(res.content.ums_reg_id); //签约
-        }
-        return this.getRegion("province");
-      })
-      .then(() => {
-        // 根据省市id  拿到
-      });
+    if(this.mode == 'add'){
+      this.startComplex()
+        .then((res) => {
+         if (
+            res.content.ums_reg_id &&
+            res.content.apply_status === "00"
+          ) {
+            //资料提交  没有银联签约
+            this.agreementSign(res.content.ums_reg_id); //签约
+          }
+          return this.getRegion("province");
+        })
+        .then(() => {
+          // 根据省市id  拿到
+        });
+    }else{
+      this.complexIng()
+        .then((res) => {
+          // 没有开始填写
+          if (!res.content) {
+            this.startComplex();
+          } else if (
+            res.content.ums_reg_id &&
+            res.content.apply_status === "00"
+          ) {
+            //资料提交  没有银联签约
+            this.agreementSign(res.content.ums_reg_id); //签约
+          }
+          return this.getRegion("province");
+        })
+        .then(() => {
+          // 根据省市id  拿到
+        });
+    }
     this.getMcc();
   },
 };

+ 142 - 53
src/views/operationManage/shopManage/shopAdd2.vue

@@ -1,8 +1,8 @@
 <!--
  * @Author: wj 1454560336@qq.com
  * @Date: 2023-09-18 10:57:47
- * @LastEditors: error: error: git config user.name & please set dead value or install git && error: git config user.email & please set dead value or install git & please set dead value or install git
- * @LastEditTime: 2024-02-21 14:19:29
+ * @LastEditors: wenjie 1454560336@qq.com
+ * @LastEditTime: 2024-03-29 14:11:00
  * @FilePath: \admin-manage\src\views\operationManage\shopManage\shopAdd2.vue
  * @Description: 
  * 
@@ -346,10 +346,10 @@
         </el-form-item>
         <el-form-item label="身份证有效期:" prop="shareholderCertExpire">
           <el-date-picker
-            v-model="setQuery.shareholderCertExpire"
+            v-model="date1"
             :disabled="checked1"
             size="small"
-            type="date"
+            type="daterange"
             range-separator="至"
             value-format="yyyy-MM-dd"
             start-placeholder="开始日期"
@@ -392,10 +392,10 @@
         </el-form-item>
         <el-form-item label="身份证有效期:" prop="bnfCertExpire">
           <el-date-picker
-            v-model="setQuery.bnfList[0].bnfCertExpire"
+            v-model="date2"
             :disabled="checked2"
             size="small"
-            type="date"
+            type="daterange"
             range-separator="至"
             value-format="yyyy-MM-dd"
             start-placeholder="开始日期"
@@ -625,6 +625,8 @@ export default {
       imgList: [],
       date: [],
       date1: [],
+      date2: [],
+      accesseId:'',
       setQuery: {
         accesser_user_id: "",
         bank_acct_name: "",
@@ -635,7 +637,7 @@ export default {
         bank_city_id: "", //开户市
         bnfList: [
           {
-            bnfCertStart: "",
+            bnfCertBeginDate: "",
             bnfCertExpire: "",
             bnfCertType: "1",
             bnfCertno: "",
@@ -672,6 +674,7 @@ export default {
         reg_mer_type: "01",
         remark: "",
         serviceDistrict: "",
+        shareholderCertBeginDate:'',
         shareholderCertExpire: "",
         shareholderCertType: "1",
         shareholderCertno: "",
@@ -708,7 +711,7 @@ export default {
         shop_lic: [
           { required: true, message: "请输入营业执照编号", trigger: "blur" },
         ],
-        phone: [
+        legal_mobile: [
           { required: true, message: "请输入商铺手机号", trigger: "blur" },
         ],
         mchntType: [
@@ -928,18 +931,45 @@ export default {
         this.setQuery.legal_card_deadline = val[1];
       }
     },
+    date1(val) {
+      if (val == null) {
+          this.setQuery.shareholderCertBeginDate = ''
+          this.setQuery.shareholderCertExpire = ''
+
+      } else {
+          this.setQuery.shareholderCertBeginDate = val[0]
+          this.setQuery.shareholderCertExpire = val[1]
+      }
+    },
     checked1(val) {
       if (val) {
+        this.setQuery.shareholderCertBeginDate = "9999-12-31";
         this.setQuery.shareholderCertExpire = "9999-12-31";
+          this.date1 = ["9999-12-31", "9999-12-31"];
+        
+      } else {
+           this.date1 = [];
+
+      }
+    },
+    date2(val) {
+      if (val == null) {
+        this.setQuery.bnfList[0].bnfCertBeginDate = ''
+         this.setQuery.bnfList[0].bnfCertExpire = ''
       } else {
-        this.setQuery.shareholderCertExpire = "";
+         this.setQuery.bnfList[0].bnfCertBeginDate = val[0]
+         this.setQuery.bnfList[0].bnfCertExpire = val[1]
       }
     },
     checked2(val) {
       if (val) {
-        this.setQuery.bnfCertExpire = "9999-12-31";
+        this.setQuery.bnfList[0].bnfCertBeginDate = "9999-12-31"
+        this.setQuery.bnfList[0].bnfCertExpire = "9999-12-31"
+          this.date2 = ["9999-12-31", "9999-12-31"];
+
       } else {
-        this.setQuery.bnfCertExpire = "";
+           this.date2 = [];
+        
       }
     },
 
@@ -982,9 +1012,9 @@ export default {
         if (this.setQuery.legal_card_deadline == "9999-12-31") {
           this.checked1 = true;
         } else {
-          this.setQuery.shareholderCertExpire =
-            this.setQuery.legal_card_deadline;
+          // this.setQuery.shareholderCertExpire =this.setQuery.legal_card_deadline;
         }
+          this.date1 = this.date
         this.setQuery.shareholderCertno = this.setQuery.legal_idcard_no;
         // this.setQuery.shareholderHomeAddr = this.setQuery.legalmanHomeAddr;
         this.setQuery.shareholderName = this.setQuery.legal_name;
@@ -992,9 +1022,10 @@ export default {
         if (this.setQuery.legal_card_deadline == "9999-12-31") {
           this.checked2 = true;
         } else {
-          this.setQuery.bnfList[0].bnfCertExpire =
-            this.setQuery.legal_card_deadline;
+          // this.setQuery.bnfList[0].bnfCertExpire =
+          //   this.setQuery.legal_card_deadline;
         }
+          this.date2 = this.date1
         this.setQuery.bnfList[0].bnfCertExpire =this.setQuery.shareholderCertExpire;
         this.setQuery.bnfList[0].bnfCertno = this.setQuery.shareholderCertno;
         this.setQuery.bnfList[0].bnfHomeAddr = this.setQuery.shareholderHomeAddr;
@@ -1008,7 +1039,8 @@ export default {
       this.signLoading = true;
       this.applyQry(this.setQuery.ums_reg_id).then(() => {
         this.showSign = false;
-        this.$router.push("/operationManage/shopManage/index");
+        this.$router.push("/merchantManage/index");
+
       });
     },
     handleTab(val) {
@@ -1146,16 +1178,22 @@ export default {
       }
     },
     startComplex() {
+      return new Promise((resolve, reject) => {
       startComplex({
+        accesseId:'',
         epId: this.$route.query.id,
         reg_mer_type: "01", //00:企业商户01:个人工商户02:小微商户03:机关事业单位或社会团体
-      }).then((res) => {});
+      }).then((res) => {
+        this.accesseId =  res.content.accesser_user_id
+        resolve(res)
+      });
+      })
     },
     // 获取签约流程
     complexIng() {
       this.loading = true;
       return new Promise((resolve, reject) => {
-        complexIng({ epId: this.$route.query.id }).then((res) => {
+        complexIng({ accesseId:this.$route.query.accesseId||this.accesseId,epId: this.$route.query.id }).then((res) => {
           this.loading = false;
           if (res.state == "Success") {
             if (res.content && res.content.shop_name && res.content.shop_addr_ext) {
@@ -1179,12 +1217,17 @@ export default {
 
               if (this.setQuery.shareholderCertExpire == "9999-12-31") {
                 this.checked1 = true;
+              } else if (this.setQuery.shareholderCertExpire) {
+                this.date1 = [
+                  this.setQuery.shareholderCertBeginDate,
+                  this.setQuery.shareholderCertExpire,
+                ];
               }
 
               if (!this.setQuery.bnfList) {
                 this.setQuery.bnfList = [
                   {
-                    bnfCertStart: "",
+                    bnfCertBeginDate: "",
                     bnfCertExpire: "",
                     bnfCertType: "1",
                     bnfCertno: "",
@@ -1192,12 +1235,19 @@ export default {
                     bnfHomeAddr: "",
                   },
                 ];
-              }
-
-              if (this.setQuery.bnfList[0].bnfCertExpire == "9999-12-31") {
+              }else if (this.setQuery.bnfList[0].bnfCertExpire == "9999-12-31") {
                 this.checked2 = true;
+              } else if (this.setQuery.shareholderCertExpire) {
+                this.date2 = [
+                  this.setQuery.bnfList[0].bnfCertBeginDate,
+                  this.setQuery.bnfList[0].bnfCertExpire
+                ];
               }
 
+              // if (this.setQuery.bnfList[0].bnfCertExpire == "9999-12-31") {
+              //   this.checked2 = true;
+              // }
+
               // 提取图片
               this.setQuery.pic_list.map((item) => {
                 for (const key in this.picObj) {
@@ -1238,6 +1288,7 @@ export default {
     // 商户信息
     shopInfo() {
       let obj = {
+        accesseId:this.$route.query.accesseId||this.accesseId,
         developingPersonID: "",
         fax: "",
         mchntType: this.setQuery.mchntType,
@@ -1275,6 +1326,7 @@ export default {
     // 法人信息
     legal() {
       let obj = {
+        accesseId:this.$route.query.accesseId||this.accesseId,
         epId: this.$route.query.id,
         legal_card_deadline: this.setQuery.legal_card_deadline,
         legal_card_start: this.setQuery.legal_card_start,
@@ -1311,6 +1363,7 @@ export default {
       this.$set(this.setQuery, this.picObj[val.type], val.url);
       // this.setQuery.idCardImg = val.url
       let obj = {
+        accesseId:this.$route.query.accesseId||this.accesseId,
         epId: this.$route.query.id,
         fileUrl: val.url,
         picType: val.type,
@@ -1320,8 +1373,10 @@ export default {
     // 股东信息
     shareholderInfo() {
       let obj = {
+        accesseId:this.$route.query.accesseId||this.accesseId,
         bnfList: this.setQuery.bnfList,
         epId: this.$route.query.id,
+        shareholderCertBeginDate: this.setQuery.shareholderCertBeginDate,
         shareholderCertExpire: this.setQuery.shareholderCertExpire,
         shareholderCertType: this.setQuery.shareholderCertType,
         shareholderCertno: this.setQuery.shareholderCertno,
@@ -1347,6 +1402,7 @@ export default {
     // 结算信息
     bankInfo() {
       let obj = {
+        accesseId:this.$route.query.accesseId||this.accesseId,
         bank_acct_name: this.setQuery.bank_acct_name,
         bank_acct_no: this.setQuery.bank_acct_no,
         bank_acct_type: this.setQuery.bank_acct_type,
@@ -1380,7 +1436,7 @@ export default {
     // 档案提交
     complexUpload() {
       return new Promise((resolve, reject) => {
-        complexUpload({ epId: this.$route.query.id })
+        complexUpload({ accesseId:this.$route.query.accesseId||this.accesseId,epId: this.$route.query.id, })
           .then((res) => {
             if (res.state == "Success") {
               resolve(res.content.ums_reg_id);
@@ -1414,6 +1470,7 @@ export default {
             // 验证打款金额
             companyAccountVerify({
               trans_amt: value,
+              accesseId:this.$route.query.accesseId||this.accesseId,
               epId:this.$route.query.id
               // company_account: this.setQuery.bank_acct_no,
               // ums_reg_id,
@@ -1451,6 +1508,7 @@ export default {
             requestAccountVerify({
               // company_account: this.setQuery.bank_acct_no,
               // ums_reg_id,
+              accesseId:this.$route.query.accesseId||this.accesseId,
               epId:this.$route.query.id
             })
               .then((res) => {
@@ -1508,7 +1566,7 @@ export default {
     // 入网状态查询
     applyQry(ums_reg_id) {
       return new Promise((resolve, reject) => {
-        applyQry({ epId: this.$route.query.id, ums_reg_id })
+        applyQry({ accesseId:this.$route.query.accesseId||this.accesseId,epId: this.$route.query.id, ums_reg_id })
           .then((res) => {
             if (res.state == "Success") {
               this.$message({
@@ -1613,36 +1671,67 @@ export default {
   mounted() {},
   created() {
     this.mode = this.$route.query.mode || "add";
-    this.complexIng().then((res) => {
-        // 没有开始填写
-        if (!res.content) {
-          this.startComplex();
-        } else if (
-          res.content.ums_reg_id &&
-          res.content.apply_status === "00"
-        ) {
-          //资料提交  没有银联签约
-          if (this.setQuery.bank_acct_type == 1 && !res.content.verification) {
-            // 查询对公验证
-            this.requestAccountVerify(res.content.ums_reg_id).then((id) => {
-              this.agreementSign(id).then((url) => {
-                // 跳转银联后
-                this.showSign = true;
-                this.yinlianUrl = url;
-                this.loading = false;
-              })
-            });
-          }else{
-            this.agreementSign(res.content.ums_reg_id).then((url) => {
-                // 跳转银联后
-                this.showSign = true;
-                this.yinlianUrl = url;
-                this.loading = false;
-              })
+    if(this.mode == 'add'){
+      this.startComplex().then((res) => {
+       if (
+            res.content.ums_reg_id &&
+            res.content.apply_status === "00"
+          ) {
+            //资料提交  没有银联签约
+            if (this.setQuery.bank_acct_type == 1 && !res.content.verification) {
+              // 查询对公验证
+              this.requestAccountVerify(res.content.ums_reg_id).then((id) => {
+                this.agreementSign(id).then((url) => {
+                  // 跳转银联后
+                  this.showSign = true;
+                  this.yinlianUrl = url;
+                  this.loading = false;
+                })
+              });
+            }else{
+              this.agreementSign(res.content.ums_reg_id).then((url) => {
+                  // 跳转银联后
+                  this.showSign = true;
+                  this.yinlianUrl = url;
+                  this.loading = false;
+                })
+            }
           }
-        }
-        return this.getRegion("province");
-      })
+          return this.getRegion("province");
+        })
+    }else{
+
+      this.complexIng().then((res) => {
+          // 没有开始填写
+          if (!res.content) {
+            this.startComplex();
+          } else if (
+            res.content.ums_reg_id &&
+            res.content.apply_status === "00"
+          ) {
+            //资料提交  没有银联签约
+            if (this.setQuery.bank_acct_type == 1 && !res.content.verification) {
+              // 查询对公验证
+              this.requestAccountVerify(res.content.ums_reg_id).then((id) => {
+                this.agreementSign(id).then((url) => {
+                  // 跳转银联后
+                  this.showSign = true;
+                  this.yinlianUrl = url;
+                  this.loading = false;
+                })
+              });
+            }else{
+              this.agreementSign(res.content.ums_reg_id).then((url) => {
+                  // 跳转银联后
+                  this.showSign = true;
+                  this.yinlianUrl = url;
+                  this.loading = false;
+                })
+            }
+          }
+          return this.getRegion("province");
+        })
+    }
       
     this.getMcc();
   },

+ 139 - 58
src/views/operationManage/shopManage/shopAdd3.vue

@@ -1,8 +1,8 @@
 <!--
  * @Author: wj 1454560336@qq.com
  * @Date: 2023-09-18 10:57:47
- * @LastEditors: error: error: git config user.name & please set dead value or install git && error: git config user.email & please set dead value or install git & please set dead value or install git
- * @LastEditTime: 2024-02-21 14:19:38
+ * @LastEditors: wenjie 1454560336@qq.com
+ * @LastEditTime: 2024-03-29 14:18:59
  * @FilePath: \admin-manage\src\views\operationManage\shopManage\shopAdd3.vue
  * @Description: 
  * 
@@ -323,10 +323,10 @@
         </el-form-item>
         <el-form-item label="身份证有效期:" prop="shareholderCertExpire">
           <el-date-picker
-            v-model="setQuery.shareholderCertExpire"
+            v-model="date1"
             :disabled="checked1"
             size="small"
-            type="date"
+            type="daterange"
             range-separator="至"
             value-format="yyyy-MM-dd"
             start-placeholder="开始日期"
@@ -369,10 +369,10 @@
         </el-form-item>
         <el-form-item label="身份证有效期:" prop="bnfCertExpire">
           <el-date-picker
-            v-model="setQuery.bnfList[0].bnfCertExpire"
+            v-model="date2"
             :disabled="checked2"
             size="small"
-            type="date"
+            type="daterange"
             range-separator="至"
             value-format="yyyy-MM-dd"
             start-placeholder="开始日期"
@@ -602,6 +602,8 @@ export default {
       imgList: [],
       date: [],
       date1: [],
+      date2: [],
+      accesseId:'',
       setQuery: {
         accesser_user_id: "",
         bank_acct_name: "",
@@ -612,7 +614,7 @@ export default {
         bank_city_id: "", //开户市
         bnfList: [
           {
-            bnfCertStart: "",
+            bnfCertBeginDate: "",
             bnfCertExpire: "",
             bnfCertType: "1",
             bnfCertno: "",
@@ -649,6 +651,7 @@ export default {
         reg_mer_type: "01",
         remark: "",
         serviceDistrict: "",
+        shareholderCertBeginDate:'',
         shareholderCertExpire: "",
         shareholderCertType: "1",
         shareholderCertno: "",
@@ -685,7 +688,7 @@ export default {
         shop_lic: [
           { required: true, message: "请输入营业执照编号", trigger: "blur" },
         ],
-        phone: [
+        legal_mobile: [
           { required: true, message: "请输入商铺手机号", trigger: "blur" },
         ],
         mchntType: [
@@ -905,21 +908,47 @@ export default {
         this.setQuery.legal_card_deadline = val[1];
       }
     },
+    date1(val) {
+      if (val == null) {
+          this.setQuery.shareholderCertBeginDate = ''
+          this.setQuery.shareholderCertExpire = ''
+
+      } else {
+          this.setQuery.shareholderCertBeginDate = val[0]
+          this.setQuery.shareholderCertExpire = val[1]
+      }
+    },
     checked1(val) {
       if (val) {
+        this.setQuery.shareholderCertBeginDate = "9999-12-31";
         this.setQuery.shareholderCertExpire = "9999-12-31";
+          this.date1 = ["9999-12-31", "9999-12-31"];
+        
+      } else {
+           this.date1 = [];
+
+      }
+    },
+    date2(val) {
+      if (val == null) {
+        this.setQuery.bnfList[0].bnfCertBeginDate = ''
+         this.setQuery.bnfList[0].bnfCertExpire = ''
       } else {
-        this.setQuery.shareholderCertExpire = "";
+         this.setQuery.bnfList[0].bnfCertBeginDate = val[0]
+         this.setQuery.bnfList[0].bnfCertExpire = val[1]
       }
     },
     checked2(val) {
       if (val) {
-        this.setQuery.bnfCertExpire = "9999-12-31";
+        this.setQuery.bnfList[0].bnfCertBeginDate = "9999-12-31"
+        this.setQuery.bnfList[0].bnfCertExpire = "9999-12-31"
+          this.date2 = ["9999-12-31", "9999-12-31"];
+
       } else {
-        this.setQuery.bnfCertExpire = "";
+           this.date2 = [];
+        
       }
     },
-
     "setQuery.bank_province_id": function (val, old) {
       if (val) {
         this.getRegion("city");
@@ -959,9 +988,9 @@ export default {
         if (this.setQuery.legal_card_deadline == "9999-12-31") {
           this.checked1 = true;
         } else {
-          this.setQuery.shareholderCertExpire =
-            this.setQuery.legal_card_deadline;
+          // this.setQuery.shareholderCertExpire =this.setQuery.legal_card_deadline;
         }
+          this.date1 = this.date
         this.setQuery.shareholderCertno = this.setQuery.legal_idcard_no;
         // this.setQuery.shareholderHomeAddr = this.setQuery.legalmanHomeAddr;
         this.setQuery.shareholderName = this.setQuery.legal_name;
@@ -969,9 +998,10 @@ export default {
         if (this.setQuery.legal_card_deadline == "9999-12-31") {
           this.checked2 = true;
         } else {
-          this.setQuery.bnfList[0].bnfCertExpire =
-            this.setQuery.legal_card_deadline;
+          // this.setQuery.bnfList[0].bnfCertExpire =
+          //   this.setQuery.legal_card_deadline;
         }
+          this.date2 = this.date1
         this.setQuery.bnfList[0].bnfCertExpire =this.setQuery.shareholderCertExpire;
         this.setQuery.bnfList[0].bnfCertno = this.setQuery.shareholderCertno;
         this.setQuery.bnfList[0].bnfHomeAddr = this.setQuery.shareholderHomeAddr;
@@ -985,7 +1015,7 @@ export default {
       this.signLoading = true;
       this.applyQry(this.setQuery.ums_reg_id).then(() => {
         this.showSign = false;
-        this.$router.push("/operationManage/shopManage/index");
+        this.$router.push("/merchantManage/index");
       });
     },
     handleTab(val) {
@@ -1122,17 +1152,23 @@ export default {
         this.loading = false;
       }
     },
-    startComplex() {
+     startComplex() {
+      return new Promise((resolve, reject) => {
       startComplex({
+        accesseId:'',
         epId: this.$route.query.id,
         reg_mer_type: "00", //00:企业商户01:个人工商户02:小微商户03:机关事业单位或社会团体
-      }).then((res) => {});
+      }).then((res) => {
+        this.accesseId =  res.content.accesser_user_id
+        resolve(res)
+      });
+      })
     },
     // 获取签约流程
     complexIng() {
       this.loading = true;
       return new Promise((resolve, reject) => {
-        complexIng({ epId: this.$route.query.id }).then((res) => {
+        complexIng({ accesseId:this.$route.query.accesseId||this.accesseId,epId: this.$route.query.id }).then((res) => {
           this.loading = false;
           if (res.state == "Success") {
             if (res.content && res.content.shop_name && res.content.shop_addr_ext) {
@@ -1154,14 +1190,19 @@ export default {
                 ];
               }
 
-              if (this.setQuery.shareholderCertExpire == "9999-12-31") {
+               if (this.setQuery.shareholderCertExpire == "9999-12-31") {
                 this.checked1 = true;
+              } else if (this.setQuery.shareholderCertExpire) {
+                this.date1 = [
+                  this.setQuery.shareholderCertBeginDate,
+                  this.setQuery.shareholderCertExpire,
+                ];
               }
 
               if (!this.setQuery.bnfList) {
                 this.setQuery.bnfList = [
                   {
-                    bnfCertStart: "",
+                    bnfCertBeginDate: "",
                     bnfCertExpire: "",
                     bnfCertType: "1",
                     bnfCertno: "",
@@ -1169,10 +1210,13 @@ export default {
                     bnfHomeAddr: "",
                   },
                 ];
-              }
-
-              if (this.setQuery.bnfList[0].bnfCertExpire == "9999-12-31") {
+              }else if (this.setQuery.bnfList[0].bnfCertExpire == "9999-12-31") {
                 this.checked2 = true;
+              } else if (this.setQuery.shareholderCertExpire) {
+                this.date2 = [
+                  this.setQuery.bnfList[0].bnfCertBeginDate,
+                  this.setQuery.bnfList[0].bnfCertExpire
+                ];
               }
 
               // 提取图片
@@ -1215,6 +1259,7 @@ export default {
     // 商户信息
     shopInfo() {
       let obj = {
+        accesseId:this.$route.query.accesseId||this.accesseId,
         developingPersonID: "",
         fax: "",
         mchntType: this.setQuery.mchntType,
@@ -1252,6 +1297,7 @@ export default {
     // 法人信息
     legal() {
       let obj = {
+        accesseId:this.$route.query.accesseId||this.accesseId,
         epId: this.$route.query.id,
         legal_card_deadline: this.setQuery.legal_card_deadline,
         legal_card_start: this.setQuery.legal_card_start,
@@ -1288,6 +1334,7 @@ export default {
       this.$set(this.setQuery, this.picObj[val.type], val.url);
       // this.setQuery.idCardImg = val.url
       let obj = {
+        accesseId:this.$route.query.accesseId||this.accesseId,
         epId: this.$route.query.id,
         fileUrl: val.url,
         picType: val.type,
@@ -1297,8 +1344,10 @@ export default {
     // 股东信息
     shareholderInfo() {
       let obj = {
+        accesseId:this.$route.query.accesseId||this.accesseId,
         bnfList: this.setQuery.bnfList,
         epId: this.$route.query.id,
+        shareholderCertBeginDate: this.setQuery.shareholderCertBeginDate,
         shareholderCertExpire: this.setQuery.shareholderCertExpire,
         shareholderCertType: this.setQuery.shareholderCertType,
         shareholderCertno: this.setQuery.shareholderCertno,
@@ -1324,9 +1373,10 @@ export default {
     // 结算信息
     bankInfo() {
       let obj = {
+        accesseId:this.$route.query.accesseId||this.accesseId,
         bank_acct_name: this.setQuery.bank_acct_name,
         bank_acct_no: this.setQuery.bank_acct_no,
-        bank_acct_type: this.setQuery.bank_acct_type,
+        bank_acct_type: this.setQuery.bank_acct_type || 1,
         legal_mobile: this.setQuery.legal_mobile,
         bank_no: this.setQuery.bank_no,
         epId: this.$route.query.id,
@@ -1357,7 +1407,7 @@ export default {
     // 档案提交
     complexUpload() {
       return new Promise((resolve, reject) => {
-        complexUpload({ epId: this.$route.query.id })
+        complexUpload({ accesseId:this.$route.query.accesseId||this.accesseId,epId: this.$route.query.id })
           .then((res) => {
             if (res.state == "Success") {
               resolve(res.content.ums_reg_id);
@@ -1391,6 +1441,7 @@ export default {
             // 验证打款金额
             companyAccountVerify({
               trans_amt: value,
+              accesseId:this.$route.query.accesseId||this.accesseId,
               epId:this.$route.query.id
               // company_account: this.setQuery.bank_acct_no,
               // ums_reg_id,
@@ -1428,6 +1479,7 @@ export default {
             requestAccountVerify({
               // company_account: this.setQuery.bank_acct_no,
               // ums_reg_id,
+              accesseId:this.$route.query.accesseId||this.accesseId,
               epId:this.$route.query.id
             })
               .then((res) => {
@@ -1485,7 +1537,7 @@ export default {
     // 入网状态查询
     applyQry(ums_reg_id) {
       return new Promise((resolve, reject) => {
-        applyQry({ epId: this.$route.query.id, ums_reg_id })
+        applyQry({ accesseId:this.$route.query.accesseId||this.accesseId,epId: this.$route.query.id, ums_reg_id })
           .then((res) => {
             if (res.state == "Success") {
               this.$message({
@@ -1590,37 +1642,66 @@ export default {
   mounted() {},
   created() {
     this.mode = this.$route.query.mode || "add";
-    this.complexIng().then((res) => {
-        // 没有开始填写
-        if (!res.content) {
-          this.startComplex();
-        } else if (
-          res.content.ums_reg_id &&
-          res.content.apply_status === "00"
-        ) {
-          //资料提交  没有银联签约
-          if (this.setQuery.bank_acct_type == 1 && !res.content.verification) {
-            // 查询对公验证
-            this.requestAccountVerify(res.content.ums_reg_id).then((id) => {
-              this.agreementSign(id).then((url) => {
-                // 跳转银联后
-                this.showSign = true;
-                this.yinlianUrl = url;
-                this.loading = false;
-              })
-            });
-          }else{
-            this.agreementSign(res.content.ums_reg_id).then((url) => {
-                // 跳转银联后
-                this.showSign = true;
-                this.yinlianUrl = url;
-                this.loading = false;
-              })
+    if(this.mode == 'add'){
+      this.startComplex().then((res) => {
+       if (
+            res.content.ums_reg_id &&
+            res.content.apply_status === "00"
+          ) {
+            //资料提交  没有银联签约
+            if (this.setQuery.bank_acct_type == 1 && !res.content.verification) {
+              // 查询对公验证
+              this.requestAccountVerify(res.content.ums_reg_id).then((id) => {
+                this.agreementSign(id).then((url) => {
+                  // 跳转银联后
+                  this.showSign = true;
+                  this.yinlianUrl = url;
+                  this.loading = false;
+                })
+              });
+            }else{
+              this.agreementSign(res.content.ums_reg_id).then((url) => {
+                  // 跳转银联后
+                  this.showSign = true;
+                  this.yinlianUrl = url;
+                  this.loading = false;
+                })
+            }
           }
-        }
-        return this.getRegion("province");
-      })
-      
+          return this.getRegion("province");
+        })
+    }else{
+      this.complexIng().then((res) => {
+          // 没有开始填写
+          if (!res.content) {
+            this.startComplex();
+          } else if (
+            res.content.ums_reg_id &&
+            res.content.apply_status === "00"
+          ) {
+            //资料提交  没有银联签约
+            if (this.setQuery.bank_acct_type == 1 && !res.content.verification) {
+              // 查询对公验证
+              this.requestAccountVerify(res.content.ums_reg_id).then((id) => {
+                this.agreementSign(id).then((url) => {
+                  // 跳转银联后
+                  this.showSign = true;
+                  this.yinlianUrl = url;
+                  this.loading = false;
+                })
+              });
+            }else{
+              this.agreementSign(res.content.ums_reg_id).then((url) => {
+                  // 跳转银联后
+                  this.showSign = true;
+                  this.yinlianUrl = url;
+                  this.loading = false;
+                })
+            }
+          }
+          return this.getRegion("province");
+        })
+    }
     this.getMcc();
   },
 };

+ 79 - 24
src/views/operationManage/shopManage/shopAdd4.vue

@@ -1,8 +1,8 @@
 <!--
  * @Author: wj 1454560336@qq.com
  * @Date: 2023-09-18 10:57:47
- * @LastEditors: error: error: git config user.name & please set dead value or install git && error: git config user.email & please set dead value or install git & please set dead value or install git
- * @LastEditTime: 2024-02-21 14:19:49
+ * @LastEditors: wenjie 1454560336@qq.com
+ * @LastEditTime: 2024-03-29 15:40:32
  * @FilePath: \admin-manage\src\views\operationManage\shopManage\shopAdd4.vue
  * @Description: 
  * 
@@ -323,10 +323,10 @@
         </el-form-item>
         <el-form-item label="身份证有效期:" prop="shareholderCertExpire">
           <el-date-picker
-            v-model="setQuery.shareholderCertExpire"
+            v-model="date1"
             :disabled="checked1"
             size="small"
-            type="date"
+            type="daterange"
             range-separator="至"
             value-format="yyyy-MM-dd"
             start-placeholder="开始日期"
@@ -368,11 +368,11 @@
           ></el-input>
         </el-form-item>
         <el-form-item label="身份证有效期:" prop="bnfCertExpire">
-          <el-date-picker
-            v-model="setQuery.bnfList[0].bnfCertExpire"
+           <el-date-picker
+            v-model="date2"
             :disabled="checked2"
             size="small"
-            type="date"
+            type="daterange"
             range-separator="至"
             value-format="yyyy-MM-dd"
             start-placeholder="开始日期"
@@ -599,6 +599,8 @@ export default {
       imgList: [],
       date: [],
       date1: [],
+      date2: [],
+      accesseId:'',
       setQuery: {
         accesser_user_id: "",
         bank_acct_name: "",
@@ -609,7 +611,7 @@ export default {
         bank_city_id: "", //开户市
         bnfList: [
           {
-            bnfCertStart: "",
+            bnfCertBeginDate: "",
             bnfCertExpire: "",
             bnfCertType: "1",
             bnfCertno: "",
@@ -646,6 +648,7 @@ export default {
         reg_mer_type: "01",
         remark: "",
         serviceDistrict: "",
+        shareholderCertBeginDate:'',
         shareholderCertExpire: "",
         shareholderCertType: "1",
         shareholderCertno: "",
@@ -682,7 +685,7 @@ export default {
         shop_lic: [
           { required: true, message: "请输入营业执照编号", trigger: "blur" },
         ],
-        phone: [
+        legal_mobile: [
           { required: true, message: "请输入商铺手机号", trigger: "blur" },
         ],
         mchntType: [
@@ -956,9 +959,9 @@ export default {
         if (this.setQuery.legal_card_deadline == "9999-12-31") {
           this.checked1 = true;
         } else {
-          this.setQuery.shareholderCertExpire =
-            this.setQuery.legal_card_deadline;
+          // this.setQuery.shareholderCertExpire =this.setQuery.legal_card_deadline;
         }
+          this.date1 = this.date
         this.setQuery.shareholderCertno = this.setQuery.legal_idcard_no;
         // this.setQuery.shareholderHomeAddr = this.setQuery.legalmanHomeAddr;
         this.setQuery.shareholderName = this.setQuery.legal_name;
@@ -966,9 +969,10 @@ export default {
         if (this.setQuery.legal_card_deadline == "9999-12-31") {
           this.checked2 = true;
         } else {
-          this.setQuery.bnfList[0].bnfCertExpire =
-            this.setQuery.legal_card_deadline;
+          // this.setQuery.bnfList[0].bnfCertExpire =
+          //   this.setQuery.legal_card_deadline;
         }
+          this.date2 = this.date1
         this.setQuery.bnfList[0].bnfCertExpire =this.setQuery.shareholderCertExpire;
         this.setQuery.bnfList[0].bnfCertno = this.setQuery.shareholderCertno;
         this.setQuery.bnfList[0].bnfHomeAddr = this.setQuery.shareholderHomeAddr;
@@ -982,7 +986,7 @@ export default {
       this.signLoading = true;
       this.applyQry(this.setQuery.ums_reg_id).then(() => {
         this.showSign = false;
-        this.$router.push("/operationManage/shopManage/index");
+        this.$router.push("/merchantManage/index");
       });
     },
     handleTab(val) {
@@ -1120,16 +1124,22 @@ export default {
       }
     },
     startComplex() {
+      return new Promise((resolve, reject) => {
       startComplex({
+        accesseId:'',
         epId: this.$route.query.id,
-        reg_mer_type: "03", //00:企业商户01:个人工商户02:小微商户03:机关事业单位或社会团体
-      }).then((res) => {});
+        reg_mer_type: "03",
+      }).then((res) => {
+        this.accesseId =  res.content.accesser_user_id
+        resolve(res)
+      });
+      })
     },
     // 获取签约流程
     complexIng() {
       this.loading = true;
       return new Promise((resolve, reject) => {
-        complexIng({ epId: this.$route.query.id }).then((res) => {
+        complexIng({ accesseId:this.$route.query.accesseId||this.accesseId,epId: this.$route.query.id }).then((res) => {
           this.loading = false;
           if (res.state == "Success") {
             if (res.content && res.content.shop_name && res.content.shop_addr_ext) {
@@ -1153,12 +1163,17 @@ export default {
 
               if (this.setQuery.shareholderCertExpire == "9999-12-31") {
                 this.checked1 = true;
+              } else if (this.setQuery.shareholderCertExpire) {
+                this.date1 = [
+                  this.setQuery.shareholderCertBeginDate,
+                  this.setQuery.shareholderCertExpire,
+                ];
               }
 
               if (!this.setQuery.bnfList) {
                 this.setQuery.bnfList = [
                   {
-                    bnfCertStart: "",
+                    bnfCertBeginDate: "",
                     bnfCertExpire: "",
                     bnfCertType: "1",
                     bnfCertno: "",
@@ -1166,10 +1181,13 @@ export default {
                     bnfHomeAddr: "",
                   },
                 ];
-              }
-
-              if (this.setQuery.bnfList[0].bnfCertExpire == "9999-12-31") {
+              }else if (this.setQuery.bnfList[0].bnfCertExpire == "9999-12-31") {
                 this.checked2 = true;
+              } else if (this.setQuery.shareholderCertExpire) {
+                this.date2 = [
+                  this.setQuery.bnfList[0].bnfCertBeginDate,
+                  this.setQuery.bnfList[0].bnfCertExpire
+                ];
               }
 
               // 提取图片
@@ -1212,6 +1230,7 @@ export default {
     // 商户信息
     shopInfo() {
       let obj = {
+        accesseId:this.$route.query.accesseId||this.accesseId,
         developingPersonID: "",
         fax: "",
         mchntType: this.setQuery.mchntType,
@@ -1249,6 +1268,7 @@ export default {
     // 法人信息
     legal() {
       let obj = {
+        accesseId:this.$route.query.accesseId||this.accesseId,
         epId: this.$route.query.id,
         legal_card_deadline: this.setQuery.legal_card_deadline,
         legal_card_start: this.setQuery.legal_card_start,
@@ -1285,6 +1305,7 @@ export default {
       this.$set(this.setQuery, this.picObj[val.type], val.url);
       // this.setQuery.idCardImg = val.url
       let obj = {
+        accesseId:this.$route.query.accesseId||this.accesseId,
         epId: this.$route.query.id,
         fileUrl: val.url,
         picType: val.type,
@@ -1294,8 +1315,10 @@ export default {
     // 股东信息
     shareholderInfo() {
       let obj = {
+        accesseId:this.$route.query.accesseId||this.accesseId,
         bnfList: this.setQuery.bnfList,
         epId: this.$route.query.id,
+        shareholderCertBeginDate: this.setQuery.shareholderCertBeginDate,
         shareholderCertExpire: this.setQuery.shareholderCertExpire,
         shareholderCertType: this.setQuery.shareholderCertType,
         shareholderCertno: this.setQuery.shareholderCertno,
@@ -1321,6 +1344,7 @@ export default {
     // 结算信息
     bankInfo() {
       let obj = {
+        accesseId:this.$route.query.accesseId||this.accesseId,
         bank_acct_name: this.setQuery.bank_acct_name,
         bank_acct_no: this.setQuery.bank_acct_no,
         bank_acct_type: this.setQuery.bank_acct_type,
@@ -1354,7 +1378,7 @@ export default {
     // 档案提交
     complexUpload() {
       return new Promise((resolve, reject) => {
-        complexUpload({ epId: this.$route.query.id })
+        complexUpload({ accesseId:this.$route.query.accesseId||this.accesseId,epId: this.$route.query.id })
           .then((res) => {
             if (res.state == "Success") {
               resolve(res.content.ums_reg_id);
@@ -1388,6 +1412,7 @@ export default {
             // 验证打款金额
             companyAccountVerify({
               trans_amt: value,
+              accesseId:this.$route.query.accesseId||this.accesseId,
               epId:this.$route.query.id
               // company_account: this.setQuery.bank_acct_no,
               // ums_reg_id,
@@ -1425,6 +1450,7 @@ export default {
             requestAccountVerify({
               // company_account: this.setQuery.bank_acct_no,
               // ums_reg_id,
+              accesseId:this.$route.query.accesseId||this.accesseId,
               epId:this.$route.query.id
             })
               .then((res) => {
@@ -1482,7 +1508,7 @@ export default {
     // 入网状态查询
     applyQry(ums_reg_id) {
       return new Promise((resolve, reject) => {
-        applyQry({ epId: this.$route.query.id, ums_reg_id })
+        applyQry({accesseId:this.$route.query.accesseId||this.accesseId, epId: this.$route.query.id, ums_reg_id })
           .then((res) => {
             if (res.state == "Success") {
               this.$message({
@@ -1587,6 +1613,35 @@ export default {
   mounted() {},
   created() {
     this.mode = this.$route.query.mode || "add";
+    if(this.mode == 'add'){
+      this.startComplex().then((res) => {
+       if (
+            res.content.ums_reg_id &&
+            res.content.apply_status === "00"
+          ) {
+            //资料提交  没有银联签约
+            if (this.setQuery.bank_acct_type == 1 && !res.content.verification) {
+              // 查询对公验证
+              this.requestAccountVerify(res.content.ums_reg_id).then((id) => {
+                this.agreementSign(id).then((url) => {
+                  // 跳转银联后
+                  this.showSign = true;
+                  this.yinlianUrl = url;
+                  this.loading = false;
+                })
+              });
+            }else{
+              this.agreementSign(res.content.ums_reg_id).then((url) => {
+                  // 跳转银联后
+                  this.showSign = true;
+                  this.yinlianUrl = url;
+                  this.loading = false;
+                })
+            }
+          }
+          return this.getRegion("province");
+        })
+    }else{
     this.complexIng().then((res) => {
         // 没有开始填写
         if (!res.content) {
@@ -1617,7 +1672,7 @@ export default {
         }
         return this.getRegion("province");
       })
-      
+    }
     this.getMcc();
   },
 };

+ 0 - 390
src/views/operationManage/shopManage/shopDetail.vue

@@ -1,390 +0,0 @@
-
-<template>
-  <div class="shopAdd app-container">
-
-     <el-tabs v-model="step">
-      <el-tab-pane label="商户信息" name="1"></el-tab-pane>
-      <el-tab-pane label="身份信息" name="2"></el-tab-pane>
-      <el-tab-pane label="结算信息" name="3"></el-tab-pane>
-      <el-tab-pane label="图片信息" name="4"></el-tab-pane>
-    </el-tabs>
-
-    <el-form
-      :model="setQuery"
-      ref="setQuery"
-      :rules="rules"
-      label-width="180px"
-    >
-    <template v-if="step == 1">
-      <el-form-item label="主体名称:" prop="name">
-        <el-input
-          v-model="setQuery.name"
-          :maxlength="11"
-          class="item-width-300"
-          placeholder="请输入主体名称"
-        ></el-input>
-      </el-form-item>
-       <el-form-item label="入驻平台类型:" prop="phone">
-         <el-select v-model="setQuery.IDnumber" class="item-width-300" placeholder="请选择商品类型">
-            <el-option
-            v-for="item in options1"
-            :key="item.value"
-            :label="item.label"
-            :value="item.value">
-            </el-option>
-        </el-select>
-      </el-form-item>
-      <el-form-item label="营业名称:" prop="name">
-        <el-input
-          v-model="setQuery.name"
-          :maxlength="11"
-          class="item-width-300"
-          placeholder="请输入营业名称"
-        ></el-input>
-      </el-form-item>
-      <el-form-item label="营业地区-详细地址:" prop="IDnumber">
-         <el-input
-          v-model="setQuery.name"
-          :maxlength="11"
-          class="item-width-300"
-          placeholder="请输入营业地址"
-        ></el-input>
-      </el-form-item>
-      <el-form-item label="所属行业:" prop="IDnumber">
-        
-        <el-select v-model="setQuery.IDnumber" class="item-width-300" placeholder="请选择商品类型">
-            <el-option
-            v-for="item in options"
-            :key="item.value"
-            :label="item.label"
-            :value="item.value">
-            </el-option>
-        </el-select>
-      </el-form-item>
-      <el-form-item label="业务选择:" prop="shopName">
-        <div class="tabs">
-          <div class="tab" :class="[active == 1?'active':'']" @click="handleTab(1)">公共支付-手机</div>
-          <div class="tab" :class="[active == 2?'active':'']" @click="handleTab(2)">公共支付-通用</div>
-          <div class="tab" :class="[active == 3?'active':'']" @click="handleTab(3)">银行卡</div>
-        </div>
-       
-      </el-form-item>
-      <el-form-item label="所属分支机构:" prop="phone">
-         <el-select v-model="setQuery.IDnumber" class="item-width-300" placeholder="请选择商品类型">
-            <el-option
-            v-for="item in options"
-            :key="item.value"
-            :label="item.label"
-            :value="item.value">
-            </el-option>
-        </el-select>
-      </el-form-item>
-      <el-form-item label="业务部:">
-         <el-select v-model="setQuery.IDnumber" class="item-width-300" placeholder="请选择商品类型">
-            <el-option
-            v-for="item in options"
-            :key="item.value"
-            :label="item.label"
-            :value="item.value">
-            </el-option>
-        </el-select>
-      </el-form-item>
-    </template>
-
-    <template v-if="step == 2">
-       <el-form-item label="姓名:" prop="name">
-        <el-input
-          v-model="setQuery.name"
-          :maxlength="11"
-          class="item-width-300"
-          placeholder="请输入身份证姓名"
-        ></el-input>
-      </el-form-item>
-      <el-form-item label="身份证号码:" prop="name">
-        <el-input
-          v-model="setQuery.name"
-          :maxlength="11"
-          class="item-width-300"
-          placeholder="请输入身份证号码"
-        ></el-input>
-      </el-form-item>
-      <el-form-item label="身份证有效期:" prop="name">
-         <el-date-picker
-          v-model="setQuery.createTime"
-          type="daterange"
-          range-separator="至"
-          start-placeholder="开始日期"
-          end-placeholder="结束日期">
-        </el-date-picker>
-        <el-checkbox v-model="checked">长期</el-checkbox>
-      </el-form-item>
-      <el-form-item label="职业:">
-         <el-select v-model="setQuery.IDnumber" class="item-width-300" placeholder="请选择职业类型">
-            <el-option
-            v-for="item in options"
-            :key="item.value"
-            :label="item.label"
-            :value="item.value">
-            </el-option>
-        </el-select>
-      </el-form-item>
-      <el-form-item label="身份证正面:">
-        <Upload v-model="setQuery.img"></Upload>
-        <div class="notice">(图片支持jpg, png, bmp格式,建议上传100kb~500kb大小文件)</div>
-      </el-form-item>
-      <el-form-item label="身份证反面:">
-        <Upload v-model="setQuery.img"></Upload>
-        <div class="notice">(图片支持jpg, png, bmp格式,建议上传100kb~500kb大小文件)</div>
-      </el-form-item>
-      <el-form-item label="手持身份证:">
-        <Upload v-model="setQuery.img"></Upload>
-        <div class="notice">(图片支持jpg, png, bmp格式,建议上传100kb~500kb大小文件)</div>
-      </el-form-item>
-    </template>
-
-    <template v-if="step == 3">
-      <el-form-item label="账户名称:" prop="name">
-        <el-input
-          v-model="setQuery.name"
-          :maxlength="11"
-          class="item-width-300"
-          placeholder="请输入账户名称"
-        ></el-input>
-      </el-form-item>
-      <el-form-item label="银行账号:" prop="name">
-        <el-input
-          v-model="setQuery.name"
-          :maxlength="11"
-          class="item-width-300"
-          placeholder="请输入银行账号"
-        ></el-input>
-      </el-form-item>
-      <el-form-item label="银行预留手机号:" prop="name">
-        <el-input
-          v-model="setQuery.name"
-          :maxlength="11"
-          class="item-width-300"
-          placeholder="请输入银行预留手机号"
-        ></el-input>
-      </el-form-item>
-      <el-form-item label="开户所在地:" prop="name">
-        <el-select v-model="setQuery.IDnumber" class="item-width-300" placeholder="请选择省">
-            <el-option
-            v-for="item in options"
-            :key="item.value"
-            :label="item.label"
-            :value="item.value">
-            </el-option>
-        </el-select>
-        <el-select v-model="setQuery.IDnumber" class="item-width-300 ml10" placeholder="请选择市">
-            <el-option
-            v-for="item in options"
-            :key="item.value"
-            :label="item.label"
-            :value="item.value">
-            </el-option>
-        </el-select>
-      </el-form-item>
-      <el-form-item label="所属支行:" prop="name">
-        <el-select v-model="setQuery.IDnumber" class="item-width-300" placeholder="请选择所属支行">
-            <el-option
-            v-for="item in options"
-            :key="item.value"
-            :label="item.label"
-            :value="item.value">
-            </el-option>
-        </el-select>
-      </el-form-item>
-      <el-form-item label="银行卡正面照片:">
-        <Upload v-model="setQuery.img"></Upload>
-        <div class="notice">照片需高清、完整、不能有遮挡 查看示例图</div>
-        <div class="notice">(图片支持jpg, png, bmp格式,建议上传100kb~500kb大小文件)</div>
-      </el-form-item>
-    </template>
-
-    <template v-if="step == 4">
-       <el-form-item label="商户类型:" prop="name">
-          <el-select v-model="setQuery.IDnumber" class="item-width-300" placeholder="请选择商户类型">
-              <el-option
-              v-for="item in options"
-              :key="item.value"
-              :label="item.label"
-              :value="item.value">
-              </el-option>
-          </el-select>
-        </el-form-item>
-        <el-form-item label="客户经理现场考察照:" prop="name">
-           <div class="notice">照片需高清、完整、不能有遮挡 (图片支持jpg, png, bmp格式,建议上传100kb~500kb大小文件,最多上传8张)</div>
-          <div class="img" v-for="item in imgList" :key="item"></div>
-         <Upload v-if="imgList.length !==8 " v-model="setQuery.img"></Upload>
-        </el-form-item>
-        <el-form-item label="店铺门面照:" prop="name">
-           <div class="notice">需拍全,包含完整的牌匾、门框(建议正对门店 2 米处拍摄) </div>
-           <div class="notice"> 查看示例图(图片支持jpg, png, bmp格式,建议上传100kb~500kb大小文件)</div>
-           <Upload v-model="setQuery.img"></Upload>
-        </el-form-item>
-         <el-form-item label="店铺室内照:" prop="name">
-           <div class="notice">需真实展示店内环境情况 查看示例图</div>
-           <div class="notice"> (图片支持jpg, png, bmp格式,建议上传100kb~500kb大小文件)</div>
-           <Upload v-model="setQuery.img"></Upload>
-        </el-form-item>
-         <el-form-item label="经营商品照片:" prop="name">
-           <div class="notice">需真实展示店内环境情况 查看示例图</div>
-           <div class="notice"> (图片支持jpg, png, bmp格式,建议上传100kb~500kb大小文件)</div>
-           <Upload v-model="setQuery.img"></Upload>
-
-        </el-form-item>
-        <el-form-item label="辅助证明材料:" prop="name">
-          <div class="notice">辅助证明材料: 包括但不限于营业场所租赁协议或者产权证明、集中经营场所管理方出具的证明文件等能够反映商户真实、合法从事商品或服务交易活动的材料。
-(图片支持jpg, png, bmp格式,建议上传100kb~500kb大小文件,最多上传20张)</div>
-          <div class="img" v-for="item in imgList" :key="item"></div>
-         <Upload v-if="imgList.length !==8 " v-model="setQuery.img"></Upload>
-        </el-form-item>
-    </template>
-    </el-form>
-    
-  </div>
-</template>
-
-<script>
-import Upload from '@/components/Upload'
-export default {
-    components: {
-        Upload,
-    },
-  data() {
-    return {
-      step:'1',
-      active:1,
-      checked:false,
-      imgList:[],
-      setQuery: {
-        id: 4,
-        name: "",
-        shopName: "",
-        img:'',
-        createTime: "",
-        IDnumber: '',
-        phone: '',
-      },
-      rules: {
-        name: [{ required: true, message: "请输入用户名", trigger: "blur" }],
-        shopName: [
-          { required: true, message: "请输入商铺名称", trigger: "blur" },
-        ],
-        phone: [
-          { required: true, message: "请输入商铺手机号", trigger: "blur" },
-        ],
-        IDnumber: [
-          { required: true, message: "请输入身份证号", trigger: "blur" },
-        ],
-      },
-      options: [
-        {
-          value: "1",
-          label: "行业1",
-        },
-        {
-          value: "2",
-          label: "行业2",
-        },
-        {
-          value: "3",
-          label: "行业3",
-        },
-      ],
-      options1: [
-        {
-          value: "1",
-          label: "加油充电",
-        },
-        {
-          value: "2",
-          label: "酒店民宿",
-        },
-        {
-          value: "3",
-          label: "餐饮美食",
-        },
-        {
-          value: "4",
-          label: "慧研学",
-        },
-        {
-          value: "5",
-          label: "超市购物",
-        },
-        {
-          value: "6",
-          label: "健身运动",
-        },
-        {
-          value: "7",
-          label: "医疗健康",
-        },
-        {
-          value: "8",
-          label: "家政服务",
-        },
-      ],
-    };
-  },
-  methods: {
-    handleTab(val){
-      this.active = val
-    },
-  },
-  created () {
-  },
-};
-</script>
-
-<style lang="scss" scoped>
-@import '@/styles/element-variables';
-.shopAdd {
-  padding-bottom: 40px;
-  .step-box{
-    display: flex;
-    justify-content: center;
-    margin: 50px 0;
-    .el-steps{
-      width: 90%;
-      margin-left: 200px;
-    }
-  }
-
-  .tabs{
-    display: flex;
-    align-items: center;
-    margin-bottom: 15px;
-    .tab{
-      padding: 2px 10px;
-      border: 1px solid #ccc;
-      border-radius: 4px;
-      margin-right: 8px;
-    }
-    .active{
-      border: 1px solid $--color-primary;
-      color: $--color-primary;
-    }
-    
-  }
-
-  .img{
-    width: 150px;
-    height: 100px;
-    border-radius: 4px;
-    background: #f1f1f1;
-  }
-
-  .el-checkbox{
-    margin-left: 10px;
-  }
-
-  .notice{
-    font-size: 12px;
-    color: #ccc;
-  }
-
-}
-</style>

+ 0 - 512
src/views/operationManage/shopManage/shopDetail1.vue

@@ -1,512 +0,0 @@
-<!--
- * @Author: error: error: git config user.name & please set dead value or install git && error: git config user.email & please set dead value or install git & please set dead value or install git
- * @Date: 2023-05-26 16:37:34
- * @LastEditors: error: error: git config user.name & please set dead value or install git && error: git config user.email & please set dead value or install git & please set dead value or install git
- * @LastEditTime: 2024-02-21 14:20:03
- * @FilePath: \admin-manage\src\views\operationManage\shopManage\shopDetail1.vue
- * @Description: 
- * 
- * Copyright (c) 2023 by ${git_name_email}, All Rights Reserved. 
--->
-<template>
-  <div class="shopAdd app-container">
-    <el-tabs v-model="step">
-      <el-tab-pane label="商户信息" name="1"></el-tab-pane>
-      <el-tab-pane label="身份信息" name="2"></el-tab-pane>
-      <el-tab-pane label="结算信息" name="3"></el-tab-pane>
-      <el-tab-pane label="股东信息" name="3"></el-tab-pane>
-      <el-tab-pane label="图片信息" name="4"></el-tab-pane>
-    </el-tabs>
-
-    <el-form
-      :model="setQuery"
-      ref="setQuery"
-      :rules="rules"
-      label-width="180px"
-    >
-    <template v-if="step == 1">
-        <el-form-item label="主体名称:" prop="name">
-        <el-input
-          v-model="setQuery.name"
-          :maxlength="11"
-          class="item-width-300"
-          placeholder="请输入主体名称"
-        ></el-input>
-      </el-form-item>
-       <el-form-item label="入驻平台类型:" prop="phone">
-         <el-select v-model="setQuery.IDnumber" class="item-width-300" placeholder="请选择商品类型">
-            <el-option
-            v-for="item in options1"
-            :key="item.value"
-            :label="item.label"
-            :value="item.value">
-            </el-option>
-        </el-select>
-      </el-form-item>
-         <el-form-item label="营业执照类型:" prop="name">
-            <el-radio v-model="setQuery.name" label="1">多证合一营业执照</el-radio>
-            <el-radio v-model="setQuery.name" label="2">普通营业执照</el-radio>
-      </el-form-item>
-      <el-form-item label="营业执照:" prop="name">
-        <Upload v-model="setQuery.img"></Upload>
-        <div class="notice">照片需高清、完整、不能有遮挡 查看示例图</div>
-        <div class="notice">(图片支持jpg, png, bmp格式,建议上传100kb~500kb大小文件)</div>
-      </el-form-item>
-      <el-form-item label="营业名称:" prop="name">
-        <el-input
-          v-model="setQuery.name"
-          :maxlength="11"
-          class="item-width-300"
-          placeholder="请输入营业名称"
-        ></el-input>
-      </el-form-item>
-      <el-form-item label="营业地区-详细地址:" prop="IDnumber">
-         <el-input
-          v-model="setQuery.name"
-          :maxlength="11"
-          class="item-width-300"
-          placeholder="请输入营业地址"
-        ></el-input>
-      </el-form-item>
-      <el-form-item  :label="setQuery.name==1?'统一社会信用码':'营业执照号码:'"  prop="name">
-        <el-input
-          v-model="setQuery.name"
-          :maxlength="11"
-          class="item-width-300"
-          placeholder="请输入营业名称"
-        ></el-input>
-      </el-form-item>
-
-      <el-form-item label="所属行业:" prop="IDnumber">
-        
-        <el-select v-model="setQuery.IDnumber" class="item-width-300" placeholder="请选择商品类型">
-            <el-option
-            v-for="item in options"
-            :key="item.value"
-            :label="item.label"
-            :value="item.value">
-            </el-option>
-        </el-select>
-      </el-form-item>
-      <el-form-item label="业务选择:" prop="shopName">
-        <div class="tabs">
-          <div class="tab" :class="[active == 1?'active':'']" @click="handleTab(1)">公共支付-手机</div>
-          <div class="tab" :class="[active == 2?'active':'']" @click="handleTab(2)">公共支付-通用</div>
-          <div class="tab" :class="[active == 3?'active':'']" @click="handleTab(3)">银行卡</div>
-        </div>
-      </el-form-item>
-      
-    </template>
-
-    <template v-if="step == 2">
-       <el-form-item label="姓名:" prop="name">
-        <el-input
-          v-model="setQuery.name"
-          :maxlength="11"
-          class="item-width-300"
-          placeholder="请输入身份证姓名"
-        ></el-input>
-      </el-form-item>
-      <el-form-item label="身份证号码:" prop="name">
-        <el-input
-          v-model="setQuery.name"
-          :maxlength="11"
-          class="item-width-300"
-          placeholder="请输入身份证号码"
-        ></el-input>
-      </el-form-item>
-      <el-form-item label="身份证有效期:" prop="name">
-         <el-date-picker
-          v-model="setQuery.createTime"
-          type="daterange"
-          range-separator="至"
-          start-placeholder="开始日期"
-          end-placeholder="结束日期">
-        </el-date-picker>
-        <el-checkbox v-model="checked">长期</el-checkbox>
-      </el-form-item>
-     
-      <el-form-item label="身份证正面:">
-        <Upload v-model="setQuery.img"></Upload>
-        <div class="notice">(图片支持jpg, png, bmp格式,建议上传100kb~500kb大小文件)</div>
-      </el-form-item>
-      <el-form-item label="身份证反面:">
-        <Upload v-model="setQuery.img"></Upload>
-        <div class="notice">(图片支持jpg, png, bmp格式,建议上传100kb~500kb大小文件)</div>
-      </el-form-item>
-      <el-form-item label="手持身份证:">
-        <Upload v-model="setQuery.img"></Upload>
-        <div class="notice">(图片支持jpg, png, bmp格式,建议上传100kb~500kb大小文件)</div>
-      </el-form-item>
-    </template>
-
-    <template v-if="step == 3">
-         <el-form-item label="营业名称:" prop="name">
-            <el-radio v-model="setQuery.name" label="1">个人账户</el-radio>
-            <el-radio v-model="setQuery.name" label="2">对公账户</el-radio>
-      </el-form-item>
-      <el-form-item :label="setQuery.name==1?'银行卡正面照片:':'对公结算证明照:'">
-        <Upload v-model="setQuery.img"></Upload>
-        <div class="notice">(图片支持jpg, png, bmp格式,建议上传100kb~500kb大小文件)</div>
-      </el-form-item>
-      <el-form-item label="账户名称:" prop="name">
-        <el-input
-          v-model="setQuery.name"
-          :maxlength="11"
-          class="item-width-300"
-          placeholder="请输入账户名称"
-        ></el-input>
-      </el-form-item>
-      <el-form-item label="银行账号:" prop="name">
-        <el-input
-          v-model="setQuery.name"
-          class="item-width-300"
-          placeholder="请输入银行账号"
-        ></el-input>
-      </el-form-item>
-      <el-form-item :label="setQuery.name==1?'法人代表人手机号:':'银行预留手机号:'" prop="name">
-        <el-input
-          v-model="setQuery.name"
-          :maxlength="11"
-          class="item-width-300"
-          placeholder="请输入银行预留手机号"
-        ></el-input>
-      </el-form-item>
-      <el-form-item label="开户所在地:" prop="name">
-        <el-select v-model="setQuery.IDnumber" class="item-width-300" placeholder="请选择省">
-            <el-option
-            v-for="item in options"
-            :key="item.value"
-            :label="item.label"
-            :value="item.value">
-            </el-option>
-        </el-select>
-        <el-select v-model="setQuery.IDnumber" class="item-width-300 ml10" placeholder="请选择市">
-            <el-option
-            v-for="item in options"
-            :key="item.value"
-            :label="item.label"
-            :value="item.value">
-            </el-option>
-        </el-select>
-      </el-form-item>
-      <el-form-item label="所属支行:" prop="name">
-        <el-select v-model="setQuery.IDnumber" class="item-width-300" placeholder="请选择所属支行">
-            <el-option
-            v-for="item in options"
-            :key="item.value"
-            :label="item.label"
-            :value="item.value">
-            </el-option>
-        </el-select>
-      </el-form-item>
-      <el-form-item v-if="setQuery.name==2" label="对公账户认证:" prop="name">
-        <el-button type="small">开始认证</el-button>
-        <span class="ml10">我们将在您的对公账户打一笔随机金额用于验证</span>
-      </el-form-item>
-      
-    </template>
-    <template v-if="step == 4">
-        <div class="title">股东信息</div>
-       <el-form-item label="控股股东:" prop="name">
-          <el-select v-model="setQuery.IDnumber" class="item-width-300" placeholder="请选择法人姓名">
-              <el-option
-              v-for="item in options"
-              :key="item.value"
-              :label="item.label"
-              :value="item.value">
-              </el-option>
-          </el-select>
-          <span>同步法人信息</span>
-        </el-form-item>
-         <el-form-item label="证件类型:" prop="name">
-          <el-select v-model="setQuery.IDnumber" class="item-width-300" placeholder="请选择法人姓名">
-              <el-option
-              v-for="item in options"
-              :key="item.value"
-              :label="item.label"
-              :value="item.value">
-              </el-option>
-          </el-select>
-        </el-form-item>
-        <el-form-item label="银行账号:" prop="name">
-        <el-input
-          v-model="setQuery.name"
-          :maxlength="11"
-          class="item-width-300"
-          placeholder="请输入银行账号"
-        ></el-input>
-      </el-form-item>
-      <el-form-item label="证件号码:" prop="name">
-        <el-input
-          v-model="setQuery.name"
-          :maxlength="11"
-          class="item-width-300"
-          placeholder="请输入银行账号"
-        ></el-input>
-      </el-form-item>
-       <el-form-item label="身份证有效期:" prop="name">
-         <el-date-picker
-          v-model="setQuery.createTime"
-          type="daterange"
-          range-separator="至"
-          start-placeholder="开始日期"
-          end-placeholder="结束日期">
-        </el-date-picker>
-        <el-checkbox v-model="checked">长期</el-checkbox>
-      </el-form-item>
-      <el-form-item label="家庭住址:" prop="name">
-        <el-input
-          v-model="setQuery.name"
-          :maxlength="11"
-          class="item-width-300"
-          placeholder="请输入家庭住址"
-        ></el-input>
-      </el-form-item>
-
-        <div class="title">受益人1</div>
-       <el-form-item label="受益人:" prop="name">
-          <el-select v-model="setQuery.IDnumber" class="item-width-300" placeholder="请选择受益人姓名">
-              <el-option
-              v-for="item in options"
-              :key="item.value"
-              :label="item.label"
-              :value="item.value">
-              </el-option>
-          </el-select>
-          <span>同步股东信息</span>
-        </el-form-item>
-         <el-form-item label="证件类型:" prop="name">
-          <el-select v-model="setQuery.IDnumber" class="item-width-300" placeholder="请选择法人姓名">
-              <el-option
-              v-for="item in options"
-              :key="item.value"
-              :label="item.label"
-              :value="item.value">
-              </el-option>
-          </el-select>
-        </el-form-item>
-        <el-form-item label="银行账号:" prop="name">
-        <el-input
-          v-model="setQuery.name"
-          :maxlength="11"
-          class="item-width-300"
-          placeholder="请输入银行账号"
-        ></el-input>
-      </el-form-item>
-      <el-form-item label="证件号码:" prop="name">
-        <el-input
-          v-model="setQuery.name"
-          :maxlength="11"
-          class="item-width-300"
-          placeholder="请输入银行账号"
-        ></el-input>
-      </el-form-item>
-       <el-form-item label="身份证有效期:" prop="name">
-         <el-date-picker
-          v-model="setQuery.createTime"
-          type="daterange"
-          range-separator="至"
-          start-placeholder="开始日期"
-          end-placeholder="结束日期">
-        </el-date-picker>
-        <el-checkbox v-model="checked">长期</el-checkbox>
-      </el-form-item>
-      <el-form-item label="家庭住址:" prop="name">
-        <el-input
-          v-model="setQuery.name"
-          :maxlength="11"
-          class="item-width-300"
-          placeholder="请输入家庭住址"
-        ></el-input>
-      </el-form-item>
-      <el-button>添加受益人</el-button>
-    </template>
-
-    <template v-if="step == 5">
-       <el-form-item label="商户类型:" prop="name">
-          <el-select v-model="setQuery.IDnumber" class="item-width-300" placeholder="请选择商户类型">
-              <el-option
-              v-for="item in options"
-              :key="item.value"
-              :label="item.label"
-              :value="item.value">
-              </el-option>
-          </el-select>
-        </el-form-item>
-        <el-form-item label="客户经理现场考察照:" prop="name">
-           <div class="notice">照片需高清、完整、不能有遮挡 (图片支持jpg, png, bmp格式,建议上传100kb~500kb大小文件,最多上传8张)</div>
-          <div class="img" v-for="item in imgList" :key="item"></div>
-         <Upload v-if="imgList.length !==8 " v-model="setQuery.img"></Upload>
-        </el-form-item>
-        <el-form-item label="店铺门面照:" prop="name">
-           <div class="notice">需拍全,包含完整的牌匾、门框(建议正对门店 2 米处拍摄) </div>
-           <div class="notice"> 查看示例图(图片支持jpg, png, bmp格式,建议上传100kb~500kb大小文件)</div>
-           <Upload v-model="setQuery.img"></Upload>
-        </el-form-item>
-         <el-form-item label="店铺室内照:" prop="name">
-           <div class="notice">需真实展示店内环境情况 查看示例图</div>
-           <div class="notice"> (图片支持jpg, png, bmp格式,建议上传100kb~500kb大小文件)</div>
-           <Upload v-model="setQuery.img"></Upload>
-        </el-form-item>
-         <el-form-item label="经营商品照片:" prop="name">
-           <div class="notice">需真实展示店内环境情况 查看示例图</div>
-           <div class="notice"> (图片支持jpg, png, bmp格式,建议上传100kb~500kb大小文件)</div>
-           <Upload v-model="setQuery.img"></Upload>
-
-        </el-form-item>
-        <el-form-item label="辅助证明材料:" prop="name">
-          <div class="notice">辅助证明材料: 包括但不限于营业场所租赁协议或者产权证明、集中经营场所管理方出具的证明文件等能够反映商户真实、合法从事商品或服务交易活动的材料。
-(图片支持jpg, png, bmp格式,建议上传100kb~500kb大小文件,最多上传20张)</div>
-          <div class="img" v-for="item in imgList" :key="item"></div>
-         <Upload v-if="imgList.length !==8 " v-model="setQuery.img"></Upload>
-        </el-form-item>
-    </template>
-    </el-form>
-
-  </div>
-</template>
-
-<script>
-import Upload from '@/components/Upload'
-export default {
-    components: {
-        Upload,
-    },
-  data() {
-    return {
-      step:1,
-      active:1,
-      checked:false,
-      imgList:[],
-      setQuery: {
-        id: 4,
-        name: "1",
-        shopName: "",
-        img:'',
-        createTime: "",
-        IDnumber: '',
-        phone: '',
-      },
-      rules: {
-        name: [{ required: true, message: "请输入用户名", trigger: "blur" }],
-        shopName: [
-          { required: true, message: "请输入商铺名称", trigger: "blur" },
-        ],
-        phone: [
-          { required: true, message: "请输入商铺手机号", trigger: "blur" },
-        ],
-        IDnumber: [
-          { required: true, message: "请输入身份证号", trigger: "blur" },
-        ],
-      },
-      options: [
-        {
-          value: "1",
-          label: "行业1",
-        },
-        {
-          value: "2",
-          label: "行业2",
-        },
-        {
-          value: "3",
-          label: "行业3",
-        },
-      ],
-      options1: [
-        {
-          value: "1",
-          label: "加油充电",
-        },
-        {
-          value: "2",
-          label: "酒店民宿",
-        },
-        {
-          value: "3",
-          label: "餐饮美食",
-        },
-        {
-          value: "4",
-          label: "慧研学",
-        },
-        {
-          value: "5",
-          label: "超市购物",
-        },
-        {
-          value: "6",
-          label: "健身运动",
-        },
-        {
-          value: "7",
-          label: "医疗健康",
-        },
-        {
-          value: "8",
-          label: "家政服务",
-        },
-      ],
-    };
-  },
-  methods: {
-    handleTab(val){
-      this.active = val
-    },
-
-  },
-  created () {
-  },
-};
-</script>
-
-<style lang="scss" scoped>
-@import '@/styles/element-variables';
-.shopAdd {
-  padding-bottom: 40px;
-  .step-box{
-    display: flex;
-    justify-content: center;
-    margin: 50px 0;
-    .el-steps{
-      width: 90%;
-      margin-left: 200px;
-    }
-  }
-
-  .tabs{
-    display: flex;
-    align-items: center;
-    margin-bottom: 15px;
-    .tab{
-      padding: 2px 10px;
-      border: 1px solid #ccc;
-      border-radius: 4px;
-      margin-right: 8px;
-    }
-    .active{
-      border: 1px solid $--color-primary;
-      color: $--color-primary;
-    }
-    
-  }
-
-  .img{
-    width: 150px;
-    height: 100px;
-    border-radius: 4px;
-    background: #f1f1f1;
-  }
-
-  .el-checkbox{
-    margin-left: 10px;
-  }
-
-  .notice{
-    font-size: 12px;
-    color: #ccc;
-  }
-
-}
-</style>

+ 0 - 509
src/views/operationManage/shopManage/shopDetail2.vue

@@ -1,509 +0,0 @@
-<!--
- * @Author: error: error: git config user.name & please set dead value or install git && error: git config user.email & please set dead value or install git & please set dead value or install git
- * @Date: 2023-05-26 16:37:34
- * @LastEditors: error: error: git config user.name & please set dead value or install git && error: git config user.email & please set dead value or install git & please set dead value or install git
- * @LastEditTime: 2024-02-21 14:20:12
- * @FilePath: \admin-manage\src\views\operationManage\shopManage\shopDetail2.vue
- * @Description: 
- * 
- * Copyright (c) 2023 by ${git_name_email}, All Rights Reserved. 
--->
-<template>
-  <div class="shopAdd app-container">
-      <el-tabs v-model="step">
-      <el-tab-pane label="商户信息" name="1"></el-tab-pane>
-      <el-tab-pane label="身份信息" name="2"></el-tab-pane>
-      <el-tab-pane label="结算信息" name="3"></el-tab-pane>
-      <el-tab-pane label="股东信息" name="3"></el-tab-pane>
-      <el-tab-pane label="图片信息" name="4"></el-tab-pane>
-    </el-tabs>
-
-     <el-form
-      :model="setQuery"
-      ref="setQuery"
-      :rules="rules"
-      label-width="180px"
-    >
-    <template v-if="step == 1">
-      <el-form-item label="主体名称:" prop="name">
-        <el-input
-          v-model="setQuery.name"
-          :maxlength="11"
-          class="item-width-300"
-          placeholder="请输入主体名称"
-        ></el-input>
-      </el-form-item>
-       <el-form-item label="入驻平台类型:" prop="phone">
-         <el-select v-model="setQuery.IDnumber" class="item-width-300" placeholder="请选择商品类型">
-            <el-option
-            v-for="item in options1"
-            :key="item.value"
-            :label="item.label"
-            :value="item.value">
-            </el-option>
-        </el-select>
-      </el-form-item>
-         <el-form-item label="营业执照类型:" prop="name">
-            <el-radio v-model="setQuery.name" label="1">多证合一营业执照</el-radio>
-            <el-radio v-model="setQuery.name" label="2">普通营业执照</el-radio>
-      </el-form-item>
-      <el-form-item label="营业执照:" prop="name">
-        <Upload v-model="setQuery.img"></Upload>
-        <div class="notice">照片需高清、完整、不能有遮挡 查看示例图</div>
-        <div class="notice">(图片支持jpg, png, bmp格式,建议上传100kb~500kb大小文件)</div>
-      </el-form-item>
-      <el-form-item label="营业名称:" prop="name">
-        <el-input
-          v-model="setQuery.name"
-          :maxlength="11"
-          class="item-width-300"
-          placeholder="请输入营业名称"
-        ></el-input>
-      </el-form-item>
-      <el-form-item label="营业地区-详细地址:" prop="IDnumber">
-         <el-input
-          v-model="setQuery.name"
-          :maxlength="11"
-          class="item-width-300"
-          placeholder="请输入营业地址"
-        ></el-input>
-      </el-form-item>
-      <el-form-item :label="setQuery.name==1?'统一社会信用码':'营业执照号码:'"  prop="name">
-        <el-input
-          v-model="setQuery.name"
-          :maxlength="11"
-          class="item-width-300"
-          placeholder="请输入营业名称"
-        ></el-input>
-      </el-form-item>
-
-      <el-form-item label="所属行业:" prop="IDnumber">
-        
-        <el-select v-model="setQuery.IDnumber" class="item-width-300" placeholder="请选择商品类型">
-            <el-option
-            v-for="item in options"
-            :key="item.value"
-            :label="item.label"
-            :value="item.value">
-            </el-option>
-        </el-select>
-      </el-form-item>
-      <el-form-item label="业务选择:" prop="shopName">
-        <div class="tabs">
-          <div class="tab" :class="[active == 1?'active':'']" @click="handleTab(1)">公共支付-手机</div>
-          <div class="tab" :class="[active == 2?'active':'']" @click="handleTab(2)">公共支付-通用</div>
-          <div class="tab" :class="[active == 3?'active':'']" @click="handleTab(3)">银行卡</div>
-        </div>
-      </el-form-item>
-      
-    </template>
-
-    <template v-if="step == 2">
-       <el-form-item label="姓名:" prop="name">
-        <el-input
-          v-model="setQuery.name"
-          :maxlength="11"
-          class="item-width-300"
-          placeholder="请输入身份证姓名"
-        ></el-input>
-      </el-form-item>
-      <el-form-item label="身份证号码:" prop="name">
-        <el-input
-          v-model="setQuery.name"
-          :maxlength="11"
-          class="item-width-300"
-          placeholder="请输入身份证号码"
-        ></el-input>
-      </el-form-item>
-      <el-form-item label="身份证有效期:" prop="name">
-         <el-date-picker
-          v-model="setQuery.createTime"
-          type="daterange"
-          range-separator="至"
-          start-placeholder="开始日期"
-          end-placeholder="结束日期">
-        </el-date-picker>
-        <el-checkbox v-model="checked">长期</el-checkbox>
-      </el-form-item>
-     
-      <el-form-item label="身份证正面:">
-        <Upload v-model="setQuery.img"></Upload>
-        <div class="notice">(图片支持jpg, png, bmp格式,建议上传100kb~500kb大小文件)</div>
-      </el-form-item>
-      <el-form-item label="身份证反面:">
-        <Upload v-model="setQuery.img"></Upload>
-        <div class="notice">(图片支持jpg, png, bmp格式,建议上传100kb~500kb大小文件)</div>
-      </el-form-item>
-      <el-form-item label="手持身份证:">
-        <Upload v-model="setQuery.img"></Upload>
-        <div class="notice">(图片支持jpg, png, bmp格式,建议上传100kb~500kb大小文件)</div>
-      </el-form-item>
-    </template>
-
-    <template v-if="step == 3">
-       
-      <el-form-item label="对公结算证明照">
-        <Upload v-model="setQuery.img"></Upload>
-        <div class="notice">(图片支持jpg, png, bmp格式,建议上传100kb~500kb大小文件)</div>
-      </el-form-item>
-      <el-form-item label="账户名称:" prop="name">
-        <el-input
-          v-model="setQuery.name"
-          :maxlength="11"
-          class="item-width-300"
-          placeholder="请输入账户名称"
-        ></el-input>
-      </el-form-item>
-      <el-form-item label="银行账号:" prop="name">
-        <el-input
-          v-model="setQuery.name"
-          class="item-width-300"
-          placeholder="请输入银行账号"
-        ></el-input>
-      </el-form-item>
-      <el-form-item :label="setQuery.name==1?'法人代表人手机号:':'银行预留手机号:'" prop="name">
-        <el-input
-          v-model="setQuery.name"
-          :maxlength="11"
-          class="item-width-300"
-          placeholder="请输入银行预留手机号"
-        ></el-input>
-      </el-form-item>
-      <el-form-item label="开户所在地:" prop="name">
-        <el-select v-model="setQuery.IDnumber" class="item-width-300" placeholder="请选择省">
-            <el-option
-            v-for="item in options"
-            :key="item.value"
-            :label="item.label"
-            :value="item.value">
-            </el-option>
-        </el-select>
-        <el-select v-model="setQuery.IDnumber" class="item-width-300 ml10" placeholder="请选择市">
-            <el-option
-            v-for="item in options"
-            :key="item.value"
-            :label="item.label"
-            :value="item.value">
-            </el-option>
-        </el-select>
-      </el-form-item>
-      <el-form-item label="所属支行:" prop="name">
-        <el-select v-model="setQuery.IDnumber" class="item-width-300" placeholder="请选择所属支行">
-            <el-option
-            v-for="item in options"
-            :key="item.value"
-            :label="item.label"
-            :value="item.value">
-            </el-option>
-        </el-select>
-      </el-form-item>
-      <el-form-item v-if="setQuery.name==2" label="对公账户认证:" prop="name">
-        <el-button type="small">开始认证</el-button>
-        <span class="ml10">我们将在您的对公账户打一笔随机金额用于验证</span>
-      </el-form-item>
-      
-    </template>
-
-    <template v-if="step == 4">
-        <div class="title">股东信息</div>
-       <el-form-item label="控股股东:" prop="name">
-          <el-select v-model="setQuery.IDnumber" class="item-width-300" placeholder="请选择法人姓名">
-              <el-option
-              v-for="item in options"
-              :key="item.value"
-              :label="item.label"
-              :value="item.value">
-              </el-option>
-          </el-select>
-          <span>同步法人信息</span>
-        </el-form-item>
-         <el-form-item label="证件类型:" prop="name">
-          <el-select v-model="setQuery.IDnumber" class="item-width-300" placeholder="请选择法人姓名">
-              <el-option
-              v-for="item in options"
-              :key="item.value"
-              :label="item.label"
-              :value="item.value">
-              </el-option>
-          </el-select>
-        </el-form-item>
-        <el-form-item label="银行账号:" prop="name">
-        <el-input
-          v-model="setQuery.name"
-          :maxlength="11"
-          class="item-width-300"
-          placeholder="请输入银行账号"
-        ></el-input>
-      </el-form-item>
-      <el-form-item label="证件号码:" prop="name">
-        <el-input
-          v-model="setQuery.name"
-          :maxlength="11"
-          class="item-width-300"
-          placeholder="请输入银行账号"
-        ></el-input>
-      </el-form-item>
-       <el-form-item label="身份证有效期:" prop="name">
-         <el-date-picker
-          v-model="setQuery.createTime"
-          type="daterange"
-          range-separator="至"
-          start-placeholder="开始日期"
-          end-placeholder="结束日期">
-        </el-date-picker>
-        <el-checkbox v-model="checked">长期</el-checkbox>
-      </el-form-item>
-      <el-form-item label="家庭住址:" prop="name">
-        <el-input
-          v-model="setQuery.name"
-          :maxlength="11"
-          class="item-width-300"
-          placeholder="请输入家庭住址"
-        ></el-input>
-      </el-form-item>
-
-        <div class="title">受益人1</div>
-       <el-form-item label="受益人:" prop="name">
-          <el-select v-model="setQuery.IDnumber" class="item-width-300" placeholder="请选择受益人姓名">
-              <el-option
-              v-for="item in options"
-              :key="item.value"
-              :label="item.label"
-              :value="item.value">
-              </el-option>
-          </el-select>
-          <span>同步股东信息</span>
-        </el-form-item>
-         <el-form-item label="证件类型:" prop="name">
-          <el-select v-model="setQuery.IDnumber" class="item-width-300" placeholder="请选择法人姓名">
-              <el-option
-              v-for="item in options"
-              :key="item.value"
-              :label="item.label"
-              :value="item.value">
-              </el-option>
-          </el-select>
-        </el-form-item>
-        <el-form-item label="银行账号:" prop="name">
-        <el-input
-          v-model="setQuery.name"
-          :maxlength="11"
-          class="item-width-300"
-          placeholder="请输入银行账号"
-        ></el-input>
-      </el-form-item>
-      <el-form-item label="证件号码:" prop="name">
-        <el-input
-          v-model="setQuery.name"
-          :maxlength="11"
-          class="item-width-300"
-          placeholder="请输入银行账号"
-        ></el-input>
-      </el-form-item>
-       <el-form-item label="身份证有效期:" prop="name">
-         <el-date-picker
-          v-model="setQuery.createTime"
-          type="daterange"
-          range-separator="至"
-          start-placeholder="开始日期"
-          end-placeholder="结束日期">
-        </el-date-picker>
-        <el-checkbox v-model="checked">长期</el-checkbox>
-      </el-form-item>
-      <el-form-item label="家庭住址:" prop="name">
-        <el-input
-          v-model="setQuery.name"
-          :maxlength="11"
-          class="item-width-300"
-          placeholder="请输入家庭住址"
-        ></el-input>
-      </el-form-item>
-      <el-button>添加受益人</el-button>
-    </template>
-    <template v-if="step == 5">
-        <el-form-item label="商户类型:" prop="name">
-        <el-select v-model="setQuery.IDnumber" class="item-width-300" placeholder="请选择商户类型">
-            <el-option
-            v-for="item in options"
-            :key="item.value"
-            :label="item.label"
-            :value="item.value">
-            </el-option>
-        </el-select>
-      </el-form-item>
-               <el-form-item label="客户经理现场考察照:" prop="name">
-           <div class="notice">照片需高清、完整、不能有遮挡 (图片支持jpg, png, bmp格式,建议上传100kb~500kb大小文件,最多上传8张)</div>
-          <div class="img" v-for="item in imgList" :key="item"></div>
-         <Upload v-if="imgList.length !==8 " v-model="setQuery.img"></Upload>
-        </el-form-item>
-        <el-form-item label="店铺门面照:" prop="name">
-           <div class="notice">需拍全,包含完整的牌匾、门框(建议正对门店 2 米处拍摄) </div>
-           <div class="notice"> 查看示例图(图片支持jpg, png, bmp格式,建议上传100kb~500kb大小文件)</div>
-           <Upload v-model="setQuery.img"></Upload>
-        </el-form-item>
-         <el-form-item label="店铺室内照:" prop="name">
-           <div class="notice">需真实展示店内环境情况 查看示例图</div>
-           <div class="notice"> (图片支持jpg, png, bmp格式,建议上传100kb~500kb大小文件)</div>
-           <Upload v-model="setQuery.img"></Upload>
-        </el-form-item>
-         <el-form-item label="经营商品照片:" prop="name">
-           <div class="notice">需真实展示店内环境情况 查看示例图</div>
-           <div class="notice"> (图片支持jpg, png, bmp格式,建议上传100kb~500kb大小文件)</div>
-           <Upload v-model="setQuery.img"></Upload>
-
-        </el-form-item>
-        <el-form-item label="辅助证明材料:" prop="name">
-          <div class="notice">辅助证明材料: 包括但不限于营业场所租赁协议或者产权证明、集中经营场所管理方出具的证明文件等能够反映商户真实、合法从事商品或服务交易活动的材料。
-(图片支持jpg, png, bmp格式,建议上传100kb~500kb大小文件,最多上传20张)</div>
-          <div class="img" v-for="item in imgList" :key="item"></div>
-         <Upload v-if="imgList.length !==8 " v-model="setQuery.img"></Upload>
-        </el-form-item>
-    </template>
-    </el-form>
-
-  </div>
-</template>
-
-<script>
-import Upload from '@/components/Upload'
-export default {
-    components: {
-        Upload,
-    },
-  data() {
-    return {
-      step:1,
-      active:1,
-      checked:false,
-      imgList:[],
-      setQuery: {
-        id: 4,
-        name: "1",
-        shopName: "",
-        img:'',
-        createTime: "",
-        IDnumber: '',
-        phone: '',
-      },
-      rules: {
-        name: [{ required: true, message: "请输入用户名", trigger: "blur" }],
-        shopName: [
-          { required: true, message: "请输入商铺名称", trigger: "blur" },
-        ],
-        phone: [
-          { required: true, message: "请输入商铺手机号", trigger: "blur" },
-        ],
-        IDnumber: [
-          { required: true, message: "请输入身份证号", trigger: "blur" },
-        ],
-      },
-      options: [
-        {
-          value: "1",
-          label: "行业1",
-        },
-        {
-          value: "2",
-          label: "行业2",
-        },
-        {
-          value: "3",
-          label: "行业3",
-        },
-      ],
-      options1: [
-        {
-          value: "1",
-          label: "加油充电",
-        },
-        {
-          value: "2",
-          label: "酒店民宿",
-        },
-        {
-          value: "3",
-          label: "餐饮美食",
-        },
-        {
-          value: "4",
-          label: "慧研学",
-        },
-        {
-          value: "5",
-          label: "超市购物",
-        },
-        {
-          value: "6",
-          label: "健身运动",
-        },
-        {
-          value: "7",
-          label: "医疗健康",
-        },
-        {
-          value: "8",
-          label: "家政服务",
-        },
-      ],
-    };
-  },
-  methods: {
-    handleTab(val){
-      this.active = val
-    },
- 
-  },
-  created () {
-  },
-};
-</script>
-
-<style lang="scss" scoped>
-@import '@/styles/element-variables';
-.shopAdd {
-  padding-bottom: 40px;
-  .step-box{
-    display: flex;
-    justify-content: center;
-    margin: 50px 0;
-    .el-steps{
-      width: 90%;
-      margin-left: 200px;
-    }
-  }
-
-  .tabs{
-    display: flex;
-    align-items: center;
-    margin-bottom: 15px;
-    .tab{
-      padding: 2px 10px;
-      border: 1px solid #ccc;
-      border-radius: 4px;
-      margin-right: 8px;
-    }
-    .active{
-      border: 1px solid $--color-primary;
-      color: $--color-primary;
-    }
-    
-  }
-
-  .img{
-    width: 150px;
-    height: 100px;
-    border-radius: 4px;
-    background: #f1f1f1;
-  }
-
-  .el-checkbox{
-    margin-left: 10px;
-  }
-
-  .notice{
-    font-size: 12px;
-    color: #ccc;
-  }
-
-}
-</style>

+ 0 - 509
src/views/operationManage/shopManage/shopDetail3.vue

@@ -1,509 +0,0 @@
-<!--
- * @Author: error: error: git config user.name & please set dead value or install git && error: git config user.email & please set dead value or install git & please set dead value or install git
- * @Date: 2023-05-26 16:37:34
- * @LastEditors: error: error: git config user.name & please set dead value or install git && error: git config user.email & please set dead value or install git & please set dead value or install git
- * @LastEditTime: 2024-02-21 14:20:20
- * @FilePath: \admin-manage\src\views\operationManage\shopManage\shopDetail3.vue
- * @Description: 
- * 
- * Copyright (c) 2023 by ${git_name_email}, All Rights Reserved. 
--->
-<template>
-  <div class="shopAdd app-container">
-   <el-tabs v-model="step">
-      <el-tab-pane label="商户信息" name="1"></el-tab-pane>
-      <el-tab-pane label="身份信息" name="2"></el-tab-pane>
-      <el-tab-pane label="结算信息" name="3"></el-tab-pane>
-      <el-tab-pane label="股东信息" name="3"></el-tab-pane>
-      <el-tab-pane label="图片信息" name="4"></el-tab-pane>
-    </el-tabs>
-
-    <el-form
-      :model="setQuery"
-      ref="setQuery"
-      :rules="rules"
-      label-width="180px"
-    >
-    <template v-if="step == 1">
-        <el-form-item label="主体名称:" prop="name">
-        <el-input
-          v-model="setQuery.name"
-          :maxlength="11"
-          class="item-width-300"
-          placeholder="请输入主体名称"
-        ></el-input>
-      </el-form-item>
-       <el-form-item label="入驻平台类型:" prop="phone">
-         <el-select v-model="setQuery.IDnumber" class="item-width-300" placeholder="请选择商品类型">
-            <el-option
-            v-for="item in options1"
-            :key="item.value"
-            :label="item.label"
-            :value="item.value">
-            </el-option>
-        </el-select>
-      </el-form-item>
-         <el-form-item label="营业执照类型:" prop="name">
-            <el-radio v-model="setQuery.name" label="1">多证合一营业执照</el-radio>
-            <el-radio v-model="setQuery.name" label="2">普通营业执照</el-radio>
-      </el-form-item>
-      <el-form-item label="营业执照:" prop="name">
-        <Upload v-model="setQuery.img"></Upload>
-        <div class="notice">照片需高清、完整、不能有遮挡 查看示例图</div>
-        <div class="notice">(图片支持jpg, png, bmp格式,建议上传100kb~500kb大小文件)</div>
-      </el-form-item>
-      <el-form-item label="营业名称:" prop="name">
-        <el-input
-          v-model="setQuery.name"
-          :maxlength="11"
-          class="item-width-300"
-          placeholder="请输入营业名称"
-        ></el-input>
-      </el-form-item>
-      <el-form-item label="营业地区-详细地址:" prop="IDnumber">
-         <el-input
-          v-model="setQuery.name"
-          :maxlength="11"
-          class="item-width-300"
-          placeholder="请输入营业地址"
-        ></el-input>
-      </el-form-item>
-      <el-form-item :label="setQuery.name==1?'统一社会信用码':'营业执照号码:'"  prop="name">
-        <el-input
-          v-model="setQuery.name"
-          :maxlength="11"
-          class="item-width-300"
-          placeholder="请输入营业名称"
-        ></el-input>
-      </el-form-item>
-
-      <el-form-item label="所属行业:" prop="IDnumber">
-        
-        <el-select v-model="setQuery.IDnumber" class="item-width-300" placeholder="请选择商品类型">
-            <el-option
-            v-for="item in options"
-            :key="item.value"
-            :label="item.label"
-            :value="item.value">
-            </el-option>
-        </el-select>
-      </el-form-item>
-      <el-form-item label="业务选择:" prop="shopName">
-        <div class="tabs">
-          <div class="tab" :class="[active == 1?'active':'']" @click="handleTab(1)">公共支付-手机</div>
-          <div class="tab" :class="[active == 2?'active':'']" @click="handleTab(2)">公共支付-通用</div>
-          <div class="tab" :class="[active == 3?'active':'']" @click="handleTab(3)">银行卡</div>
-        </div>
-      </el-form-item>
-      
-    </template>
-
-    <template v-if="step == 2">
-       <el-form-item label="姓名:" prop="name">
-        <el-input
-          v-model="setQuery.name"
-          :maxlength="11"
-          class="item-width-300"
-          placeholder="请输入身份证姓名"
-        ></el-input>
-      </el-form-item>
-      <el-form-item label="身份证号码:" prop="name">
-        <el-input
-          v-model="setQuery.name"
-          :maxlength="11"
-          class="item-width-300"
-          placeholder="请输入身份证号码"
-        ></el-input>
-      </el-form-item>
-      <el-form-item label="身份证有效期:" prop="name">
-         <el-date-picker
-          v-model="setQuery.createTime"
-          type="daterange"
-          range-separator="至"
-          start-placeholder="开始日期"
-          end-placeholder="结束日期">
-        </el-date-picker>
-        <el-checkbox v-model="checked">长期</el-checkbox>
-      </el-form-item>
-     
-      <el-form-item label="身份证正面:">
-        <Upload v-model="setQuery.img"></Upload>
-        <div class="notice">(图片支持jpg, png, bmp格式,建议上传100kb~500kb大小文件)</div>
-      </el-form-item>
-      <el-form-item label="身份证反面:">
-        <Upload v-model="setQuery.img"></Upload>
-        <div class="notice">(图片支持jpg, png, bmp格式,建议上传100kb~500kb大小文件)</div>
-      </el-form-item>
-      <el-form-item label="手持身份证:">
-        <Upload v-model="setQuery.img"></Upload>
-        <div class="notice">(图片支持jpg, png, bmp格式,建议上传100kb~500kb大小文件)</div>
-      </el-form-item>
-    </template>
-
-    <template v-if="step == 3">
-       
-      <el-form-item label="对公结算证明照">
-        <Upload v-model="setQuery.img"></Upload>
-        <div class="notice">(图片支持jpg, png, bmp格式,建议上传100kb~500kb大小文件)</div>
-      </el-form-item>
-      <el-form-item label="账户名称:" prop="name">
-        <el-input
-          v-model="setQuery.name"
-          :maxlength="11"
-          class="item-width-300"
-          placeholder="请输入账户名称"
-        ></el-input>
-      </el-form-item>
-      <el-form-item label="银行账号:" prop="name">
-        <el-input
-          v-model="setQuery.name"
-          class="item-width-300"
-          placeholder="请输入银行账号"
-        ></el-input>
-      </el-form-item>
-      <el-form-item :label="setQuery.name==1?'法人代表人手机号:':'银行预留手机号:'" prop="name">
-        <el-input
-          v-model="setQuery.name"
-          :maxlength="11"
-          class="item-width-300"
-          placeholder="请输入银行预留手机号"
-        ></el-input>
-      </el-form-item>
-      <el-form-item label="开户所在地:" prop="name">
-        <el-select v-model="setQuery.IDnumber" class="item-width-300" placeholder="请选择省">
-            <el-option
-            v-for="item in options"
-            :key="item.value"
-            :label="item.label"
-            :value="item.value">
-            </el-option>
-        </el-select>
-        <el-select v-model="setQuery.IDnumber" class="item-width-300 ml10" placeholder="请选择市">
-            <el-option
-            v-for="item in options"
-            :key="item.value"
-            :label="item.label"
-            :value="item.value">
-            </el-option>
-        </el-select>
-      </el-form-item>
-      <el-form-item label="所属支行:" prop="name">
-        <el-select v-model="setQuery.IDnumber" class="item-width-300" placeholder="请选择所属支行">
-            <el-option
-            v-for="item in options"
-            :key="item.value"
-            :label="item.label"
-            :value="item.value">
-            </el-option>
-        </el-select>
-      </el-form-item>
-      <el-form-item v-if="setQuery.name==2" label="对公账户认证:" prop="name">
-        <el-button type="small">开始认证</el-button>
-        <span class="ml10">我们将在您的对公账户打一笔随机金额用于验证</span>
-      </el-form-item>
-      
-    </template>
-
-    <template v-if="step == 4">
-        <div class="title">股东信息</div>
-       <el-form-item label="控股股东:" prop="name">
-          <el-select v-model="setQuery.IDnumber" class="item-width-300" placeholder="请选择法人姓名">
-              <el-option
-              v-for="item in options"
-              :key="item.value"
-              :label="item.label"
-              :value="item.value">
-              </el-option>
-          </el-select>
-          <span>同步法人信息</span>
-        </el-form-item>
-         <el-form-item label="证件类型:" prop="name">
-          <el-select v-model="setQuery.IDnumber" class="item-width-300" placeholder="请选择法人姓名">
-              <el-option
-              v-for="item in options"
-              :key="item.value"
-              :label="item.label"
-              :value="item.value">
-              </el-option>
-          </el-select>
-        </el-form-item>
-        <el-form-item label="银行账号:" prop="name">
-        <el-input
-          v-model="setQuery.name"
-          :maxlength="11"
-          class="item-width-300"
-          placeholder="请输入银行账号"
-        ></el-input>
-      </el-form-item>
-      <el-form-item label="证件号码:" prop="name">
-        <el-input
-          v-model="setQuery.name"
-          :maxlength="11"
-          class="item-width-300"
-          placeholder="请输入银行账号"
-        ></el-input>
-      </el-form-item>
-       <el-form-item label="身份证有效期:" prop="name">
-         <el-date-picker
-          v-model="setQuery.createTime"
-          type="daterange"
-          range-separator="至"
-          start-placeholder="开始日期"
-          end-placeholder="结束日期">
-        </el-date-picker>
-        <el-checkbox v-model="checked">长期</el-checkbox>
-      </el-form-item>
-      <el-form-item label="家庭住址:" prop="name">
-        <el-input
-          v-model="setQuery.name"
-          :maxlength="11"
-          class="item-width-300"
-          placeholder="请输入家庭住址"
-        ></el-input>
-      </el-form-item>
-
-        <div class="title">受益人1</div>
-       <el-form-item label="受益人:" prop="name">
-          <el-select v-model="setQuery.IDnumber" class="item-width-300" placeholder="请选择受益人姓名">
-              <el-option
-              v-for="item in options"
-              :key="item.value"
-              :label="item.label"
-              :value="item.value">
-              </el-option>
-          </el-select>
-          <span>同步股东信息</span>
-        </el-form-item>
-         <el-form-item label="证件类型:" prop="name">
-          <el-select v-model="setQuery.IDnumber" class="item-width-300" placeholder="请选择法人姓名">
-              <el-option
-              v-for="item in options"
-              :key="item.value"
-              :label="item.label"
-              :value="item.value">
-              </el-option>
-          </el-select>
-        </el-form-item>
-        <el-form-item label="银行账号:" prop="name">
-        <el-input
-          v-model="setQuery.name"
-          :maxlength="11"
-          class="item-width-300"
-          placeholder="请输入银行账号"
-        ></el-input>
-      </el-form-item>
-      <el-form-item label="证件号码:" prop="name">
-        <el-input
-          v-model="setQuery.name"
-          :maxlength="11"
-          class="item-width-300"
-          placeholder="请输入银行账号"
-        ></el-input>
-      </el-form-item>
-       <el-form-item label="身份证有效期:" prop="name">
-         <el-date-picker
-          v-model="setQuery.createTime"
-          type="daterange"
-          range-separator="至"
-          start-placeholder="开始日期"
-          end-placeholder="结束日期">
-        </el-date-picker>
-        <el-checkbox v-model="checked">长期</el-checkbox>
-      </el-form-item>
-      <el-form-item label="家庭住址:" prop="name">
-        <el-input
-          v-model="setQuery.name"
-          :maxlength="11"
-          class="item-width-300"
-          placeholder="请输入家庭住址"
-        ></el-input>
-      </el-form-item>
-      <el-button>添加受益人</el-button>
-    </template>
-    <template v-if="step == 5">
-        <el-form-item label="商户类型:" prop="name">
-        <el-select v-model="setQuery.IDnumber" class="item-width-300" placeholder="请选择商户类型">
-            <el-option
-            v-for="item in options"
-            :key="item.value"
-            :label="item.label"
-            :value="item.value">
-            </el-option>
-        </el-select>
-      </el-form-item>
-               <el-form-item label="客户经理现场考察照:" prop="name">
-           <div class="notice">照片需高清、完整、不能有遮挡 (图片支持jpg, png, bmp格式,建议上传100kb~500kb大小文件,最多上传8张)</div>
-          <div class="img" v-for="item in imgList" :key="item"></div>
-         <Upload v-if="imgList.length !==8 " v-model="setQuery.img"></Upload>
-        </el-form-item>
-        <el-form-item label="店铺门面照:" prop="name">
-           <div class="notice">需拍全,包含完整的牌匾、门框(建议正对门店 2 米处拍摄) </div>
-           <div class="notice"> 查看示例图(图片支持jpg, png, bmp格式,建议上传100kb~500kb大小文件)</div>
-           <Upload v-model="setQuery.img"></Upload>
-        </el-form-item>
-         <el-form-item label="店铺室内照:" prop="name">
-           <div class="notice">需真实展示店内环境情况 查看示例图</div>
-           <div class="notice"> (图片支持jpg, png, bmp格式,建议上传100kb~500kb大小文件)</div>
-           <Upload v-model="setQuery.img"></Upload>
-        </el-form-item>
-         <el-form-item label="经营商品照片:" prop="name">
-           <div class="notice">需真实展示店内环境情况 查看示例图</div>
-           <div class="notice"> (图片支持jpg, png, bmp格式,建议上传100kb~500kb大小文件)</div>
-           <Upload v-model="setQuery.img"></Upload>
-
-        </el-form-item>
-        <el-form-item label="辅助证明材料:" prop="name">
-          <div class="notice">辅助证明材料: 包括但不限于营业场所租赁协议或者产权证明、集中经营场所管理方出具的证明文件等能够反映商户真实、合法从事商品或服务交易活动的材料。
-(图片支持jpg, png, bmp格式,建议上传100kb~500kb大小文件,最多上传20张)</div>
-          <div class="img" v-for="item in imgList" :key="item"></div>
-         <Upload v-if="imgList.length !==8 " v-model="setQuery.img"></Upload>
-        </el-form-item>
-    </template>
-    </el-form>
-
-  </div>
-</template>
-
-<script>
-import Upload from '@/components/Upload'
-export default {
-    components: {
-        Upload,
-    },
-  data() {
-    return {
-      step:1,
-      active:1,
-      checked:false,
-      imgList:[],
-      setQuery: {
-        id: 4,
-        name: "1",
-        shopName: "",
-        img:'',
-        createTime: "",
-        IDnumber: '',
-        phone: '',
-      },
-      rules: {
-        name: [{ required: true, message: "请输入用户名", trigger: "blur" }],
-        shopName: [
-          { required: true, message: "请输入商铺名称", trigger: "blur" },
-        ],
-        phone: [
-          { required: true, message: "请输入商铺手机号", trigger: "blur" },
-        ],
-        IDnumber: [
-          { required: true, message: "请输入身份证号", trigger: "blur" },
-        ],
-      },
-      options: [
-        {
-          value: "1",
-          label: "行业1",
-        },
-        {
-          value: "2",
-          label: "行业2",
-        },
-        {
-          value: "3",
-          label: "行业3",
-        },
-      ],
-      options1: [
-        {
-          value: "1",
-          label: "加油充电",
-        },
-        {
-          value: "2",
-          label: "酒店民宿",
-        },
-        {
-          value: "3",
-          label: "餐饮美食",
-        },
-        {
-          value: "4",
-          label: "慧研学",
-        },
-        {
-          value: "5",
-          label: "超市购物",
-        },
-        {
-          value: "6",
-          label: "健身运动",
-        },
-        {
-          value: "7",
-          label: "医疗健康",
-        },
-        {
-          value: "8",
-          label: "家政服务",
-        },
-      ],
-    };
-  },
-  methods: {
-    handleTab(val){
-      this.active = val
-    },
-    
-  },
-  created () {
-  },
-};
-</script>
-
-<style lang="scss" scoped>
-@import '@/styles/element-variables';
-.shopAdd {
-  padding-bottom: 40px;
-  .step-box{
-    display: flex;
-    justify-content: center;
-    margin: 50px 0;
-    .el-steps{
-      width: 90%;
-      margin-left: 200px;
-    }
-  }
-
-  .tabs{
-    display: flex;
-    align-items: center;
-    margin-bottom: 15px;
-    .tab{
-      padding: 2px 10px;
-      border: 1px solid #ccc;
-      border-radius: 4px;
-      margin-right: 8px;
-    }
-    .active{
-      border: 1px solid $--color-primary;
-      color: $--color-primary;
-    }
-    
-  }
-
-  .img{
-    width: 150px;
-    height: 100px;
-    border-radius: 4px;
-    background: #f1f1f1;
-  }
-
-  .el-checkbox{
-    margin-left: 10px;
-  }
-
-  .notice{
-    font-size: 12px;
-    color: #ccc;
-  }
-
-}
-</style>

+ 98 - 0
src/views/operationManage/shopManage/shopType.vue

@@ -0,0 +1,98 @@
+<!--
+ * @Author: wenjie 1454560336@qq.com
+ * @Date: 2024-03-18 11:08:29
+ * @LastEditors: wenjie 1454560336@qq.com
+ * @LastEditTime: 2024-03-18 11:32:01
+ * @FilePath: \admin-manage\src\views\operationManage\shopManage\shopType.vue
+ * @Description: 
+ * 
+ * Copyright (c) 2024 by ${git_name_email}, All Rights Reserved. 
+-->
+<template>
+    <div class="shopType app-container">
+        <div class="type-box">
+            <div class="item" @click="handleItem(1)">
+                <div class="img"></div>
+                <div class="info">
+                    <div class="label">小微商户</div>
+                    <div class="desc">商户拥有个人结算账户</div>
+                </div>
+            </div>
+             <div class="item" @click="handleItem(2)">
+                <div class="img"></div>
+                <div class="info">
+                    <div class="label">个体工商户</div>
+                    <div class="desc">商户拥有个人结算帐户和营业执照</div>
+                </div>
+            </div>
+             <div class="item" @click="handleItem(3)">
+                <div class="img"></div>
+                <div class="info">
+                    <div class="label">企业商户</div>
+                    <div class="desc">商户拥有个人结算帐户和营业执照</div>
+                </div>
+            </div>
+             <div class="item" @click="handleItem(4)">
+                <div class="img"></div>
+                <div class="info">
+                    <div class="label">机关事业单位或社会团体</div>
+                    <div class="desc">商户拥有个人结算帐户和营业执照</div>
+                </div>
+            </div>
+        </div>
+    </div>
+</template>
+
+<script>
+    export default {
+        methods: {
+            handleItem(type) {
+                this.$router.push({
+                    path: "/operationManage/shopManage/shopAdd"+type,
+                    query: {
+                    id:this.$route.query.id,
+                    accesseId:this.$route.query.accesseId,
+                    mode:this.$route.query.mode
+                    },
+                });
+            }
+        },
+    }
+</script>
+
+<style lang="scss" scoped>
+.shopType{
+    .type-box{
+        display: flex;
+        justify-content: center;
+        .item{
+            padding: 20px;
+            border-radius: 8px;
+            border: 1px solid #aaa;
+            display: flex;
+            align-items: center;
+            margin: 40px 20px ;
+            .img{
+                width: 60px;
+                height: 60px;
+                border-radius: 50%;
+                background: #aaa;
+            }
+            .info{
+                flex: 1;
+                margin-left: 20px;
+                .label{
+                    font-size: 16px;
+                    font-weight: bold;
+                    color: #222;
+                }
+                .desc{
+                    font-size: 14px;
+                    color: #aaa;
+                    margin-top: 10px;
+                }
+            }
+        }
+    }
+}
+</style>

+ 1 - 1
src/views/setting/commissionManage/index.vue

@@ -93,7 +93,7 @@
         :model="setQuery"
         ref="setQuery"
         :rules="rules"
-        label-width="130px"
+        label-width="150px"
         >
         <el-form-item label="佣金规则名称:" prop="shareRule">
             <el-input

+ 38 - 16
src/views/setting/rulesManage/index.vue

@@ -51,14 +51,23 @@
       <el-table-column
         prop="shopRate"
         align="center"
-        label="店铺"
+        label="购买店铺"
         show-overflow-tooltip
       >
        <template slot-scope="scope">
-            {{scope.row.shareType == 1?scope.row.shopRate+ '%':'-'}}
+            {{scope.row.shareType == 1?scope.row.buyShopRate+ '%':'-'}}
+        </template>
+      </el-table-column>
+        <el-table-column
+        prop="shopRate"
+        align="center"
+        label="核销店铺"
+        show-overflow-tooltip
+      >
+       <template slot-scope="scope">
+            {{scope.row.shareType == 1?scope.row.checkShopRate+ '%':'-'}}
         </template>
       </el-table-column>
-      
       <el-table-column align="center" label="操作">
         <template slot-scope="scope">
           <el-button type="text" size="small" @click="handleEdit(scope.row)">编辑</el-button>
@@ -125,9 +134,17 @@
             class="item-width-300"
             ></el-input>
         </el-form-item>
-         <el-form-item label="店铺分账:" prop="shopRate">
+         <el-form-item label="购买店铺分账:" prop="buyShopRate">
+           <el-input
+            v-model.number="setQuery.buyShopRate"
+            size="small"
+            type="number"
+            class="item-width-300"
+            ></el-input>
+        </el-form-item>
+         <el-form-item label="核销店铺分账:" prop="checkShopRate">
            <el-input
-            v-model.number="setQuery.shopRate"
+            v-model.number="setQuery.checkShopRate"
             size="small"
             type="number"
             class="item-width-300"
@@ -158,10 +175,10 @@ export default {
           value: 1,
           label: "比例分账",
         },
-        {
-          value: 2,
-          label: "固定金额分账",
-        },
+        // {
+        //   value: 2,
+        //   label: "固定金额分账",
+        // },
        
       ],
       title:'',
@@ -178,7 +195,8 @@ export default {
         "platformRate": 0,
         "shareRule": "",
         "shareType": 1,
-        "shopRate": 0
+        "buyShopRate": 0,
+        "checkShopRate": 0,
       },
       rules: {
         shareRule: [
@@ -187,8 +205,11 @@ export default {
         cycle: [
           { required: true, message: "请输入分账周期", trigger: "blur" },
         ],
-        shopRate: [
-          { required: true, message: "请输入商户分账", trigger: "blur" },
+        buyShopRate: [
+          { required: true, message: "请输入购买商户分账", trigger: "blur" },
+        ],
+         checkShopRate: [
+          { required: true, message: "请输入核销商户分账", trigger: "blur" },
         ],
         platformRate: [
           { required: true, message: "请输入平台分账", trigger: "blur" },
@@ -247,13 +268,14 @@ export default {
         "platformRate": 0,
         "shareRule": "",
         "shareType": 1,
-        "shopRate": 0
+        "buyShopRate": 0,
+        "checkShopRate": 0,
       }
     },
     save(){
-        this.btnLoading = true;
-        this.$refs.setQuery.validate((v) => {
-            if (v) {
+      this.$refs.setQuery.validate((v) => {
+        if (v) {
+              this.btnLoading = true;
             addOrUpdate(this.setQuery).then((res) => {
                 this.btnLoading = false;
                 if (res.state == "Success") {

+ 22 - 8
src/views/studyManage/bannerManage/index.vue

@@ -9,6 +9,15 @@
           placeholder="请输入名称"
           class="item-width-200 "
         ></el-input>
+        <el-button
+        class="ml10"
+        type="primary"
+        size="small"
+        icon="el-icon-search"
+        @click="handleSearch"
+      >
+        搜索
+      </el-button>
         <!-- <el-select
           v-model="query.menuId"
           size="small"
@@ -124,15 +133,20 @@ export default {
       total: 0,
     };
   },
-  watch: {
-    query: {
-      handler: debounce(function (val) {
-    this.bannerList()
-      }),
-      deep: true,
-    },
-  },
+  // watch: {
+  //   query: {
+  //     handler: debounce(function (val) {
+  //       this.bannerList()
+  //     }),
+  //     deep: true,
+  //   },
+  // },
   methods: {
+    handleSearch(){
+      this.query.currentPage = 1
+      this.bannerList();
+
+    },
     handleEdit(row){
       sessionStorage.setItem('bannerItem',JSON.stringify(row))
       this.$router.push({

+ 23 - 6
src/views/studyManage/communityManage/index.vue

@@ -2,6 +2,8 @@
 <template>
   <div class="communityManage app-container">
     <div class="search">
+      <div>
+
         <el-date-picker
           v-model="date"
           size="small"
@@ -12,6 +14,16 @@
           start-placeholder="开始日期"
           end-placeholder="结束日期">
         </el-date-picker>
+        <el-button
+        class="ml10"
+        type="primary"
+        size="small"
+        icon="el-icon-search"
+        @click="handleSearch"
+      >
+        搜索
+      </el-button>
+      </div>
 
         <el-button class="add-btn" type="primary" size="small" @click="handleAdd">添加</el-button>
     </div>
@@ -129,13 +141,13 @@ export default {
     };
   },
  watch: {
-    query: {
-      handler: debounce(function(val) {
-   this.getCommunityList()
+    // query: {
+    //   handler: debounce(function(val) {
+    //     this.getCommunityList()
         
-      }),
-      deep:true
-    },
+    //   }),
+    //   deep:true
+    // },
     date(val){
       if(val){
         this.query.startDate = val[0]
@@ -148,6 +160,11 @@ export default {
   },
 
   methods: {
+    handleSearch(){
+      this.query.currentPage = 1
+      this.getCommunityList();
+
+    },
     handleAdd(){
       this.$router.push('/studyManage/communityManage/addArticle')
     },

+ 23 - 6
src/views/studyManage/courseManage/index.vue

@@ -2,6 +2,7 @@
 <template>
   <div class="courseManage app-container">
     <div class="search">
+      <div>
         <el-date-picker
           v-model="date"
           size="small"
@@ -12,6 +13,17 @@
           start-placeholder="开始日期"
           end-placeholder="结束日期">
         </el-date-picker>
+        <el-button
+        class="ml10"
+        type="primary"
+        size="small"
+        icon="el-icon-search"
+        @click="handleSearch"
+      >
+        搜索
+      </el-button>
+      </div>
+        
 
         <el-button class="add-btn" type="primary" size="small" @click="handleAdd">添加</el-button>
     </div>
@@ -127,13 +139,13 @@ export default {
     };
   },
  watch: {
-    query: {
-      handler: debounce(function(val) {
-   this.courseList()
+    // query: {
+    //   handler: debounce(function(val) {
+    //     this.courseList()
         
-      }),
-      deep:true
-    },
+    //   }),
+    //   deep:true
+    // },
     date(val){
       if(val){
         this.query.startDateTime = val[0]
@@ -156,6 +168,11 @@ export default {
     }
   },
   methods: {
+    handleSearch(){
+      this.query.currentPage = 1
+      this.courseList();
+
+    },
     handleAdd(){
       this.$router.push({
         path:'/studyManage/courseManage/addCourse',

+ 55 - 22
src/views/studyManage/menuManage/addMenu.vue

@@ -54,8 +54,27 @@
         </el-switch>
       </el-form-item>
       <el-form-item label="上级分类:" prop="parentId">
-        <el-cascader  class="item-width-300" v-model="setQuery.parentId" :show-all-levels="false" :options="options1" :props="{ checkStrictly: true,value:'id',label:'columnName',children:'pages' }" clearable></el-cascader>
-       
+        <!-- <el-cascader  class="item-width-300" v-model="setQuery.parentId" :show-all-levels="false" :options="options1" :props="{ checkStrictly: true,value:'id',label:'columnName',children:'pages' }" clearable></el-cascader> -->
+        <el-select  class="item-width-300" v-model="setQuery.parentId" placeholder="请选择">
+          <el-option
+            v-for="item in options1"
+            :key="item.id"
+            :label="item.columnName"
+            :value="item.id">
+          </el-option>
+        </el-select>
+      </el-form-item>
+       <el-form-item label="商品分类:" v-if="setQuery.parentId" prop="goodsCateId">
+       <el-cascader
+       class="item-width-300"
+        v-model="setQuery.goodsCateId"
+        :options="typeOptions"
+        :props="{
+          value:'id',
+          label:'cateName',
+          children:'child'
+        }"
+        ></el-cascader>
       </el-form-item>
       <el-form-item label="使用模板:" v-if="$route.query.level == '二级栏目'" prop="templateType">
        <el-select
@@ -96,7 +115,9 @@
 
 <script>
 import Upload from '@/components/Upload'
-import {addOrUpdate,getData} from '@/api/study'
+import {addOrUpdate,getAllColumn} from '@/api/study';
+import {getData} from '@/api/goods'
+
 export default {
     components: {
         Upload,
@@ -115,6 +136,7 @@ export default {
             }
         ],
         options1:[],
+        typeOptions:[],
       setQuery: {
         "columnImg": "",
         "secondaryImg":'',
@@ -125,7 +147,8 @@ export default {
         "sort": 0,
         "colour":'',
         "status": 1,
-        "templateType": 1
+        "templateType": 1,
+        "goodsCateId":'',
         },
       rules: {
         columnImg: [{ required: true, message: "请上传栏目封面", trigger: "change" }],
@@ -134,6 +157,7 @@ export default {
         columnMsg: [{ required: true, message: "请输入栏目描述", trigger: "blur" }],
         sort: [{ required: true, message: "请输入权重", trigger: "blur" }],
         colour: [{ required: true, message: "请输入蒙层颜色", trigger: "blur" }],
+        goodsCateId: [{ required: true, message: "请选择商品分类", trigger: "change" }],
       },
     };
   },
@@ -154,8 +178,8 @@ export default {
         if (v) {
           this.loading = true
           let obj = JSON.parse(JSON.stringify(this.setQuery))
-          obj.parentId = this.setQuery.parentId[this.setQuery.parentId.length-1]
-          obj.columnLevel = this.setQuery.parentId.length + 1
+          obj.goodsCateId = obj.goodsCateId.toString()
+          obj.columnLevel = this.setQuery.parentId?2 : 1
           addOrUpdate(obj).then(res=>{
             this.loading = false
 
@@ -174,29 +198,35 @@ export default {
         }
       });
     },
-    filter(data){
-          data.map(item=>{
-            if(item.pages&&item.pages.length){
-              item.pages.map(i=>{
-                delete i.pages
-              })
-            }
-          })
-          return data
+
+    getAllColumn(){
+      getAllColumn().then(res=>{
+        if(res.state == 'Success'){
+           this.options1 =  res.content
+          // res.content.map(item=>{
+          //    this.options1.push({
+          //     id:item.id,
+          //     columnName:item.columnName,
+          //    })
+          // })
+        }
+      })
     },
+    // 获取商品分类
     getData(){
       getData().then(res=>{
         if(res.state == 'Success'){
-          this.options1 = this.filter(res.content)
+          this.typeOptions = res.content
         }
       })
-    }
+    },
   },
   beforeDestroy(){
       sessionStorage.removeItem('studyMenu')
   },
   created () {
     this.getData()
+    this.getAllColumn()
     // 当前id 编辑时才有
     if(this.$route.query.mode){
         let menuInfo = JSON.parse(sessionStorage.getItem('studyMenu'))
@@ -210,13 +240,16 @@ export default {
         this.setQuery.status = menuInfo.status
         this.setQuery.templateType = menuInfo.templateType
         this.setQuery.secondaryImg = menuInfo.secondaryImg
+        this.setQuery.goodsCateId = menuInfo.goodsCateId.split(',')
 
     }
-    if(this.$route.query.parentId && this.$route.query.level == '二级栏目'){
-      this.setQuery.parentId = [Number(this.$route.query.parentId) ]
-    }else if(this.$route.query.parentId && this.$route.query.level == '三级栏目'){
-      this.setQuery.parentId = (this.$route.query.id? [Number(this.$route.query.parentId),Number(this.$route.query.id)]: [Number(this.$route.query.parentId)])
-    }
+      this.setQuery.parentId = this.$route.query.parentId
+
+    // if(this.$route.query.parentId && this.$route.query.level == '二级栏目'){
+    //   this.setQuery.parentId = [Number(this.$route.query.parentId) ]
+    // }else if(this.$route.query.parentId && this.$route.query.level == '三级栏目'){
+    //   this.setQuery.parentId = (this.$route.query.id? [Number(this.$route.query.parentId),Number(this.$route.query.id)]: [Number(this.$route.query.parentId)])
+    // }
   },
 };
 </script>

+ 24 - 9
src/views/studyManage/menuManage/index.vue

@@ -9,6 +9,15 @@
           placeholder="请输入名称"
           class="item-width-200 "
         ></el-input>
+        <el-button
+        class="ml10"
+        type="primary"
+        size="small"
+        icon="el-icon-search"
+        @click="handleSearch"
+      >
+        搜索
+      </el-button>
         <!-- <el-select
           v-model="query.columnId"
           size="small"
@@ -24,6 +33,7 @@
           >
           </el-option>
         </el-select> -->
+        
       </div>
       <el-button class="add-btn" type="primary" size="small" @click="handleAdd"
         >添加</el-button
@@ -82,7 +92,7 @@
 
       <el-table-column prop="address" align="center" label="操作">
         <template slot-scope="scope">
-          <el-button type="text" size="small" v-if="$route.query.title != '级栏目'" @click="handle(scope.row.id)">查看下级</el-button>
+          <el-button type="text" size="small" v-if="$route.query.title != '级栏目'" @click="handle(scope.row.id)">查看下级</el-button>
           <el-button type="text" size="small" @click="handleEdit(scope.row)">编辑</el-button>
           <el-button type="text" size="small" @click="handleDel(scope.row.id)">删除</el-button>
         </template>
@@ -124,15 +134,20 @@ export default {
       total: 0,
     };
   },
-  watch: {
-    query: {
-      handler: debounce(function (val) {
-        this.getList()
-      }),
-      deep: true,
-    },
-  },
+  // watch: {
+  //   query: {
+  //     handler: debounce(function (val) {
+  //       this.getList()
+  //     }),
+  //     deep: true,
+  //   },
+  // },
   methods: {
+    handleSearch(){
+      this.query.currentPage = 1
+      this.getList();
+
+    },
     handle(id){
      
       let title,parentId

+ 23 - 6
src/views/studyManage/questionBankManage/index.vue

@@ -2,6 +2,8 @@
 <template>
   <div class="questionBank app-container">
     <div class="search">
+      <div>
+
       <el-date-picker
         v-model="date"
         size="small"
@@ -13,6 +15,16 @@
         end-placeholder="结束日期"
       >
       </el-date-picker>
+       <el-button
+        class="ml10"
+        type="primary"
+        size="small"
+        icon="el-icon-search"
+        @click="handleSearch"
+      >
+        搜索
+      </el-button>
+      </div>
 
       <el-button class="add-btn" type="primary" size="small" @click="handleAdd"
         >添加</el-button
@@ -160,12 +172,12 @@ export default {
     };
   },
   watch: {
-    query: {
-      handler: debounce(function (val) {
-        this.paperList();
-      }),
-      deep: true,
-    },
+    // query: {
+    //   handler: debounce(function (val) {
+    //     this.paperList();
+    //   }),
+    //   deep: true,
+    // },
     date(val) {
       if (val) {
         this.query.startDateTime = val[0];
@@ -178,6 +190,11 @@ export default {
   },
 
   methods: {
+    handleSearch(){
+      this.query.currentPage = 1
+      this.paperList();
+
+    },
     handleAdd() {
         this.title = '新增题库'
         this.dialogFormVisible = true

+ 20 - 7
src/views/studyManage/subscribeManage/index.vue

@@ -13,6 +13,15 @@
         end-placeholder="结束日期"
       >
       </el-date-picker>
+      <el-button
+        class="ml10"
+        type="primary"
+        size="small"
+        icon="el-icon-search"
+        @click="handleSearch"
+      >
+        搜索
+      </el-button>
 
     </div>
 
@@ -120,12 +129,12 @@ export default {
     };
   },
   watch: {
-    query: {
-      handler: debounce(function (val) {
-        this.reservationLog();
-      }),
-      deep: true,
-    },
+    // query: {
+    //   handler: debounce(function (val) {
+    //     this.reservationLog();
+    //   }),
+    //   deep: true,
+    // },
     date(val) {
       if (val) {
         this.query.startDate = val[0];
@@ -138,7 +147,11 @@ export default {
   },
 
   methods: {
-    
+    handleSearch(){
+      this.query.currentPage = 1
+      this.reservationLog();
+
+    },
     handleState(id) {
     
       this.$confirm(`此操作将修改该数据状态, 是否继续?`, "提示", {

+ 22 - 9
src/views/userManage/agentManage/index.vue

@@ -39,6 +39,15 @@
           >
           </el-option>
         </el-select>
+         <el-button
+        class="ml10"
+        type="primary"
+        size="small"
+        icon="el-icon-search"
+        @click="handleSearch"
+      >
+        搜索
+      </el-button>
       </div>
       <el-button class="add-btn" type="primary" size="small" @click="handleAdd"
         >添加</el-button
@@ -182,16 +191,20 @@ export default {
       total: 0,
     };
   },
-  watch: {
-    query: {
-      handler: debounce(function(val) {
-        
-    this.channelManager()
-      }),
-      deep:true
-    }
-  },
+  // watch: {
+  //   query: {
+  //     handler: debounce(function(val) {
+  //       this.channelManager()
+  //     }),
+  //     deep:true
+  //   }
+  // },
   methods: {
+    handleSearch(){
+      this.query.currentPage = 1
+      this.channelManager();
+
+    },
     handleAdd() {
       this.$router.push("/userManage/agentManage/addAgent");
     },

+ 23 - 10
src/views/userManage/memberManage/index.vue

@@ -24,6 +24,15 @@
           >
           </el-option>
         </el-select>
+        <el-button
+        class="ml10"
+        type="primary"
+        size="small"
+        icon="el-icon-search"
+        @click="handleSearch"
+      >
+        搜索
+      </el-button>
       </div>
     
     </div>
@@ -105,23 +114,23 @@ export default {
       query: {
         setMealId: "",
         userIdOrPhone: "",
-        page: 1,
+        currentPage: 1,
         pageSize: 10,
       },
       title: "",
       total: 0,
     };
   },
-  watch: {
-    query: {
-      handler: debounce(function (val) {
-        this.getList();
+  // watch: {
+  //   query: {
+  //     handler: debounce(function (val) {
+  //       this.getList();
 
-        console.log(1);
-      }),
-      deep: true,
-    },
-  },
+  //       console.log(1);
+  //     }),
+  //     deep: true,
+  //   },
+  // },
   filters: {
     filterMeal: function (val, that) {
       let msg;
@@ -134,7 +143,11 @@ export default {
     },
   },
   methods: {
+    handleSearch(){
+      this.query.currentPage = 1
+      this.getList();
 
+    },
     handleSizeChange(val) {
       this.query.currentPage = 1;
       this.query.pageSize = val;

+ 0 - 191
src/views/userManage/userManage/addUser.vue

@@ -1,191 +0,0 @@
-<template>
-  <div class="addUser app-container">
-    <el-form
-      :model="setQuery"
-      ref="setQuery"
-      :rules="rules"
-      label-width="130px"
-    >
-   
-       <el-form-item label="账户类型:" prop="phone">
-        <el-select v-model="setQuery.phone" class="item-width-300" placeholder="请选择商品类型">
-            <el-option
-            v-for="item in options"
-            :key="item.value"
-            :label="item.label"
-            :value="item.value">
-            </el-option>
-        </el-select>
-      </el-form-item>
-       <el-form-item :label="setQuery.phone == 1?'商户类型:':'所属渠道:'" prop="phone">
-        <el-select v-model="setQuery.phone" class="item-width-300" placeholder="请选择商品类型">
-            <el-option
-            v-for="item in options1"
-            :key="item.value"
-            :label="item.label"
-            :value="item.value">
-            </el-option>
-        </el-select>
-      </el-form-item>
-         <el-form-item :label="setQuery.phone == 1?'商户名称:':'渠道商名称'" prop="name">
-        <el-input
-          v-model="setQuery.name"
-          :maxlength="11"
-          class="item-width-300"
-        ></el-input>
-      </el-form-item>
-         <el-form-item label="商户名称:" prop="name">
-            <el-cascader
-            class="item-width-300"
-            v-model="setQuery.IDnumber"
-            :options="options2"
-            @change="handleChange"></el-cascader>
-        </el-form-item>
-
-       <el-form-item label="手机号:" prop="name">
-        <el-input
-          v-model="setQuery.name"
-          :maxlength="11"
-          class="item-width-300"
-          placeholder="请输入手机号"
-        ></el-input>
-      </el-form-item>
-     
- 
-      <el-form-item v-if="setQuery.phone == 2" label="备注:">
-        <el-input
-          type="textarea"
-          placeholder="请输入备注"
-          v-model="setQuery.phone"
-          maxlength="400"
-          :rows="6"
-           class="item-width-500"
-          show-word-limit
-        >
-        </el-input>
-      </el-form-item>
-
-    </el-form>
-
-    <div class="btn-group">
-       <el-button>取 消</el-button>
-     <el-button type="primary" :loading="loading"  @click="save">确 定</el-button>
-    </div>
-  </div>
-</template>
-
-<script>
-import Upload from '@/components/Upload'
-export default {
-    components: {
-        Upload,
-    },
-  data() {
-    return {
-        loading:false,
-      setQuery: {
-        id: 4,
-        name: "",
-        shopName: "",
-        img:'',
-        createTime: "2023-05-23 16:56",
-        IDnumber: [],
-        phone: '',
-      },
-      rules: {
-        name: [{ required: true, message: "请输入用户名", trigger: "blur" }],
-        shopName: [
-          { required: true, message: "请输入商铺名称", trigger: "blur" },
-        ],
-        phone: [
-          { required: true, message: "请输入商铺手机号", trigger: "blur" },
-        ],
-        IDnumber: [
-          { required: true, message: "请输入身份证号", trigger: "blur" },
-        ],
-      },
-      options: [
-        {
-          value: "1",
-          label: "商户",
-        },
-        {
-          value: "2",
-          label: "渠道商",
-        },
-      ],
-      options1: [
-        {
-          value: "1",
-          label: "直营",
-        },
-        {
-          value: "2",
-          label: "连锁",
-        },
-        {
-          value: "3",
-          label: "加盟",
-        },
-      ],
-      options2: [{
-          value: 'zhinan',
-          label: '指南',
-          children: [{
-            value: 'shejiyuanze',
-            label: '设计原则',
-            children: [{
-              value: 'yizhi',
-              label: '一致'
-            }]
-          }],
-      }]
-    }
-  },
-  methods: {
-    handleChange(){},
-    save() {
-      this.$refs.setQuery.validate((v) => {
-        if (v) {
-            this.$notify({
-                title: '成功',
-                message: '操作成功',
-                type: 'success'
-              });
-              this.setQuery = {
-                    id: 4,
-                    name: "",
-                    shopName: "",
-                    img:'',
-                    createTime: "2023-05-23 16:56",
-                    IDnumber: '',
-                    phone: '',
-                }
-                this.$router.push('/shopManage/index')
-              
-        }
-      });
-    },
-  },
-};
-</script>
-
-<style lang="scss" scoped>
-@import '@/styles/element-variables';
-.addUser {
-  padding-bottom: 40px;
-  .btn-group{
-    display: flex;
-    align-items: center;
-    justify-content: center;
-  }
-
-  .active{
-    color: $--color-primary;
-    border: 1px solid $--color-primary!important;
-    background: #d1d3fa;
-        border-radius: 4px;
-
-  }
-}
-</style>

+ 0 - 235
src/views/userManage/userManage/index.vue

@@ -1,235 +0,0 @@
-
-<template>
-  <div class="userManage app-container">
-    <div class="search">
-      <div>
-        <el-input
-          v-model="query.userName"
-          size="small"
-          placeholder="请输入用户ID或手机号"
-          class="item-width-200 "
-        ></el-input>
-        <el-select
-          v-model="query.address"
-          size="small"
-          clearable
-          class="item-width-200 ml10"
-          placeholder="请选择状态"
-        >
-          <el-option
-            v-for="item in options"
-            :key="item.value"
-            :label="item.label"
-            :value="item.value"
-          >
-          </el-option>
-        </el-select>
-      </div>
-      <el-button class="add-btn" type="primary" size="small" @click="handleAdd"
-        >添加</el-button
-      >
-    </div>
-
-    <el-table
-      :data="tableData"
-      tooltip-effect="dark"
-      border
-      v-loading="loading"
-      style="width: 100%"
-    >
-      <el-table-column
-        align="center"
-        label="用户ID"
-        prop="name"
-        show-overflow-tooltip
-      >
-      </el-table-column>
-      <el-table-column
-        prop="shopName"
-        align="center"
-        label="手机号"
-        show-overflow-tooltip
-      >
-      </el-table-column>
-      <el-table-column
-        prop="createTime"
-        align="center"
-        label="账户类型"
-        show-overflow-tooltip
-      >
-      </el-table-column>
-      <el-table-column
-        prop="createTime"
-        align="center"
-        label="注册时间"
-        show-overflow-tooltip
-      >
-      </el-table-column>
-      <el-table-column
-        align="center"
-        prop="status"
-        label="状态"
-        show-overflow-tooltip
-      >
-        <template slot-scope="scope">
-          {{ scope.row.status == 1 ? "启用" : "禁用" }}
-        </template>
-      </el-table-column>
-
-      <el-table-column prop="address" align="center" label="操作">
-        <template slot-scope="scope">
-          <el-button
-            type="text"
-            size="small"
-            @click="handle(scope.row, scope.$index)"
-            >{{ scope.row.status == 1 ? "禁用" : "启用" }}</el-button
-          >
-          <el-button type="text" size="small" @click="handleEdit(scope.row)"
-            >编辑</el-button
-          >
-          <el-button type="text" size="small" @click="handleDel(scope.row)"
-            >删除</el-button
-          >
-        </template>
-      </el-table-column>
-    </el-table>
-    <div class="page-box">
-      <el-pagination
-        @size-change="handleSizeChange"
-        @current-change="handleCurrentChange"
-        background
-        :current-page="query.page"
-        :page-sizes="[10, 20, 30, 40]"
-        :page-size="query.pageSize"
-        layout="total, sizes, prev, pager, next, jumper"
-        :total="tableData.length"
-      >
-      </el-pagination>
-    </div>
-  </div>
-</template>
-  
-  <script>
-  import {debounce} from '@/utils/index'
-export default {
-  name: "userManage",
-  data() {
-    return {
-      tableData: [
-        {
-          id: 1,
-          name: "张三",
-          shopName: "中石油",
-          status: 1,
-          createTime: "2023-05-23 16:56",
-          IDnumber: 41166554551223445,
-          phone: 13789459456,
-        },
-        {
-          id: 2,
-          name: "李四",
-          shopName: "山姆会员店",
-          status: 1,
-          createTime: "2023-05-23 16:56",
-          IDnumber: 41166554551223445,
-          phone: 13949455678,
-        },
-        {
-          id: 3,
-          name: "万强",
-          shopName: "烤匠",
-          status: 1,
-          createTime: "2023-05-23 16:56",
-          IDnumber: 41166554551223445,
-          phone: 13948956745,
-        },
-        {
-          id: 4,
-          name: "李丹",
-          shopName: "中石油",
-          status: 1,
-          createTime: "2023-05-23 16:56",
-          IDnumber: 41166554551223445,
-          phone: 15678394945,
-        },
-      ],
-
-      options: [
-        {
-          value: "0",
-          label: "全部状态",
-        },
-        {
-          value: "1",
-          label: "启用",
-        },
-        {
-          value: "2",
-          label: "禁用",
-        },
-      ],
-      loading: false,
-      query: {
-        type: "0",
-        phone: "",
-        shopName: "",
-        address: "0",
-        page: 1,
-        pageSize: 10,
-      },
-      title: "",
-      total: 0,
-    };
-  },
-  watch: {
-    query: {
-      handler: debounce(function(val) {
-        
-        console.log(1);
-      }),
-      deep:true
-    }
-  },
-  methods: {
-    handleAdd() {
-      this.$router.push("/merchantManage/userManage/shopAdd");
-    },
-    handle(item, index) {
-      this.$set(item, "status", this.tableData[index].status == 1 ? 0 : 1);
-    },
-    handleDel(){},
-    handleEdit(row) {
-      this.$router.push("/merchantManage/userManage/shopDetail");
-    },
-    handleSizeChange(val) {
-      this.query.page = 1;
-      this.query.pageSize = val;
-    },
-    handleCurrentChange(val) {
-      this.query.page = val;
-    },
-
-    search() {
-      this.query.page = 1;
-    },
-  },
-  created() {
-    this.loading = true;
-    setTimeout(() => {
-      this.loading = false;
-    }, 1500);
-  },
-};
-</script>
-  
-<style lang="scss" scoped>
-.userManage {
-  .search {
-    justify-content: space-between;
-    .add-btn {
-      // margin-right: 20px;
-    }
-  }
-}
-</style>
-  

Некоторые файлы не были показаны из-за большого количества измененных файлов