cmy 1 tahun lalu
induk
melakukan
33b733a45e
50 mengubah file dengan 4537 tambahan dan 11596 penghapusan
  1. 2 2
      package.json
  2. 91 138
      src/api/finance.js
  3. 0 21
      src/api/product.js
  4. 0 10
      src/api/shop.js
  5. 0 571
      src/api/shopOrder.js
  6. 82 96
      src/layout/navBars/breadcrumb/index.vue
  7. 8 4
      src/layout/navBars/breadcrumb/user.vue
  8. 28 34
      src/layout/navBars/index.vue
  9. 1 7
      src/libs/request.js
  10. 0 494
      src/pages/finance/shopExtract/index.vue
  11. 48 48
      src/pages/order/orderList/components/tableExpand.vue
  12. 487 512
      src/pages/order/orderList/components/tableFrom.vue
  13. 722 664
      src/pages/order/orderList/components/tableList.vue
  14. 282 257
      src/pages/order/orderList/handle/orderDetails.vue
  15. 80 77
      src/pages/order/orderList/handle/orderRecord.vue
  16. 73 72
      src/pages/order/orderList/handle/orderRemark.vue
  17. 562 533
      src/pages/order/orderList/handle/orderSend.vue
  18. 194 196
      src/pages/order/orderList/index.vue
  19. 77 81
      src/pages/order/orderList/orderlistDetails.vue
  20. 820 793
      src/pages/order/orderList/splitList.vue
  21. 2 62
      src/pages/product/productList/index.vue
  22. 88 30
      src/pages/shop/shop.vue
  23. 0 416
      src/pages/shop_finance/userExtract/index.vue
  24. 0 631
      src/pages/shop_order/invoice/index.vue
  25. 0 188
      src/pages/shop_order/invoice/orderDetall.vue
  26. 0 319
      src/pages/shop_order/offline/index.vue
  27. 0 54
      src/pages/shop_order/orderList/components/tableExpand.vue
  28. 0 523
      src/pages/shop_order/orderList/components/tableFrom.vue
  29. 0 717
      src/pages/shop_order/orderList/components/tableList.vue
  30. 0 299
      src/pages/shop_order/orderList/handle/orderDetails.vue
  31. 0 84
      src/pages/shop_order/orderList/handle/orderRecord.vue
  32. 0 78
      src/pages/shop_order/orderList/handle/orderRemark.vue
  33. 0 548
      src/pages/shop_order/orderList/handle/orderSend.vue
  34. 0 205
      src/pages/shop_order/orderList/index.vue
  35. 0 94
      src/pages/shop_order/orderList/orderlistDetails.vue
  36. 0 866
      src/pages/shop_order/orderList/splitList.vue
  37. 0 686
      src/pages/shop_order/refund/index.vue
  38. 1 4
      src/pages/shop_product/productList/index.vue
  39. 7 2
      src/pages/user/list/handle/userEdit.vue
  40. 9 2
      src/pages/user/list/handle/userEditForm.vue
  41. 5 0
      src/pages/user/list/handle/userInfo.vue
  42. 97 119
      src/router/index.js
  43. 77 85
      src/router/modules/finance.js
  44. 632 631
      src/router/modules/setting.js
  45. 0 37
      src/router/modules/shop_finance.js
  46. 0 74
      src/router/modules/shop_order.js
  47. 3 7
      src/router/routers.js
  48. 57 60
      src/store/index.js
  49. 0 163
      src/store/module/shopOrder.js
  50. 2 2
      vue.config.js

+ 2 - 2
package.json

@@ -5,8 +5,8 @@
   "private": false,
   "scripts": {
     "serve": "vue-cli-service serve --open --mode=dev",
-    "dev": "vue-cli-service serve --open --mode=dev",
-    "build": "vue-cli-service build --mode=production",
+    "dev": "SET NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service serve --open --mode=dev",
+    "build": "SET NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service build --mode=production",
     "eslint:comment": "使用 ESLint 检查并自动修复 src 目录下所有扩展名为 .js 和 .vue 的文件",
     "eslint": "eslint --ext .js,.vue,.ts --ignore-path .gitignore --fix src",
     "prettier:comment": "自动格式化当前目录下的所有文件",

+ 91 - 138
src/api/finance.js

@@ -14,10 +14,10 @@ import request from '@/libs/request';
  * @description 资金监控 -- 筛选类型
  */
 export function billTypeApi() {
-	return request({
-		url: 'finance/finance/bill_type',
-		method: 'get',
-	});
+  return request({
+    url: 'finance/finance/bill_type',
+    method: 'get',
+  });
 }
 
 /**
@@ -25,11 +25,11 @@ export function billTypeApi() {
  * @param {Object} param data {Object} 传值
  */
 export function billListApi(data) {
-	return request({
-		url: 'finance/finance/list',
-		method: 'get',
-		params: data,
-	});
+  return request({
+    url: 'finance/finance/list',
+    method: 'get',
+    params: data,
+  });
 }
 
 /**
@@ -37,11 +37,11 @@ export function billListApi(data) {
  * @param {Object} param data {Object} 传值
  */
 export function commissionListApi(data) {
-	return request({
-		url: 'finance/finance/commission_list',
-		method: 'get',
-		params: data,
-	});
+  return request({
+    url: 'finance/finance/commission_list',
+    method: 'get',
+    params: data,
+  });
 }
 
 /**
@@ -49,10 +49,10 @@ export function commissionListApi(data) {
  * @param {Number} param id {Number} 佣金记录ID
  */
 export function commissionDetailApi(id) {
-	return request({
-		url: `finance/finance/user_info/${id}`,
-		method: 'get',
-	});
+  return request({
+    url: `finance/finance/user_info/${id}`,
+    method: 'get',
+  });
 }
 
 /**
@@ -60,11 +60,11 @@ export function commissionDetailApi(id) {
  * @param {Number} param id {Number} 佣金记录 用户ID
  */
 export function extractlistApi(id, data) {
-	return request({
-		url: `finance/finance/extract_list/${id}`,
-		method: 'get',
-		params: data,
-	});
+  return request({
+    url: `finance/finance/extract_list/${id}`,
+    method: 'get',
+    params: data,
+  });
 }
 
 /**
@@ -72,11 +72,11 @@ export function extractlistApi(id, data) {
  * @param {Object} param data {Object} 提现申请传值
  */
 export function cashListApi(data) {
-	return request({
-		url: `finance/extract`,
-		method: 'get',
-		params: data,
-	});
+  return request({
+    url: `finance/extract`,
+    method: 'get',
+    params: data,
+  });
 }
 
 /**
@@ -84,10 +84,10 @@ export function cashListApi(data) {
  * @param {Number} param id {Number} 提现申请id
  */
 export function cashEditApi(id) {
-	return request({
-		url: `finance/extract/${id}/edit`,
-		method: 'get',
-	});
+  return request({
+    url: `finance/extract/${id}/edit`,
+    method: 'get',
+  });
 }
 
 /**
@@ -95,11 +95,11 @@ export function cashEditApi(id) {
  * @param {Number} param id {Number} 提现申请id
  */
 export function refuseApi(id, data) {
-	return request({
-		url: `finance/extract/refuse/${id}`,
-		method: 'put',
-		data,
-	});
+  return request({
+    url: `finance/extract/refuse/${id}`,
+    method: 'put',
+    data,
+  });
 }
 
 /**
@@ -107,11 +107,11 @@ export function refuseApi(id, data) {
  * @param {Number} param id {Number} 提现申请id
  */
 export function adoptApi(id, data) {
-	return request({
-		url: `finance/extract/adopt/${id}`,
-		method: 'put',
-		data,
-	});
+  return request({
+    url: `finance/extract/adopt/${id}`,
+    method: 'put',
+    data,
+  });
 }
 
 /**
@@ -119,11 +119,11 @@ export function adoptApi(id, data) {
  * @param {Object} param data {Object} 充值记录传值
  */
 export function rechargelistApi(data) {
-	return request({
-		url: `finance/recharge`,
-		method: 'get',
-		params: data,
-	});
+  return request({
+    url: `finance/recharge`,
+    method: 'get',
+    params: data,
+  });
 }
 
 /**
@@ -131,11 +131,11 @@ export function rechargelistApi(data) {
  * @param {Object} param data {Object} 用户充值数据传值
  */
 export function userRechargeApi(data) {
-	return request({
-		url: `finance/recharge/user_recharge`,
-		method: 'get',
-		params: data,
-	});
+  return request({
+    url: `finance/recharge/user_recharge`,
+    method: 'get',
+    params: data,
+  });
 }
 
 /**
@@ -143,10 +143,10 @@ export function userRechargeApi(data) {
  * @param {Number} param data {Number} 充值记录id
  */
 export function refundEditApi(id) {
-	return request({
-		url: `finance/recharge/${id}/refund_edit`,
-		method: 'get',
-	});
+  return request({
+    url: `finance/recharge/${id}/refund_edit`,
+    method: 'get',
+  });
 }
 
 /**
@@ -154,11 +154,11 @@ export function refundEditApi(id) {
  * @param {Number} param data {Number} 请求参数data
  */
 export function userFinanceApi(data) {
-	return request({
-		url: `export/userFinance`,
-		method: 'get',
-		params: data,
-	});
+  return request({
+    url: `export/userFinance`,
+    method: 'get',
+    params: data,
+  });
 }
 
 /**
@@ -166,11 +166,11 @@ export function userFinanceApi(data) {
  * @param {Number} param data {Number} 请求参数data
  */
 export function userCommissionApi(data) {
-	return request({
-		url: `export/userCommission`,
-		method: 'get',
-		params: data,
-	});
+  return request({
+    url: `export/userCommission`,
+    method: 'get',
+    params: data,
+  });
 }
 
 /**
@@ -178,11 +178,11 @@ export function userCommissionApi(data) {
  * @param {Number} param data {Number} 请求参数data
  */
 export function exportUserRechargeApi(data) {
-	return request({
-		url: `export/userRecharge`,
-		method: 'get',
-		params: data,
-	});
+  return request({
+    url: `export/userRecharge`,
+    method: 'get',
+    params: data,
+  });
 }
 
 /**
@@ -190,89 +190,42 @@ export function exportUserRechargeApi(data) {
  * @param {Number} param data {Number} 请求参数data
  */
 export function getFlowList(data) {
-	return request({
-		url: `statistic/flow/get_list`,
-		method: 'get',
-		params: data,
-	});
+  return request({
+    url: `statistic/flow/get_list`,
+    method: 'get',
+    params: data,
+  });
 }
 /**
  * @description 资金流水 -- 备注
  * @param {Number} param id {Number} 提现申请id
  */
 export function setMarks(id, data) {
-	return request({
-		url: `statistic/flow/set_mark/${id}`,
-		method: 'post',
-		data,
-	});
+  return request({
+    url: `statistic/flow/set_mark/${id}`,
+    method: 'post',
+    data,
+  });
 }
 /**
  * @description 财务管理 -- 余额列表
  * @param {Number} param data {Number} 请求参数data
  */
 export function getBalanceList(data) {
-	return request({
-		url: `finance/balance/list`,
-		method: 'get',
-		params: data,
-	});
+  return request({
+    url: `finance/balance/list`,
+    method: 'get',
+    params: data,
+  });
 }
 /**
  * @description 余额列表-- 备注
  * @param {Number} balanceMark id {Number} 提现申请id
  */
 export function setBalanceMark(id, data) {
-	return request({
-		url: `finance/balance/set_mark/${id}`,
-		method: 'post',
-		data,
-	});
+  return request({
+    url: `finance/balance/set_mark/${id}`,
+    method: 'post',
+    data,
+  });
 }
-
-/**
- * @description 商家提现申请 -- 列表
- * @param {Object} param data {Object} 提现申请传值
- */
-export function shopCashListApi(data) {
-	return request({
-		url: `merchant/extract/lst`,
-		method: 'get',
-		params: data,
-	});
-}
-
-/**
- * @description 商家提现申请 -- 编辑表单
- * @param {Number} param id {Number} 提现申请id
- */
-export function shopCashEditApi(id) {
-	return request({
-		url: `merchant/extract/${id}/edit`,
-		method: 'get',
-	});
-}
-
-/**
- * @description 商家提现申请 -- 拒绝申请
- * @param {Number} param id {Number} 提现申请id
- */
-export function shopRefuseApi(id, data) {
-	return request({
-		url: `merchant/extract/refuse/${id}`,
-		method: 'post',
-		data,
-	});
-}
-
-/**
- * @description 商家提现申请 -- 通过申请
- * @param {Number} param id {Number} 提现申请id
- */
-export function shopAdoptApi(id, data) {
-	return request({
-		url: `merchant/extract/adopt/${id}`,
-		method: 'get',
-		data,
-	});
-}

+ 0 - 21
src/api/product.js

@@ -410,25 +410,4 @@ export function batchSetting(data) {
 		method: 'POST',
 		data,
 	});
-}
-
-/**
- * @description 商品审核通过
- */
-export function set_audit_success(id) {
-	return request({
-		url: `/product/set_audit_success/${id}`,
-		method: 'get',
-	});
-}
-
-/**
- * @description 商品审核不通过
- */
-export function set_audit_fail(id,data) {
-	return request({
-		url: `/product/set_audit_fail/${id}`,
-		method: 'POST',
-		data
-	});
 }

+ 0 - 10
src/api/shop.js

@@ -270,14 +270,4 @@ export function merchantLoginApi(data, id) {
 		method: 'get',
 		data,
 	});
-}
-/**
- * @description  后台-商户商品审核-开启关闭
- */
-export function openMerchantProduct(data) {
-	return request({
-		url: `/merchant/openMerchantProduct`,
-		method: 'post',
-		data,
-	});
 }

+ 0 - 571
src/api/shopOrder.js

@@ -1,571 +0,0 @@
-// +----------------------------------------------------------------------
-// | CRMEB [ CRMEB赋能开发者,助力企业发展 ]
-// +----------------------------------------------------------------------
-// | Copyright (c) 2016~2023 https://www.crmeb.com All rights reserved.
-// +----------------------------------------------------------------------
-// | Licensed CRMEB并不是自由软件,未经许可不能去掉CRMEB相关版权
-// +----------------------------------------------------------------------
-// | Author: CRMEB Team <admin@crmeb.com>
-// +----------------------------------------------------------------------
-
-import request from '@/libs/request';
-
-/**
- * @description 订单管理--列表
- * @param {Object} param data {Object} 传值参数
- */
-export function orderList(data) {
-	return request({
-		url: 'mer/order/list',
-		method: 'get',
-		params: data,
-	});
-}
-
-/**
- * @description 发票头部统计
- * @param {Object} param data {Object} 传值参数
- */
-export function orderInvoiceChart(data) {
-	return request({
-		url: 'mer/order/invoice/chart',
-		method: 'get',
-		params: data,
-	});
-}
-
-/**
- * @description 发票头部统计
- * @param {Object} param data {Object} 传值参数
- */
-export function orderInvoiceList(data) {
-	return request({
-		url: 'mer/order/invoice/list',
-		method: 'get',
-		params: data,
-	});
-}
-
-/**
- * @description 发票提交订单
- * @param {Object} param data {Object} 传值参数
- */
-export function orderInvoiceSet(id, data) {
-	return request({
-		url: `mer/order/invoice/set/${id}`,
-		method: 'post',
-		data,
-	});
-}
-
-/**
- * @description 发票订单详情;
- * @param {Object} param data {Object} 传值参数
- */
-export function orderInvoiceInfo(id) {
-	return request({
-		url: `mer/order/invoice_order_info/${id}`,
-		method: 'get',
-	});
-}
-
-/**
- * @description 订单数据--列表
- * @param {Object} param data {Object} 传值参数
- */
-export function getOrdes(data) {
-	return request({
-		url: 'mer/order/chart',
-		method: 'get',
-		params: data,
-	});
-}
-
-/**
- * @description 订单表单编辑数据
- * @param {Number} param id {Number} 订单id
- */
-export function getOrdeDatas(id) {
-	return request({
-		url: `mer/order/edit/${id}`,
-		method: 'get',
-	});
-}
-
-/**
- * @description 订单表单详情数据
- * @param {Number} param id {Number} 订单id
- */
-export function getDataInfo(id) {
-	return request({
-		url: `mer/order/info/${id}`,
-		method: 'get',
-	});
-}
-
-/**
- * @description 订单表单详情数据-新
- * @param {Number} param id {Number} 订单id
- */
-export function getDataInfoNew(id) {
-	return request({
-		url: `mer/refund/info/${id}`,
-		method: 'get',
-	});
-}
-
-/**
- * @description 修改备注信息
- * @param {Number} param data.id {Number} 订单id
- * @param {String} param data.remark {String} 备注信息
- */
-export function putRemarkData(data) {
-	return request({
-		url: `mer/order/remark/${data.id}`,
-		method: 'put',
-		data: data.remark,
-	});
-}
-
-/**
- * @description 获取订单记录
- * @param {Number} param data.id {Number} 订单id
- * @param {String} param data.datas {String} 分页参数
- */
-export function getOrderRecord(data) {
-	return request({
-		url: `mer/order/status/${data.id}`,
-		method: 'get',
-		params: data.datas,
-	});
-}
-
-/**
- * @description 获取退款表单数据
- * @param {Number} param id {Number} 订单id
- */
-export function getRefundFrom(id) {
-	return request({
-		url: `mer/order/refund/${id}`,
-		method: 'get',
-	});
-}
-
-/**
- * @description 新版-获取退款表单数据
- * @param {Number} param id {Number} 订单id
- */
-export function getNewRefundFrom(id) {
-	return request({
-		url: `mer/refund/refund/${id}`,
-		method: 'get',
-	});
-}
-
-/**
- * @description 获取快递公司
- */
-export function getExpressData(status) {
-	return request({
-		url: `mer/order/express_list?status=` + status,
-		method: 'get',
-	});
-}
-
-/**
- * @description 获取不退款表单数据
- * @param {Number} param id {Number} 订单id
- */
-export function getnoRefund(id) {
-	return request({
-		url: `mer/order/no_refund/${id}`,
-		method: 'get',
-	});
-}
-/**
- * @description 新版-获取不退款表单数据
- * @param {Number} param id {Number} 订单id
- */
-export function getNewnoRefundFrom(id) {
-	return request({
-		url: `mer/refund/no_refund/${id}`,
-		method: 'get',
-	});
-}
-
-/**
- * @description 发送货提交表单
- * @param {Number} param data.id {Number} 订单id
- * @param {Object} param data.datas {Object} 表单信息
- */
-export function putDelivery(data) {
-	return request({
-		url: `mer/order/delivery/${data.id}`,
-		method: 'put',
-		data: data.datas,
-	});
-}
-
-export function orderSheetInfo() {
-	return request({
-		url: 'mer/order/sheet_info',
-		method: 'get',
-	});
-}
-
-/**
- * 所有配送员列表
- */
-export function deliveryList() {
-	return request({
-		url: 'mer/order/delivery/index',
-		method: 'get',
-	});
-}
-
-/**
- * 订单时获取所有配送员列表
- */
-export function orderDeliveryList() {
-	return request({
-		url: 'mer/order/delivery/list',
-		method: 'get',
-	});
-}
-
-/**
- * 列表修改账号状态
- * @param {*} data data
- */
-export function orderDeliveryStatus(data) {
-	return request({
-		url: `mer/order/delivery/set_status/${data.id}/${data.status}`,
-		method: 'get',
-	});
-}
-
-/**
- * 编辑配送员表单
- * @param {*} id id
- */
-export function orderDeliveryEdit(id) {
-	return request({
-		url: `mer/order/delivery/${id}/edit`,
-		method: 'get',
-	});
-}
-
-/**
- * 新增配送员表单
- */
-export function orderDeliveryAdd() {
-	return request({
-		url: 'mer/order/delivery/add',
-		method: 'get',
-	});
-}
-
-/**
- * 电子面单模板
- * @param {com} data 快递公司编号
- */
-export function orderExpressTemp(data) {
-	return request({
-		url: 'mer/order/express/temp',
-		method: 'get',
-		params: data,
-	});
-}
-
-/**
- * @description 子订单列表---拆单
- * @param {Object} param data {Object} 传值参数
- */
-export function splitOrderList(id) {
-	return request({
-		url: `mer/order/split_order/${id}`,
-		method: 'get',
-	});
-}
-
-/**
- * @description 获取订单可拆分商品列表
- * @param {Object} param data {Object} 传值参数
- */
-export function splitCartInfo(id) {
-	return request({
-		url: `mer/order/split_cart_info/${id}`,
-		method: 'get',
-	});
-}
-
-/**
- * @description 拆单发送货
- * @param {Number} param data.id {Number} 订单id
- * @param {Object} param data.datas {Object} 表单信息
- */
-export function splitDelivery(data) {
-	return request({
-		url: `mer/order/split_delivery/${data.id}`,
-		method: 'put',
-		data: data.datas,
-	});
-}
-
-/**
- * @description 获取退积分表单
- * @param {Number} param id {Number} 订单id
- */
-export function refundIntegral(id) {
-	return request({
-		url: `mer/order/refund_integral/${id}`,
-		method: 'get',
-	});
-}
-
-/**
- * @description 立即支付
- * @param {String} param path {String} 请求地址
- * @param {String} param method {String} 请求方式
- */
-export function payOffline(path, method) {
-	return request({
-		url: path,
-		method: method,
-	});
-}
-
-/**
- * @description 配送信息表单
- * @param {Number} param id {Number} 订单id
- */
-export function getDistribution(id) {
-	return request({
-		url: `mer/order/distribution/${id}`,
-		method: 'get',
-	});
-}
-
-/**
- * @description 订单物流信息
- * @param {Number} param id {Number} 订单id
- */
-export function getExpress(id) {
-	return request({
-		url: `mer/order/express/${id}`,
-		method: 'get',
-	});
-}
-
-/**
- * @description  订单核销
- * @param {String} param data {String} 核销内容
- */
-export function putWrite(data) {
-	return request({
-		url: 'mer/order/write',
-		method: 'post',
-		data: data,
-	});
-}
-
-/**
- * @description 订单管理 -- 导出
- */
-export function storeOrderApi(data) {
-	return request({
-		url: `mer/export/storeOrder`,
-		method: 'get',
-		params: data,
-	});
-}
-
-/**
- * @description 核销单个订单
- */
-export function writeUpdate(order_id) {
-	return request({
-		url: `mer/order/write_update/${order_id}`,
-		method: 'put',
-	});
-}
-
-/**
- * 收银订单
- */
-export function orderScanList(data) {
-	return request({
-		url: 'mer/order/scan_list',
-		method: 'get',
-		params: data,
-	});
-}
-
-/**
- * 线下收款码
- */
-export function orderOfflineScan(id) {
-	return request({
-		url: 'mer/order/offline_scan',
-		method: 'get',
-		params: id,
-	});
-}
-
-/**
- * @description 售后订单
- * @param {Object} param data {Object} 传值参数
- */
-export function orderRefundList(data) {
-	return request({
-		url: 'mer/refund/list',
-		method: 'get',
-		params: data,
-	});
-}
-
-/**
- * @description 批量发货记录
- * @param {Object} param data {Object} 传值参数
- */
-export function queueIndex(data) {
-	return request({
-		url: 'mer/queue/index',
-		method: 'get',
-		params: data,
-	});
-}
-
-/**
- * @description 批量发货-手动
- * @param {Object} param data {Object} 传值参数
- */
-export function handBatchDelivery(data) {
-	return request({
-		url: 'mer/order/hand/batch_delivery',
-		method: 'get',
-		params: data,
-	});
-}
-/**
- * @description 下载
- * @param {Object} param data {Object} 传值参数
- */
-export function batchOrderDelivery(id, type, catchType) {
-	return request({
-		url: `mer/export/batchOrderDelivery/${id}/${type}/${catchType}`,
-		method: 'get',
-	});
-}
-/**
- * @description 积分商城订单 -- 导出
- */
-export function storeIntegralOrder(data) {
-	return request({
-		url: `mer/export/storeIntegralOrder`,
-		method: 'get',
-		params: data,
-	});
-}
-
-/**
- * @description 任务列表-查看
- * @param {Object} param data {Object} 传值参数
- */
-export function deliveryLog(id, type, data) {
-	return request({
-		url: `mer/queue/delivery/log/${id}/${type}`,
-		method: 'get',
-		params: data,
-	});
-}
-
-/**
- * @description 下载物流公司对照表
- * @param {Object} param data {Object} 传值参数
- */
-export function exportExpressList(id) {
-	return request({
-		url: 'mer/export/expressList',
-		method: 'get',
-	});
-}
-
-/**
- * @description 批量发货-自动
- * @param {Object} param data {Object} 传值参数
- */
-export function otherBatchDelivery(data) {
-	return request({
-		url: 'mer/order/other/batch_delivery',
-		method: 'post',
-		data,
-	});
-}
-/**
- * @description 重新执行
- * @param {Object} param data {Object} 传值参数
- */
-export function queueAgain(id, type) {
-	return request({
-		url: `mer/queue/again/do_queue/${id}/${type}`,
-		method: 'get',
-	});
-}
-/**
- * @description 清除异常任务
- * @param {Object} param data {Object} 传值参数
- */
-export function queueDel(id, type) {
-	return request({
-		url: `mer/queue/del/wrong_queue/${id}/${type}`,
-		method: 'get',
-	});
-}
-
-/**
- * @description 停止任务
- * @param {Object} param data {Object} 传值参数
- */
-export function stopWrongQueue(id) {
-	return request({
-		url: `mer/queue/stop/wrong_queue/${id}`,
-		method: 'get',
-	});
-}
-
-/**
- * @description 修改退款订单备注信息
- * @param {Number} param data.id {Number} 订单id
- * @param {String} param data.remark {String} 备注信息
- */
-export function putRefundRemarkData(data) {
-	return request({
-		url: `mer/refund/remark/${data.id}`,
-		method: 'put',
-		data: data.remark,
-	});
-}
-
-/**
- * @description 获取商户提现申请列表
- * @param {Object} param data {Object} 传值参数
- */
-export function getExtractList(data) {
-	return request({
-		url: `/mer/finance/getExtractList`,
-		method: 'post',
-		data
-	});
-}
-/**
- * @description 商户提现申请	
- * @param {Object} data data {Object} 传值参数
- */
-export function shopExtract(data) {
-	return request({
-		url: '/mer/finance/extract',
-		method: 'post',
-		data,
-	});
-}

+ 82 - 96
src/layout/navBars/breadcrumb/index.vue

@@ -1,103 +1,89 @@
 <template>
-	<div class="layout-navbars-breadcrumb-index">
-		<Logo v-if="setIsShowLogo" />
-		<Breadcrumb />
-		<Horizontal :menuList="menuList" v-if="isLayoutTransverse" />
-		<transverseAside v-if="isLayoutClassic" />
-		<User />
-	</div>
+  <div class="layout-navbars-breadcrumb-index">
+    <Logo v-if="setIsShowLogo" />
+    <Breadcrumb />
+    <Horizontal :menuList="menuList" v-if="isLayoutTransverse" />
+    <transverseAside v-if="isLayoutClassic" />
+    <User />
+  </div>
 </template>
 
 <script>
-	import Breadcrumb from '@/layout/navBars/breadcrumb/breadcrumb.vue';
-	import User from '@/layout/navBars/breadcrumb/user.vue';
-	import Logo from '@/layout/logo/index.vue';
-	import Horizontal from '@/layout/navMenu/horizontal.vue';
-	import transverseAside from '@/layout/component/transverseAside.vue';
-	export default {
-		name: 'layoutNavBars',
-		components: {
-			Breadcrumb,
-			User,
-			Logo,
-			Horizontal,
-			transverseAside
-		},
-		data() {
-			return {
-				menuList: [],
-			};
-		},
-		computed: {
-			// 设置 logo 是否显示
-			setIsShowLogo() {
-				let {
-					isShowLogo,
-					layout
-				} = this.$store.state.themeConfig.themeConfig;
-				return (isShowLogo && layout === 'classic') || (isShowLogo && layout === 'transverse');
-			},
-			// 设置是否显示横向菜单
-			isLayoutTransverse() {
-				let {
-					layout,
-					isClassicSplitMenu
-				} = this.$store.state.themeConfig.themeConfig;
-				return layout === 'transverse' || (isClassicSplitMenu && layout === 'classic');
-			},
-			isLayoutClassic() {
-				let {
-					layout
-				} = this.$store.state.themeConfig.themeConfig;
-				return layout === 'classic';
-			},
-		},
-		mounted() {
-			this.setFilterRoutes();
-			this.bus.$on('routesListChange', () => {
-				this.setFilterRoutes();
-			});
-		},
-		beforeDestroy() {
-			this.bus.$off('routesListChange');
-		},
-		methods: {
-			// 设置路由的过滤
-			setFilterRoutes() {
-				this.menuList = this.filterRoutesFun(this.$store.state.routesList.routesList);
-			},
-			// 设置路由的过滤递归函数
-			filterRoutesFun(arr) {
-				return arr
-					.filter((item) => item.path)
-					.map((item) => {
-						item = Object.assign({}, item);
-						if (item.children) item.children = this.filterRoutesFun(item.children);
-						return item;
-					});
-			},
-		},
-		watch: {
-			// 监听 vuex 数据变化
-			'$store.state': {
-				handler(val) {
-					if (val.routesList.routesList.length === this.menuList.length) return false;
-					this.setFilterRoutes();
-				},
-				deep: true,
-			},
-		},
-	};
+import Breadcrumb from '@/layout/navBars/breadcrumb/breadcrumb.vue';
+import User from '@/layout/navBars/breadcrumb/user.vue';
+import Logo from '@/layout/logo/index.vue';
+import Horizontal from '@/layout/navMenu/horizontal.vue';
+import transverseAside from '@/layout/component/transverseAside.vue';
+export default {
+  name: 'layoutNavBars',
+  components: { Breadcrumb, User, Logo, Horizontal, transverseAside },
+  data() {
+    return {
+      menuList: [],
+    };
+  },
+  computed: {
+    // 设置 logo 是否显示
+    setIsShowLogo() {
+      let { isShowLogo, layout } = this.$store.state.themeConfig.themeConfig;
+      return (isShowLogo && layout === 'classic') || (isShowLogo && layout === 'transverse');
+    },
+    // 设置是否显示横向菜单
+    isLayoutTransverse() {
+      let { layout, isClassicSplitMenu } = this.$store.state.themeConfig.themeConfig;
+      return layout === 'transverse' || (isClassicSplitMenu && layout === 'classic');
+    },
+    isLayoutClassic() {
+      let { layout } = this.$store.state.themeConfig.themeConfig;
+      return layout === 'classic';
+    },
+  },
+  mounted() {
+    this.setFilterRoutes();
+    this.bus.$on('routesListChange', () => {
+      this.setFilterRoutes();
+    });
+  },
+  beforeDestroy() {
+    this.bus.$off('routesListChange');
+  },
+  methods: {
+    // 设置路由的过滤
+    setFilterRoutes() {
+      this.menuList = this.filterRoutesFun(this.$store.state.routesList.routesList);
+    },
+    // 设置路由的过滤递归函数
+    filterRoutesFun(arr) {
+      return arr
+        .filter((item) => item.path)
+        .map((item) => {
+          item = Object.assign({}, item);
+          if (item.children) item.children = this.filterRoutesFun(item.children);
+          return item;
+        });
+    },
+  },
+  watch: {
+    // 监听 vuex 数据变化
+    '$store.state': {
+      handler(val) {
+        if (val.routesList.routesList.length === this.menuList.length) return false;
+        this.setFilterRoutes();
+      },
+      deep: true,
+    },
+  },
+};
 </script>
 
 <style scoped lang="scss">
-	.layout-navbars-breadcrumb-index {
-		height: 50px;
-		display: flex;
-		align-items: center;
-		// padding-right: 15px;
-		overflow: hidden;
-		background: var(--prev-bg-topBar);
-		border-bottom: 1px solid var(--prev-border-color-lighter);
-	}
-</style>
+.layout-navbars-breadcrumb-index {
+  height: 50px;
+  display: flex;
+  align-items: center;
+  // padding-right: 15px;
+  overflow: hidden;
+  background: var(--prev-bg-topBar);
+  border-bottom: 1px solid var(--prev-border-color-lighter);
+}
+</style>

+ 8 - 4
src/layout/navBars/breadcrumb/user.vue

@@ -225,7 +225,7 @@
 													instance.confirmButtonLoading = false;
 												}, 1500);
 											});
-										} else if (type == 'shanghu') {
+										} else {
 											ShopLogout().then((res) => {
 												// done();
 												this.$Message.success('您已成功退出');
@@ -235,10 +235,14 @@
 												removeCookies('token');
 												removeCookies('expires_time');
 												removeCookies('uuid');
+												console.log(
+													`${settings.routePre}/shop/login`,
+													'khd'
+												);
 												setTimeout(() => {
-													this.$router.replace({
-														name: 'shoplogin'
-													});
+													this.$router.replace(
+														`${settings.routePre}/shop/login`
+													);
 													instance.confirmButtonLoading = false;
 													done();
 												}, 1500);

+ 28 - 34
src/layout/navBars/index.vue

@@ -1,41 +1,35 @@
 <template>
-	<div class="layout-navbars-container">
-		<BreadcrumbIndex />
-		<TagsView v-if="setShowTagsView" />
-	</div>
+  <div class="layout-navbars-container">
+    <BreadcrumbIndex />
+    <TagsView v-if="setShowTagsView" />
+  </div>
 </template>
 
 <script>
-	import BreadcrumbIndex from '@/layout/navBars/breadcrumb/index.vue';
-	import TagsView from '@/layout/navBars/tagsView/tagsView.vue';
-	export default {
-		name: 'layoutNavBars',
-		components: {
-			BreadcrumbIndex,
-			TagsView
-		},
-		data() {
-			return {};
-		},
-		computed: {
-			// 设置是否显示 tagsView
-			setShowTagsView() {
-				let {
-					layout,
-					isTagsview
-				} = this.$store.state.themeConfig.themeConfig;
-				return layout !== 'classic' && isTagsview;
-			},
-		},
-	};
+import BreadcrumbIndex from '@/layout/navBars/breadcrumb/index.vue';
+import TagsView from '@/layout/navBars/tagsView/tagsView.vue';
+export default {
+  name: 'layoutNavBars',
+  components: { BreadcrumbIndex, TagsView },
+  data() {
+    return {};
+  },
+  computed: {
+    // 设置是否显示 tagsView
+    setShowTagsView() {
+      let { layout, isTagsview } = this.$store.state.themeConfig.themeConfig;
+      return layout !== 'classic' && isTagsview;
+    },
+  },
+};
 </script>
 
 <style scoped lang="scss">
-	.layout-navbars-container {
-		display: flex;
-		flex-direction: column;
-		width: 100%;
-		height: 100%;
-		box-shadow: 0 1px 4px rgba(0, 21, 41, 0.08);
-	}
-</style>
+.layout-navbars-container {
+  display: flex;
+  flex-direction: column;
+  width: 100%;
+  height: 100%;
+  box-shadow: 0 1px 4px rgba(0, 21, 41, 0.08);
+}
+</style>

+ 1 - 7
src/libs/request.js

@@ -13,7 +13,6 @@ import { Message } from 'iview';
 import { getCookies, removeCookies } from '@/libs/util';
 import Setting from '@/setting';
 import router from '@/router';
-import store from '@/store';
 const service = axios.create({
   baseURL: Setting.apiBaseURL,
   timeout: 10000, // 请求超时时间
@@ -67,15 +66,10 @@ service.interceptors.response.use(
       case 110003:
       case 110004:
         localStorage.clear();
-		let type = store.state.userInfo.type;
         removeCookies('token');
         removeCookies('expires_time');
         removeCookies('uuid');
-		if (type == 'admin') {
-			router.replace({ name: 'login' });
-		} else if (type == 'shanghu') {
-			router.replace({ name: 'shoplogin' });
-		}
+        router.replace({ name: 'login' });
         break;
       case 110005:
       case 110006:

+ 0 - 494
src/pages/finance/shopExtract/index.vue

@@ -1,494 +0,0 @@
-<template>
-	<div>
-		<Card :bordered="false" dis-hover class="ivu-mb-16">
-			<Form ref="formValidate" :model="formValidate" :label-width="labelWidth" :label-position="labelPosition"
-				class="tabform" @submit.native.prevent>
-				<Row :gutter="24" type="flex">
-					<Col span="24">
-					<FormItem label="时间选择:">
-						<RadioGroup v-model="formValidate.data" type="button"
-							@on-change="selectChange(formValidate.data)" class="mr">
-							<Radio :label="item.val" v-for="(item, i) in fromList.fromTxt" :key="i">{{ item.text }}
-							</Radio>
-						</RadioGroup>
-						<DatePicker :editable="false" @on-change="onchangeTime" :value="timeVal" format="yyyy/MM/dd"
-							type="daterange" placement="bottom-end" placeholder="请选择时间" style="width: 200px">
-						</DatePicker>
-					</FormItem>
-					</Col>
-					<Col span="24">
-					<FormItem label="提现状态:">
-						<RadioGroup type="button" v-model="formValidate.status" class="mr15" @on-change="selChange">
-							<Radio :label="itemn.value" v-for="(itemn, indexn) in treeData.withdrawal" :key="indexn">{{
-                  itemn.title
-                }}</Radio>
-						</RadioGroup>
-					</FormItem>
-					</Col>
-					<Col span="24">
-					<FormItem label="提现方式:">
-						<RadioGroup type="button" v-model="formValidate.extract_type" class="mr15"
-							@on-change="selChange">
-							<Radio :label="itemn.value" v-for="(itemn, indexn) in treeData.payment" :key="indexn">{{
-                  itemn.title
-                }}</Radio>
-						</RadioGroup>
-					</FormItem>
-					</Col>
-					<Col span="24">
-					<FormItem label="搜索:">
-						<div class="acea-row row-middle">
-							<Input search enter-button @on-search="selChange" placeholder="微信昵称/姓名/支付宝账号/银行卡号"
-								element-id="name" v-model="formValidate.nireid" style="width: 30%" />
-							<router-link :to="$routeProStr + '/finance/finance/commission'"
-								class="ml20">佣金记录</router-link>
-						</div>
-					</FormItem>
-					</Col>
-				</Row>
-			</Form>
-		</Card>
-		<cards-data :cardLists="cardLists" v-if="extractStatistics"></cards-data>
-		<Card :bordered="false" dis-hover>
-			<Table ref="table" :columns="columns" :data="tabList" class="ivu-mt" :loading="loading" no-data-text="暂无数据"
-				no-filtered-data-text="暂无筛选结果">
-				<template slot-scope="{ row }" slot="nickname">
-					<div>
-						用户昵称: {{ row.nickname }} <br />
-						用户id:{{ row.uid }}
-					</div>
-				</template>
-				<template slot-scope="{ row }" slot="extract_price">
-					<div>{{ row.extract_price }}</div>
-				</template>
-				<template slot-scope="{ row, index }" slot="add_time">
-					<span> {{ row.add_time | formatDate }}</span>
-				</template>
-				<template slot-scope="{ row }" slot="extract_type">
-					<div class="type" v-if="row.extract_type === 'bank'">
-						<div class="item">姓名:{{ row.real_name }}</div>
-						<div class="item">银行卡号:{{ row.bank_code }}</div>
-						<div class="item">银行开户地址:{{ row.bank_address }}</div>
-					</div>
-					<div class="type" v-if="row.extract_type === 'weixin'">
-						<div class="item">昵称:{{ row.nickname }}</div>
-						<div class="item">微信号:{{ row.wechat }}</div>
-					</div>
-					<div class="type" v-if="row.extract_type === 'alipay'">
-						<div class="item">姓名:{{ row.real_name }}</div>
-						<div class="item">支付宝号:{{ row.alipay_code }}</div>
-					</div>
-					<div class="type" v-if="row.extract_type === 'balance'">
-						<div class="item">姓名:{{ row.real_name }}</div>
-						<div class="item">提现方式:佣金转入余额</div>
-					</div>
-				</template>
-				<template slot-scope="{ row, index }" slot="qrcode_url">
-					<div class="tabBox_img" v-viewer
-						v-if="row.extract_type === 'weixin' || row.extract_type === 'alipay'">
-						<img v-lazy="row.qrcode_url" />
-					</div>
-				</template>
-				<template slot-scope="{ row, index }" slot="status">
-					<div class="status" v-if="row.status === 0">
-						<div class="statusVal">申请中</div>
-						<div>
-							<Button type="error" icon="md-close" size="small" class="item"
-								@click="invalid(row)">驳回</Button>
-							<Button type="info" icon="md-checkmark" size="small" class="item"
-								@click="adopt(row, '审核通过', index)">通过</Button>
-						</div>
-					</div>
-					<div class="statusVal" v-if="row.status === 1">提现通过</div>
-					<div class="statusVal" v-if="row.status === -1">提现未通过<br />未通过原因:{{ row.fail_msg }}</div>
-				</template>
-				<template slot-scope="{ row }" slot="createModalFrame">
-					<a href="javascript:void(0);" @click="edit(row)">编辑</a>
-				</template>
-			</Table>
-			<div class="acea-row row-right page">
-				<Page :total="total" :current="formValidate.page" show-elevator show-total @on-change="pageChange"
-					:page-size="formValidate.limit" />
-			</div>
-		</Card>
-
-		<!-- 编辑表单-->
-		<edit-from ref="edits" :FromData="FromData" @submitFail="submitFail"></edit-from>
-		<!-- 拒绝通过-->
-		<Modal v-model="modals" scrollable closable title="未通过原因" :mask-closable="false">
-			<Input v-model="fail_msg.fail_msg" type="textarea" :rows="4" placeholder="请输入未通过原因" />
-			<div slot="footer">
-				<Button type="primary" size="large" long :loading="modal_loading" @click="oks">确定</Button>
-			</div>
-		</Modal>
-	</div>
-</template>
-<script>
-	import cardsData from '@/components/cards/cards';
-	import searchFrom from '@/components/publicSearchFrom';
-	import {
-		mapState
-	} from 'vuex';
-	import {
-		shopCashListApi,
-		shopCashEditApi,
-		shopRefuseApi
-	} from '@/api/finance';
-	import {
-		formatDate
-	} from '@/utils/validate';
-	import editFrom from '@/components/from/from';
-	export default {
-		name: 'cashApply',
-		components: {
-			cardsData,
-			searchFrom,
-			editFrom
-		},
-		filters: {
-			formatDate(time) {
-				if (time !== 0) {
-					let date = new Date(time * 1000);
-					return formatDate(date, 'yyyy-MM-dd hh:mm');
-				}
-			},
-		},
-		data() {
-			return {
-				images: ['1.jpg', '2.jpg'],
-				modal_loading: false,
-				fail_msg: {
-					fail_msg: '输入信息不完整或有误!',
-				},
-				modals: false,
-				total: 0,
-				cardLists: [],
-				loading: false,
-				columns: [{
-						title: 'ID',
-						key: 'id',
-						width: 80,
-					},
-					{
-						title: '用户信息',
-						slot: 'nickname',
-						minWidth: 180,
-					},
-					{
-						title: '提现金额',
-						slot: 'extract_price',
-						minWidth: 90,
-					},
-					{
-						title: '提现方式',
-						slot: 'extract_type',
-						minWidth: 150,
-					},
-					{
-						title: '收款码',
-						slot: 'qrcode_url',
-						minWidth: 150,
-					},
-					{
-						title: '添加时间',
-						slot: 'add_time',
-						minWidth: 100,
-					},
-					{
-						title: '备注',
-						key: 'mark',
-						minWidth: 100,
-					},
-					{
-						title: '审核状态',
-						slot: 'status',
-						minWidth: 180,
-					},
-					{
-						title: '操作',
-						slot: 'createModalFrame',
-						fixed: 'right',
-						width: 100,
-					},
-				],
-				tabList: [],
-				fromList: {
-					title: '选择时间',
-					custom: true,
-					fromTxt: [{
-							text: '全部',
-							val: ''
-						},
-						{
-							text: '今天',
-							val: 'today'
-						},
-						{
-							text: '昨天',
-							val: 'yesterday'
-						},
-						{
-							text: '本周',
-							val: 'week'
-						},
-						{
-							text: '本月',
-							val: 'month'
-						},
-						{
-							text: '本季度',
-							val: 'quarter'
-						},
-						{
-							text: '本年',
-							val: 'year'
-						},
-					],
-				},
-				treeData: {
-					withdrawal: [{
-							title: '全部',
-							value: '',
-						},
-						{
-							title: '未通过',
-							value: -1,
-						},
-						{
-							title: '申请中',
-							value: 0,
-						},
-						{
-							title: '已通过',
-							value: 1,
-						},
-					],
-					payment: [{
-							title: '全部',
-							value: '',
-						},
-						{
-							title: '微信',
-							value: 'wx',
-						},
-						{
-							title: '支付宝',
-							value: 'alipay',
-						},
-						{
-							title: '银行卡',
-							value: 'bank',
-						},
-					],
-				},
-				formValidate: {
-					status: '',
-					extract_type: '',
-					nireid: '',
-					data: '',
-					page: 1,
-					limit: 20,
-				},
-				extractStatistics: {},
-				timeVal: [],
-				FromData: null,
-				extractId: 0,
-			};
-		},
-		watch: {
-			$route() {
-				if (this.$route.fullPath === this.$routeProStr + '/finance/shop_extract/index?status=0') {
-					this.getPath();
-				}
-			},
-		},
-		computed: {
-			...mapState('media', ['isMobile']),
-			labelWidth() {
-				return this.isMobile ? undefined : 80;
-			},
-			labelPosition() {
-				return this.isMobile ? 'top' : 'left';
-			},
-		},
-		mounted() {
-			if (this.$route.fullPath === this.$routeProStr + '/finance/shop_extract/index?status=0') {
-				this.getPath();
-			} else {
-				this.getList();
-			}
-		},
-		methods: {
-			getPath() {
-				this.formValidate.page = 1;
-				this.formValidate.status = parseInt(this.$route.query.status);
-				this.getList();
-			},
-			// 无效
-			invalid(row) {
-				this.extractId = row.id;
-				this.modals = true;
-			},
-			// 确定
-			oks() {
-				this.modal_loading = true;
-				shopRefuseApi(this.extractId, this.fail_msg)
-					.then(async (res) => {
-						this.$Message.success(res.msg);
-						this.modal_loading = false;
-						this.modals = false;
-						this.getList();
-					})
-					.catch((res) => {
-						this.$Message.error(res.msg);
-					});
-			},
-			// 通过
-			adopt(row, tit, num) {
-				let delfromData = {
-					title: tit,
-					num: num,
-					url: `merchant/extract/adopt/${row.id}`,
-					method: 'get',
-					ids: '',
-				};
-				this.$modalSure(delfromData)
-					.then((res) => {
-						this.$Message.success(res.msg);
-						this.getList();
-					})
-					.catch((res) => {
-						this.$Message.error(res.msg);
-					});
-			},
-			// 具体日期
-			onchangeTime(e) {
-				this.timeVal = e;
-				this.formValidate.data = this.timeVal.join('-');
-				this.formValidate.page = 1;
-				this.getList();
-			},
-			// 选择时间
-			selectChange(tab) {
-				this.formValidate.page = 1;
-				this.formValidate.data = tab;
-				this.timeVal = [];
-				this.getList();
-			},
-			// 选择
-			selChange() {
-				this.formValidate.page = 1;
-				this.getList();
-			},
-			// 列表
-			getList() {
-				this.loading = true;
-				shopCashListApi(this.formValidate)
-					.then(async (res) => {
-						let data = res.data;
-						this.tabList = data.merchantIntention;
-						this.total = data.count;
-						this.extractStatistics = data.extract_statistics;
-						this.cardLists = [{
-								col: 6,
-								count: this.extractStatistics.price,
-								name: '待提现金额',
-								className: 'md-basket'
-							},
-							{
-								col: 6,
-								count: this.extractStatistics.brokerage_count,
-								name: '佣金总金额',
-								className: 'md-pricetags'
-							},
-							{
-								col: 6,
-								count: this.extractStatistics.priced,
-								name: '已提现金额',
-								className: 'md-cash'
-							},
-							{
-								col: 6,
-								count: this.extractStatistics.brokerage_not,
-								name: '未提现金额',
-								className: 'ios-cash'
-							},
-						];
-						this.loading = false;
-					})
-					.catch((res) => {
-						this.loading = false;
-						this.$Message.error(res.msg);
-					});
-			},
-			pageChange(index) {
-				this.formValidate.page = index;
-				this.getList();
-			},
-			// 编辑
-			edit(row) {
-				shopCashEditApi(row.id)
-					.then(async (res) => {
-						if (res.data.status === false) {
-							return this.$authLapse(res.data);
-						}
-						this.FromData = res.data;
-						this.$refs.edits.modals = true;
-					})
-					.catch((res) => {
-						this.$Message.error(res.msg);
-					});
-			},
-			// 编辑提交成功
-			submitFail() {
-				this.getList();
-			},
-		},
-	};
-</script>
-<style scoped lang="stylus">
-	.ivu-mt .type .item {
-		margin: 3px 0;
-	}
-
-	.tabform {
-		margin-bottom: 10px
-	}
-
-	.Refresh {
-		font-size: 12px;
-		color: #1890FF;
-		cursor: pointer;
-	}
-
-	.ivu-form-item {
-		margin-bottom: 10px
-	}
-
-	.status>>>.item~.item {
-		margin-left: 6px
-	}
-
-	.status>>>.statusVal {
-		margin-bottom: 7px;
-	}
-
-	/*.ivu-mt >>> .ivu-table-header*/
-	/*    border-top:1px dashed #ddd!important*/
-	.type {
-		padding: 3px 0;
-		box-sizing: border-box;
-	}
-
-	.tabBox_img {
-		width: 36px;
-		height: 36px;
-		border-radius: 4px;
-		cursor: pointer;
-	}
-
-	img {
-		width: 100%;
-		height: 100%;
-	}
-</style>

+ 48 - 48
src/pages/order/orderList/components/tableExpand.vue

@@ -1,54 +1,54 @@
 <template>
-	<div class="expand">
-		<Row class="expand-row">
-			<Col span="6">
-			<span class="expand-key">商品总价:</span>
-			<span class="expand-value" v-text="row.total_price"></span>
-			</Col>
-			<Col span="6">
-			<span class="expand-key">下单时间:</span>
-			<span class="expand-value" v-text="row.add_time"></span>
-			</Col>
-			<Col span="6">
-			<span class="expand-key">推广人:</span>
-			<span class="expand-value" v-text="row.spread_nickname ? row.spread_nickname : '无'"></span>
-			</Col>
-			<Col span="6">
-			<span class="expand-key">事业部:</span>
-			<span class="expand-value" v-text="row.division_name ? row.division_name : '无'"></span>
-			</Col>
-		</Row>
-		<Row>
-			<Col span="6">
-			<span class="expand-key">用户备注:</span>
-			<span class="expand-value" v-text="row.mark ? row.mark : '无'"></span>
-			</Col>
-			<Col span="6">
-			<span class="expand-key">商家备注:</span>
-			<span class="expand-value" v-text="row.remark ? row.remark : '无'"></span>
-			</Col>
-			<Col span="6">
-			<span class="expand-key">核销码:</span>
-			<span class="expand-value" v-text="row.verify_code ? row.verify_code : '无'"></span>
-			</Col>
-		</Row>
-	</div>
+  <div class="expand">
+    <Row class="expand-row">
+      <Col span="6">
+        <span class="expand-key">商品总价:</span>
+        <span class="expand-value" v-text="row.total_price"></span>
+      </Col>
+      <Col span="6">
+        <span class="expand-key">下单时间:</span>
+        <span class="expand-value" v-text="row.add_time"></span>
+      </Col>
+      <Col span="6">
+        <span class="expand-key">推广人:</span>
+        <span class="expand-value" v-text="row.spread_nickname ? row.spread_nickname : '无'"></span>
+      </Col>
+      <Col span="6">
+        <span class="expand-key">事业部:</span>
+        <span class="expand-value" v-text="row.division_name ? row.division_name : '无'"></span>
+      </Col>
+    </Row>
+    <Row>
+      <Col span="6">
+        <span class="expand-key">用户备注:</span>
+        <span class="expand-value" v-text="row.mark ? row.mark : '无'"></span>
+      </Col>
+      <Col span="6">
+        <span class="expand-key">商家备注:</span>
+        <span class="expand-value" v-text="row.remark ? row.remark : '无'"></span>
+      </Col>
+      <Col span="6">
+        <span class="expand-key">核销码:</span>
+        <span class="expand-value" v-text="row.verify_code ? row.verify_code : '无'"></span>
+      </Col>
+    </Row>
+  </div>
 </template>
+
 <script>
-	export default {
-		name: 'table-expand',
-		props: {
-			row: Object,
-		},
-	};
+export default {
+  name: 'table-expand',
+  props: {
+    row: Object,
+  },
+};
 </script>
 
 <style scoped>
-	.expand {
-		padding-left: 50px;
-	}
-
-	.expand-row {
-		margin-bottom: 16px;
-	}
-</style>
+.expand {
+  padding-left: 50px;
+}
+.expand-row {
+  margin-bottom: 16px;
+}
+</style>

+ 487 - 512
src/pages/order/orderList/components/tableFrom.vue

@@ -1,523 +1,498 @@
 <template>
-	<div class="table_box">
-		<Form ref="orderData" :model="orderData" :label-width="80" label-position="right" class="tabform"
-			@submit.native.prevent>
-			<Row :gutter="24" type="flex" justify="end">
-				<Col span="24" class="ivu-text-left">
-				<FormItem label="订单状态:">
-					<RadioGroup v-model="orderData.status" type="button" @on-change="selectChange2(orderData.status)">
-						<Radio label="">全部</Radio>
-						<Radio label="0">未支付</Radio>
-						<Radio label="1">未发货</Radio>
-						<Radio label="2">待收货</Radio>
-						<Radio label="3">待评价</Radio>
-						<Radio label="4">交易完成</Radio>
-						<Radio label="5">待核销</Radio>
-						<Radio label="6">已核销</Radio>
-						<!--                                <Radio label="-1">退款中 {{  '(' +orderChartType.refunding?orderChartType.refunding:0+ ')' }}</Radio>-->
-						<!--                                <Radio label="-2">已退款 {{  '(' +orderChartType.refund?orderChartType.refund:0+ ')' }}</Radio>-->
-						<Radio label="-2">已退款</Radio>
-						<Radio label="-4">已删除</Radio>
-					</RadioGroup>
-				</FormItem>
-				</Col>
-				<Col span="24" class="ivu-text-left">
-				<FormItem label="支付方式:">
-					<RadioGroup v-model="orderData.pay_type" type="button" @on-change="userSearchs">
-						<Radio v-for="item in payList" :label="item.val" :key="item.id">{{ item.label }}</Radio>
-					</RadioGroup>
-				</FormItem>
-				</Col>
-				<Col span="8" class="ivu-text-left">
-				<FormItem label="创建时间:">
-					<DatePicker :editable="false" @on-change="onchangeTime" :value="timeVal"
-						format="yyyy/MM/dd HH:mm:ss" type="datetimerange" placement="bottom-start" placeholder="请选择创建时间"
-						style="width: 300px" class="mr20" :options="options"></DatePicker>
-				</FormItem>
-				</Col>
-				<Col span="16">
-				<Col span="12" class="mr">
-				<FormItem label="搜索:" prop="real_name" label-for="real_name">
-					<Input v-model="orderData.real_name" search enter-button placeholder="请输入" element-id="name"
-						@on-search="orderSearch(orderData.real_name)">
-					<Select v-model="orderData.field_key" slot="prepend" style="width: 80px">
-						<Option value="all">全部</Option>
-						<Option value="order_id">订单号</Option>
-						<Option value="uid">UID</Option>
-						<Option value="real_name">用户姓名</Option>
-						<Option value="user_phone">用户电话</Option>
-						<Option value="title">商品名称(模糊)</Option>
-					</Select>
-					</Input>
-				</FormItem>
-				</Col>
-				<!--<Col v-bind="grid">-->
-				<!--<Button class="mr">导出</Button>-->
-				<!--<span class="Refresh" @click="Refresh">刷新</span><Icon type="ios-refresh" />-->
-				<!--</Col>-->
-				</Col>
-				<Col span="24">
-				<div class="ml20">
-					<Button v-auth="['order-dels']" class="mr10" type="primary" @click="delAll">批量删除订单</Button>
-					<Button v-auth="['order-write']" type="success" class="mr10 greens" size="default"
-						@click="writeOff">
-						<Icon type="md-list"></Icon>
-						订单核销
-					</Button>
-					<Button v-auth="['export-storeOrder']" class="export" icon="ios-share-outline"
-						@click="exportList">导出</Button>
-				</div>
-				</Col>
-			</Row>
-		</Form>
-		<!--订单核销模态框-->
-		<Modal v-model="modals2" title="订单核销" class="paymentFooter" :closable="false" width="400"
-			@on-visible-change="changeModal">
-			<Form ref="writeOffFrom" :model="writeOffFrom" :rules="writeOffRules" label-position="right" class="tabform"
-				@submit.native.prevent>
-				<FormItem prop="code" label-for="code">
-					<Input style="width: 100%" type="text" placeholder="请输入12位核销码" v-model.number="writeOffFrom.code" />
-				</FormItem>
-			</Form>
-			<div slot="footer">
-				<Button type="primary" @click="ok('writeOffFrom')">立即核销</Button>
-				<Button @click="del('writeOffFrom')">取消</Button>
-			</div>
-		</Modal>
-	</div>
+  <div class="table_box">
+    <Form
+      ref="orderData"
+      :model="orderData"
+      :label-width="80"
+      label-position="right"
+      class="tabform"
+      @submit.native.prevent
+    >
+      <Row :gutter="24" type="flex" justify="end">
+        <Col span="24" class="ivu-text-left">
+          <FormItem label="订单状态:">
+            <RadioGroup v-model="orderData.status" type="button" @on-change="selectChange2(orderData.status)">
+              <Radio label="">全部</Radio>
+              <Radio label="0">未支付</Radio>
+              <Radio label="1">未发货</Radio>
+              <Radio label="2">待收货</Radio>
+              <Radio label="3">待评价</Radio>
+              <Radio label="4">交易完成</Radio>
+              <Radio label="5">待核销</Radio>
+              <Radio label="6">已核销</Radio>
+              <!--                                <Radio label="-1">退款中 {{  '(' +orderChartType.refunding?orderChartType.refunding:0+ ')' }}</Radio>-->
+              <!--                                <Radio label="-2">已退款 {{  '(' +orderChartType.refund?orderChartType.refund:0+ ')' }}</Radio>-->
+              <Radio label="-2">已退款</Radio>
+              <Radio label="-4">已删除</Radio>
+            </RadioGroup>
+          </FormItem>
+        </Col>
+        <Col span="24" class="ivu-text-left">
+          <FormItem label="支付方式:">
+            <RadioGroup v-model="orderData.pay_type" type="button" @on-change="userSearchs">
+              <Radio v-for="item in payList" :label="item.val" :key="item.id">{{ item.label }}</Radio>
+            </RadioGroup>
+          </FormItem>
+        </Col>
+        <Col span="8" class="ivu-text-left">
+          <FormItem label="创建时间:">
+            <DatePicker
+              :editable="false"
+              @on-change="onchangeTime"
+              :value="timeVal"
+              format="yyyy/MM/dd HH:mm:ss"
+              type="datetimerange"
+              placement="bottom-start"
+              placeholder="请选择创建时间"
+              style="width: 300px"
+              class="mr20"
+              :options="options"
+            ></DatePicker>
+          </FormItem>
+        </Col>
+        <Col span="16">
+          <Col span="12" class="mr">
+            <FormItem label="搜索:" prop="real_name" label-for="real_name">
+              <Input
+                v-model="orderData.real_name"
+                search
+                enter-button
+                placeholder="请输入"
+                element-id="name"
+                @on-search="orderSearch(orderData.real_name)"
+              >
+                <Select v-model="orderData.field_key" slot="prepend" style="width: 80px">
+                  <Option value="all">全部</Option>
+                  <Option value="order_id">订单号</Option>
+                  <Option value="uid">UID</Option>
+                  <Option value="real_name">用户姓名</Option>
+                  <Option value="user_phone">用户电话</Option>
+                  <Option value="title">商品名称(模糊)</Option>
+                </Select>
+              </Input>
+            </FormItem>
+          </Col>
+          <!--<Col v-bind="grid">-->
+          <!--<Button class="mr">导出</Button>-->
+          <!--<span class="Refresh" @click="Refresh">刷新</span><Icon type="ios-refresh" />-->
+          <!--</Col>-->
+        </Col>
+        <Col span="24">
+          <div class="ml20">
+            <Button v-auth="['order-dels']" class="mr10" type="primary" @click="delAll">批量删除订单</Button>
+            <Button v-auth="['order-write']" type="success" class="mr10 greens" size="default" @click="writeOff">
+              <Icon type="md-list"></Icon>
+              订单核销
+            </Button>
+            <Button v-auth="['export-storeOrder']" class="export" icon="ios-share-outline" @click="exportList"
+              >导出</Button
+            >
+          </div>
+        </Col>
+      </Row>
+    </Form>
+    <!--订单核销模态框-->
+    <Modal
+      v-model="modals2"
+      title="订单核销"
+      class="paymentFooter"
+      :closable="false"
+      width="400"
+      @on-visible-change="changeModal"
+    >
+      <Form
+        ref="writeOffFrom"
+        :model="writeOffFrom"
+        :rules="writeOffRules"
+        label-position="right"
+        class="tabform"
+        @submit.native.prevent
+      >
+        <FormItem prop="code" label-for="code">
+          <Input style="width: 100%" type="text" placeholder="请输入12位核销码" v-model.number="writeOffFrom.code" />
+        </FormItem>
+      </Form>
+      <div slot="footer">
+        <Button type="primary" @click="ok('writeOffFrom')">立即核销</Button>
+        <Button @click="del('writeOffFrom')">取消</Button>
+      </div>
+    </Modal>
+  </div>
 </template>
+
 <script>
-	import {
-		mapState,
-		mapMutations
-	} from 'vuex';
-	import {
-		putWrite,
-		storeOrderApi
-	} from '@/api/order';
-	import {
-		exportOrderList
-	} from '@/api/export';
-	export default {
-		name: 'table_from',
-		data() {
-			const codeNum = (rule, value, callback) => {
-				if (!value) {
-					return callback(new Error('请填写核销码'));
-				}
-				// 模拟异步验证效果
-				if (!Number.isInteger(value)) {
-					callback(new Error('请填写12位数字'));
-				} else {
-					const reg = /\b\d{12}\b/;
-					if (!reg.test(value)) {
-						callback(new Error('请填写12位数字'));
-					} else {
-						callback();
-					}
-				}
-			};
-			return {
-				fromList: {
-					title: '选择时间',
-					custom: true,
-					fromTxt: [{
-							text: '全部',
-							val: ''
-						},
-						{
-							text: '今天',
-							val: 'today'
-						},
-						{
-							text: '昨天',
-							val: 'yesterday'
-						},
-						{
-							text: '最近7天',
-							val: 'lately7'
-						},
-						{
-							text: '最近30天',
-							val: 'lately30'
-						},
-						{
-							text: '本月',
-							val: 'month'
-						},
-						{
-							text: '本年',
-							val: 'year'
-						},
-					],
-				},
-				currentTab: '',
-				grid: {
-					xl: 8,
-					lg: 8,
-					md: 8,
-					sm: 24,
-					xs: 24,
-				},
-				// 搜索条件
-				orderData: {
-					status: '',
-					data: '',
-					real_name: '',
-					field_key: 'all',
-					pay_type: '',
-					type: '',
-				},
-				modalTitleSs: '',
-				statusType: '',
-				time: '',
-				value2: [],
-				writeOffRules: {
-					code: [{
-						validator: codeNum,
-						trigger: 'blur',
-						required: true
-					}],
-				},
-				writeOffFrom: {
-					code: '',
-					confirm: 0,
-				},
-				modals2: false,
-				timeVal: [],
-				options: {
-					shortcuts: [{
-							text: '今天',
-							value() {
-								const end = new Date();
-								const start = new Date();
-								start.setTime(new Date(new Date().getFullYear(), new Date().getMonth(), new Date()
-									.getDate()));
-								return [start, end];
-							},
-						},
-						{
-							text: '昨天',
-							value() {
-								const end = new Date();
-								const start = new Date();
-								start.setTime(
-									start.setTime(new Date(new Date().getFullYear(), new Date().getMonth(),
-										new Date().getDate() - 1)),
-								);
-								end.setTime(
-									end.setTime(new Date(new Date().getFullYear(), new Date().getMonth(),
-									new Date().getDate()) - 1),
-								);
-								return [start, end];
-							},
-						},
-						{
-							text: '最近7天',
-							value() {
-								const end = new Date();
-								const start = new Date();
-								start.setTime(
-									start.setTime(new Date(new Date().getFullYear(), new Date().getMonth(),
-										new Date().getDate() - 6)),
-								);
-								return [start, end];
-							},
-						},
-						{
-							text: '最近30天',
-							value() {
-								const end = new Date();
-								const start = new Date();
-								start.setTime(
-									start.setTime(new Date(new Date().getFullYear(), new Date().getMonth(),
-										new Date().getDate() - 29)),
-								);
-								return [start, end];
-							},
-						},
-						{
-							text: '本月',
-							value() {
-								const end = new Date();
-								const start = new Date();
-								start.setTime(start.setTime(new Date(new Date().getFullYear(), new Date().getMonth(),
-									1)));
-								return [start, end];
-							},
-						},
-						{
-							text: '本年',
-							value() {
-								const end = new Date();
-								const start = new Date();
-								start.setTime(start.setTime(new Date(new Date().getFullYear(), 0, 1)));
-								return [start, end];
-							},
-						},
-					],
-				},
-				payList: [{
-						label: '全部',
-						val: ''
-					},
-					{
-						label: '微信支付',
-						val: '1'
-					},
-					{
-						label: '支付宝支付',
-						val: '4'
-					},
-					{
-						label: '余额支付',
-						val: '2'
-					},
-					{
-						label: '线下支付',
-						val: '3'
-					},
-				],
-			};
-		},
-		computed: {
-			...mapState('order', ['orderChartType', 'isDels', 'delIdList', 'orderType']),
+import { mapState, mapMutations } from 'vuex';
+import { putWrite, storeOrderApi } from '@/api/order';
+import { exportOrderList } from '@/api/export';
+export default {
+  name: 'table_from',
+  data() {
+    const codeNum = (rule, value, callback) => {
+      if (!value) {
+        return callback(new Error('请填写核销码'));
+      }
+      // 模拟异步验证效果
+      if (!Number.isInteger(value)) {
+        callback(new Error('请填写12位数字'));
+      } else {
+        const reg = /\b\d{12}\b/;
+        if (!reg.test(value)) {
+          callback(new Error('请填写12位数字'));
+        } else {
+          callback();
+        }
+      }
+    };
+    return {
+      fromList: {
+        title: '选择时间',
+        custom: true,
+        fromTxt: [
+          { text: '全部', val: '' },
+          { text: '今天', val: 'today' },
+          { text: '昨天', val: 'yesterday' },
+          { text: '最近7天', val: 'lately7' },
+          { text: '最近30天', val: 'lately30' },
+          { text: '本月', val: 'month' },
+          { text: '本年', val: 'year' },
+        ],
+      },
+      currentTab: '',
+      grid: {
+        xl: 8,
+        lg: 8,
+        md: 8,
+        sm: 24,
+        xs: 24,
+      },
+      // 搜索条件
+      orderData: {
+        status: '',
+        data: '',
+        real_name: '',
+        field_key: 'all',
+        pay_type: '',
+        type: '',
+      },
+      modalTitleSs: '',
+      statusType: '',
+      time: '',
+      value2: [],
+      writeOffRules: {
+        code: [{ validator: codeNum, trigger: 'blur', required: true }],
+      },
+      writeOffFrom: {
+        code: '',
+        confirm: 0,
+      },
+      modals2: false,
+      timeVal: [],
+      options: {
+        shortcuts: [
+          {
+            text: '今天',
+            value() {
+              const end = new Date();
+              const start = new Date();
+              start.setTime(new Date(new Date().getFullYear(), new Date().getMonth(), new Date().getDate()));
+              return [start, end];
+            },
+          },
+          {
+            text: '昨天',
+            value() {
+              const end = new Date();
+              const start = new Date();
+              start.setTime(
+                start.setTime(new Date(new Date().getFullYear(), new Date().getMonth(), new Date().getDate() - 1)),
+              );
+              end.setTime(
+                end.setTime(new Date(new Date().getFullYear(), new Date().getMonth(), new Date().getDate()) - 1),
+              );
+              return [start, end];
+            },
+          },
+          {
+            text: '最近7天',
+            value() {
+              const end = new Date();
+              const start = new Date();
+              start.setTime(
+                start.setTime(new Date(new Date().getFullYear(), new Date().getMonth(), new Date().getDate() - 6)),
+              );
+              return [start, end];
+            },
+          },
+          {
+            text: '最近30天',
+            value() {
+              const end = new Date();
+              const start = new Date();
+              start.setTime(
+                start.setTime(new Date(new Date().getFullYear(), new Date().getMonth(), new Date().getDate() - 29)),
+              );
+              return [start, end];
+            },
+          },
+          {
+            text: '本月',
+            value() {
+              const end = new Date();
+              const start = new Date();
+              start.setTime(start.setTime(new Date(new Date().getFullYear(), new Date().getMonth(), 1)));
+              return [start, end];
+            },
+          },
+          {
+            text: '本年',
+            value() {
+              const end = new Date();
+              const start = new Date();
+              start.setTime(start.setTime(new Date(new Date().getFullYear(), 0, 1)));
+              return [start, end];
+            },
+          },
+        ],
+      },
+      payList: [
+        { label: '全部', val: '' },
+        { label: '微信支付', val: '1' },
+        { label: '支付宝支付', val: '4' },
+        { label: '余额支付', val: '2' },
+        { label: '线下支付', val: '3' },
+      ],
+    };
+  },
+  computed: {
+    ...mapState('order', ['orderChartType', 'isDels', 'delIdList', 'orderType']),
 
-			today() {
-				const end = new Date();
-				const start = new Date();
-				var datetimeStart = start.getFullYear() + '/' + (start.getMonth() + 1) + '/' + start.getDate();
-				var datetimeEnd = end.getFullYear() + '/' + (end.getMonth() + 1) + '/' + end.getDate();
-				return [datetimeStart, datetimeEnd];
-			},
-		},
-		watch: {
-			$route() {
-				if (this.$route.fullPath === this.$routeProStr + '/order/list?status=1') {
-					this.getPath();
-				}
-			},
-		},
-		created() {
-			// this.timeVal = this.today;
-			// this.orderData.data = this.timeVal.join('-');
-			if (this.$route.fullPath === this.$routeProStr + '/order/list?status=1') {
-				this.getPath();
-			}
-		},
-		methods: {
-			...mapMutations('order', ['getOrderStatus', 'getOrderType', 'getOrderTime', 'getOrderNum', 'getfieldKey']),
-			getPath() {
-				this.orderData.status = this.$route.query.status.toString();
-				this.getOrderStatus(this.orderData.status);
-				this.$emit('getList', 1);
-			},
-			changeModal(status) {
-				if (!status) this.writeOffFrom.code = '';
-			},
-			// 导出
-			async exportList() {
-				this.orderData.type = this.orderType === 0 ? '' : this.orderType;
-				let [th, filekey, data, fileName] = [
-					[],
-					[],
-					[], ''
-				];
-				let excelData = JSON.parse(JSON.stringify(this.orderData));
-				excelData.page = 1;
-				excelData.limit = 200;
-				excelData.ids = this.delIdList;
-				for (let i = 0; i < excelData.page + 1; i++) {
-					let lebData = await this.getExcelData(excelData);
-					if (!fileName) fileName = lebData.filename;
-					if (!filekey.length) {
-						filekey = lebData.fileKey;
-					}
-					if (!th.length) th = lebData.header;
-					if (lebData.export.length) {
-						data = data.concat(lebData.export);
-						excelData.page++;
-					} else {
-						this.$exportExcel(th, filekey, fileName, data);
-						return;
-					}
-				}
-			},
-			getExcelData(excelData) {
-				return new Promise((resolve, reject) => {
-					exportOrderList(excelData).then((res) => {
-						resolve(res.data);
-					});
-				});
-			},
-			// 具体日期
-			onchangeTime(e) {
-				this.timeVal = e;
-				this.orderData.data = this.timeVal[0] ? this.timeVal.join('-') : '';
-				this.$store.dispatch('order/getOrderTabs', {
-					data: this.orderData.data
-				});
-				this.getOrderTime(this.orderData.data);
-				this.$emit('getList', 1);
-			},
-			// 选择时间
-			selectChange(tab) {
-				this.$store.dispatch('order/getOrderTabs', {
-					data: tab
-				});
-				this.orderData.data = tab;
-				this.getOrderTime(this.orderData.data);
-				this.timeVal = [];
-				this.$emit('getList');
-			},
-			// 订单选择状态
-			selectChange2(tab) {
-				this.getOrderStatus(tab);
-				this.$emit('getList', 1);
-			},
-			userSearchs(type) {
-				this.getOrderType(type);
-				this.$emit('getList', 1);
-			},
-			// 时间状态
-			timeChange(time) {
-				this.getOrderTime(time);
-				this.$emit('getList');
-			},
-			// 订单号搜索
-			orderSearch(num) {
-				this.getOrderNum(num);
-				this.getfieldKey(this.orderData.field_key);
-				this.$emit('getList', 1);
-			},
-			// 点击订单类型
-			onClickTab() {
-				this.$emit('onChangeType', this.currentTab);
-			},
-			// 批量删除
-			delAll() {
-				if (this.delIdList.length === 0) {
-					this.$Message.error('请先选择删除的订单!');
-				} else {
-					if (this.isDels) {
-						let idss = {
-							ids: this.delIdList,
-						};
-						let delfromData = {
-							title: '删除订单',
-							url: `/order/dels`,
-							method: 'post',
-							ids: idss,
-						};
-						this.$modalSure(delfromData)
-							.then((res) => {
-								this.$Message.success(res.msg);
-								this.$emit('getList');
-							})
-							.catch((res) => {
-								this.$Message.error(res.msg);
-							});
-					} else {
-						const title = '错误!';
-						const content = '<p>您选择的的订单存在用户未删除的订单,无法删除用户未删除的订单!</p>';
-						this.$Modal.error({
-							title: title,
-							content: content,
-						});
-					}
-				}
-			},
-			// 订单核销
-			writeOff() {
-				this.modals2 = true;
-			},
-			// 验证
-			search(name) {
-				this.$refs[name].validate((valid) => {
-					if (valid) {
-						this.writeOffFrom.confirm = 0;
-						putWrite(this.writeOffFrom)
-							.then(async (res) => {
-								if (res.status === 200) {
-									this.$Message.success(res.msg);
-									// this.modals2 = false
-									// this.$refs[name].resetFields()
-									// this.$emit('getList')
-								} else {
-									this.$Message.error(res.msg);
-								}
-							})
-							.catch((res) => {
-								this.$Message.error(res.msg);
-							});
-					} else {
-						this.$Message.error('请填写正确的核销码');
-					}
-				});
-			},
-			// 订单核销
-			ok(name) {
-				if (!this.writeOffFrom.code) {
-					this.$Message.warning('请先验证订单!');
-				} else {
-					this.writeOffFrom.confirm = 1;
-					putWrite(this.writeOffFrom)
-						.then(async (res) => {
-							if (res.status === 200) {
-								this.$Message.success(res.msg);
-								this.modals2 = false;
-								this.$refs[name].resetFields();
-								this.$emit('getList', 1);
-							} else {
-								this.$Message.error(res.msg);
-							}
-						})
-						.catch((res) => {
-							this.$Message.error(res.msg);
-						});
-				}
-			},
-			del(name) {
-				this.modals2 = false;
-				this.writeOffFrom.code = '';
-				this.$refs[name].resetFields();
-			},
-			handleSubmit() {
-				this.$emit('on-submit', this.data);
-			},
-			// 刷新
-			Refresh() {
-				this.$emit('getList');
-			},
-			//
-			handleReset() {
-				this.$refs.form.resetFields();
-				this.$emit('on-reset');
-			},
-		},
-	};
+    today() {
+      const end = new Date();
+      const start = new Date();
+      var datetimeStart = start.getFullYear() + '/' + (start.getMonth() + 1) + '/' + start.getDate();
+      var datetimeEnd = end.getFullYear() + '/' + (end.getMonth() + 1) + '/' + end.getDate();
+      return [datetimeStart, datetimeEnd];
+    },
+  },
+  watch: {
+    $route() {
+      if (this.$route.fullPath === this.$routeProStr + '/order/list?status=1') {
+        this.getPath();
+      }
+    },
+  },
+  created() {
+    // this.timeVal = this.today;
+    // this.orderData.data = this.timeVal.join('-');
+    if (this.$route.fullPath === this.$routeProStr + '/order/list?status=1') {
+      this.getPath();
+    }
+  },
+  methods: {
+    ...mapMutations('order', ['getOrderStatus', 'getOrderType', 'getOrderTime', 'getOrderNum', 'getfieldKey']),
+    getPath() {
+      this.orderData.status = this.$route.query.status.toString();
+      this.getOrderStatus(this.orderData.status);
+      this.$emit('getList', 1);
+    },
+    changeModal(status) {
+      if (!status) this.writeOffFrom.code = '';
+    },
+    // 导出
+    async exportList() {
+      this.orderData.type = this.orderType === 0 ? '' : this.orderType;
+      let [th, filekey, data, fileName] = [[], [], [], ''];
+      let excelData = JSON.parse(JSON.stringify(this.orderData));
+      excelData.page = 1;
+      excelData.limit = 200;
+      excelData.ids = this.delIdList;
+      for (let i = 0; i < excelData.page + 1; i++) {
+        let lebData = await this.getExcelData(excelData);
+        if (!fileName) fileName = lebData.filename;
+        if (!filekey.length) {
+          filekey = lebData.fileKey;
+        }
+        if (!th.length) th = lebData.header;
+        if (lebData.export.length) {
+          data = data.concat(lebData.export);
+          excelData.page++;
+        } else {
+          this.$exportExcel(th, filekey, fileName, data);
+          return;
+        }
+      }
+    },
+    getExcelData(excelData) {
+      return new Promise((resolve, reject) => {
+        exportOrderList(excelData).then((res) => {
+          resolve(res.data);
+        });
+      });
+    },
+    // 具体日期
+    onchangeTime(e) {
+      this.timeVal = e;
+      this.orderData.data = this.timeVal[0] ? this.timeVal.join('-') : '';
+      this.$store.dispatch('order/getOrderTabs', { data: this.orderData.data });
+      this.getOrderTime(this.orderData.data);
+      this.$emit('getList', 1);
+    },
+    // 选择时间
+    selectChange(tab) {
+      this.$store.dispatch('order/getOrderTabs', { data: tab });
+      this.orderData.data = tab;
+      this.getOrderTime(this.orderData.data);
+      this.timeVal = [];
+      this.$emit('getList');
+    },
+    // 订单选择状态
+    selectChange2(tab) {
+      this.getOrderStatus(tab);
+      this.$emit('getList', 1);
+    },
+    userSearchs(type) {
+      this.getOrderType(type);
+      this.$emit('getList', 1);
+    },
+    // 时间状态
+    timeChange(time) {
+      this.getOrderTime(time);
+      this.$emit('getList');
+    },
+    // 订单号搜索
+    orderSearch(num) {
+      this.getOrderNum(num);
+      this.getfieldKey(this.orderData.field_key);
+      this.$emit('getList', 1);
+    },
+    // 点击订单类型
+    onClickTab() {
+      this.$emit('onChangeType', this.currentTab);
+    },
+    // 批量删除
+    delAll() {
+      if (this.delIdList.length === 0) {
+        this.$Message.error('请先选择删除的订单!');
+      } else {
+        if (this.isDels) {
+          let idss = {
+            ids: this.delIdList,
+          };
+          let delfromData = {
+            title: '删除订单',
+            url: `/order/dels`,
+            method: 'post',
+            ids: idss,
+          };
+          this.$modalSure(delfromData)
+            .then((res) => {
+              this.$Message.success(res.msg);
+              this.$emit('getList');
+            })
+            .catch((res) => {
+              this.$Message.error(res.msg);
+            });
+        } else {
+          const title = '错误!';
+          const content = '<p>您选择的的订单存在用户未删除的订单,无法删除用户未删除的订单!</p>';
+          this.$Modal.error({
+            title: title,
+            content: content,
+          });
+        }
+      }
+    },
+    // 订单核销
+    writeOff() {
+      this.modals2 = true;
+    },
+    // 验证
+    search(name) {
+      this.$refs[name].validate((valid) => {
+        if (valid) {
+          this.writeOffFrom.confirm = 0;
+          putWrite(this.writeOffFrom)
+            .then(async (res) => {
+              if (res.status === 200) {
+                this.$Message.success(res.msg);
+                // this.modals2 = false
+                // this.$refs[name].resetFields()
+                // this.$emit('getList')
+              } else {
+                this.$Message.error(res.msg);
+              }
+            })
+            .catch((res) => {
+              this.$Message.error(res.msg);
+            });
+        } else {
+          this.$Message.error('请填写正确的核销码');
+        }
+      });
+    },
+    // 订单核销
+    ok(name) {
+      if (!this.writeOffFrom.code) {
+        this.$Message.warning('请先验证订单!');
+      } else {
+        this.writeOffFrom.confirm = 1;
+        putWrite(this.writeOffFrom)
+          .then(async (res) => {
+            if (res.status === 200) {
+              this.$Message.success(res.msg);
+              this.modals2 = false;
+              this.$refs[name].resetFields();
+              this.$emit('getList', 1);
+            } else {
+              this.$Message.error(res.msg);
+            }
+          })
+          .catch((res) => {
+            this.$Message.error(res.msg);
+          });
+      }
+    },
+    del(name) {
+      this.modals2 = false;
+      this.writeOffFrom.code = '';
+      this.$refs[name].resetFields();
+    },
+    handleSubmit() {
+      this.$emit('on-submit', this.data);
+    },
+    // 刷新
+    Refresh() {
+      this.$emit('getList');
+    },
+    //
+    handleReset() {
+      this.$refs.form.resetFields();
+      this.$emit('on-reset');
+    },
+  },
+};
 </script>
 
 <style scoped lang="stylus">
-	.tab_data>>>.ivu-form-item-content {
-		margin-left: 0 !important;
-	}
+.tab_data >>> .ivu-form-item-content {
+  margin-left: 0 !important;
+}
 
-	.table_box>>>.ivu-divider-horizontal {
-		margin-top: 0px !important;
-	}
+.table_box >>> .ivu-divider-horizontal {
+  margin-top: 0px !important;
+}
 
-	.table_box>>>.ivu-form-item {
-		margin-bottom: 15px !important;
-	}
+.table_box >>> .ivu-form-item {
+  margin-bottom: 15px !important;
+}
 
-	.tabform {
-		margin-bottom: 10px;
-	}
+.tabform {
+  margin-bottom: 10px;
+}
 
-	.Refresh {
-		font-size: 12px;
-		color: #1890FF;
-		cursor: pointer;
-	}
-</style>
+.Refresh {
+  font-size: 12px;
+  color: #1890FF;
+  cursor: pointer;
+}
+</style>

+ 722 - 664
src/pages/order/orderList/components/tableList.vue

@@ -1,68 +1,103 @@
 <template>
-	<div>
-		<Table :columns="columns" :data="orderList" ref="table" :loading="loading" highlight-row no-data-text="暂无数据"
-			no-filtered-data-text="暂无筛选结果" @on-select="handleSelectRow" @on-select-cancel="handleCancelRow"
-			@on-select-all="handleSelectAll" @on-select-all-cancel="handleSelectAll" class="orderData mt25">
-			<template slot-scope="{ row, index }" slot="order_id">
-				<div>{{ row.order_id }}</div>
-				<div class="pink_name">{{ row.pink_name }}</div>
-				<span v-show="row.is_del === 1" style="color: #ed4014; display: block">用户已删除</span>
-			</template>
-			<template slot-scope="{ row, index }" slot="nickname">
-				<span class="nickname">{{ row.nickname }}</span> |
-				<span class="uid">{{ row.uid }}</span>
-			</template>
-			<template slot-scope="{ row, index }" slot="pay_price">
-				<span>{{ row.paid ? row.pay_price : '未支付' }}</span>
-			</template>
-			<template slot-scope="{ row, index }" slot="info">
-				<div class="tabBox" v-for="(val, i) in row._info" :key="i">
-					<div class="tabBox_img" v-viewer>
-						<img v-lazy="
+  <div>
+    <Table
+      :columns="columns"
+      :data="orderList"
+      ref="table"
+      :loading="loading"
+      highlight-row
+      no-data-text="暂无数据"
+      no-filtered-data-text="暂无筛选结果"
+      @on-select="handleSelectRow"
+      @on-select-cancel="handleCancelRow"
+      @on-select-all="handleSelectAll"
+      @on-select-all-cancel="handleSelectAll"
+      class="orderData mt25"
+    >
+      <template slot-scope="{ row, index }" slot="order_id">
+        <div>{{ row.order_id }}</div>
+        <div class="pink_name">{{ row.pink_name }}</div>
+        <span v-show="row.is_del === 1" style="color: #ed4014; display: block">用户已删除</span>
+      </template>
+      <template slot-scope="{ row, index }" slot="nickname">
+        <span class="nickname">{{ row.nickname }}</span> |
+        <span class="uid">{{ row.uid }}</span>
+      </template>
+      <template slot-scope="{ row, index }" slot="pay_price">
+        <span>{{ row.paid ? row.pay_price : '未支付' }}</span>
+      </template>
+      <template slot-scope="{ row, index }" slot="info">
+        <div class="tabBox" v-for="(val, i) in row._info" :key="i">
+          <div class="tabBox_img" v-viewer>
+            <img
+              v-lazy="
                 val.cart_info.productInfo.attrInfo
                   ? val.cart_info.productInfo.attrInfo.image
                   : val.cart_info.productInfo.image
-              " />
-					</div>
-					<span class="tabBox_tit">{{ val.cart_info.productInfo.store_name + ' | '
-            }}{{ val.cart_info.productInfo.attrInfo ? val.cart_info.productInfo.attrInfo.suk : '' }}</span>
-					<span
-						class="tabBox_pice">{{ '¥' + val.cart_info.truePrice + ' x ' + val.cart_info.cart_num }}</span>
-				</div>
-			</template>
-			<template slot-scope="{ row, index }" slot="statusName">
-				<div v-html="row.status_name.status_name" class="pt5"></div>
-				<div v-if="!row.is_all_refund && row.refund.length" class="trip">部分退款中</div>
-				<div v-if="row.refund_status == 0 && row.is_all_refund && row.refund.length && row.refund_type != 6"
-					class="trip">
-					退款中
-				</div>
-				<div class="img">
-					<div v-viewer v-if="row.status_name.pics" class="pictrue"
-						v-for="(item, index) in row.status_name.pics || []" :key="index">
-						<img v-lazy="item" :src="item" />
-					</div>
-				</div>
-			</template>
-			<template slot-scope="{ row, index }" slot="action">
-				<a @click="edit(row)" v-if="row._status === 1 && row.is_del !== 1">编辑</a>
-				<a @click="sendOrder(row)" v-if="
+              "
+            />
+          </div>
+          <span class="tabBox_tit"
+            >{{ val.cart_info.productInfo.store_name + ' | '
+            }}{{ val.cart_info.productInfo.attrInfo ? val.cart_info.productInfo.attrInfo.suk : '' }}</span
+          >
+          <span class="tabBox_pice">{{ '¥' + val.cart_info.truePrice + ' x ' + val.cart_info.cart_num }}</span>
+        </div>
+      </template>
+      <template slot-scope="{ row, index }" slot="statusName">
+        <div v-html="row.status_name.status_name" class="pt5"></div>
+        <div v-if="!row.is_all_refund && row.refund.length" class="trip">部分退款中</div>
+        <div
+          v-if="row.refund_status == 0 && row.is_all_refund && row.refund.length && row.refund_type != 6"
+          class="trip"
+        >
+          退款中
+        </div>
+        <div class="img">
+          <div
+            v-viewer
+            v-if="row.status_name.pics"
+            class="pictrue"
+            v-for="(item, index) in row.status_name.pics || []"
+            :key="index"
+          >
+            <img v-lazy="item" :src="item" />
+          </div>
+        </div>
+      </template>
+      <template slot-scope="{ row, index }" slot="action">
+        <a @click="edit(row)" v-if="row._status === 1 && row.is_del !== 1">编辑</a>
+        <a
+          @click="sendOrder(row)"
+          v-if="
             (row.status === 4 || row._status === 2 || row._status === 8) &&
             row.shipping_type === 1 &&
             (row.pinkStatus === null || row.pinkStatus === 2) &&
             row.is_del !== 1
-          ">发送货</a>
-				<a @click="delivery(row)" v-if="row._status === 4 && !row.split.length">配送信息</a>
-				<a @click="bindWrite(row)"
-					v-if="row.shipping_type == 2 && row.status == 0 && row.paid == 1 && row.refund_status === 0">立即核销</a>
-				<Divider type="vertical"
-					v-if="(row._status === 8 || row.status === 0 || row.status === 4) && row.split.length && row.is_del !== 1" />
-				<a @click="splitOrderDetail(row)" v-if="row.split.length && row.is_del !== 1">查看子订单</a>
-				<Divider type="vertical" v-if="
+          "
+          >发送货</a
+        >
+        <a @click="delivery(row)" v-if="row._status === 4 && !row.split.length">配送信息</a>
+        <a
+          @click="bindWrite(row)"
+          v-if="row.shipping_type == 2 && row.status == 0 && row.paid == 1 && row.refund_status === 0"
+          >立即核销</a
+        >
+        <Divider
+          type="vertical"
+          v-if="(row._status === 8 || row.status === 0 || row.status === 4) && row.split.length && row.is_del !== 1"
+        />
+        <a @click="splitOrderDetail(row)" v-if="row.split.length && row.is_del !== 1">查看子订单</a>
+        <Divider
+          type="vertical"
+          v-if="
             (row._status === 2 && row.shipping_type === 1 && row.pinkStatus === 2) ||
             (row.split.length && row.is_del !== 1)
-          " />
-				<Divider type="vertical" v-if="
+          "
+        />
+        <Divider
+          type="vertical"
+          v-if="
             row.refund_type !== 4 &&
             row.refund_type !== 5 &&
             (row._status === 1 ||
@@ -71,25 +106,34 @@
               row._status === 4 ||
               (row.shipping_type == 2 && row.status == 0 && row.paid == 1 && row.refund_status === 0)) &&
             row.is_del !== 1
-          " />
-				<template>
-					<Dropdown @on-click="changeMenu(row, $event)" :transfer="true">
-						<a href="javascript:void(0)">更多
-							<Icon type="ios-arrow-down"></Icon>
-						</a>
-						<DropdownMenu slot="list">
-							<DropdownItem name="1" ref="ones"
-								v-show="row._status === 1 && row.paid === 0 && row.pay_type === 'offline' && row.is_del !== 1">
-								确认付款</DropdownItem>
-							<DropdownItem name="2">订单详情</DropdownItem>
-							<DropdownItem name="3">订单记录</DropdownItem>
-							<DropdownItem name="11" v-show="row._status >= 3 && row.express_dump">电子面单打印</DropdownItem>
-							<DropdownItem name="10" v-show="row._status >= 2">小票打印</DropdownItem>
-							<DropdownItem name="4" v-show="
+          "
+        />
+        <template>
+          <Dropdown @on-click="changeMenu(row, $event)" :transfer="true">
+            <a href="javascript:void(0)"
+              >更多
+              <Icon type="ios-arrow-down"></Icon>
+            </a>
+            <DropdownMenu slot="list">
+              <DropdownItem
+                name="1"
+                ref="ones"
+                v-show="row._status === 1 && row.paid === 0 && row.pay_type === 'offline' && row.is_del !== 1"
+                >确认付款</DropdownItem
+              >
+              <DropdownItem name="2">订单详情</DropdownItem>
+              <DropdownItem name="3">订单记录</DropdownItem>
+              <DropdownItem name="11" v-show="row._status >= 3 && row.express_dump">电子面单打印</DropdownItem>
+              <DropdownItem name="10" v-show="row._status >= 2">小票打印</DropdownItem>
+              <DropdownItem
+                name="4"
+                v-show="
                   row._status !== 1 ||
                   (row._status === 3 && row.use_integral > 0 && row.use_integral >= row.back_integral)
-                ">订单备注</DropdownItem>
-							<!-- <DropdownItem
+                "
+                >订单备注</DropdownItem
+              >
+              <!-- <DropdownItem
                 name="5"
                 v-show="
                   row._status !== 1 &&
@@ -99,618 +143,632 @@
                 "
                 >立即退款</DropdownItem
               > -->
-							<!--                            <DropdownItem name="6"  v-show='row._status !==1 && (row.use_integral > 0 && row.use_integral >= row.back_integral) '>退积分</DropdownItem>-->
-							<!--                            <DropdownItem name="7"  v-show='row._status === 3'>不退款</DropdownItem>-->
-							<DropdownItem name="8" v-show="row._status === 4">已收货</DropdownItem>
-							<DropdownItem name="9">删除订单</DropdownItem>
-							<DropdownItem name="12" v-show="row.kuaidi_label">快递面单打印</DropdownItem>
-						</DropdownMenu>
-					</Dropdown>
-				</template>
-			</template>
-		</Table>
-		<div class="acea-row row-right page">
-			<Page :total="page.total" :current="page.pageNum" show-elevator show-total @on-change="pageChange"
-				:page-size="page.pageSize" @on-page-size-change="limitChange" />
-		</div>
-		<!-- 编辑 退款 退积分 不退款-->
-		<edit-from ref="edits" :FromData="FromData" @submitFail="submitFail"></edit-from>
-		<!-- 详情 -->
-		<details-from ref="details" :orderDatalist="orderDatalist" :orderId="orderId"></details-from>
-		<!-- 备注 -->
-		<order-remark ref="remarks" :orderId="orderId" @submitFail="submitFail"></order-remark>
-		<!-- 记录 -->
-		<order-record ref="record"></order-record>
-		<!-- 发送货 -->
-		<order-send ref="send" :orderId="orderId" :status="status" :pay_type="pay_type" :virtual_type="virtual_type"
-			@submitFail="submitFail" @clearId="
+              <!--                            <DropdownItem name="6"  v-show='row._status !==1 && (row.use_integral > 0 && row.use_integral >= row.back_integral) '>退积分</DropdownItem>-->
+              <!--                            <DropdownItem name="7"  v-show='row._status === 3'>不退款</DropdownItem>-->
+              <DropdownItem name="8" v-show="row._status === 4">已收货</DropdownItem>
+              <DropdownItem name="9">删除订单</DropdownItem>
+              <DropdownItem name="12" v-show="row.kuaidi_label">快递面单打印</DropdownItem>
+            </DropdownMenu>
+          </Dropdown>
+        </template>
+      </template>
+    </Table>
+    <div class="acea-row row-right page">
+      <Page
+        :total="page.total"
+        :current="page.pageNum"
+        show-elevator
+        show-total
+        @on-change="pageChange"
+        :page-size="page.pageSize"
+        @on-page-size-change="limitChange"
+      />
+    </div>
+    <!-- 编辑 退款 退积分 不退款-->
+    <edit-from ref="edits" :FromData="FromData" @submitFail="submitFail"></edit-from>
+    <!-- 详情 -->
+    <details-from ref="details" :orderDatalist="orderDatalist" :orderId="orderId"></details-from>
+    <!-- 备注 -->
+    <order-remark ref="remarks" :orderId="orderId" @submitFail="submitFail"></order-remark>
+    <!-- 记录 -->
+    <order-record ref="record"></order-record>
+    <!-- 发送货 -->
+    <order-send
+      ref="send"
+      :orderId="orderId"
+      :status="status"
+      :pay_type="pay_type"
+      :virtual_type="virtual_type"
+      @submitFail="submitFail"
+      @clearId="
         () => {
           orderId = 0;
         }
-      "></order-send>
-	</div>
+      "
+    ></order-send>
+  </div>
 </template>
+
 <script>
-	import expandRow from './tableExpand.vue';
-	import printJS from 'print-js';
-	import {
-		orderList,
-		getOrdeDatas,
-		getDataInfo,
-		getRefundFrom,
-		getnoRefund,
-		refundIntegral,
-		getDistribution,
-		writeUpdate,
-	} from '@/api/order';
-	import {
-		mapState,
-		mapMutations
-	} from 'vuex';
-	import editFrom from '../../../../components/from/from';
-	import detailsFrom from '../handle/orderDetails';
-	import orderRemark from '../handle/orderRemark';
-	import orderRecord from '../handle/orderRecord';
-	import orderSend from '../handle/orderSend';
+import expandRow from './tableExpand.vue';
+import printJS from 'print-js';
+import {
+  orderList,
+  getOrdeDatas,
+  getDataInfo,
+  getRefundFrom,
+  getnoRefund,
+  refundIntegral,
+  getDistribution,
+  writeUpdate,
+} from '@/api/order';
+import { mapState, mapMutations } from 'vuex';
+import editFrom from '../../../../components/from/from';
+import detailsFrom from '../handle/orderDetails';
+import orderRemark from '../handle/orderRemark';
+import orderRecord from '../handle/orderRecord';
+import orderSend from '../handle/orderSend';
 
-	export default {
-		name: 'table_list',
-		components: {
-			expandRow,
-			editFrom,
-			detailsFrom,
-			orderRemark,
-			orderRecord,
-			orderSend,
-		},
-		data() {
-			return {
-				delfromData: {},
-				modal: false,
-				orderList: [],
-				orderCards: [],
-				loading: false,
-				orderId: 0,
-				total_num: 0,
-				virtual_type: 0,
-				status: 0,
-				pay_type: '',
-				columns: [{
-						type: 'expand',
-						width: 30,
-						render: (h, params) => {
-							return h(expandRow, {
-								props: {
-									row: params.row,
-								},
-							});
-						},
-					},
-					{
-						type: 'selection',
-						width: 40,
-						align: 'center',
-					},
-					{
-						title: '订单号 | 类型',
-						align: 'center',
-						slot: 'order_id',
-						width: 200,
-					},
-					{
-						title: '用户昵称 | ID',
-						slot: 'nickname',
-						align: 'center',
-						width: 150,
-					},
-					{
-						title: '商品信息',
-						slot: 'info',
-						minWidth: 330,
-					},
-					{
-						title: '实际支付',
-						slot: 'pay_price',
-						align: 'center',
-						width: 100,
-					},
-					{
-						title: '支付方式',
-						key: 'pay_type_name',
-						width: 80,
-					},
-					{
-						title: '支付时间',
-						key: '_pay_time',
-						align: 'center',
-						minWidth: 75,
-						maxWidth: 160,
-					},
-					{
-						title: '订单状态',
-						key: 'statusName',
-						slot: 'statusName',
-						align: 'center',
-						width: 100,
-					},
-					{
-						title: '操作',
-						slot: 'action',
-						fixed: 'right',
-						width: 170,
-						align: 'center',
-					},
-				],
-				page: {
-					total: 0, // 总条数
-					pageNum: 1, // 当前页
-					pageSize: 10, // 每页显示条数
-				},
-				data: [],
-				FromData: null,
-				orderDatalist: null,
-				// modalTitleSs: '',
-				selectedIds: new Set(), //选中合并项的id
-			};
-		},
-		computed: {
-			...mapState('order', ['orderPayType', 'orderStatus', 'orderTime', 'orderNum', 'fieldKey', 'orderType']),
-		},
-		mounted() {},
-		created() {
-			this.getList();
-		},
-		watch: {
-			orderType: function() {
-				this.page.pageNum = 1;
-				this.getList();
-			},
-		},
-		methods: {
-			...mapMutations('order', ['getIsDel', 'getisDelIdListl']),
-			// 操作
-			changeMenu(row, name) {
-				this.orderId = row.id;
-				switch (name) {
-					case '1':
-						this.delfromData = {
-							title: '修改立即支付',
-							url: `/order/pay_offline/${row.id}`,
-							method: 'post',
-							ids: '',
-						};
-						this.$modalSure(this.delfromData)
-							.then((res) => {
-								this.$Message.success(res.msg);
-								this.$emit('changeGetTabs');
-								this.getList();
-							})
-							.catch((res) => {
-								this.$Message.error(res.msg);
-							});
-						// this.modalTitleSs = '修改立即支付';
-						break;
-					case '2':
-						this.getData(row.id);
-						break;
-					case '3':
-						this.$refs.record.modals = true;
-						this.$refs.record.getList(row.id);
-						break;
-					case '4':
-						this.$refs.remarks.modals = true;
-						this.$refs.remarks.formValidate.remark = row.remark;
-						break;
-					case '5':
-						this.getRefundData(row.id);
-						break;
-					case '6':
-						this.getRefundIntegral(row.id);
-						break;
-					case '7':
-						this.getNoRefundData(row.id);
-						break;
-					case '8':
-						this.delfromData = {
-							title: '修改确认收货',
-							url: `/order/take/${row.id}`,
-							method: 'put',
-							ids: '',
-						};
-						this.$modalSure(this.delfromData)
-							.then((res) => {
-								this.$Message.success(res.msg);
-								this.getList();
-							})
-							.catch((res) => {
-								this.$Message.error(res.msg);
-							});
-						// this.modalTitleSs = '修改确认收货';
-						break;
-					case '10':
-						this.delfromData = {
-							title: '立即打印订单',
-							info: '您确认打印此订单吗?',
-							url: `/order/print/${row.id}`,
-							method: 'get',
-							ids: '',
-						};
-						this.$modalSure(this.delfromData)
-							.then((res) => {
-								this.$Message.success(res.msg);
-								this.$emit('changeGetTabs');
-								this.getList();
-							})
-							.catch((res) => {
-								this.$Message.error(res.msg);
-							});
-						break;
-					case '11':
-						this.delfromData = {
-							title: '立即打印电子面单',
-							info: '您确认打印此电子面单吗?',
-							url: `/order/order_dump/${row.id}`,
-							method: 'get',
-							ids: '',
-						};
-						this.$modalSure(this.delfromData)
-							.then((res) => {
-								this.$Message.success(res.msg);
-								this.getList();
-							})
-							.catch((res) => {
-								this.$Message.error(res.msg);
-							});
-						break;
-					case '12':
-						this.printImg(row.kuaidi_label);
-						break;
-					default:
-						this.delfromData = {
-							title: '删除订单',
-							url: `/order/del/${row.id}`,
-							method: 'DELETE',
-							ids: '',
-						};
-						// this.modalTitleSs = '删除订单';
-						this.delOrder(row, this.delfromData);
-				}
-			},
-			printImg(url) {
-				printJS({
-					printable: url,
-					type: 'image',
-					documentTitle: '快递信息',
-					style: `img{
+export default {
+  name: 'table_list',
+  components: {
+    expandRow,
+    editFrom,
+    detailsFrom,
+    orderRemark,
+    orderRecord,
+    orderSend,
+  },
+  data() {
+    return {
+      delfromData: {},
+      modal: false,
+      orderList: [],
+      orderCards: [],
+      loading: false,
+      orderId: 0,
+      total_num: 0,
+      virtual_type: 0,
+      status: 0,
+      pay_type: '',
+      columns: [
+        {
+          type: 'expand',
+          width: 30,
+          render: (h, params) => {
+            return h(expandRow, {
+              props: {
+                row: params.row,
+              },
+            });
+          },
+        },
+        {
+          type: 'selection',
+          width: 40,
+          align: 'center',
+        },
+        {
+          title: '订单号 | 类型',
+          align: 'center',
+          slot: 'order_id',
+          width: 200,
+        },
+        {
+          title: '用户昵称 | ID',
+          slot: 'nickname',
+          align: 'center',
+          width: 150,
+        },
+        {
+          title: '商品信息',
+          slot: 'info',
+          minWidth: 330,
+        },
+        {
+          title: '实际支付',
+          slot: 'pay_price',
+          align: 'center',
+          width: 100,
+        },
+        {
+          title: '支付方式',
+          key: 'pay_type_name',
+          width: 80,
+        },
+        {
+          title: '支付时间',
+          key: '_pay_time',
+          align: 'center',
+          minWidth: 75,
+          maxWidth: 160,
+        },
+        {
+          title: '订单状态',
+          key: 'statusName',
+          slot: 'statusName',
+          align: 'center',
+          width: 100,
+        },
+        {
+          title: '操作',
+          slot: 'action',
+          fixed: 'right',
+          width: 170,
+          align: 'center',
+        },
+      ],
+      page: {
+        total: 0, // 总条数
+        pageNum: 1, // 当前页
+        pageSize: 10, // 每页显示条数
+      },
+      data: [],
+      FromData: null,
+      orderDatalist: null,
+      // modalTitleSs: '',
+      selectedIds: new Set(), //选中合并项的id
+    };
+  },
+  computed: {
+    ...mapState('order', ['orderPayType', 'orderStatus', 'orderTime', 'orderNum', 'fieldKey', 'orderType']),
+  },
+  mounted() {},
+  created() {
+    this.getList();
+  },
+  watch: {
+    orderType: function () {
+      this.page.pageNum = 1;
+      this.getList();
+    },
+  },
+  methods: {
+    ...mapMutations('order', ['getIsDel', 'getisDelIdListl']),
+    // 操作
+    changeMenu(row, name) {
+      this.orderId = row.id;
+      switch (name) {
+        case '1':
+          this.delfromData = {
+            title: '修改立即支付',
+            url: `/order/pay_offline/${row.id}`,
+            method: 'post',
+            ids: '',
+          };
+          this.$modalSure(this.delfromData)
+            .then((res) => {
+              this.$Message.success(res.msg);
+              this.$emit('changeGetTabs');
+              this.getList();
+            })
+            .catch((res) => {
+              this.$Message.error(res.msg);
+            });
+          // this.modalTitleSs = '修改立即支付';
+          break;
+        case '2':
+          this.getData(row.id);
+          break;
+        case '3':
+          this.$refs.record.modals = true;
+          this.$refs.record.getList(row.id);
+          break;
+        case '4':
+          this.$refs.remarks.modals = true;
+          this.$refs.remarks.formValidate.remark = row.remark;
+          break;
+        case '5':
+          this.getRefundData(row.id);
+          break;
+        case '6':
+          this.getRefundIntegral(row.id);
+          break;
+        case '7':
+          this.getNoRefundData(row.id);
+          break;
+        case '8':
+          this.delfromData = {
+            title: '修改确认收货',
+            url: `/order/take/${row.id}`,
+            method: 'put',
+            ids: '',
+          };
+          this.$modalSure(this.delfromData)
+            .then((res) => {
+              this.$Message.success(res.msg);
+              this.getList();
+            })
+            .catch((res) => {
+              this.$Message.error(res.msg);
+            });
+          // this.modalTitleSs = '修改确认收货';
+          break;
+        case '10':
+          this.delfromData = {
+            title: '立即打印订单',
+            info: '您确认打印此订单吗?',
+            url: `/order/print/${row.id}`,
+            method: 'get',
+            ids: '',
+          };
+          this.$modalSure(this.delfromData)
+            .then((res) => {
+              this.$Message.success(res.msg);
+              this.$emit('changeGetTabs');
+              this.getList();
+            })
+            .catch((res) => {
+              this.$Message.error(res.msg);
+            });
+          break;
+        case '11':
+          this.delfromData = {
+            title: '立即打印电子面单',
+            info: '您确认打印此电子面单吗?',
+            url: `/order/order_dump/${row.id}`,
+            method: 'get',
+            ids: '',
+          };
+          this.$modalSure(this.delfromData)
+            .then((res) => {
+              this.$Message.success(res.msg);
+              this.getList();
+            })
+            .catch((res) => {
+              this.$Message.error(res.msg);
+            });
+          break;
+        case '12':
+          this.printImg(row.kuaidi_label);
+          break;
+        default:
+          this.delfromData = {
+            title: '删除订单',
+            url: `/order/del/${row.id}`,
+            method: 'DELETE',
+            ids: '',
+          };
+          // this.modalTitleSs = '删除订单';
+          this.delOrder(row, this.delfromData);
+      }
+    },
+    printImg(url) {
+      printJS({
+        printable: url,
+        type: 'image',
+        documentTitle: '快递信息',
+        style: `img{
           width: 100%;
           height: 476px;
         }`,
-				});
-			},
-			// 立即支付 /确认收货//删除单条订单
-			submitModel() {
-				this.getList();
-			},
-			pageChange(index) {
-				this.page.pageNum = index;
-				this.getList();
-			},
-			limitChange(limit) {
-				this.page.pageSize = limit;
-				this.getList();
-			},
-			// 订单列表
-			getList(res) {
-				this.page.pageNum = res === 1 ? 1 : this.page.pageNum;
-				this.loading = true;
-				orderList({
-						page: this.page.pageNum,
-						limit: this.page.pageSize,
-						status: this.orderStatus,
-						pay_type: this.orderPayType,
-						data: this.orderTime,
-						real_name: this.orderNum,
-						field_key: this.fieldKey,
-						type: this.orderType === 0 ? '' : this.orderType,
-					})
-					.then(async (res) => {
-						let data = res.data;
-						this.orderList = data.data;
-						this.orderCards = data.stat;
-						this.page.total = data.count;
-						this.$nextTick(() => {
-							//确保dom加载完毕
-							this.setChecked();
-						});
-						this.$emit('on-changeCards', data.stat);
-						this.loading = false;
-					})
-					.catch((res) => {
-						this.loading = false;
-						this.$Message.error(res.msg);
-					});
-			},
-			// 全选
-			// onSelectTab (selection) {
-			//     let isDel = selection.some(item => {
-			//         return item.is_del === 1
-			//     });
-			//     this.getIsDel(isDel);
-			//     this.getisDelIdListl(selection);
-			// },
-			//全选和取消全选时触发
-			handleSelectAll(selection) {
-				if (selection.length === 0) {
-					//获取table的数据;
-					let data = this.$refs.table.data;
-					data.forEach((item) => {
-						if (this.selectedIds.has(item.id)) {
-							this.selectedIds.delete(item.id);
-						}
-					});
-				} else {
-					selection.forEach((item) => {
-						this.selectedIds.add(item.id);
-					});
-				}
-				this.isDel(selection);
-				this.$nextTick(() => {
-					//确保dom加载完毕
-					this.setChecked();
-				});
-			},
-			//  选中某一行
-			handleSelectRow(selection, row) {
-				this.isDel(selection);
-				this.selectedIds.add(row.id);
-				this.$nextTick(() => {
-					//确保dom加载完毕
-					this.setChecked();
-				});
-			},
-			//  取消某一行
-			handleCancelRow(selection, row) {
-				this.isDel(selection);
-				this.selectedIds.delete(row.id);
-				this.$nextTick(() => {
-					//确保dom加载完毕
-					this.setChecked();
-				});
-			},
-			setChecked() {
-				//将new Set()转化为数组
-				let ids = [...this.selectedIds];
-				this.getisDelIdListl(ids);
-				// 找到绑定的table的ref对应的dom,找到table的objData对象,objData保存的是当前页的数据
-				let objData = this.$refs.table.objData;
-				for (let index in objData) {
-					if (this.selectedIds.has(objData[index].id)) {
-						objData[index]._isChecked = true;
-					}
-				}
-			},
-			isDel(selection) {
-				if (selection.findIndex((target) => target.is_del === 0) == -1) {
-					this.getIsDel(1);
-				} else {
-					this.getIsDel(0);
-				}
-			},
-			// 编辑
-			edit(row) {
-				this.getOrderData(row.id);
-			},
-			// 删除单条订单
-			delOrder(row, data) {
-				if (row.is_del === 1) {
-					this.$modalSure(data)
-						.then((res) => {
-							this.$Message.success(res.msg);
-							this.getList();
-						})
-						.catch((res) => {
-							this.$Message.error(res.msg);
-						});
-				} else {
-					const title = '错误!';
-					const content = '<p>您选择的的订单存在用户未删除的订单,无法删除用户未删除的订单!</p>';
-					this.$Modal.error({
-						title: title,
-						content: content,
-					});
-				}
-			},
-			splitOrderDetail(row) {
-				this.$router.push({
-					path: 'split_list',
-					query: {
-						id: row.id,
-					},
-				});
-			},
-			// 获取编辑表单数据
-			getOrderData(id) {
-				getOrdeDatas(id)
-					.then(async (res) => {
-						if (res.data.status === false) {
-							return this.$authLapse(res.data);
-						}
-						this.$authLapse(res.data);
-						this.FromData = res.data;
-						this.$refs.edits.modals = true;
-					})
-					.catch((res) => {
-						this.$Message.error(res.msg);
-					});
-			},
-			// 获取详情表单数据
-			getData(id) {
-				getDataInfo(id)
-					.then(async (res) => {
-						this.$refs.details.modals = true;
-						this.orderDatalist = res.data;
-						if (this.orderDatalist.orderInfo.refund_reason_wap_img) {
-							try {
-								this.orderDatalist.orderInfo.refund_reason_wap_img = JSON.parse(
-									this.orderDatalist.orderInfo.refund_reason_wap_img,
-								);
-							} catch (e) {
-								this.orderDatalist.orderInfo.refund_reason_wap_img = [];
-							}
-						}
-					})
-					.catch((res) => {
-						this.$Message.error(res.msg);
-					});
-			},
-			// 修改成功
-			submitFail() {
-				this.getList();
-				this.$emit('changeGetTabs');
-			},
-			// 获取退款表单数据
-			getRefundData(id) {
-				this.$modalForm(getRefundFrom(id)).then(() => {
-					this.getList();
-					this.$emit('changeGetTabs');
-				});
-			},
-			// 获取退积分表单数据
-			getRefundIntegral(id) {
-				refundIntegral(id)
-					.then(async (res) => {
-						this.FromData = res.data;
-						this.$refs.edits.modals = true;
-					})
-					.catch((res) => {
-						this.$Message.error(res.msg);
-					});
-			},
-			// 不退款表单数据
-			getNoRefundData(id) {
-				this.$modalForm(getnoRefund(id)).then(() => {
-					this.getList();
-					this.$emit('changeGetTabs');
-				});
-			},
-			// 发送货
-			sendOrder(row) {
-				this.$refs.send.total_num = row.total_num;
-				this.$refs.send.modals = true;
-				this.orderId = row.id;
-				this.status = row._status;
-				this.pay_type = row.pay_type;
-				this.virtual_type = row.virtual_type;
-				this.$refs.send.getList();
-				this.$refs.send.getDeliveryList();
-				this.$nextTick((e) => {
-					this.$refs.send.getCartInfo(row._status, row.id);
-				});
-			},
-			// 配送信息表单数据
-			delivery(row) {
-				getDistribution(row.id)
-					.then(async (res) => {
-						this.FromData = res.data;
-						this.$refs.edits.modals = true;
-					})
-					.catch((res) => {
-						this.$Message.error(res.msg);
-					});
-			},
-			change(status) {},
-			// 数据导出;
-			exportData: function() {
-				this.$refs.table.exportCsv({
-					filename: '商品列表',
-				});
-			},
-			// 核销订单
-			bindWrite(row) {
-				let self = this;
-				this.$Modal.confirm({
-					title: '提示',
-					content: '确定要核销该订单吗?',
-					cancelText: '取消',
-					closable: true,
-					maskClosable: true,
-					onOk: function() {
-						writeUpdate(row.order_id)
-							.then((res) => {
-								self.$Message.success(res.msg);
-								self.getList();
-							})
-							.catch((res) => {
-								self.$Message.error(res.msg);
-							});
-					},
-				});
-			},
-		},
-	};
+      });
+    },
+    // 立即支付 /确认收货//删除单条订单
+    submitModel() {
+      this.getList();
+    },
+    pageChange(index) {
+      this.page.pageNum = index;
+      this.getList();
+    },
+    limitChange(limit) {
+      this.page.pageSize = limit;
+      this.getList();
+    },
+    // 订单列表
+    getList(res) {
+      this.page.pageNum = res === 1 ? 1 : this.page.pageNum;
+      this.loading = true;
+      orderList({
+        page: this.page.pageNum,
+        limit: this.page.pageSize,
+        status: this.orderStatus,
+        pay_type: this.orderPayType,
+        data: this.orderTime,
+        real_name: this.orderNum,
+        field_key: this.fieldKey,
+        type: this.orderType === 0 ? '' : this.orderType,
+      })
+        .then(async (res) => {
+          let data = res.data;
+          this.orderList = data.data;
+          this.orderCards = data.stat;
+          this.page.total = data.count;
+          this.$nextTick(() => {
+            //确保dom加载完毕
+            this.setChecked();
+          });
+          this.$emit('on-changeCards', data.stat);
+          this.loading = false;
+        })
+        .catch((res) => {
+          this.loading = false;
+          this.$Message.error(res.msg);
+        });
+    },
+    // 全选
+    // onSelectTab (selection) {
+    //     let isDel = selection.some(item => {
+    //         return item.is_del === 1
+    //     });
+    //     this.getIsDel(isDel);
+    //     this.getisDelIdListl(selection);
+    // },
+    //全选和取消全选时触发
+    handleSelectAll(selection) {
+      if (selection.length === 0) {
+        //获取table的数据;
+        let data = this.$refs.table.data;
+        data.forEach((item) => {
+          if (this.selectedIds.has(item.id)) {
+            this.selectedIds.delete(item.id);
+          }
+        });
+      } else {
+        selection.forEach((item) => {
+          this.selectedIds.add(item.id);
+        });
+      }
+      this.isDel(selection);
+      this.$nextTick(() => {
+        //确保dom加载完毕
+        this.setChecked();
+      });
+    },
+    //  选中某一行
+    handleSelectRow(selection, row) {
+      this.isDel(selection);
+      this.selectedIds.add(row.id);
+      this.$nextTick(() => {
+        //确保dom加载完毕
+        this.setChecked();
+      });
+    },
+    //  取消某一行
+    handleCancelRow(selection, row) {
+      this.isDel(selection);
+      this.selectedIds.delete(row.id);
+      this.$nextTick(() => {
+        //确保dom加载完毕
+        this.setChecked();
+      });
+    },
+    setChecked() {
+      //将new Set()转化为数组
+      let ids = [...this.selectedIds];
+      this.getisDelIdListl(ids);
+      // 找到绑定的table的ref对应的dom,找到table的objData对象,objData保存的是当前页的数据
+      let objData = this.$refs.table.objData;
+      for (let index in objData) {
+        if (this.selectedIds.has(objData[index].id)) {
+          objData[index]._isChecked = true;
+        }
+      }
+    },
+    isDel(selection) {
+      if (selection.findIndex((target) => target.is_del === 0) == -1) {
+        this.getIsDel(1);
+      } else {
+        this.getIsDel(0);
+      }
+    },
+    // 编辑
+    edit(row) {
+      this.getOrderData(row.id);
+    },
+    // 删除单条订单
+    delOrder(row, data) {
+      if (row.is_del === 1) {
+        this.$modalSure(data)
+          .then((res) => {
+            this.$Message.success(res.msg);
+            this.getList();
+          })
+          .catch((res) => {
+            this.$Message.error(res.msg);
+          });
+      } else {
+        const title = '错误!';
+        const content = '<p>您选择的的订单存在用户未删除的订单,无法删除用户未删除的订单!</p>';
+        this.$Modal.error({
+          title: title,
+          content: content,
+        });
+      }
+    },
+    splitOrderDetail(row) {
+      this.$router.push({
+        path: 'split_list',
+        query: {
+          id: row.id,
+        },
+      });
+    },
+    // 获取编辑表单数据
+    getOrderData(id) {
+      getOrdeDatas(id)
+        .then(async (res) => {
+          if (res.data.status === false) {
+            return this.$authLapse(res.data);
+          }
+          this.$authLapse(res.data);
+          this.FromData = res.data;
+          this.$refs.edits.modals = true;
+        })
+        .catch((res) => {
+          this.$Message.error(res.msg);
+        });
+    },
+    // 获取详情表单数据
+    getData(id) {
+      getDataInfo(id)
+        .then(async (res) => {
+          this.$refs.details.modals = true;
+          this.orderDatalist = res.data;
+          if (this.orderDatalist.orderInfo.refund_reason_wap_img) {
+            try {
+              this.orderDatalist.orderInfo.refund_reason_wap_img = JSON.parse(
+                this.orderDatalist.orderInfo.refund_reason_wap_img,
+              );
+            } catch (e) {
+              this.orderDatalist.orderInfo.refund_reason_wap_img = [];
+            }
+          }
+        })
+        .catch((res) => {
+          this.$Message.error(res.msg);
+        });
+    },
+    // 修改成功
+    submitFail() {
+      this.getList();
+      this.$emit('changeGetTabs');
+    },
+    // 获取退款表单数据
+    getRefundData(id) {
+      this.$modalForm(getRefundFrom(id)).then(() => {
+        this.getList();
+        this.$emit('changeGetTabs');
+      });
+    },
+    // 获取退积分表单数据
+    getRefundIntegral(id) {
+      refundIntegral(id)
+        .then(async (res) => {
+          this.FromData = res.data;
+          this.$refs.edits.modals = true;
+        })
+        .catch((res) => {
+          this.$Message.error(res.msg);
+        });
+    },
+    // 不退款表单数据
+    getNoRefundData(id) {
+      this.$modalForm(getnoRefund(id)).then(() => {
+        this.getList();
+        this.$emit('changeGetTabs');
+      });
+    },
+    // 发送货
+    sendOrder(row) {
+      this.$refs.send.total_num = row.total_num;
+      this.$refs.send.modals = true;
+      this.orderId = row.id;
+      this.status = row._status;
+      this.pay_type = row.pay_type;
+      this.virtual_type = row.virtual_type;
+      this.$refs.send.getList();
+      this.$refs.send.getDeliveryList();
+      this.$nextTick((e) => {
+        this.$refs.send.getCartInfo(row._status, row.id);
+      });
+    },
+    // 配送信息表单数据
+    delivery(row) {
+      getDistribution(row.id)
+        .then(async (res) => {
+          this.FromData = res.data;
+          this.$refs.edits.modals = true;
+        })
+        .catch((res) => {
+          this.$Message.error(res.msg);
+        });
+    },
+    change(status) {},
+    // 数据导出;
+    exportData: function () {
+      this.$refs.table.exportCsv({
+        filename: '商品列表',
+      });
+    },
+    // 核销订单
+    bindWrite(row) {
+      let self = this;
+      this.$Modal.confirm({
+        title: '提示',
+        content: '确定要核销该订单吗?',
+        cancelText: '取消',
+        closable: true,
+        maskClosable: true,
+        onOk: function () {
+          writeUpdate(row.order_id)
+            .then((res) => {
+              self.$Message.success(res.msg);
+              self.getList();
+            })
+            .catch((res) => {
+              self.$Message.error(res.msg);
+            });
+        },
+      });
+    },
+  },
+};
 </script>
 
 <style scoped lang="stylus">
-	img {
-		height: 36px;
-		display: block;
-	}
+img {
+  height: 36px;
+  display: block;
+}
 
-	.tabBox {
-		width: 100%;
-		height: 100%;
-		display: flex;
-		align-items: center;
-		margin-bottom: 2px;
+.tabBox {
+  width: 100%;
+  height: 100%;
+  display: flex;
+  align-items: center;
+  margin-bottom: 2px;
 
-		.tabBox_img {
-			width: 36px;
-			height: 36px;
+  .tabBox_img {
+    width: 36px;
+    height: 36px;
 
-			img {
-				width: 100%;
-				height: 100%;
-			}
-		}
+    img {
+      width: 100%;
+      height: 100%;
+    }
+  }
 
-		.tabBox_tit {
-			width: 60%;
-			font-size: 12px !important;
-			margin: 0 10px 0 10px;
-			letter-spacing: 1px;
-			padding: 5px 0;
-			box-sizing: border-box;
-		}
-	}
+  .tabBox_tit {
+    width: 60%;
+    font-size: 12px !important;
+    margin: 0 10px 0 10px;
+    letter-spacing: 1px;
+    padding: 5px 0;
+    box-sizing: border-box;
+  }
+}
 
-	.orderData>>>.ivu-table-cell {
-		padding-left: 0 !important;
-	}
+.orderData >>>.ivu-table-cell {
+  padding-left: 0 !important;
+}
 
-	.vertical-center-modal {
-		display: flex;
-		align-items: center;
-		justify-content: center;
-	}
+.vertical-center-modal {
+  display: flex;
+  align-items: center;
+  justify-content: center;
+}
 
-	.nickname {}
+.nickname {
+}
 
-	.uid {
-		color: #2d8cf0;
-	}
+.uid {
+  color: #2d8cf0;
+}
 
-	.pink_name {
-		color: #666;
-	}
+.pink_name {
+  color: #666;
+}
 
-	.img {
-		display: flex;
-		flex-wrap: wrap;
+.img {
+  display: flex;
+  flex-wrap: wrap;
 
-		img {
-			width: 30px;
-			height: 30px;
-			margin-right: 3px;
-		}
-	}
-</style>
+  img {
+    width: 30px;
+    height: 30px;
+    margin-right: 3px;
+  }
+}
+</style>

+ 282 - 257
src/pages/order/orderList/handle/orderDetails.vue

@@ -1,22 +1,23 @@
 <template>
-	<div v-if="orderDatalist">
-		<Drawer title="订单详情" :closable="false" width="700" v-model="modals" scrollable>
-			<Card :bordered="false" dis-hover class="i-table-no-border">
-				<div class="ivu-description-list-title">收货信息</div>
-				<Row class="mb10">
-					<Col span="12">用户昵称:{{ orderDatalist.userInfo.nickname }}</Col>
-					<Col span="12">收货人:{{ orderDatalist.orderInfo.real_name }}</Col>
-				</Row>
-				<Row class="mb10">
-					<Col span="12">联系电话:{{ orderDatalist.orderInfo.user_phone || '' }}</Col>
-					<Col span="12">收货地址:{{ orderDatalist.orderInfo.user_address || '' }}</Col>
-				</Row>
-				<Divider style="margin: 20px 0 !important" />
-				<div class="ivu-description-list-title">订单信息</div>
-				<Row class="mb10">
-					<Col span="12">订单ID:{{ orderDatalist.orderInfo.order_id }}</Col>
-					<Col span="12" class="fontColor1">订单状态:{{ orderDatalist.orderInfo._status._title }}
-					{{
+  <div v-if="orderDatalist">
+    <Drawer title="订单详情" :closable="false" width="700" v-model="modals" scrollable>
+      <Card :bordered="false" dis-hover class="i-table-no-border">
+        <div class="ivu-description-list-title">收货信息</div>
+        <Row class="mb10">
+          <Col span="12">用户昵称:{{ orderDatalist.userInfo.nickname }}</Col>
+          <Col span="12">收货人:{{ orderDatalist.orderInfo.real_name }}</Col>
+        </Row>
+        <Row class="mb10">
+          <Col span="12">联系电话:{{ orderDatalist.orderInfo.user_phone || '' }}</Col>
+          <Col span="12">收货地址:{{ orderDatalist.orderInfo.user_address || '' }}</Col>
+        </Row>
+        <Divider style="margin: 20px 0 !important" />
+        <div class="ivu-description-list-title">订单信息</div>
+        <Row class="mb10">
+          <Col span="12">订单ID:{{ orderDatalist.orderInfo.order_id }}</Col>
+          <Col span="12" class="fontColor1"
+            >订单状态:{{ orderDatalist.orderInfo._status._title }}
+            {{
               orderDatalist.orderInfo.refund &&
               orderDatalist.orderInfo.refund.length &&
               orderDatalist.orderInfo.refund_status < 2
@@ -25,274 +26,298 @@
                   : '部分退款中'
                 : ''
             }}
-					</Col>
-				</Row>
-				<Row class="mb10">
-					<Col span="12">商品总数:{{ orderDatalist.orderInfo.total_num }}</Col>
-					<Col span="12">商品总价:{{ orderDatalist.orderInfo.total_price }}</Col>
-				</Row>
-				<Row class="mb10">
-					<Col span="12">交付邮费:{{ orderDatalist.orderInfo.pay_postage }}</Col>
-					<Col span="12">优惠券金额:{{ orderDatalist.orderInfo.coupon_price }}</Col>
-				</Row>
-				<Row class="mb10">
-					<Col span="12">用户等级优惠:{{ orderDatalist.orderInfo.levelPrice || 0.0 }}</Col>
-					<Col span="12">付费会员优惠:{{ orderDatalist.orderInfo.memberPrice || 0.0 }}</Col>
-				</Row>
-				<Row class="mb10">
-					<Col span="12">积分抵扣:{{ orderDatalist.orderInfo.deduction_price || 0.0 }}</Col>
-					<Col span="12">实际支付:{{ orderDatalist.orderInfo.pay_price }}</Col>
-				</Row>
-				<Row class="mb10">
-					<Col span="12" class="fontColor3 mb10"
-						v-if="parseFloat(orderDatalist.orderInfo.refund_price) && orderDatalist.orderInfo.refund_type != 3">
-					退款金额:{{ parseFloat(orderDatalist.orderInfo.refund_price) }}</Col>
-					<Col span="12" class="fontColor3 mb10" v-if="parseFloat(orderDatalist.orderInfo.use_integral)">
-					使用积分:{{ parseFloat(orderDatalist.orderInfo.use_integral) }}</Col>
-					<Col span="12" class="fontColor3 mb10" v-if="parseFloat(orderDatalist.orderInfo.back_integral)">
-					退回积分:{{ parseFloat(orderDatalist.orderInfo.back_integral) }}</Col>
-					<Col span="12" class="fontColor3 mb10"
-						v-if="parseFloat(orderDatalist.orderInfo.gain_integral) && orderDatalist.orderInfo.paid == 1">
-					赠送积分:{{ parseFloat(orderDatalist.orderInfo.gain_integral) }}</Col>
-					<Col span="12" class="mb10">创建时间:{{ orderDatalist.orderInfo._add_time }}</Col>
-					<Col span="12" class="mb10">支付时间:{{ orderDatalist.orderInfo._pay_time }}</Col>
-					<Col span="12" class="mb10">支付方式:{{ orderDatalist.orderInfo._status._payType }}</Col>
-					<Col span="12" class="mb10" v-if="is_refund != 1">
-					推广人:{{ orderDatalist.orderInfo.spread_name + '/' + orderDatalist.orderInfo.spread_uid }}</Col>
-					<Col span="12" class="mb10" v-if="
+          </Col>
+        </Row>
+        <Row class="mb10">
+          <Col span="12">商品总数:{{ orderDatalist.orderInfo.total_num }}</Col>
+          <Col span="12">商品总价:{{ orderDatalist.orderInfo.total_price }}</Col>
+        </Row>
+        <Row class="mb10">
+          <Col span="12">交付邮费:{{ orderDatalist.orderInfo.pay_postage }}</Col>
+          <Col span="12">优惠券金额:{{ orderDatalist.orderInfo.coupon_price }}</Col>
+        </Row>
+        <Row class="mb10">
+          <Col span="12">用户等级优惠:{{ orderDatalist.orderInfo.levelPrice || 0.0 }}</Col>
+          <Col span="12">付费会员优惠:{{ orderDatalist.orderInfo.memberPrice || 0.0 }}</Col>
+        </Row>
+        <Row class="mb10">
+          <Col span="12">积分抵扣:{{ orderDatalist.orderInfo.deduction_price || 0.0 }}</Col>
+          <Col span="12">实际支付:{{ orderDatalist.orderInfo.pay_price }}</Col>
+        </Row>
+        <Row class="mb10">
+          <Col
+            span="12"
+            class="fontColor3 mb10"
+            v-if="parseFloat(orderDatalist.orderInfo.refund_price) && orderDatalist.orderInfo.refund_type != 3"
+            >退款金额:{{ parseFloat(orderDatalist.orderInfo.refund_price) }}</Col
+          >
+          <Col span="12" class="fontColor3 mb10" v-if="parseFloat(orderDatalist.orderInfo.use_integral)"
+            >使用积分:{{ parseFloat(orderDatalist.orderInfo.use_integral) }}</Col
+          >
+          <Col span="12" class="fontColor3 mb10" v-if="parseFloat(orderDatalist.orderInfo.back_integral)"
+            >退回积分:{{ parseFloat(orderDatalist.orderInfo.back_integral) }}</Col
+          >
+          <Col span="12" class="fontColor3 mb10" v-if="parseFloat(orderDatalist.orderInfo.gain_integral) && orderDatalist.orderInfo.paid == 1"
+            >赠送积分:{{ parseFloat(orderDatalist.orderInfo.gain_integral) }}</Col
+          >
+          <Col span="12" class="mb10">创建时间:{{ orderDatalist.orderInfo._add_time }}</Col>
+          <Col span="12" class="mb10">支付时间:{{ orderDatalist.orderInfo._pay_time }}</Col>
+          <Col span="12" class="mb10">支付方式:{{ orderDatalist.orderInfo._status._payType }}</Col>
+          <Col span="12" class="mb10" v-if="is_refund != 1"
+            >推广人:{{ orderDatalist.orderInfo.spread_name + '/' + orderDatalist.orderInfo.spread_uid }}</Col
+          >
+          <Col
+            span="12"
+            class="mb10"
+            v-if="
               orderDatalist.orderInfo.shipping_type === 2 &&
               orderDatalist.orderInfo.refund_status === 0 &&
               orderDatalist.orderInfo.paid === 1
-            ">门店名称:{{ orderDatalist.orderInfo._store_name }}</Col>
-					<Col span="12" class="mb10" v-if="
+            "
+            >门店名称:{{ orderDatalist.orderInfo._store_name }}</Col
+          >
+          <Col
+            span="12"
+            class="mb10"
+            v-if="
               orderDatalist.orderInfo.shipping_type === 2 &&
               orderDatalist.orderInfo.refund_status === 0 &&
               orderDatalist.orderInfo.paid === 1
-            ">核销码:{{ orderDatalist.orderInfo.verify_code }}</Col>
-					<Col span="24" class="mb10" v-if="orderDatalist.orderInfo.remark">
-					商家备注:{{ orderDatalist.orderInfo.remark }}</Col>
-					<Col span="24" class="mb10" v-if="orderDatalist.orderInfo.fictitious_content">
-					虚拟发货备注:{{ orderDatalist.orderInfo.fictitious_content }}</Col>
-				</Row>
-				<Divider style="margin: 20px 0 !important" v-if="orderDatalist.orderInfo.custom_form.length" />
-				<div class="ivu-description-list-title" v-if="orderDatalist.orderInfo.custom_form.length">表单信息</div>
-				<Row class="mb10" v-if="orderDatalist.orderInfo.custom_form.length">
-					<Col class="mb10" :span="item.label !== 'text' ? 12 : 24" v-if="item.label !== 'img'"
-						v-for="(item, index) in orderDatalist.orderInfo.custom_form" :key="index">
-					{{ item.title }}:{{ item.value }}</Col>
-					<Col span="24" v-else>
-					<div>{{ item.title }}:</div>
-					<div class="pic">
-						<div v-for="(img, i) in item.value" :key="i" class="img">
-							<img v-viewer :src="img" alt="" />
-						</div>
-					</div>
-					</Col>
-				</Row>
-				<div v-if="orderDatalist.orderInfo.delivery_type === 'express'">
-					<Divider style="margin: 20px 0 !important" />
-					<div class="ivu-description-list-title">物流信息</div>
-					<Row class="mb10">
-						<Col span="12">快递公司:{{ orderDatalist.orderInfo.delivery_name }}</Col>
-						<Col span="12">快递单号:{{ orderDatalist.orderInfo.delivery_id }}
-						<Button type="info" size="small" @click="openLogistics">物流查询</Button></Col>
-					</Row>
-				</div>
-				<div v-if="orderDatalist.orderInfo.delivery_type === 'send'">
-					<Divider style="margin: 20px 0 !important" />
-					<div class="ivu-description-list-title">配送信息</div>
-					<Row class="mb10">
-						<Col span="12">送货人姓名:{{ orderDatalist.orderInfo.delivery_name }}</Col>
-						<Col span="12">送货人电话:{{ orderDatalist.orderInfo.delivery_id }}</Col>
-					</Row>
-				</div>
-				<div v-if="orderDatalist.orderInfo.mark">
-					<Divider style="margin: 20px 0 !important" v-if="orderDatalist.orderInfo.mark" />
-					<div class="ivu-description-list-title" v-if="orderDatalist.orderInfo.mark">备注信息</div>
-					<Row class="mb10">
-						<Col span="12" class="fontColor2">{{ orderDatalist.orderInfo.mark }}</Col>
-					</Row>
-				</div>
-			</Card>
-		</Drawer>
-		<Modal v-model="modal2" scrollable title="物流查询" width="350" class="order_box2">
-			<div class="logistics acea-row row-top">
-				<div class="logistics_img">
-					<img src="../../../../assets/images/expressi.jpg" />
-				</div>
-				<div class="logistics_cent">
-					<span>物流公司:{{ orderDatalist.orderInfo.delivery_name }}</span>
-					<span>物流单号:{{ orderDatalist.orderInfo.delivery_id }}</span>
-				</div>
-			</div>
-			<div class="acea-row row-column-around trees-coadd">
-				<div class="scollhide">
-					<Timeline>
-						<TimelineItem v-for="(item, i) in result" :key="i">
-							<p class="time" v-text="item.time"></p>
-							<p class="content" v-text="item.status"></p>
-						</TimelineItem>
-					</Timeline>
-				</div>
-			</div>
-		</Modal>
-	</div>
+            "
+            >核销码:{{ orderDatalist.orderInfo.verify_code }}</Col
+          >
+          <Col span="24" class="mb10" v-if="orderDatalist.orderInfo.remark"
+            >商家备注:{{ orderDatalist.orderInfo.remark }}</Col
+          >
+          <Col span="24" class="mb10" v-if="orderDatalist.orderInfo.fictitious_content"
+            >虚拟发货备注:{{ orderDatalist.orderInfo.fictitious_content }}</Col
+          >
+        </Row>
+        <Divider style="margin: 20px 0 !important" v-if="orderDatalist.orderInfo.custom_form.length" />
+        <div class="ivu-description-list-title" v-if="orderDatalist.orderInfo.custom_form.length">表单信息</div>
+        <Row class="mb10" v-if="orderDatalist.orderInfo.custom_form.length">
+          <Col
+            class="mb10"
+            :span="item.label !== 'text' ? 12 : 24"
+            v-if="item.label !== 'img'"
+            v-for="(item, index) in orderDatalist.orderInfo.custom_form"
+            :key="index"
+            >{{ item.title }}:{{ item.value }}</Col
+          >
+          <Col span="24" v-else>
+            <div>{{ item.title }}:</div>
+            <div class="pic">
+              <div v-for="(img, i) in item.value" :key="i" class="img">
+                <img v-viewer :src="img" alt="" />
+              </div>
+            </div>
+          </Col>
+        </Row>
+        <div v-if="orderDatalist.orderInfo.delivery_type === 'express'">
+          <Divider style="margin: 20px 0 !important" />
+          <div class="ivu-description-list-title">物流信息</div>
+          <Row class="mb10">
+            <Col span="12">快递公司:{{ orderDatalist.orderInfo.delivery_name }}</Col>
+            <Col span="12"
+              >快递单号:{{ orderDatalist.orderInfo.delivery_id }}
+              <Button type="info" size="small" @click="openLogistics">物流查询</Button></Col
+            >
+          </Row>
+        </div>
+        <div v-if="orderDatalist.orderInfo.delivery_type === 'send'">
+          <Divider style="margin: 20px 0 !important" />
+          <div class="ivu-description-list-title">配送信息</div>
+          <Row class="mb10">
+            <Col span="12">送货人姓名:{{ orderDatalist.orderInfo.delivery_name }}</Col>
+            <Col span="12">送货人电话:{{ orderDatalist.orderInfo.delivery_id }}</Col>
+          </Row>
+        </div>
+        <div v-if="orderDatalist.orderInfo.mark">
+          <Divider style="margin: 20px 0 !important" v-if="orderDatalist.orderInfo.mark" />
+          <div class="ivu-description-list-title" v-if="orderDatalist.orderInfo.mark">备注信息</div>
+          <Row class="mb10">
+            <Col span="12" class="fontColor2">{{ orderDatalist.orderInfo.mark }}</Col>
+          </Row>
+        </div>
+      </Card>
+    </Drawer>
+    <Modal v-model="modal2" scrollable title="物流查询" width="350" class="order_box2">
+      <div class="logistics acea-row row-top">
+        <div class="logistics_img">
+          <img src="../../../../assets/images/expressi.jpg" />
+        </div>
+        <div class="logistics_cent">
+          <span>物流公司:{{ orderDatalist.orderInfo.delivery_name }}</span>
+          <span>物流单号:{{ orderDatalist.orderInfo.delivery_id }}</span>
+        </div>
+      </div>
+      <div class="acea-row row-column-around trees-coadd">
+        <div class="scollhide">
+          <Timeline>
+            <TimelineItem v-for="(item, i) in result" :key="i">
+              <p class="time" v-text="item.time"></p>
+              <p class="content" v-text="item.status"></p>
+            </TimelineItem>
+          </Timeline>
+        </div>
+      </div>
+    </Modal>
+  </div>
 </template>
 
 <script>
-	import {
-		getExpress
-	} from '@/api/order';
-	export default {
-		name: 'orderDetails',
-		data() {
-			return {
-				modal2: false,
-				modals: false,
-				grid: {
-					xl: 8,
-					lg: 8,
-					md: 12,
-					sm: 24,
-					xs: 24,
-				},
-				result: [],
-			};
-		},
-		props: {
-			orderDatalist: Object,
-			orderId: Number,
-			is_refund: Number,
-		},
-		methods: {
-			openLogistics() {
-				this.getOrderData();
-				this.modal2 = true;
-			},
-			// 获取订单物流信息
-			getOrderData() {
-				getExpress(this.orderId)
-					.then(async (res) => {
-						this.result = res.data.result;
-					})
-					.catch((res) => {
-						this.$Message.error(res.msg);
-					});
-			},
-		},
-		computed: {},
-	};
+import { getExpress } from '@/api/order';
+export default {
+  name: 'orderDetails',
+  data() {
+    return {
+      modal2: false,
+      modals: false,
+      grid: {
+        xl: 8,
+        lg: 8,
+        md: 12,
+        sm: 24,
+        xs: 24,
+      },
+      result: [],
+    };
+  },
+  props: {
+    orderDatalist: Object,
+    orderId: Number,
+    is_refund: Number,
+  },
+  methods: {
+    openLogistics() {
+      this.getOrderData();
+      this.modal2 = true;
+    },
+    // 获取订单物流信息
+    getOrderData() {
+      getExpress(this.orderId)
+        .then(async (res) => {
+          this.result = res.data.result;
+        })
+        .catch((res) => {
+          this.$Message.error(res.msg);
+        });
+    },
+  },
+  computed: {},
+};
 </script>
+
 <style scoped lang="stylus">
-	.ivu-description-list-title {
-		margin-bottom: 16px;
-		color: #17233d;
-		font-weight: 500;
-		font-size: 14px;
-	}
+.ivu-description-list-title {
+  margin-bottom: 16px;
+  color: #17233d;
+  font-weight: 500;
+  font-size: 14px;
+}
 
-	.logistics {
-		align-items: center;
-		padding: 10px 0px;
+.logistics {
+  align-items: center;
+  padding: 10px 0px;
 
-		.logistics_img {
-			width: 45px;
-			height: 45px;
-			margin-right: 12px;
+  .logistics_img {
+    width: 45px;
+    height: 45px;
+    margin-right: 12px;
 
-			img {
-				width: 100%;
-				height: 100%;
-			}
-		}
+    img {
+      width: 100%;
+      height: 100%;
+    }
+  }
 
-		.logistics_cent {
-			span {
-				display: block;
-				font-size: 12px;
-			}
-		}
-	}
+  .logistics_cent {
+    span {
+      display: block;
+      font-size: 12px;
+    }
+  }
+}
 
-	.trees-coadd {
-		width: 100%;
-		height: 400px;
-		border-radius: 4px;
-		overflow: hidden;
+.trees-coadd {
+  width: 100%;
+  height: 400px;
+  border-radius: 4px;
+  overflow: hidden;
 
-		.scollhide {
-			width: 100%;
-			height: 100%;
-			overflow: auto;
-			margin-left: 18px;
-			padding: 10px 0 10px 0;
-			box-sizing: border-box;
+  .scollhide {
+    width: 100%;
+    height: 100%;
+    overflow: auto;
+    margin-left: 18px;
+    padding: 10px 0 10px 0;
+    box-sizing: border-box;
 
-			.content {
-				font-size: 12px;
-			}
+    .content {
+      font-size: 12px;
+    }
 
-			.time {
-				font-size: 12px;
-				color: #2d8cf0;
-			}
-		}
-	}
+    .time {
+      font-size: 12px;
+      color: #2d8cf0;
+    }
+  }
+}
 
-	.order_box2 {
-		position: absolute;
-		z-index: 999999999;
-	}
+.order_box2 {
+  position: absolute;
+  z-index: 999999999;
+}
 
-	.order_box>>>.ivu-modal-header {
-		padding: 30x 16px !important;
-	}
+.order_box >>> .ivu-modal-header {
+  padding: 30x 16px !important;
+}
 
-	.order_box>>>.ivu-card {
-		font-size: 12px !important;
-	}
+.order_box >>> .ivu-card {
+  font-size: 12px !important;
+}
 
-	.fontColor1 {
-		color: red !important;
-	}
+.fontColor1 {
+  color: red !important;
+}
 
-	.fontColor2 {
-		color: #733AF9 !important;
-	}
+.fontColor2 {
+  color: #733AF9 !important;
+}
 
-	.order_box>>>.ivu-description-term {
-		padding-bottom: 10px !important;
-	}
+.order_box >>> .ivu-description-term {
+  padding-bottom: 10px !important;
+}
 
-	.order_box>>>.ivu-description-detail {
-		padding-bottom: 10px !important;
-	}
+.order_box >>> .ivu-description-detail {
+  padding-bottom: 10px !important;
+}
 
-	.order_box>>>.ivu-modal-body {
-		padding: 0 16px !important;
-	}
+.order_box >>> .ivu-modal-body {
+  padding: 0 16px !important;
+}
 
-	.fontColor3 {
-		color: #f1a417 !important;
-	}
+.fontColor3 {
+  color: #f1a417 !important;
+}
 
-	.fontColor3 {
-		color: #f1a417 !important;
-	}
+.fontColor3 {
+  color: #f1a417 !important;
+}
 
-	.pic {
-		display: flex;
-		flex-wrap: wrap;
-	}
+.pic {
+  display: flex;
+  flex-wrap: wrap;
+}
 
-	.img {
-		width: 100px;
-		height: 100px;
-		margin: 10px 10px;
+.img {
+  width: 100px;
+  height: 100px;
+  margin: 10px 10px;
 
-		img {
-			width: 100%;
-			height: 100%;
-		}
-	}
-</style>
+  img {
+    width: 100%;
+    height: 100%;
+  }
+}
+</style>

+ 80 - 77
src/pages/order/orderList/handle/orderRecord.vue

@@ -1,83 +1,86 @@
 <template>
-	<Drawer title="订单记录" :closable="false" width="700" scrollable v-model="modals">
-		<Card :bordered="false" dis-hover>
-			<Table :columns="columns" border :data="recordData" :loading="loading" no-data-text="暂无数据" highlight-row
-				no-filtered-data-text="暂无筛选结果"></Table>
-			<!--            <div class="acea-row row-right page">-->
-			<!--                <Page :total="recordData.length" show-elevator show-total @on-change="pageChange"-->
-			<!--                      :page-size="page.limit"/>-->
-			<!--            </div>-->
-		</Card>
-	</Drawer>
+  <Drawer title="订单记录" :closable="false" width="700" scrollable v-model="modals">
+    <Card :bordered="false" dis-hover>
+      <Table
+        :columns="columns"
+        border
+        :data="recordData"
+        :loading="loading"
+        no-data-text="暂无数据"
+        highlight-row
+        no-filtered-data-text="暂无筛选结果"
+      ></Table>
+      <!--            <div class="acea-row row-right page">-->
+      <!--                <Page :total="recordData.length" show-elevator show-total @on-change="pageChange"-->
+      <!--                      :page-size="page.limit"/>-->
+      <!--            </div>-->
+    </Card>
+  </Drawer>
 </template>
+
 <script>
-	import {
-		getOrderRecord
-	} from '@/api/order';
-	export default {
-		name: 'orderRecord',
-		data() {
-			return {
-				modals: false,
-				loading: false,
-				recordData: [],
-				page: {
-					page: 1, // 当前页
-					limit: 10, // 每页显示条数
-				},
-				columns: [{
-						title: '订单ID',
-						key: 'oid',
-						align: 'center',
-						minWidth: 40,
-					},
-					{
-						title: '操作记录',
-						key: 'change_message',
-						align: 'center',
-						minWidth: 280,
-					},
-					{
-						title: '操作时间',
-						key: 'change_time',
-						align: 'center',
-						minWidth: 100,
-					},
-				],
-			};
-		},
-		methods: {
-			pageChange(index) {
-				this.page.pageNum = index;
-				this.getList();
-			},
-			getList(id) {
-				let data = {
-					id: id,
-					datas: this.page,
-				};
-				this.loading = true;
-				getOrderRecord(data)
-					.then(async (res) => {
-						this.recordData = res.data;
-						this.loading = false;
-					})
-					.catch((res) => {
-						this.loading = false;
-						this.$Message.error(res.msg);
-					});
-			},
-		},
-	};
+import { getOrderRecord } from '@/api/order';
+export default {
+  name: 'orderRecord',
+  data() {
+    return {
+      modals: false,
+      loading: false,
+      recordData: [],
+      page: {
+        page: 1, // 当前页
+        limit: 10, // 每页显示条数
+      },
+      columns: [
+        {
+          title: '订单ID',
+          key: 'oid',
+          align: 'center',
+          minWidth: 40,
+        },
+        {
+          title: '操作记录',
+          key: 'change_message',
+          align: 'center',
+          minWidth: 280,
+        },
+        {
+          title: '操作时间',
+          key: 'change_time',
+          align: 'center',
+          minWidth: 100,
+        },
+      ],
+    };
+  },
+  methods: {
+    pageChange(index) {
+      this.page.pageNum = index;
+      this.getList();
+    },
+    getList(id) {
+      let data = {
+        id: id,
+        datas: this.page,
+      };
+      this.loading = true;
+      getOrderRecord(data)
+        .then(async (res) => {
+          this.recordData = res.data;
+          this.loading = false;
+        })
+        .catch((res) => {
+          this.loading = false;
+          this.$Message.error(res.msg);
+        });
+    },
+  },
+};
 </script>
 
 <style scoped lang="stylus">
-	.ivu-table-wrapper {
-		border-left: 1px solid #dcdee2;
-		border-top: 1px solid #dcdee2;
-	}
-
-	.order_box>>>.ivu-table th {
-		background: #f8f8f9 !important;
-	}
-</style>
+.ivu-table-wrapper
+  border-left: 1px solid #dcdee2;
+  border-top: 1px solid #dcdee2;
+.order_box >>> .ivu-table th{background: #f8f8f9 !important;}
+</style>

+ 73 - 72
src/pages/order/orderList/handle/orderRemark.vue

@@ -1,77 +1,78 @@
 <template>
-	<Modal v-model="modals" scrollable title="请修改内容" class="order_box" :closable="false">
-		<Form ref="formValidate" :model="formValidate" :rules="ruleValidate" :label-width="80" @submit.native.prevent>
-			<FormItem label="备注:" prop="remark">
-				<Input v-model="formValidate.remark" :maxlength="200" show-word-limit type="textarea" placeholder="订单备注"
-					style="width: 100%" />
-			</FormItem>
-		</Form>
-		<div slot="footer">
-			<Button type="primary" @click="putRemark('formValidate')">提交</Button>
-			<Button @click="cancel('formValidate')">取消</Button>
-		</div>
-	</Modal>
+  <Modal v-model="modals" scrollable title="请修改内容" class="order_box" :closable="false">
+    <Form ref="formValidate" :model="formValidate" :rules="ruleValidate" :label-width="80" @submit.native.prevent>
+      <FormItem label="备注:" prop="remark">
+        <Input
+          v-model="formValidate.remark"
+          :maxlength="200"
+          show-word-limit
+          type="textarea"
+          placeholder="订单备注"
+          style="width: 100%"
+        />
+      </FormItem>
+    </Form>
+    <div slot="footer">
+      <Button type="primary" @click="putRemark('formValidate')">提交</Button>
+      <Button @click="cancel('formValidate')">取消</Button>
+    </div>
+  </Modal>
 </template>
+
 <script>
-	import {
-		putRemarkData,
-		putRefundRemarkData
-	} from '@/api/order';
-	export default {
-		name: 'orderMark',
-		data() {
-			return {
-				formValidate: {
-					remark: '',
-				},
-				modals: false,
-				ruleValidate: {
-					remark: [{
-							required: true,
-							message: '请输入备注信息',
-							trigger: 'blur'
-						},
-						// { type: 'string', min: 20, message: 'Introduce no less than 20 words', trigger: 'blur' }
-					],
-				},
-			};
-		},
-		props: {
-			orderId: Number,
-			remarkType: {
-				default: '',
-				type: String,
-			},
-		},
-		methods: {
-			cancel(name) {
-				this.modals = false;
-				this.$refs[name].resetFields();
-			},
-			putRemark(name) {
-				let data = {
-					id: this.orderId,
-					remark: this.formValidate,
-				};
-				this.$refs[name].validate((valid) => {
-					if (valid) {
-						(this.remarkType ? putRefundRemarkData : putRemarkData)(data)
-						.then(async (res) => {
-								this.$Message.success(res.msg);
-								this.modals = false;
-								this.$refs[name].resetFields();
-								this.$emit('submitFail');
-							})
-							.catch((res) => {
-								this.$Message.error(res.msg);
-							});
-					} else {
-						this.$Message.warning('请填写备注信息');
-					}
-				});
-			},
-		},
-	};
+import { putRemarkData, putRefundRemarkData } from '@/api/order';
+export default {
+  name: 'orderMark',
+  data() {
+    return {
+      formValidate: {
+        remark: '',
+      },
+      modals: false,
+      ruleValidate: {
+        remark: [
+          { required: true, message: '请输入备注信息', trigger: 'blur' },
+          // { type: 'string', min: 20, message: 'Introduce no less than 20 words', trigger: 'blur' }
+        ],
+      },
+    };
+  },
+  props: {
+    orderId: Number,
+    remarkType: {
+      default: '',
+      type: String,
+    },
+  },
+  methods: {
+    cancel(name) {
+      this.modals = false;
+      this.$refs[name].resetFields();
+    },
+    putRemark(name) {
+      let data = {
+        id: this.orderId,
+        remark: this.formValidate,
+      };
+      this.$refs[name].validate((valid) => {
+        if (valid) {
+          (this.remarkType ? putRefundRemarkData : putRemarkData)(data)
+            .then(async (res) => {
+              this.$Message.success(res.msg);
+              this.modals = false;
+              this.$refs[name].resetFields();
+              this.$emit('submitFail');
+            })
+            .catch((res) => {
+              this.$Message.error(res.msg);
+            });
+        } else {
+          this.$Message.warning('请填写备注信息');
+        }
+      });
+    },
+  },
+};
 </script>
 
-<style scoped></style>
+<style scoped></style>

+ 562 - 533
src/pages/order/orderList/handle/orderSend.vue

@@ -1,547 +1,576 @@
 <template>
-	<Modal v-model="modals" scrollable title="订单发送货" class="order_box" :closable="false" width="1000"
-		@on-visible-change="changeModal">
-		<Form v-if="modals" ref="formItem" :model="formItem" :label-width="100" @submit.native.prevent>
-			<FormItem label="选择类型:">
-				<RadioGroup v-model="formItem.type" @on-change="changeRadio">
-					<Radio label="1" v-if="virtual_type !== 3">发货</Radio>
-					<Radio label="2" v-if="virtual_type !== 3">送货</Radio>
-					<Radio label="3">无需配送</Radio>
-				</RadioGroup>
-			</FormItem>
-			<FormItem v-if="formItem.type == 1" v-show="export_open" label="发货类型:">
-				<RadioGroup v-model="formItem.express_record_type" @on-change="changeExpress">
-					<Radio label="1">手动填写</Radio>
-					<Radio label="2">电子面单打印</Radio>
-				</RadioGroup>
-			</FormItem>
-			<div>
-				<FormItem label="快递公司:" v-if="formItem.type == 1">
-					<Select v-model="formItem.delivery_name" filterable placeholder="请选择快递公司" style="width: 80%"
-						@on-change="expressChange">
-						<Option v-for="(item, i) in express" :value="item.value" :key="item.value">{{ item.value }}
-						</Option>
-					</Select>
-				</FormItem>
-				<FormItem v-if="formItem.express_record_type === '1' && formItem.type == 1" label="快递单号:">
-					<Input v-model="formItem.delivery_id" placeholder="请输入快递单号" style="width: 80%"></Input>
-					<div class="trips" v-if="formItem.delivery_name == '顺丰速运'">
-						<p>顺丰请输入单号 :收件人或寄件人手机号后四位,</p>
-						<p>例如:SF000000000000:3941</p>
-					</div>
-				</FormItem>
-				<template v-if="formItem.express_record_type === '2' && formItem.type == 1">
-					<FormItem label="电子面单:" class="express_temp_id">
-						<Select v-model="formItem.express_temp_id" placeholder="请选择电子面单" style="width: 80%"
-							@on-change="expressTempChange">
-							<Option v-for="(item, i) in expressTemp" :value="item.temp_id" :key="i">{{ item.title }}
-							</Option>
-						</Select>
-						<Button v-if="formItem.express_temp_id" type="text" @click="preview">预览</Button>
-					</FormItem>
-					<FormItem label="寄件人姓名:">
-						<Input v-model="formItem.to_name" placeholder="请输入寄件人姓名" style="width: 80%"></Input>
-					</FormItem>
-					<FormItem label="寄件人电话:">
-						<Input v-model="formItem.to_tel" placeholder="请输入寄件人电话" style="width: 80%"></Input>
-					</FormItem>
-					<FormItem label="寄件人地址:">
-						<Input v-model="formItem.to_addr" placeholder="请输入寄件人地址" style="width: 80%"></Input>
-					</FormItem>
-				</template>
-			</div>
-			<div v-show="formItem.type === '2'">
-				<FormItem label="送货人:">
-					<Select v-model="formItem.sh_delivery" placeholder="请选择送货人" style="width: 80%"
-						@on-change="shDeliveryChange">
-						<Option v-for="(item, i) in deliveryList" :value="item.id" :key="i">
-							{{ item.wx_name }}({{ item.phone }})</Option>
-					</Select>
-				</FormItem>
-			</div>
-			<div v-show="formItem.type === '3'">
-				<FormItem label="备注:">
-					<Input v-model="formItem.fictitious_content" type="textarea" :autosize="{ minRows: 2, maxRows: 5 }"
-						placeholder="备注" style="width: 80%"></Input>
-				</FormItem>
-			</div>
-			<div v-if="total_num > 1">
-				<FormItem label="分单发货:">
-					<i-switch size="large" v-model="splitSwitch" :disabled="orderStatus === 8 || orderStatus === 11"
-						@on-change="changeSplitStatus">
-						<span slot="open">开启</span>
-						<span slot="close">关闭</span>
-					</i-switch>
-					<div class="trips">
-						<p>可选择表格中的商品单独发货,发货后会生成新的订单且不能撤回,请谨慎操作!</p>
-					</div>
-					<i-table v-if="splitSwitch && manyFormValidate.length" :data="manyFormValidate"
-						@on-selection-change="selectOne" :columns="header">
-						<template slot-scope="{ row, index }" slot="image">
-							<div class="product-data">
-								<img class="image" :src="row.cart_info.productInfo.image" />
-								<div class="line2">
-									{{ row.cart_info.productInfo.store_name }}
-								</div>
-							</div>
-						</template>
-						<template slot-scope="{ row, index }" slot="value">
-							<div class="product-data">
-								<div>{{ row.cart_info.productInfo.attrInfo.suk }}</div>
-							</div>
-						</template>
-						<template slot-scope="{ row, index }" slot="price">
-							<div class="product-data">
-								<div>{{ row.cart_info.truePrice }}</div>
-							</div>
-						</template>
-					</i-table>
-				</FormItem>
-			</div>
-		</Form>
-		<div slot="footer">
-			<Button @click="cancel">取消</Button>
-			<Button type="primary" @click="putSend">提交</Button>
-		</div>
-		<!-- <viewer @inited="inited">
+  <Modal
+    v-model="modals"
+    scrollable
+    title="订单发送货"
+    class="order_box"
+    :closable="false"
+    width="1000"
+    @on-visible-change="changeModal"
+  >
+    <Form v-if="modals" ref="formItem" :model="formItem" :label-width="100" @submit.native.prevent>
+      <FormItem label="选择类型:">
+        <RadioGroup v-model="formItem.type" @on-change="changeRadio">
+          <Radio label="1" v-if="virtual_type !== 3">发货</Radio>
+          <Radio label="2" v-if="virtual_type !== 3">送货</Radio>
+          <Radio label="3">无需配送</Radio>
+        </RadioGroup>
+      </FormItem>
+      <FormItem v-if="formItem.type == 1" v-show="export_open" label="发货类型:">
+        <RadioGroup v-model="formItem.express_record_type" @on-change="changeExpress">
+          <Radio label="1">手动填写</Radio>
+          <Radio label="2">电子面单打印</Radio>
+        </RadioGroup>
+      </FormItem>
+      <div>
+        <FormItem label="快递公司:" v-if="formItem.type == 1">
+          <Select
+            v-model="formItem.delivery_name"
+            filterable
+            placeholder="请选择快递公司"
+            style="width: 80%"
+            @on-change="expressChange"
+          >
+            <Option v-for="(item, i) in express" :value="item.value" :key="item.value">{{ item.value }}</Option>
+          </Select>
+        </FormItem>
+        <FormItem v-if="formItem.express_record_type === '1' && formItem.type == 1" label="快递单号:">
+          <Input v-model="formItem.delivery_id" placeholder="请输入快递单号" style="width: 80%"></Input>
+          <div class="trips" v-if="formItem.delivery_name == '顺丰速运'">
+            <p>顺丰请输入单号 :收件人或寄件人手机号后四位,</p>
+            <p>例如:SF000000000000:3941</p>
+          </div>
+        </FormItem>
+        <template v-if="formItem.express_record_type === '2' && formItem.type == 1">
+          <FormItem label="电子面单:" class="express_temp_id">
+            <Select
+              v-model="formItem.express_temp_id"
+              placeholder="请选择电子面单"
+              style="width: 80%"
+              @on-change="expressTempChange"
+            >
+              <Option v-for="(item, i) in expressTemp" :value="item.temp_id" :key="i">{{ item.title }}</Option>
+            </Select>
+            <Button v-if="formItem.express_temp_id" type="text" @click="preview">预览</Button>
+          </FormItem>
+          <FormItem label="寄件人姓名:">
+            <Input v-model="formItem.to_name" placeholder="请输入寄件人姓名" style="width: 80%"></Input>
+          </FormItem>
+          <FormItem label="寄件人电话:">
+            <Input v-model="formItem.to_tel" placeholder="请输入寄件人电话" style="width: 80%"></Input>
+          </FormItem>
+          <FormItem label="寄件人地址:">
+            <Input v-model="formItem.to_addr" placeholder="请输入寄件人地址" style="width: 80%"></Input>
+          </FormItem>
+        </template>
+      </div>
+      <div v-show="formItem.type === '2'">
+        <FormItem label="送货人:">
+          <Select
+            v-model="formItem.sh_delivery"
+            placeholder="请选择送货人"
+            style="width: 80%"
+            @on-change="shDeliveryChange"
+          >
+            <Option v-for="(item, i) in deliveryList" :value="item.id" :key="i"
+              >{{ item.wx_name }}({{ item.phone }})</Option
+            >
+          </Select>
+        </FormItem>
+      </div>
+      <div v-show="formItem.type === '3'">
+        <FormItem label="备注:">
+          <Input
+            v-model="formItem.fictitious_content"
+            type="textarea"
+            :autosize="{ minRows: 2, maxRows: 5 }"
+            placeholder="备注"
+            style="width: 80%"
+          ></Input>
+        </FormItem>
+      </div>
+      <div v-if="total_num > 1">
+        <FormItem label="分单发货:">
+          <i-switch
+            size="large"
+            v-model="splitSwitch"
+            :disabled="orderStatus === 8 || orderStatus === 11"
+            @on-change="changeSplitStatus"
+          >
+            <span slot="open">开启</span>
+            <span slot="close">关闭</span>
+          </i-switch>
+          <div class="trips">
+            <p>可选择表格中的商品单独发货,发货后会生成新的订单且不能撤回,请谨慎操作!</p>
+          </div>
+          <i-table
+            v-if="splitSwitch && manyFormValidate.length"
+            :data="manyFormValidate"
+            @on-selection-change="selectOne"
+            :columns="header"
+          >
+            <template slot-scope="{ row, index }" slot="image">
+              <div class="product-data">
+                <img class="image" :src="row.cart_info.productInfo.image" />
+                <div class="line2">
+                  {{ row.cart_info.productInfo.store_name }}
+                </div>
+              </div>
+            </template>
+            <template slot-scope="{ row, index }" slot="value">
+              <div class="product-data">
+                <div>{{ row.cart_info.productInfo.attrInfo.suk }}</div>
+              </div>
+            </template>
+            <template slot-scope="{ row, index }" slot="price">
+              <div class="product-data">
+                <div>{{ row.cart_info.truePrice }}</div>
+              </div>
+            </template>
+          </i-table>
+        </FormItem>
+      </div>
+    </Form>
+    <div slot="footer">
+      <Button @click="cancel">取消</Button>
+      <Button type="primary" @click="putSend">提交</Button>
+    </div>
+    <!-- <viewer @inited="inited">
             <img :src="temp.pic" style="display:none" />
         </viewer> -->
-		<div ref="viewer" v-viewer v-show="temp">
-			<img :src="temp.pic" style="display: none" />
-		</div>
-	</Modal>
+    <div ref="viewer" v-viewer v-show="temp">
+      <img :src="temp.pic" style="display: none" />
+    </div>
+  </Modal>
 </template>
+
 <script>
-	import {
-		getExpressData,
-		putDelivery,
-		splitDelivery,
-		orderExpressTemp,
-		orderDeliveryList,
-		orderSheetInfo,
-		splitCartInfo,
-	} from '@/api/order';
-	import printJS from 'print-js';
-	export default {
-		name: 'orderSend',
-		props: {
-			orderId: Number,
-			status: Number,
-			// total_num: Number,
-			pay_type: String,
-			virtual_type: Number,
-		},
-		watch: {
-			orderId(val) {
-				if (this.virtual_type == 3) this.formItem.type = '3';
-			},
-		},
-		data() {
-			return {
-				orderStatus: 0,
-				total_num: 0,
-				splitSwitch: true,
-				formItem: {
-					type: '1',
-					express_record_type: '1',
-					delivery_name: '',
-					delivery_id: '',
-					express_temp_id: '',
-					to_name: '',
-					to_tel: '',
-					to_addr: '',
-					sh_delivery: '',
-					fictitious_content: '',
-				},
-				modals: false,
-				express: [],
-				expressTemp: [],
-				deliveryList: [],
-				temp: {},
-				export_open: false,
-				manyFormValidate: [],
-				header: [{
-						type: 'selection',
-						width: 60,
-						align: 'center',
-					},
-					{
-						title: '商品信息',
-						slot: 'image',
-						width: 200,
-						align: 'center',
-					},
-					{
-						title: '规格',
-						slot: 'value',
-						align: 'center',
-						minWidth: 120,
-					},
-					{
-						title: '价格',
-						slot: 'price',
-						align: 'center',
-						minWidth: 120,
-					},
-					{
-						title: '总数',
-						key: 'cart_num',
-						align: 'center',
-						minWidth: 120,
-					},
-					{
-						title: '待发数量',
-						key: 'surplus_num',
-						align: 'center',
-						width: 180,
-						render: (h, params) => {
-							return h('div', [
-								h('InputNumber', {
-									props: {
-										min: 1,
-										max: params.row.surplus_num,
-										value: params.row.num || params.row.surplus_num,
-									},
-									on: {
-										'on-change': (e) => {
-											// params.row.surplus_num = e || 1;
-											params.row.num = e || 1;
-											this.manyFormValidate[params.index] = params.row;
-											this.selectData.forEach((v, index) => {
-												if (v.cart_id === params.row.cart_id) {
-													this.selectData.splice(index, 1, params
-														.row);
-												}
-											});
-										},
-									},
-								}),
-							]);
-						},
-					},
-				],
-				selectData: [],
-			};
-		},
-		methods: {
-			selectOne(data) {
-				this.selectData = data;
-			},
-			changeModal(status) {
-				if (!status) {
-					this.cancel();
-				}
-			},
-			changeSplitStatus(status) {
-				// this.splitSwitch = status;
-				if (status) {
-					splitCartInfo(this.orderId).then((res) => {
-						this.manyFormValidate = [];
-						Object.keys(res.data).forEach((key) => {
-							this.manyFormValidate.push(res.data[key]);
-						});
-					});
-				}
-			},
-			changeRadio(o) {
-				this.$refs.formItem.resetFields();
-				switch (o) {
-					case '1':
-						this.formItem.delivery_name = '';
-						this.formItem.delivery_id = '';
-						this.formItem.express_temp_id = '';
-						this.formItem.express_record_type = '1';
-						this.expressTemp = [];
-						this.getList(1);
-						break;
-					case '2':
-						this.formItem.sh_delivery = '';
-						break;
-					case '3':
-						this.formItem.fictitious_content = '';
-						break;
-					default:
-						// this.formItem = {
-						//     type: '3',
-						//     express_record_type: '1',
-						//     delivery_name: '',
-						//     delivery_id: '',
-						//     express_temp_id: '',
-						//     to_name: '',
-						//     to_tel: '',
-						//     to_addr: '',
-						//     sh_delivery: ''
-						// };
-						break;
-				}
-			},
-			changeExpress(j) {
-				switch (j) {
-					case '2':
-						this.formItem.delivery_name = '';
-						this.formItem.express_temp_id = '';
-						this.expressTemp = [];
-						this.getList(2);
-						break;
-					case '1':
-						this.formItem.delivery_name = '';
-						this.formItem.delivery_id = '';
-						this.getList(1);
-						break;
-					default:
-						break;
-				}
-			},
-			reset() {
-				this.formItem = {
-					type: '1',
-					express_record_type: '1',
-					delivery_name: '',
-					delivery_id: '',
-					express_temp_id: '',
-					expressTemp: [],
-					to_name: '',
-					to_tel: '',
-					to_addr: '',
-					sh_delivery: '',
-					fictitious_content: '',
-				};
-			},
-			// 物流公司列表
-			getList(type) {
-				let status = type === 2 ? 1 : '';
-				getExpressData(status)
-					.then(async (res) => {
-						this.express = res.data;
-						this.getSheetInfo();
-					})
-					.catch((res) => {
-						this.loading = false;
-						this.$Message.error(res.msg);
-					});
-			},
-			printImg(url) {
-				printJS({
-					printable: url,
-					type: 'image',
-					documentTitle: '快递信息',
-					style: `img{
+import {
+  getExpressData,
+  putDelivery,
+  splitDelivery,
+  orderExpressTemp,
+  orderDeliveryList,
+  orderSheetInfo,
+  splitCartInfo,
+} from '@/api/order';
+import printJS from 'print-js';
+export default {
+  name: 'orderSend',
+  props: {
+    orderId: Number,
+    status: Number,
+    // total_num: Number,
+    pay_type: String,
+    virtual_type: Number,
+  },
+  watch: {
+    orderId(val) {
+      if (this.virtual_type == 3) this.formItem.type = '3';
+    },
+  },
+  data() {
+    return {
+      orderStatus: 0,
+      total_num: 0,
+      splitSwitch: true,
+      formItem: {
+        type: '1',
+        express_record_type: '1',
+        delivery_name: '',
+        delivery_id: '',
+        express_temp_id: '',
+        to_name: '',
+        to_tel: '',
+        to_addr: '',
+        sh_delivery: '',
+        fictitious_content: '',
+      },
+      modals: false,
+      express: [],
+      expressTemp: [],
+      deliveryList: [],
+      temp: {},
+      export_open: false,
+      manyFormValidate: [],
+      header: [
+        {
+          type: 'selection',
+          width: 60,
+          align: 'center',
+        },
+        {
+          title: '商品信息',
+          slot: 'image',
+          width: 200,
+          align: 'center',
+        },
+        {
+          title: '规格',
+          slot: 'value',
+          align: 'center',
+          minWidth: 120,
+        },
+        {
+          title: '价格',
+          slot: 'price',
+          align: 'center',
+          minWidth: 120,
+        },
+        {
+          title: '总数',
+          key: 'cart_num',
+          align: 'center',
+          minWidth: 120,
+        },
+        {
+          title: '待发数量',
+          key: 'surplus_num',
+          align: 'center',
+          width: 180,
+          render: (h, params) => {
+            return h('div', [
+              h('InputNumber', {
+                props: {
+                  min: 1,
+                  max: params.row.surplus_num,
+                  value: params.row.num || params.row.surplus_num,
+                },
+                on: {
+                  'on-change': (e) => {
+                    // params.row.surplus_num = e || 1;
+                    params.row.num = e || 1;
+                    this.manyFormValidate[params.index] = params.row;
+                    this.selectData.forEach((v, index) => {
+                      if (v.cart_id === params.row.cart_id) {
+                        this.selectData.splice(index, 1, params.row);
+                      }
+                    });
+                  },
+                },
+              }),
+            ]);
+          },
+        },
+      ],
+      selectData: [],
+    };
+  },
+  methods: {
+    selectOne(data) {
+      this.selectData = data;
+    },
+    changeModal(status) {
+      if (!status) {
+        this.cancel();
+      }
+    },
+    changeSplitStatus(status) {
+      // this.splitSwitch = status;
+      if (status) {
+        splitCartInfo(this.orderId).then((res) => {
+          this.manyFormValidate = [];
+          Object.keys(res.data).forEach((key) => {
+            this.manyFormValidate.push(res.data[key]);
+          });
+        });
+      }
+    },
+    changeRadio(o) {
+      this.$refs.formItem.resetFields();
+      switch (o) {
+        case '1':
+          this.formItem.delivery_name = '';
+          this.formItem.delivery_id = '';
+          this.formItem.express_temp_id = '';
+          this.formItem.express_record_type = '1';
+          this.expressTemp = [];
+          this.getList(1);
+          break;
+        case '2':
+          this.formItem.sh_delivery = '';
+          break;
+        case '3':
+          this.formItem.fictitious_content = '';
+          break;
+        default:
+          // this.formItem = {
+          //     type: '3',
+          //     express_record_type: '1',
+          //     delivery_name: '',
+          //     delivery_id: '',
+          //     express_temp_id: '',
+          //     to_name: '',
+          //     to_tel: '',
+          //     to_addr: '',
+          //     sh_delivery: ''
+          // };
+          break;
+      }
+    },
+    changeExpress(j) {
+      switch (j) {
+        case '2':
+          this.formItem.delivery_name = '';
+          this.formItem.express_temp_id = '';
+          this.expressTemp = [];
+          this.getList(2);
+          break;
+        case '1':
+          this.formItem.delivery_name = '';
+          this.formItem.delivery_id = '';
+          this.getList(1);
+          break;
+        default:
+          break;
+      }
+    },
+    reset() {
+      this.formItem = {
+        type: '1',
+        express_record_type: '1',
+        delivery_name: '',
+        delivery_id: '',
+        express_temp_id: '',
+        expressTemp: [],
+        to_name: '',
+        to_tel: '',
+        to_addr: '',
+        sh_delivery: '',
+        fictitious_content: '',
+      };
+    },
+    // 物流公司列表
+    getList(type) {
+      let status = type === 2 ? 1 : '';
+      getExpressData(status)
+        .then(async (res) => {
+          this.express = res.data;
+          this.getSheetInfo();
+        })
+        .catch((res) => {
+          this.loading = false;
+          this.$Message.error(res.msg);
+        });
+    },
+    printImg(url) {
+      printJS({
+        printable: url,
+        type: 'image',
+        documentTitle: '快递信息',
+        style: `img{
           width: 100%;
           height: 476px;
         }`,
-				});
-			},
+      });
+    },
 
-			// 提交
-			putSend(name) {
-				let data = {
-					id: this.orderId,
-					datas: this.formItem,
-				};
-				if (this.formItem.type === '1' && this.formItem.express_record_type === '2') {
-					if (this.formItem.delivery_name === '') {
-						return this.$Message.error('快递公司不能为空');
-					} else if (this.formItem.express_temp_id === '') {
-						return this.$Message.error('电子面单不能为空');
-					} else if (this.formItem.to_name === '') {
-						return this.$Message.error('寄件人姓名不能为空');
-					} else if (this.formItem.to_tel === '') {
-						return this.$Message.error('寄件人电话不能为空');
-					} else if (!/^1(3|4|5|7|8|9|6)\d{9}$/i.test(this.formItem.to_tel)) {
-						return this.$Message.error('请输入正确的手机号码');
-					} else if (this.formItem.to_addr === '') {
-						return this.$Message.error('寄件人地址不能为空');
-					}
-				}
-				if (this.formItem.type === '1' && this.formItem.express_record_type === '1') {
-					if (this.formItem.delivery_name === '') {
-						return this.$Message.error('快递公司不能为空');
-					} else if (this.formItem.delivery_id === '') {
-						return this.$Message.error('快递单号不能为空');
-					}
-				}
-				if (this.formItem.type === '2') {
-					if (this.formItem.sh_delivery === '') {
-						return this.$Message.error('送货人不能为空');
-					}
-				}
-				if (this.splitSwitch) {
-					data.datas.cart_ids = [];
-					this.selectData.forEach((v) => {
-						data.datas.cart_ids.push({
-							cart_id: v.cart_id,
-							cart_num: v.num || v.surplus_num,
-						});
-					});
-					splitDelivery(data)
-						.then((res) => {
-							this.modals = false;
-							this.$Message.success(res.msg);
-							this.$emit('submitFail');
-							this.reset();
-							this.splitSwitch = false;
-							if (res.data.label) this.printImg(res.data.label);
-						})
-						.catch((res) => {
-							this.$Message.error(res.msg);
-						});
-				} else {
-					putDelivery(data)
-						.then(async (res) => {
-							this.modals = false;
-							this.$Message.success(res.msg);
-							this.splitSwitch = false;
-							this.$emit('submitFail');
-							this.reset();
-							if (res.data.label) this.printImg(res.data.label);
-						})
-						.catch((res) => {
-							this.$Message.error(res.msg);
-						});
-				}
-			},
-			cancel(name) {
-				this.modals = false;
-				this.orderStatus = 0;
-				this.splitSwitch = false;
-				this.selectData = [];
-				this.formItem.type = '1';
-				this.$emit('clearId');
-				this.reset();
-				// this.$refs[name].resetFields();
-				// this.formItem.type = '1';
-			},
-			// 电子面单列表
-			expressChange(value) {
-				let expressItem = this.express.find((item) => {
-					return item.value === value;
-				});
-				if (expressItem === undefined) {
-					return;
-				}
-				this.formItem.delivery_code = expressItem.code;
-				if (this.formItem.express_record_type === '2') {
-					this.expressTemp = [];
-					this.formItem.express_temp_id = '';
-					orderExpressTemp({
-							com: this.formItem.delivery_code,
-						})
-						.then((res) => {
-							this.expressTemp = res.data;
-							if (!res.data.length) {
-								this.$Message.error('请配置你所选快递公司的电子面单');
-							}
-						})
-						.catch((err) => {
-							this.$Message.error(err.msg);
-						});
-				}
-			},
-			getCartInfo(data, orderid) {
-				this.$set(this, 'orderStatus', data);
-				this.$set(this, 'splitSwitch', data === 8 || data === 11 ? true : false);
-				splitCartInfo(this.orderId).then((res) => {
-					this.manyFormValidate = [];
-					Object.keys(res.data).forEach((key) => {
-						this.manyFormValidate.push(res.data[key]);
-					});
-				});
-			},
-			getDeliveryList() {
-				orderDeliveryList()
-					.then((res) => {
-						this.deliveryList = res.data.list;
-					})
-					.catch((err) => {
-						this.$Message.error(err.msg);
-					});
-			},
-			getSheetInfo() {
-				orderSheetInfo()
-					.then((res) => {
-						const data = res.data;
-						for (const key in data) {
-							if (data.hasOwnProperty(key)) {
-								this.formItem[key] = data[key];
-							}
-						}
-						this.export_open = data.export_open === undefined ? true : data.export_open;
-						if (!this.export_open) {
-							this.formItem.express_record_type = '1';
-						}
-						this.formItem.to_addr = data.to_add;
-					})
-					.catch((err) => {
-						this.$Message.error(err.msg);
-					});
-			},
-			shDeliveryChange(value) {
-				if (!value) return;
-				let deliveryItem = this.deliveryList.find((item) => {
-					return item.id === value;
-				});
-				this.formItem.sh_delivery_name = deliveryItem.wx_name;
-				this.formItem.sh_delivery_id = deliveryItem.phone;
-				this.formItem.sh_delivery_uid = deliveryItem.uid;
-			},
-			expressTempChange(tempId) {
-				this.temp = this.expressTemp.find((item) => {
-					return tempId === item.temp_id;
-				});
-				if (this.temp === undefined) {
-					this.temp = {};
-				}
-			},
-			// inited (viewer) {
-			//     this.$viewer = viewer;
-			// },
-			preview() {
-				this.$refs.viewer.$viewer.show();
-				// this.$viewer.show();
-			},
-		},
-	};
+    // 提交
+    putSend(name) {
+      let data = {
+        id: this.orderId,
+        datas: this.formItem,
+      };
+      if (this.formItem.type === '1' && this.formItem.express_record_type === '2') {
+        if (this.formItem.delivery_name === '') {
+          return this.$Message.error('快递公司不能为空');
+        } else if (this.formItem.express_temp_id === '') {
+          return this.$Message.error('电子面单不能为空');
+        } else if (this.formItem.to_name === '') {
+          return this.$Message.error('寄件人姓名不能为空');
+        } else if (this.formItem.to_tel === '') {
+          return this.$Message.error('寄件人电话不能为空');
+        } else if (!/^1(3|4|5|7|8|9|6)\d{9}$/i.test(this.formItem.to_tel)) {
+          return this.$Message.error('请输入正确的手机号码');
+        } else if (this.formItem.to_addr === '') {
+          return this.$Message.error('寄件人地址不能为空');
+        }
+      }
+      if (this.formItem.type === '1' && this.formItem.express_record_type === '1') {
+        if (this.formItem.delivery_name === '') {
+          return this.$Message.error('快递公司不能为空');
+        } else if (this.formItem.delivery_id === '') {
+          return this.$Message.error('快递单号不能为空');
+        }
+      }
+      if (this.formItem.type === '2') {
+        if (this.formItem.sh_delivery === '') {
+          return this.$Message.error('送货人不能为空');
+        }
+      }
+      if (this.splitSwitch) {
+        data.datas.cart_ids = [];
+        this.selectData.forEach((v) => {
+          data.datas.cart_ids.push({
+            cart_id: v.cart_id,
+            cart_num: v.num || v.surplus_num,
+          });
+        });
+        splitDelivery(data)
+          .then((res) => {
+            this.modals = false;
+            this.$Message.success(res.msg);
+            this.$emit('submitFail');
+            this.reset();
+            this.splitSwitch = false;
+            if (res.data.label) this.printImg(res.data.label);
+          })
+          .catch((res) => {
+            this.$Message.error(res.msg);
+          });
+      } else {
+        putDelivery(data)
+          .then(async (res) => {
+            this.modals = false;
+            this.$Message.success(res.msg);
+            this.splitSwitch = false;
+            this.$emit('submitFail');
+            this.reset();
+            if (res.data.label) this.printImg(res.data.label);
+          })
+          .catch((res) => {
+            this.$Message.error(res.msg);
+          });
+      }
+    },
+    cancel(name) {
+      this.modals = false;
+      this.orderStatus = 0;
+      this.splitSwitch = false;
+      this.selectData = [];
+      this.formItem.type = '1';
+      this.$emit('clearId');
+      this.reset();
+      // this.$refs[name].resetFields();
+      // this.formItem.type = '1';
+    },
+    // 电子面单列表
+    expressChange(value) {
+      let expressItem = this.express.find((item) => {
+        return item.value === value;
+      });
+      if (expressItem === undefined) {
+        return;
+      }
+      this.formItem.delivery_code = expressItem.code;
+      if (this.formItem.express_record_type === '2') {
+        this.expressTemp = [];
+        this.formItem.express_temp_id = '';
+        orderExpressTemp({
+          com: this.formItem.delivery_code,
+        })
+          .then((res) => {
+            this.expressTemp = res.data;
+            if (!res.data.length) {
+              this.$Message.error('请配置你所选快递公司的电子面单');
+            }
+          })
+          .catch((err) => {
+            this.$Message.error(err.msg);
+          });
+      }
+    },
+    getCartInfo(data, orderid) {
+      this.$set(this, 'orderStatus', data);
+      this.$set(this, 'splitSwitch', data === 8 || data === 11 ? true : false);
+      splitCartInfo(this.orderId).then((res) => {
+        this.manyFormValidate = [];
+        Object.keys(res.data).forEach((key) => {
+          this.manyFormValidate.push(res.data[key]);
+        });
+      });
+    },
+    getDeliveryList() {
+      orderDeliveryList()
+        .then((res) => {
+          this.deliveryList = res.data.list;
+        })
+        .catch((err) => {
+          this.$Message.error(err.msg);
+        });
+    },
+    getSheetInfo() {
+      orderSheetInfo()
+        .then((res) => {
+          const data = res.data;
+          for (const key in data) {
+            if (data.hasOwnProperty(key)) {
+              this.formItem[key] = data[key];
+            }
+          }
+          this.export_open = data.export_open === undefined ? true : data.export_open;
+          if (!this.export_open) {
+            this.formItem.express_record_type = '1';
+          }
+          this.formItem.to_addr = data.to_add;
+        })
+        .catch((err) => {
+          this.$Message.error(err.msg);
+        });
+    },
+    shDeliveryChange(value) {
+      if (!value) return;
+      let deliveryItem = this.deliveryList.find((item) => {
+        return item.id === value;
+      });
+      this.formItem.sh_delivery_name = deliveryItem.wx_name;
+      this.formItem.sh_delivery_id = deliveryItem.phone;
+      this.formItem.sh_delivery_uid = deliveryItem.uid;
+    },
+    expressTempChange(tempId) {
+      this.temp = this.expressTemp.find((item) => {
+        return tempId === item.temp_id;
+      });
+      if (this.temp === undefined) {
+        this.temp = {};
+      }
+    },
+    // inited (viewer) {
+    //     this.$viewer = viewer;
+    // },
+    preview() {
+      this.$refs.viewer.$viewer.show();
+      // this.$viewer.show();
+    },
+  },
+};
 </script>
 
 <style scoped>
-	.express_temp_id {
-		position: relative;
-	}
-
-	.express_temp_id button {
-		position: absolute;
-		top: 50%;
-		right: 110px;
-		padding: 0;
-		border: none;
-		background: none;
-		transform: translateY(-50%);
-		color: #57a3f3;
-	}
-
-	.ivu-btn-text:focus {
-		box-shadow: none;
-	}
-
-	.trips {
-		color: #ccc;
-	}
-
-	.product-data {
-		display: flex;
-		align-items: center;
-		justify-content: center;
-	}
+.express_temp_id {
+  position: relative;
+}
 
-	.product-data .image {
-		width: 50px !important;
-		height: 50px !important;
-	}
+.express_temp_id button {
+  position: absolute;
+  top: 50%;
+  right: 110px;
+  padding: 0;
+  border: none;
+  background: none;
+  transform: translateY(-50%);
+  color: #57a3f3;
+}
 
-	.line2 {
-		display: -webkit-box;
-		-webkit-line-clamp: 2;
-		-webkit-box-orient: vertical;
-		overflow: hidden;
-	}
-</style>
+.ivu-btn-text:focus {
+  box-shadow: none;
+}
+.trips {
+  color: #ccc;
+}
+.product-data {
+  display: flex;
+  align-items: center;
+  justify-content: center;
+}
+.product-data .image {
+  width: 50px !important;
+  height: 50px !important;
+}
+.line2 {
+  display: -webkit-box;
+  -webkit-line-clamp: 2;
+  -webkit-box-orient: vertical;
+  overflow: hidden;
+}
+</style>

+ 194 - 196
src/pages/order/orderList/index.vue

@@ -1,206 +1,204 @@
 <template>
-	<div>
-		<Card :bordered="false" dis-hover>
-			<Tabs class="mb20" v-model="currentTab" @on-click="onClickTab" v-if="tablists">
-				<TabPane v-for="(item, index) in tabs" :label="item.label" :name="item.type" :key="index" />
-			</Tabs>
-			<productlist-details v-if="currentTab === 'article' || 'project' || 'app'"
-				ref="productlist"></productlist-details>
-
-			<Spin size="large" fix v-if="spinShow"></Spin>
-		</Card>
-	</div>
+  <div>
+    <Card :bordered="false" dis-hover>
+      <Tabs class="mb20" v-model="currentTab" @on-click="onClickTab" v-if="tablists">
+        <TabPane v-for="(item, index) in tabs" :label="item.label" :name="item.type" :key="index" />
+      </Tabs>
+      <productlist-details
+        v-if="currentTab === 'article' || 'project' || 'app'"
+        ref="productlist"
+      ></productlist-details>
+      <Spin size="large" fix v-if="spinShow"></Spin>
+    </Card>
+  </div>
 </template>
 
 <script>
-	import productlistDetails from './orderlistDetails';
-	import {
-		mapMutations
-	} from 'vuex';
-	export default {
-		name: 'list',
-		components: {
-			productlistDetails,
-		},
-		data() {
-			return {
-				tabs: [{
-						type: '',
-						label: (h) => {
-							return h('div', [
-								h('span', '全部订单'),
-								h('Badge', {
-									props: {
-										count: Number(this.tablists.all),
-										'overflow-count': 999999,
-									},
-								}),
-							]);
-						},
-					},
-					{
-						type: '1',
-						label: (h) => {
-							return h('div', [
-								h('span', '普通订单'),
-								h('Badge', {
-									props: {
-										count: Number(this.tablists.general),
-										'overflow-count': 999999,
-									},
-								}),
-							]);
-						},
-					},
-					{
-						type: '2',
-						label: (h) => {
-							return h('div', [
-								h('span', '拼团订单'),
-								h('Badge', {
-									props: {
-										count: Number(this.tablists.pink),
-										'overflow-count': 999999,
-									},
-								}),
-							]);
-						},
-					},
-					{
-						type: '3',
-						label: (h) => {
-							return h('div', [
-								h('span', '秒杀订单'),
-								h('Badge', {
-									props: {
-										count: Number(this.tablists.seckill),
-										'overflow-count': 999999,
-									},
-								}),
-							]);
-						},
-					},
-					{
-						type: '4',
-						label: (h) => {
-							return h('div', [
-								h('span', '砍价订单'),
-								h('Badge', {
-									props: {
-										count: Number(this.tablists.bargain),
-										'overflow-count': 999999,
-									},
-								}),
-							]);
-						},
-					},
-					{
-						type: '5',
-						label: (h) => {
-							return h('div', [
-								h('span', '预售订单'),
-								h('Badge', {
-									props: {
-										count: Number(this.tablists.advance),
-										'overflow-count': 999999,
-									},
-								}),
-							]);
-						},
-					},
-				],
-				spinShow: false,
-				currentTab: '',
-				data: [],
-				tablists: null,
-			};
-		},
-		created() {
-			this.getOrderType('');
-			this.getOrderStatus('');
-			this.getOrderTime('');
-			this.getOrderNum('');
-			this.getfieldKey('');
-			this.onChangeTabs('');
-			this.getisDelIdListl('');
-			this.getIsDel(1);
-		},
-		beforeDestroy() {
-			this.getOrderType('');
-			this.getOrderStatus('');
-			this.getOrderTime('');
-			this.getOrderNum('');
-			this.getfieldKey('');
-			this.onChangeTabs('');
-			this.getisDelIdListl('');
-			this.getIsDel(1);
-		},
-		mounted() {
-			this.getTabs();
-		},
-		methods: {
-			...mapMutations('order', [
-				'onChangeTabs',
-				'getOrderStatus',
-				'getOrderTime',
-				'getOrderNum',
-				'getfieldKey',
-				'getOrderType',
-				'getisDelIdListl',
-				'getIsDel',
-				// 'onChangeChart'
-			]),
-			// 订单类型  @on-changeTabs="getChangeTabs"
-			getTabs() {
-				this.spinShow = true;
-				this.$store
-					.dispatch('order/getOrderTabs', {
-						data: '',
-					})
-					.then((res) => {
-						this.tablists = res.data;
-						// this.onChangeChart(this.tablists)
-						this.spinShow = false;
-					})
-					.catch((res) => {
-						this.spinShow = false;
-						this.$Message.error(res.msg);
-					});
-			},
-			onClickTab() {
-				this.onChangeTabs(Number(this.currentTab));
-				// this.$store.dispatch("order/getOrderTabs", {
-				//   data: "",
-				//   type: Number(this.currentTab),
-				// });
-				// this.$refs.productlist.getChangeTabs();
-				this.$store.dispatch('order/getOrderTabs', {
-					type: this.currentTab
-				});
-			},
-		},
-	};
+import productlistDetails from './orderlistDetails';
+import { mapMutations } from 'vuex';
+export default {
+  name: 'list',
+  components: {
+    productlistDetails,
+  },
+  data() {
+    return {
+      tabs: [
+        {
+          type: '',
+          label: (h) => {
+            return h('div', [
+              h('span', '全部订单'),
+              h('Badge', {
+                props: {
+                  count: Number(this.tablists.all),
+                  'overflow-count': 999999,
+                },
+              }),
+            ]);
+          },
+        },
+        {
+          type: '1',
+          label: (h) => {
+            return h('div', [
+              h('span', '普通订单'),
+              h('Badge', {
+                props: {
+                  count: Number(this.tablists.general),
+                  'overflow-count': 999999,
+                },
+              }),
+            ]);
+          },
+        },
+        {
+          type: '2',
+          label: (h) => {
+            return h('div', [
+              h('span', '拼团订单'),
+              h('Badge', {
+                props: {
+                  count: Number(this.tablists.pink),
+                  'overflow-count': 999999,
+                },
+              }),
+            ]);
+          },
+        },
+        {
+          type: '3',
+          label: (h) => {
+            return h('div', [
+              h('span', '秒杀订单'),
+              h('Badge', {
+                props: {
+                  count: Number(this.tablists.seckill),
+                  'overflow-count': 999999,
+                },
+              }),
+            ]);
+          },
+        },
+        {
+          type: '4',
+          label: (h) => {
+            return h('div', [
+              h('span', '砍价订单'),
+              h('Badge', {
+                props: {
+                  count: Number(this.tablists.bargain),
+                  'overflow-count': 999999,
+                },
+              }),
+            ]);
+          },
+        },
+        {
+          type: '5',
+          label: (h) => {
+            return h('div', [
+              h('span', '预售订单'),
+              h('Badge', {
+                props: {
+                  count: Number(this.tablists.advance),
+                  'overflow-count': 999999,
+                },
+              }),
+            ]);
+          },
+        },
+      ],
+      spinShow: false,
+      currentTab: '',
+      data: [],
+      tablists: null,
+    };
+  },
+  created() {
+    this.getOrderType('');
+    this.getOrderStatus('');
+    this.getOrderTime('');
+    this.getOrderNum('');
+    this.getfieldKey('');
+    this.onChangeTabs('');
+    this.getisDelIdListl('');
+    this.getIsDel(1);
+  },
+  beforeDestroy() {
+    this.getOrderType('');
+    this.getOrderStatus('');
+    this.getOrderTime('');
+    this.getOrderNum('');
+    this.getfieldKey('');
+    this.onChangeTabs('');
+    this.getisDelIdListl('');
+    this.getIsDel(1);
+  },
+  mounted() {
+    this.getTabs();
+  },
+  methods: {
+    ...mapMutations('order', [
+      'onChangeTabs',
+      'getOrderStatus',
+      'getOrderTime',
+      'getOrderNum',
+      'getfieldKey',
+      'getOrderType',
+      'getisDelIdListl',
+      'getIsDel',
+      // 'onChangeChart'
+    ]),
+    // 订单类型  @on-changeTabs="getChangeTabs"
+    getTabs() {
+      this.spinShow = true;
+      this.$store
+        .dispatch('order/getOrderTabs', {
+          data: '',
+        })
+        .then((res) => {
+          this.tablists = res.data;
+          // this.onChangeChart(this.tablists)
+          this.spinShow = false;
+        })
+        .catch((res) => {
+          this.spinShow = false;
+          this.$Message.error(res.msg);
+        });
+    },
+    onClickTab() {
+      this.onChangeTabs(Number(this.currentTab));
+      // this.$store.dispatch("order/getOrderTabs", {
+      //   data: "",
+      //   type: Number(this.currentTab),
+      // });
+      // this.$refs.productlist.getChangeTabs();
+      this.$store.dispatch('order/getOrderTabs', { type: this.currentTab });
+    },
+  },
+};
 </script>
 <style scoped lang="stylus">
-	.product_tabs>>>.ivu-tabs-bar {
-		margin-bottom: 0px !important;
-	}
+.product_tabs >>> .ivu-tabs-bar {
+  margin-bottom: 0px !important;
+}
 
-	.product_tabs>>>.ivu-page-header-content {
-		margin-bottom: 0px !important;
-	}
+.product_tabs >>> .ivu-page-header-content {
+  margin-bottom: 0px !important;
+}
 
-	.product_tabs>>>.ivu-page-header-breadcrumb {
-		margin-bottom: 0px !important;
-	}
+.product_tabs >>> .ivu-page-header-breadcrumb {
+  margin-bottom: 0px !important;
+}
 
-	/deep/ .ivu-badge-count-alone {
-		top: -7px;
-		right: 2px;
-	}
+/deep/ .ivu-badge-count-alone {
+  top: -7px;
+  right: 2px;
+}
 
-	.i-layout-page-header /deep/ .ivu-badge-count {
-		line-height: 14px;
-		height: 15px;
-	}
-</style>
+.i-layout-page-header /deep/ .ivu-badge-count {
+  line-height: 14px;
+  height: 15px;
+}
+</style>

+ 77 - 81
src/pages/order/orderList/orderlistDetails.vue

@@ -1,96 +1,92 @@
 <template>
-	<div>
-		<!-- <cards-data
+  <div>
+    <!-- <cards-data
       :cardLists="cardLists"
       v-if="cardLists.length >= 0"
     ></cards-data> -->
-		<table-form @getList="getData" />
-		<table-list ref="table" @on-changeCards="getCards" @changeGetTabs="changeGetTabs" />
-	</div>
+    <table-form @getList="getData" />
+    <table-list ref="table" @on-changeCards="getCards" @changeGetTabs="changeGetTabs" />
+  </div>
 </template>
 
 <script>
-	import cardsData from '../../../components/cards/cards';
-	import tableForm from './components/tableFrom';
-	import tableList from './components/tableList';
-	export default {
-		name: 'orderlistDetails',
-		components: {
-			tableForm,
-			tableList,
-			cardsData,
-		},
-		data() {
-			return {
-				currentTab: '',
-				cardLists: [],
-			};
-		},
-		methods: {
-			changeGetTabs() {
-				console.log('调用114')
-				this.$parent.getTabs();
-			},
-			// 列表数据
-			getData(res) {
-				console.log(res, '调用111')
-				this.$refs.table.getList(res);
-			},
-			// 模块数据
-			getCards(list) {
-				console.log('调用112')
-				this.cardLists = list;
-			},
-			handleResize() {
-				console.log('调用113')
-				this.$refs.ellipsis.forEach((item) => item.init());
-			},
-		},
-		mounted() {},
-	};
+import cardsData from '../../../components/cards/cards';
+import tableForm from './components/tableFrom';
+import tableList from './components/tableList';
+export default {
+  name: 'orderlistDetails',
+  components: {
+    tableForm,
+    tableList,
+    cardsData,
+  },
+  data() {
+    return {
+      currentTab: '',
+      cardLists: [],
+    };
+  },
+  methods: {
+    changeGetTabs() {
+      this.$parent.getTabs();
+    },
+    // 列表数据
+    getData(res) {
+      this.$refs.table.getList(res);
+    },
+    // 模块数据
+    getCards(list) {
+      this.cardLists = list;
+    },
+    handleResize() {
+      this.$refs.ellipsis.forEach((item) => item.init());
+    },
+  },
+  mounted() {},
+};
 </script>
 
 <style scoped lang="stylus">
-	.card_cent>>>.ivu-card-body {
-		width: 100%;
-		height: 100%;
-	}
+.card_cent >>> .ivu-card-body {
+  width: 100%;
+  height: 100%;
+}
 
-	.card_box {
-		width: 100%;
-		height: 100%;
-		display: flex;
-		align-items: center;
-		justify-content: center;
-		padding: 25px;
-		box-sizing: border-box;
-		border-radius: 4px;
+.card_box {
+  width: 100%;
+  height: 100%;
+  display: flex;
+  align-items: center;
+  justify-content: center;
+  padding: 25px;
+  box-sizing: border-box;
+  border-radius: 4px;
 
-		.card_box_img {
-			width: 48px;
-			height: 48px;
-			border-radius: 50%;
-			overflow: hidden;
-			margin-right: 20px;
+  .card_box_img {
+    width: 48px;
+    height: 48px;
+    border-radius: 50%;
+    overflow: hidden;
+    margin-right: 20px;
 
-			img {
-				width: 100%;
-				height: 100%;
-			}
-		}
+    img {
+      width: 100%;
+      height: 100%;
+    }
+  }
 
-		.card_box_txt {
-			.sp1 {
-				display: block;
-				color: #252631;
-				font-size: 24px;
-			}
+  .card_box_txt {
+    .sp1 {
+      display: block;
+      color: #252631;
+      font-size: 24px;
+    }
 
-			.sp2 {
-				display: block;
-				color: #98A9BC;
-				font-size: 12px;
-			}
-		}
-	}
-</style>
+    .sp2 {
+      display: block;
+      color: #98A9BC;
+      font-size: 12px;
+    }
+  }
+}
+</style>

+ 820 - 793
src/pages/order/orderList/splitList.vue

@@ -1,86 +1,114 @@
 <template>
-	<div>
-		<div class="i-layout-page-header">
-			<div class="i-layout-page-header">
-				<span class="ivu-page-header-title">子订单列表</span>
-				<span class="return" @click="$router.go(-1)">返回</span>
-			</div>
-		</div>
-		<Table :columns="columns" :data="orderList" ref="table" :loading="loading" highlight-row no-data-text="暂无数据"
-			no-filtered-data-text="暂无筛选结果" @on-selection-change="onSelectTab" @on-select-all="selectAll"
-			@on-select-all-cancel="selectAll" @on-select-cancel="onSelectCancel" class="orderData mt25">
-			<template slot-scope="{ row, index }" slot="order_id">
-				<span v-text="row.order_id" style="display: block"></span>
-				<span v-show="row.is_del === 1" style="color: #ed4014; display: block">用户已删除</span>
-			</template>
-			<template slot-scope="{ row, index }" slot="nickname">
-				<a @click="showUserInfo(row)">{{ row.nickname }}</a>
-			</template>
-			<template slot-scope="{ row, index }" slot="info">
-				<div class="tabBox" v-for="(val, i) in row._info" :key="i">
-					<div class="tabBox_img" v-viewer>
-						<img v-lazy="
+  <div>
+    <div class="i-layout-page-header">
+      <div class="i-layout-page-header">
+        <span class="ivu-page-header-title">子订单列表</span>
+        <span class="return" @click="$router.go(-1)">返回</span>
+      </div>
+    </div>
+    <Table
+      :columns="columns"
+      :data="orderList"
+      ref="table"
+      :loading="loading"
+      highlight-row
+      no-data-text="暂无数据"
+      no-filtered-data-text="暂无筛选结果"
+      @on-selection-change="onSelectTab"
+      @on-select-all="selectAll"
+      @on-select-all-cancel="selectAll"
+      @on-select-cancel="onSelectCancel"
+      class="orderData mt25"
+    >
+      <template slot-scope="{ row, index }" slot="order_id">
+        <span v-text="row.order_id" style="display: block"></span>
+        <span v-show="row.is_del === 1" style="color: #ed4014; display: block">用户已删除</span>
+      </template>
+      <template slot-scope="{ row, index }" slot="nickname">
+        <a @click="showUserInfo(row)">{{ row.nickname }}</a>
+      </template>
+      <template slot-scope="{ row, index }" slot="info">
+        <div class="tabBox" v-for="(val, i) in row._info" :key="i">
+          <div class="tabBox_img" v-viewer>
+            <img
+              v-lazy="
                 val.cart_info.productInfo.attrInfo
                   ? val.cart_info.productInfo.attrInfo.image
                   : val.cart_info.productInfo.image
-              " />
-					</div>
-					<span class="tabBox_tit">
-						{{ val.cart_info.productInfo.store_name + ' | '
+              "
+            />
+          </div>
+          <span class="tabBox_tit">
+            {{ val.cart_info.productInfo.store_name + ' | '
             }}{{ val.cart_info.productInfo.attrInfo ? val.cart_info.productInfo.attrInfo.suk : '' }}
-					</span>
-					<span
-						class="tabBox_pice">{{ '¥' + val.cart_info.truePrice + ' x ' + val.cart_info.cart_num }}</span>
-				</div>
-			</template>
-			<template slot-scope="{ row, index }" slot="statusName">
-				<div v-html="row.status_name.status_name" class="pt5"></div>
-				<div class="pictrue-box">
-					<div v-viewer v-if="row.status_name.pics" v-for="(item, index) in row.status_name.pics || []"
-						:key="index">
-						<img class="pictrue mr10" v-lazy="item" :src="item" />
-					</div>
-				</div>
-			</template>
-			<template slot-scope="{ row, index }" slot="action">
-				<a @click="edit(row)" v-if="row._status === 1">编辑</a>
-				<a @click="sendOrder(row)" v-if="
+          </span>
+          <span class="tabBox_pice">{{ '¥' + val.cart_info.truePrice + ' x ' + val.cart_info.cart_num }}</span>
+        </div>
+      </template>
+      <template slot-scope="{ row, index }" slot="statusName">
+        <div v-html="row.status_name.status_name" class="pt5"></div>
+        <div class="pictrue-box">
+          <div v-viewer v-if="row.status_name.pics" v-for="(item, index) in row.status_name.pics || []" :key="index">
+            <img class="pictrue mr10" v-lazy="item" :src="item" />
+          </div>
+        </div>
+      </template>
+      <template slot-scope="{ row, index }" slot="action">
+        <a @click="edit(row)" v-if="row._status === 1">编辑</a>
+        <a
+          @click="sendOrder(row)"
+          v-if="
             (row._status === 2 || row._status === 8) &&
             row.shipping_type === 1 &&
             (row.pinkStatus === null || row.pinkStatus === 2)
-          ">发送货</a>
-				<a @click="delivery(row)" v-if="row._status === 4">配送信息</a>
-				<a @click="bindWrite(row)"
-					v-if="row.shipping_type == 2 && row.status == 0 && row.paid == 1 && row.refund_status === 0">立即核销</a>
-				<Divider type="vertical" v-if="row._status === 2 || row._status === 8" />
-				<a @click="splitOrderDetail(row)" v-if="row._status === 8">查看子订单</a>
+          "
+          >发送货</a
+        >
+        <a @click="delivery(row)" v-if="row._status === 4">配送信息</a>
+        <a
+          @click="bindWrite(row)"
+          v-if="row.shipping_type == 2 && row.status == 0 && row.paid == 1 && row.refund_status === 0"
+          >立即核销</a
+        >
+        <Divider type="vertical" v-if="row._status === 2 || row._status === 8" />
+        <a @click="splitOrderDetail(row)" v-if="row._status === 8">查看子订单</a>
 
-				<Divider type="vertical" v-if="
+        <Divider
+          type="vertical"
+          v-if="
             row._status === 1 ||
             ((row._status === 2 || row._status === 8) && (row.pinkStatus === null || row.pinkStatus === 2)) ||
             row._status === 4 ||
             (row.shipping_type == 2 && row.status == 0 && row.paid == 1 && row.refund_status === 0)
-          " />
-				<template>
-					<Dropdown @on-click="changeMenu(row, $event)">
-						<a href="javascript:void(0)">
-							更多
-							<Icon type="ios-arrow-down"></Icon>
-						</a>
-						<DropdownMenu slot="list">
-							<DropdownItem name="1" ref="ones"
-								v-show="row._status === 1 && row.paid === 0 && row.pay_type === 'offline'">立即支付
-							</DropdownItem>
-							<DropdownItem name="2">订单详情</DropdownItem>
-							<DropdownItem name="3">订单记录</DropdownItem>
-							<DropdownItem name="11" v-show="row._status >= 3 && row.express_dump">电子面单打印</DropdownItem>
-							<DropdownItem name="10" v-show="row._status >= 2">小票打印</DropdownItem>
-							<!-- <DropdownItem name="10" v-show="row._status >= 2">订单打印</DropdownItem> -->
-							<DropdownItem name="4" v-show="
+          "
+        />
+        <template>
+          <Dropdown @on-click="changeMenu(row, $event)">
+            <a href="javascript:void(0)">
+              更多
+              <Icon type="ios-arrow-down"></Icon>
+            </a>
+            <DropdownMenu slot="list">
+              <DropdownItem
+                name="1"
+                ref="ones"
+                v-show="row._status === 1 && row.paid === 0 && row.pay_type === 'offline'"
+                >立即支付</DropdownItem
+              >
+              <DropdownItem name="2">订单详情</DropdownItem>
+              <DropdownItem name="3">订单记录</DropdownItem>
+              <DropdownItem name="11" v-show="row._status >= 3 && row.express_dump">电子面单打印</DropdownItem>
+              <DropdownItem name="10" v-show="row._status >= 2">小票打印</DropdownItem>
+              <!-- <DropdownItem name="10" v-show="row._status >= 2">订单打印</DropdownItem> -->
+              <DropdownItem
+                name="4"
+                v-show="
                   row._status !== 1 ||
                   (row._status === 3 && row.use_integral > 0 && row.use_integral >= row.back_integral)
-                ">订单备注</DropdownItem>
-							<!-- <DropdownItem
+                "
+                >订单备注</DropdownItem
+              >
+              <!-- <DropdownItem
                 name="5"
                 v-show="
                   row._status === 3 &&
@@ -102,15 +130,15 @@
               <DropdownItem name="7" v-show="row._status === 3"
                 >不退款</DropdownItem
               > -->
-							<DropdownItem name="8" v-show="row._status === 4">已收货</DropdownItem>
-							<DropdownItem name="9" v-if="row.is_del == 1">删除订单</DropdownItem>
-						</DropdownMenu>
-					</Dropdown>
-				</template>
-			</template>
-		</Table>
-		<div class="acea-row row-right page">
-			<!-- <Page
+              <DropdownItem name="8" v-show="row._status === 4">已收货</DropdownItem>
+              <DropdownItem name="9" v-if="row.is_del == 1">删除订单</DropdownItem>
+            </DropdownMenu>
+          </Dropdown>
+        </template>
+      </template>
+    </Table>
+    <div class="acea-row row-right page">
+      <!-- <Page
         :total="page.total"
         :current="page.pageNum"
         show-elevator
@@ -120,744 +148,743 @@
         @on-page-size-change="limitChange"
         show-sizer
       /> -->
-		</div>
-		<!-- 编辑 退款 退积分 不退款-->
-		<edit-from ref="edits" :FromData="FromData" @submitFail="submitFail"></edit-from>
-		<!-- 会员详情-->
-		<user-details ref="userDetails"></user-details>
-		<!-- 详情 -->
-		<details-from ref="detailss" :orderDatalist="orderDatalist" :orderId="orderId"></details-from>
-		<!-- 备注 -->
-		<order-remark ref="remarks" :orderId="orderId" @submitFail="submitFail"></order-remark>
-		<!-- 记录 -->
-		<order-record ref="record"></order-record>
-		<!-- 发送货 -->
-		<order-send ref="send" :orderId="orderId" :status="status" @submitFail="submitFail"></order-send>
-	</div>
+    </div>
+    <!-- 编辑 退款 退积分 不退款-->
+    <edit-from ref="edits" :FromData="FromData" @submitFail="submitFail"></edit-from>
+    <!-- 会员详情-->
+    <user-details ref="userDetails"></user-details>
+    <!-- 详情 -->
+    <details-from ref="detailss" :orderDatalist="orderDatalist" :orderId="orderId"></details-from>
+    <!-- 备注 -->
+    <order-remark ref="remarks" :orderId="orderId" @submitFail="submitFail"></order-remark>
+    <!-- 记录 -->
+    <order-record ref="record"></order-record>
+    <!-- 发送货 -->
+    <order-send ref="send" :orderId="orderId" :status="status" @submitFail="submitFail"></order-send>
+  </div>
 </template>
 
 <script>
-	import expandRow from './components/tableExpand.vue';
-	import {
-		orderList,
-		getOrdeDatas,
-		getDataInfo,
-		getRefundFrom,
-		getnoRefund,
-		refundIntegral,
-		getDistribution,
-		writeUpdate,
-		splitOrderList,
-	} from '@/api/order';
-	import {
-		mapState,
-		mapMutations
-	} from 'vuex';
-	import editFrom from '../../../components/from/from';
-	import detailsFrom from './handle/orderDetails';
-	import orderRemark from './handle/orderRemark';
-	import orderRecord from './handle/orderRecord';
-	import orderSend from './handle/orderSend';
-	import userDetails from '@/pages/user/list/handle/userDetails';
+import expandRow from './components/tableExpand.vue';
+import {
+  orderList,
+  getOrdeDatas,
+  getDataInfo,
+  getRefundFrom,
+  getnoRefund,
+  refundIntegral,
+  getDistribution,
+  writeUpdate,
+  splitOrderList,
+} from '@/api/order';
+import { mapState, mapMutations } from 'vuex';
+import editFrom from '../../../components/from/from';
+import detailsFrom from './handle/orderDetails';
+import orderRemark from './handle/orderRemark';
+import orderRecord from './handle/orderRecord';
+import orderSend from './handle/orderSend';
+import userDetails from '@/pages/user/list/handle/userDetails';
 
-	export default {
-		name: 'table_list',
-		components: {
-			expandRow,
-			editFrom,
-			detailsFrom,
-			orderRemark,
-			orderRecord,
-			orderSend,
-			userDetails,
-		},
-		props: ['where', 'isAll'],
-		data() {
-			return {
-				delfromData: {},
-				modal: false,
-				orderList: [],
-				orderCards: [],
-				loading: false,
-				orderId: 0,
-				columns: [{
-						type: 'expand',
-						width: 30,
-						render: (h, params) => {
-							return h(expandRow, {
-								props: {
-									row: params.row,
-								},
-							});
-						},
-					},
-					{
-						width: 50,
-						align: 'center',
-						renderHeader: (h, params) => {
-							return h(
-								'div', {
-									class: {
-										'select-panel': true,
-									},
-									on: {
-										mouseenter: (e) => {
-											this.display = 'block';
-										},
-										mouseleave: (e) => {
-											this.display = 'none';
-										},
-									},
-								},
-								[
-									h('Checkbox', {
-										props: {
-											value: this.checkBox,
-										},
-										on: {
-											'on-change': (e) => {
-												this.checkBox = e;
-												this.$refs.table.selectAll(this.checkBox);
-												this.$emit('on-all', e ? 0 : -1);
-											},
-										},
-									}),
-									h(
-										'div', {
-											style: {
-												position: 'absolute',
-												top: 0,
-												zIndex: 2,
-												display: this.display,
-												width: '80px',
-												height: '100%',
-												padding: '0px 0',
-												borderRadius: '4px',
-												backgroundColor: '#fff',
-												boxShadow: '0 0px 5px rgba(0, 0, 0, 0.2)',
-												transform: 'translateX(25%)',
-											},
-										},
-										[
-											h(
-												'div', {
-													class: {
-														'select-item': true,
-														on: this.isAll == 0,
-													},
-													style: {
-														padding: '1px 6px',
-														cursor: 'pointer',
-														height: '50%',
-													},
-													on: {
-														click: (e) => {
-															if (this.isAll === 0) {
-																this.$emit('on-all', -1);
-																this.checkBox = false;
-																this.$refs.table.selectAll(this.checkBox);
-															} else {
-																this.$emit('on-all', 0);
-																if (!this.formSelection.length) {
-																	this.checkBox = true;
-																	this.$refs.table.selectAll(this
-																		.checkBox);
-																}
-															}
-															this.display = 'none';
-														},
-													},
-												},
-												'选择当页',
-											),
-											h(
-												'div', {
-													class: {
-														'select-item': true,
-														on: this.isAll == 1,
-													},
-													style: {
-														padding: '1px 6px',
-														cursor: 'pointer',
-														height: '50%',
-													},
-													on: {
-														click: (e) => {
-															if (this.isAll === 1) {
-																this.isAll = -1;
-																this.$emit('on-all', -1);
-																this.checkBox = false;
-															} else {
-																this.isAll = 1;
-																this.$emit('on-all', 1);
-																this.checkBox = true;
-															}
-															this.$refs.table.selectAll(this.checkBox);
-															this.display = 'none';
-														},
-													},
-												},
-												'选择全部',
-											),
-										],
-									),
-								],
-							);
-						},
-						render: (h, params) => {
-							return h('Checkbox', {
-								props: {
-									value: params.row.checkBox,
-								},
-								on: {
-									'on-change': (e) => {
-										if (e) {
-											this.formSelection.push(params.row);
-										} else {
-											this.checkBox = false;
-											this.formSelection.forEach((item, index) => {
-												if (item.id === params.row.id) {
-													this.formSelection.splice(index, 1);
-												}
-											});
-										}
-										this.$emit('on-all', this.formSelection.length ? 0 : -1);
-										// this.responseData为查询出的结果数据
-										// params.row.checkBox = e;
-										params.row.checkBox = e;
-										this.orderList[params.index].checkBox = e;
-									},
-								},
-								ref: 'checkbox',
-								refInFor: true,
-							});
-						},
-					},
-					{
-						title: '订单号',
-						align: 'center',
-						slot: 'order_id',
-						minWidth: 150,
-					},
-					{
-						title: '订单类型',
-						key: 'pink_name',
-						minWidth: 120,
-					},
-					{
-						title: '用户信息',
-						slot: 'nickname',
-						minWidth: 100,
-					},
-					{
-						title: '商品信息',
-						slot: 'info',
-						minWidth: 330,
-					},
-					{
-						title: '实际支付',
-						key: 'pay_price',
-						minWidth: 70,
-					},
-					{
-						title: '支付时间',
-						key: '_pay_time',
-						minWidth: 100,
-					},
-					{
-						title: '支付状态',
-						key: 'pay_type_name',
-						minWidth: 80,
-					},
-					{
-						title: '订单状态',
-						key: 'statusName',
-						slot: 'statusName',
-						minWidth: 120,
-					},
-					{
-						title: '操作',
-						slot: 'action',
-						fixed: 'right',
-						minWidth: 150,
-						align: 'center',
-					},
-				],
-				page: {
-					total: 0, // 总条数
-					pageNum: 1, // 当前页
-					pageSize: 10, // 每页显示条数
-				},
-				data: [],
-				FromData: null,
-				orderDatalist: null,
-				modalTitleSs: '',
-				isDelIdList: [],
-				checkBox: false,
-				formSelection: [],
-				selectionCopy: [],
-				display: 'none',
-				autoDisabled: false,
-				status: 0, //发货状态判断
-				// isAll: -1,
-			};
-		},
-		computed: {
-			...mapState('admin/order', ['orderPayType', 'orderStatus', 'orderTime', 'orderNum', 'fieldKey', 'orderType']),
-		},
-		mounted() {},
-		created() {
-			console.log(this.$store, 'store')
-			console.log('可以', 'store')
-			this.getList();
-		},
-		watch: {
-			orderType: function() {
-				this.page.pageNum = 1;
-				this.getList();
-			},
-			formSelection(value) {
-				this.$emit('order-select', value);
-				if (value.length) {
-					this.$emit('auto-disabled', 0);
-				} else {
-					this.$emit('auto-disabled', 1);
-				}
-				let isDel = value.some((item) => {
-					return item.is_del === 1;
-				});
-				this.getIsDel(isDel);
-				this.getisDelIdListl(value);
-			},
-			orderList: {
-				deep: true,
-				handler(value) {
-					value.forEach((item) => {
-						this.formSelection.forEach((itm) => {
-							if (itm.id === item.id) {
-								item.checkBox = true;
-							}
-						});
-					});
-					const arr = this.orderList.filter((item) => item.checkBox);
-					if (this.orderList.length) {
-						this.checkBox = this.orderList.length === arr.length;
-					} else {
-						this.checkBox = false;
-					}
-				},
-			},
-		},
-		methods: {
-			...mapMutations('admin/order', ['getIsDel', 'getisDelIdListl']),
-			selectAll(row) {
-				if (row.length) {
-					this.formSelection = row;
-					this.selectionCopy = row;
-				}
-				this.selectionCopy.forEach((item, index) => {
-					item.checkBox = this.checkBox;
-					this.$set(this.orderList, index, item);
-				});
-			},
-			showUserInfo(row) {
-				this.$refs.userDetails.modals = true;
-				this.$refs.userDetails.getDetails(row.uid);
-			},
-			// 操作
-			changeMenu(row, name) {
-				this.orderId = row.id;
-				switch (name) {
-					case '1':
-						this.delfromData = {
-							title: '修改立即支付',
-							url: `/order/pay_offline/${row.id}`,
-							method: 'post',
-							ids: '',
-						};
-						this.$modalSure(this.delfromData)
-							.then((res) => {
-								this.$Message.success(res.msg);
-								this.$emit('changeGetTabs');
-								this.getList();
-							})
-							.catch((res) => {
-								this.$Message.error(res.msg);
-							});
-						// this.modalTitleSs = '修改立即支付';
-						break;
-					case '2':
-						this.getData(row.id);
-						break;
-					case '3':
-						this.$refs.record.modals = true;
-						this.$refs.record.getList(row.id);
-						break;
-					case '4':
-						this.$refs.remarks.modals = true;
-						break;
-					case '5':
-						this.getRefundData(row.id);
-						break;
-					case '6':
-						this.getRefundIntegral(row.id);
-						break;
-					case '7':
-						this.getNoRefundData(row.id);
-						break;
-					case '8':
-						this.delfromData = {
-							title: '修改确认收货',
-							url: `/order/take/${row.id}`,
-							method: 'put',
-							ids: '',
-						};
-						this.$modalSure(this.delfromData)
-							.then((res) => {
-								this.$Message.success(res.msg);
-								this.getList();
-							})
-							.catch((res) => {
-								this.$Message.error(res.msg);
-							});
-						// this.modalTitleSs = '修改确认收货';
-						break;
-					case '10':
-						this.delfromData = {
-							title: '立即打印订单',
-							info: '您确认打印此订单吗?',
-							url: `/order/print/${row.id}`,
-							method: 'get',
-							ids: '',
-						};
-						this.$modalSure(this.delfromData)
-							.then((res) => {
-								this.$Message.success(res.msg);
-								this.$emit('changeGetTabs');
-								this.getList();
-							})
-							.catch((res) => {
-								this.$Message.error(res.msg);
-							});
-						break;
-					case '11':
-						this.delfromData = {
-							title: '立即打印电子面单',
-							info: '您确认打印此电子面单吗?',
-							url: `/order/order_dump/${row.id}`,
-							method: 'get',
-							ids: '',
-						};
-						this.$modalSure(this.delfromData)
-							.then((res) => {
-								this.$Message.success(res.msg);
-								this.getList();
-							})
-							.catch((res) => {
-								this.$Message.error(res.msg);
-							});
-						break;
-					default:
-						this.delfromData = {
-							title: '删除订单',
-							url: `/order/del/${row.id}`,
-							method: 'DELETE',
-							ids: '',
-						};
-						// this.modalTitleSs = '删除订单';
-						this.delOrder(row, this.delfromData);
-				}
-			},
-			// 立即支付 /确认收货//删除单条订单
-			submitModel() {
-				this.getList();
-			},
-			pageChange(index) {
-				this.page.pageNum = index;
-				this.getList();
-			},
-			limitChange(limit) {
-				this.page.pageSize = limit;
-				this.getList();
-			},
-			getOrderList(id) {
-				splitOrderList(id).then((res) => {});
-			},
-			// 订单列表
-			getList(res) {
-				this.page.pageNum = res === 1 ? 1 : this.page.pageNum;
-				this.loading = true;
+export default {
+  name: 'table_list',
+  components: {
+    expandRow,
+    editFrom,
+    detailsFrom,
+    orderRemark,
+    orderRecord,
+    orderSend,
+    userDetails,
+  },
+  props: ['where', 'isAll'],
+  data() {
+    return {
+      delfromData: {},
+      modal: false,
+      orderList: [],
+      orderCards: [],
+      loading: false,
+      orderId: 0,
+      columns: [
+        {
+          type: 'expand',
+          width: 30,
+          render: (h, params) => {
+            return h(expandRow, {
+              props: {
+                row: params.row,
+              },
+            });
+          },
+        },
+        {
+          width: 50,
+          align: 'center',
+          renderHeader: (h, params) => {
+            return h(
+              'div',
+              {
+                class: {
+                  'select-panel': true,
+                },
+                on: {
+                  mouseenter: (e) => {
+                    this.display = 'block';
+                  },
+                  mouseleave: (e) => {
+                    this.display = 'none';
+                  },
+                },
+              },
+              [
+                h('Checkbox', {
+                  props: {
+                    value: this.checkBox,
+                  },
+                  on: {
+                    'on-change': (e) => {
+                      this.checkBox = e;
+                      this.$refs.table.selectAll(this.checkBox);
+                      this.$emit('on-all', e ? 0 : -1);
+                    },
+                  },
+                }),
+                h(
+                  'div',
+                  {
+                    style: {
+                      position: 'absolute',
+                      top: 0,
+                      zIndex: 2,
+                      display: this.display,
+                      width: '80px',
+                      height: '100%',
+                      padding: '0px 0',
+                      borderRadius: '4px',
+                      backgroundColor: '#fff',
+                      boxShadow: '0 0px 5px rgba(0, 0, 0, 0.2)',
+                      transform: 'translateX(25%)',
+                    },
+                  },
+                  [
+                    h(
+                      'div',
+                      {
+                        class: {
+                          'select-item': true,
+                          on: this.isAll == 0,
+                        },
+                        style: {
+                          padding: '1px 6px',
+                          cursor: 'pointer',
+                          height: '50%',
+                        },
+                        on: {
+                          click: (e) => {
+                            if (this.isAll === 0) {
+                              this.$emit('on-all', -1);
+                              this.checkBox = false;
+                              this.$refs.table.selectAll(this.checkBox);
+                            } else {
+                              this.$emit('on-all', 0);
+                              if (!this.formSelection.length) {
+                                this.checkBox = true;
+                                this.$refs.table.selectAll(this.checkBox);
+                              }
+                            }
+                            this.display = 'none';
+                          },
+                        },
+                      },
+                      '选择当页',
+                    ),
+                    h(
+                      'div',
+                      {
+                        class: {
+                          'select-item': true,
+                          on: this.isAll == 1,
+                        },
+                        style: {
+                          padding: '1px 6px',
+                          cursor: 'pointer',
+                          height: '50%',
+                        },
+                        on: {
+                          click: (e) => {
+                            if (this.isAll === 1) {
+                              this.isAll = -1;
+                              this.$emit('on-all', -1);
+                              this.checkBox = false;
+                            } else {
+                              this.isAll = 1;
+                              this.$emit('on-all', 1);
+                              this.checkBox = true;
+                            }
+                            this.$refs.table.selectAll(this.checkBox);
+                            this.display = 'none';
+                          },
+                        },
+                      },
+                      '选择全部',
+                    ),
+                  ],
+                ),
+              ],
+            );
+          },
+          render: (h, params) => {
+            return h('Checkbox', {
+              props: {
+                value: params.row.checkBox,
+              },
+              on: {
+                'on-change': (e) => {
+                  if (e) {
+                    this.formSelection.push(params.row);
+                  } else {
+                    this.checkBox = false;
+                    this.formSelection.forEach((item, index) => {
+                      if (item.id === params.row.id) {
+                        this.formSelection.splice(index, 1);
+                      }
+                    });
+                  }
+                  this.$emit('on-all', this.formSelection.length ? 0 : -1);
+                  // this.responseData为查询出的结果数据
+                  // params.row.checkBox = e;
+                  params.row.checkBox = e;
+                  this.orderList[params.index].checkBox = e;
+                },
+              },
+              ref: 'checkbox',
+              refInFor: true,
+            });
+          },
+        },
+        {
+          title: '订单号',
+          align: 'center',
+          slot: 'order_id',
+          minWidth: 150,
+        },
+        {
+          title: '订单类型',
+          key: 'pink_name',
+          minWidth: 120,
+        },
+        {
+          title: '用户信息',
+          slot: 'nickname',
+          minWidth: 100,
+        },
+        {
+          title: '商品信息',
+          slot: 'info',
+          minWidth: 330,
+        },
+        {
+          title: '实际支付',
+          key: 'pay_price',
+          minWidth: 70,
+        },
+        {
+          title: '支付时间',
+          key: '_pay_time',
+          minWidth: 100,
+        },
+        {
+          title: '支付状态',
+          key: 'pay_type_name',
+          minWidth: 80,
+        },
+        {
+          title: '订单状态',
+          key: 'statusName',
+          slot: 'statusName',
+          minWidth: 120,
+        },
+        {
+          title: '操作',
+          slot: 'action',
+          fixed: 'right',
+          minWidth: 150,
+          align: 'center',
+        },
+      ],
+      page: {
+        total: 0, // 总条数
+        pageNum: 1, // 当前页
+        pageSize: 10, // 每页显示条数
+      },
+      data: [],
+      FromData: null,
+      orderDatalist: null,
+      modalTitleSs: '',
+      isDelIdList: [],
+      checkBox: false,
+      formSelection: [],
+      selectionCopy: [],
+      display: 'none',
+      autoDisabled: false,
+      status: 0, //发货状态判断
+      // isAll: -1,
+    };
+  },
+  computed: {
+    ...mapState('admin/order', ['orderPayType', 'orderStatus', 'orderTime', 'orderNum', 'fieldKey', 'orderType']),
+  },
+  mounted() {},
+  created() {
+    this.getList();
+  },
+  watch: {
+    orderType: function () {
+      this.page.pageNum = 1;
+      this.getList();
+    },
+    formSelection(value) {
+      this.$emit('order-select', value);
+      if (value.length) {
+        this.$emit('auto-disabled', 0);
+      } else {
+        this.$emit('auto-disabled', 1);
+      }
+      let isDel = value.some((item) => {
+        return item.is_del === 1;
+      });
+      this.getIsDel(isDel);
+      this.getisDelIdListl(value);
+    },
+    orderList: {
+      deep: true,
+      handler(value) {
+        value.forEach((item) => {
+          this.formSelection.forEach((itm) => {
+            if (itm.id === item.id) {
+              item.checkBox = true;
+            }
+          });
+        });
+        const arr = this.orderList.filter((item) => item.checkBox);
+        if (this.orderList.length) {
+          this.checkBox = this.orderList.length === arr.length;
+        } else {
+          this.checkBox = false;
+        }
+      },
+    },
+  },
+  methods: {
+    ...mapMutations('admin/order', ['getIsDel', 'getisDelIdListl']),
+    selectAll(row) {
+      if (row.length) {
+        this.formSelection = row;
+        this.selectionCopy = row;
+      }
+      this.selectionCopy.forEach((item, index) => {
+        item.checkBox = this.checkBox;
+        this.$set(this.orderList, index, item);
+      });
+    },
+    showUserInfo(row) {
+      this.$refs.userDetails.modals = true;
+      this.$refs.userDetails.getDetails(row.uid);
+    },
+    // 操作
+    changeMenu(row, name) {
+      this.orderId = row.id;
+      switch (name) {
+        case '1':
+          this.delfromData = {
+            title: '修改立即支付',
+            url: `/order/pay_offline/${row.id}`,
+            method: 'post',
+            ids: '',
+          };
+          this.$modalSure(this.delfromData)
+            .then((res) => {
+              this.$Message.success(res.msg);
+              this.$emit('changeGetTabs');
+              this.getList();
+            })
+            .catch((res) => {
+              this.$Message.error(res.msg);
+            });
+          // this.modalTitleSs = '修改立即支付';
+          break;
+        case '2':
+          this.getData(row.id);
+          break;
+        case '3':
+          this.$refs.record.modals = true;
+          this.$refs.record.getList(row.id);
+          break;
+        case '4':
+          this.$refs.remarks.modals = true;
+          break;
+        case '5':
+          this.getRefundData(row.id);
+          break;
+        case '6':
+          this.getRefundIntegral(row.id);
+          break;
+        case '7':
+          this.getNoRefundData(row.id);
+          break;
+        case '8':
+          this.delfromData = {
+            title: '修改确认收货',
+            url: `/order/take/${row.id}`,
+            method: 'put',
+            ids: '',
+          };
+          this.$modalSure(this.delfromData)
+            .then((res) => {
+              this.$Message.success(res.msg);
+              this.getList();
+            })
+            .catch((res) => {
+              this.$Message.error(res.msg);
+            });
+          // this.modalTitleSs = '修改确认收货';
+          break;
+        case '10':
+          this.delfromData = {
+            title: '立即打印订单',
+            info: '您确认打印此订单吗?',
+            url: `/order/print/${row.id}`,
+            method: 'get',
+            ids: '',
+          };
+          this.$modalSure(this.delfromData)
+            .then((res) => {
+              this.$Message.success(res.msg);
+              this.$emit('changeGetTabs');
+              this.getList();
+            })
+            .catch((res) => {
+              this.$Message.error(res.msg);
+            });
+          break;
+        case '11':
+          this.delfromData = {
+            title: '立即打印电子面单',
+            info: '您确认打印此电子面单吗?',
+            url: `/order/order_dump/${row.id}`,
+            method: 'get',
+            ids: '',
+          };
+          this.$modalSure(this.delfromData)
+            .then((res) => {
+              this.$Message.success(res.msg);
+              this.getList();
+            })
+            .catch((res) => {
+              this.$Message.error(res.msg);
+            });
+          break;
+        default:
+          this.delfromData = {
+            title: '删除订单',
+            url: `/order/del/${row.id}`,
+            method: 'DELETE',
+            ids: '',
+          };
+          // this.modalTitleSs = '删除订单';
+          this.delOrder(row, this.delfromData);
+      }
+    },
+    // 立即支付 /确认收货//删除单条订单
+    submitModel() {
+      this.getList();
+    },
+    pageChange(index) {
+      this.page.pageNum = index;
+      this.getList();
+    },
+    limitChange(limit) {
+      this.page.pageSize = limit;
+      this.getList();
+    },
+    getOrderList(id) {
+      splitOrderList(id).then((res) => {});
+    },
+    // 订单列表
+    getList(res) {
+      this.page.pageNum = res === 1 ? 1 : this.page.pageNum;
+      this.loading = true;
 
-				splitOrderList(this.$route.query.id)
-					.then(async (res) => {
-						let data = res.data;
-						// this.orderList = data.data;
-						this.orderList = data.map((item) => {
-							// item.checkBox = false;
-							if (this.isAll === 1) {
-								item.checkBox = true;
-							} else {
-								item.checkBox = false;
-							}
-							return item;
-						});
-						this.orderCards = data.stat;
-						this.page.total = data.count;
-						this.$emit('on-changeCards', data.stat);
-						this.loading = false;
-					})
-					.catch((res) => {
-						this.loading = false;
-						this.$Message.error(res.msg);
-					});
-			},
-			// 全选
-			onSelectTab(selection) {
-				this.formSelection = selection;
-				let isDel = selection.some((item) => {
-					return item.is_del === 1;
-				});
-				this.getIsDel(isDel);
-				this.getisDelIdListl(selection);
-			},
-			// 编辑
-			edit(row) {
-				this.getOrderData(row.id);
-			},
-			splitOrderDetail(row) {
-				this.$router.push({
-					path: 'split_order',
-					query: {
-						id: row.id,
-					},
-				});
-			},
-			// 删除单条订单
-			delOrder(row, data) {
-				if (row.is_del === 1) {
-					this.$modalSure(data)
-						.then((res) => {
-							this.$Message.success(res.msg);
-							this.getList();
-						})
-						.catch((res) => {
-							this.$Message.error(res.msg);
-						});
-				} else {
-					const title = '错误!';
-					const content = '<p>您选择的的订单存在用户未删除的订单,无法删除用户未删除的订单!</p>';
-					this.$Modal.error({
-						title: title,
-						content: content,
-					});
-				}
-			},
-			// 获取编辑表单数据
-			getOrderData(id) {
-				getOrdeDatas(id)
-					.then(async (res) => {
-						if (res.data.status === false) {
-							return this.$authLapse(res.data);
-						}
-						this.$authLapse(res.data);
-						this.FromData = res.data;
-						this.$refs.edits.modals = true;
-					})
-					.catch((res) => {
-						this.$Message.error(res.msg);
-					});
-			},
-			// 获取详情表单数据
-			getData(id) {
-				getDataInfo(id)
-					.then(async (res) => {
-						this.$refs.detailss.modals = true;
-						this.orderDatalist = res.data;
-						if (this.orderDatalist.orderInfo.refund_reason_wap_img) {
-							try {
-								this.orderDatalist.orderInfo.refund_reason_wap_img = JSON.parse(
-									this.orderDatalist.orderInfo.refund_reason_wap_img,
-								);
-							} catch (e) {
-								this.orderDatalist.orderInfo.refund_reason_wap_img = [];
-							}
-						}
-					})
-					.catch((res) => {
-						this.$Message.error(res.msg);
-					});
-			},
-			// 修改成功
-			submitFail() {
-				this.status = 0;
-				this.getList();
-			},
-			// 获取退款表单数据
-			getRefundData(id) {
-				this.$modalForm(getRefundFrom(id)).then(() => {
-					this.getList();
-					this.$emit('changeGetTabs');
-				});
-			},
-			// 获取退积分表单数据
-			getRefundIntegral(id) {
-				refundIntegral(id)
-					.then(async (res) => {
-						this.FromData = res.data;
-						this.$refs.edits.modals = true;
-					})
-					.catch((res) => {
-						this.$Message.error(res.msg);
-					});
-			},
-			// 不退款表单数据
-			getNoRefundData(id) {
-				this.$modalForm(getnoRefund(id)).then(() => {
-					this.getList();
-					this.$emit('changeGetTabs');
-				});
-			},
-			// 发送货
-			sendOrder(row) {
-				this.$refs.send.modals = true;
-				this.orderId = row.id;
-				this.status = row._status;
-				this.$refs.send.getList();
-				this.$refs.send.getDeliveryList();
-				this.$nextTick((e) => {
-					this.$refs.send.getCartInfo(row._status, row.id);
-				});
-			},
-			// 配送信息表单数据
-			delivery(row) {
-				getDistribution(row.id)
-					.then(async (res) => {
-						this.FromData = res.data;
-						this.$refs.edits.modals = true;
-					})
-					.catch((res) => {
-						this.$Message.error(res.msg);
-					});
-			},
-			change(status) {},
-			// 数据导出;
-			exportData: function() {
-				this.$refs.table.exportCsv({
-					filename: '商品列表',
-				});
-			},
-			// 核销订单
-			bindWrite(row) {
-				let self = this;
-				this.$Modal.confirm({
-					title: '提示',
-					content: '确定要核销该订单吗?',
-					cancelText: '取消',
-					closable: true,
-					maskClosable: true,
-					onOk: function() {
-						writeUpdate(row.order_id).then((res) => {
-							self.$Message.success(res.msg);
-							self.getList();
-						});
-					},
-					onCancel: () => {},
-				});
-			},
-			onSelectCancel(selection, row) {},
-		},
-	};
+      splitOrderList(this.$route.query.id)
+        .then(async (res) => {
+          let data = res.data;
+          // this.orderList = data.data;
+          this.orderList = data.map((item) => {
+            // item.checkBox = false;
+            if (this.isAll === 1) {
+              item.checkBox = true;
+            } else {
+              item.checkBox = false;
+            }
+            return item;
+          });
+          this.orderCards = data.stat;
+          this.page.total = data.count;
+          this.$emit('on-changeCards', data.stat);
+          this.loading = false;
+        })
+        .catch((res) => {
+          this.loading = false;
+          this.$Message.error(res.msg);
+        });
+    },
+    // 全选
+    onSelectTab(selection) {
+      this.formSelection = selection;
+      let isDel = selection.some((item) => {
+        return item.is_del === 1;
+      });
+      this.getIsDel(isDel);
+      this.getisDelIdListl(selection);
+    },
+    // 编辑
+    edit(row) {
+      this.getOrderData(row.id);
+    },
+    splitOrderDetail(row) {
+      this.$router.push({
+        path: 'split_order',
+        query: {
+          id: row.id,
+        },
+      });
+    },
+    // 删除单条订单
+    delOrder(row, data) {
+      if (row.is_del === 1) {
+        this.$modalSure(data)
+          .then((res) => {
+            this.$Message.success(res.msg);
+            this.getList();
+          })
+          .catch((res) => {
+            this.$Message.error(res.msg);
+          });
+      } else {
+        const title = '错误!';
+        const content = '<p>您选择的的订单存在用户未删除的订单,无法删除用户未删除的订单!</p>';
+        this.$Modal.error({
+          title: title,
+          content: content,
+        });
+      }
+    },
+    // 获取编辑表单数据
+    getOrderData(id) {
+      getOrdeDatas(id)
+        .then(async (res) => {
+          if (res.data.status === false) {
+            return this.$authLapse(res.data);
+          }
+          this.$authLapse(res.data);
+          this.FromData = res.data;
+          this.$refs.edits.modals = true;
+        })
+        .catch((res) => {
+          this.$Message.error(res.msg);
+        });
+    },
+    // 获取详情表单数据
+    getData(id) {
+      getDataInfo(id)
+        .then(async (res) => {
+          this.$refs.detailss.modals = true;
+          this.orderDatalist = res.data;
+          if (this.orderDatalist.orderInfo.refund_reason_wap_img) {
+            try {
+              this.orderDatalist.orderInfo.refund_reason_wap_img = JSON.parse(
+                this.orderDatalist.orderInfo.refund_reason_wap_img,
+              );
+            } catch (e) {
+              this.orderDatalist.orderInfo.refund_reason_wap_img = [];
+            }
+          }
+        })
+        .catch((res) => {
+          this.$Message.error(res.msg);
+        });
+    },
+    // 修改成功
+    submitFail() {
+      this.status = 0;
+      this.getList();
+    },
+    // 获取退款表单数据
+    getRefundData(id) {
+      this.$modalForm(getRefundFrom(id)).then(() => {
+        this.getList();
+        this.$emit('changeGetTabs');
+      });
+    },
+    // 获取退积分表单数据
+    getRefundIntegral(id) {
+      refundIntegral(id)
+        .then(async (res) => {
+          this.FromData = res.data;
+          this.$refs.edits.modals = true;
+        })
+        .catch((res) => {
+          this.$Message.error(res.msg);
+        });
+    },
+    // 不退款表单数据
+    getNoRefundData(id) {
+      this.$modalForm(getnoRefund(id)).then(() => {
+        this.getList();
+        this.$emit('changeGetTabs');
+      });
+    },
+    // 发送货
+    sendOrder(row) {
+      this.$refs.send.modals = true;
+      this.orderId = row.id;
+      this.status = row._status;
+      this.$refs.send.getList();
+      this.$refs.send.getDeliveryList();
+      this.$nextTick((e) => {
+        this.$refs.send.getCartInfo(row._status, row.id);
+      });
+    },
+    // 配送信息表单数据
+    delivery(row) {
+      getDistribution(row.id)
+        .then(async (res) => {
+          this.FromData = res.data;
+          this.$refs.edits.modals = true;
+        })
+        .catch((res) => {
+          this.$Message.error(res.msg);
+        });
+    },
+    change(status) {},
+    // 数据导出;
+    exportData: function () {
+      this.$refs.table.exportCsv({
+        filename: '商品列表',
+      });
+    },
+    // 核销订单
+    bindWrite(row) {
+      let self = this;
+      this.$Modal.confirm({
+        title: '提示',
+        content: '确定要核销该订单吗?',
+        cancelText: '取消',
+        closable: true,
+        maskClosable: true,
+        onOk: function () {
+          writeUpdate(row.order_id).then((res) => {
+            self.$Message.success(res.msg);
+            self.getList();
+          });
+        },
+        onCancel: () => {},
+      });
+    },
+    onSelectCancel(selection, row) {},
+  },
+};
 </script>
 
 <style scoped lang="stylus">
-	img {
-		height: 36px;
-		display: block;
-	}
+img {
+  height: 36px;
+  display: block;
+}
 
-	.tabBox {
-		width: 100%;
-		height: 100%;
-		display: flex;
-		align-items: center;
+.tabBox {
+  width: 100%;
+  height: 100%;
+  display: flex;
+  align-items: center;
 
-		.tabBox_img {
-			width: 36px;
-			height: 36px;
+  .tabBox_img {
+    width: 36px;
+    height: 36px;
 
-			img {
-				width: 100%;
-				height: 100%;
-			}
-		}
+    img {
+      width: 100%;
+      height: 100%;
+    }
+  }
 
-		.tabBox_tit {
-			width: 60%;
-			font-size: 12px !important;
-			margin: 0 2px 0 10px;
-			letter-spacing: 1px;
-			padding: 5px 0;
-			box-sizing: border-box;
-		}
-	}
+  .tabBox_tit {
+    width: 60%;
+    font-size: 12px !important;
+    margin: 0 2px 0 10px;
+    letter-spacing: 1px;
+    padding: 5px 0;
+    box-sizing: border-box;
+  }
+}
 
-	.orderData>>>.ivu-table-cell {
-		padding-left: 0 !important;
-	}
+.orderData >>>.ivu-table-cell {
+  padding-left: 0 !important;
+}
 
-	.vertical-center-modal {
-		display: flex;
-		align-items: center;
-		justify-content: center;
-	}
+.vertical-center-modal {
+  display: flex;
+  align-items: center;
+  justify-content: center;
+}
 
-	.orderData .ivu-table {
-		overflow: visible !important;
-	}
+.orderData .ivu-table {
+  overflow: visible !important;
+}
 
-	.orderData .ivu-table th {
-		overflow: visible !important;
-	}
+.orderData .ivu-table th {
+  overflow: visible !important;
+}
 
-	.orderData .ivu-table-header {
-		overflow: visible !important;
-	}
+.orderData .ivu-table-header {
+  overflow: visible !important;
+}
 
-	/deep/.ivu-table-header {
-		// overflow: visible;
-	}
+/deep/.ivu-table-header {
+  // overflow: visible;
+}
 
-	/deep/.ivu-table th {
-		overflow: visible;
-	}
+/deep/.ivu-table th {
+  overflow: visible;
+}
 
-	/deep/.select-item:hover {
-		background-color: #f3f3f3;
-	}
+/deep/.select-item:hover {
+  background-color: #f3f3f3;
+}
 
-	/deep/.select-on {
-		display: block;
-	}
+/deep/.select-on {
+  display: block;
+}
 
-	/deep/.select-item.on {
-		background: #f3f3f3;
-	}
+/deep/.select-item.on {
+  background: #f3f3f3;
+}
 
-	.pictrue-box {
-		display: flex;
-		align-item: center;
-	}
+.pictrue-box {
+  display: flex;
+  align-item: center;
+}
 
-	.pictrue {
-		width: 25px;
-		height: 25px;
-	}
+.pictrue {
+  width: 25px;
+  height: 25px;
+}
 
-	.return {
-		border: 1px solid #ccc;
-		padding: 3px 5px;
-		margin-left: 15px;
-		border-radius: 3px;
-		cursor: pointer;
-	}
-</style>
+.return {
+  border: 1px solid #ccc;
+  padding: 3px 5px;
+  margin-left: 15px;
+  border-radius: 3px;
+  cursor: pointer;
+}
+</style>

+ 2 - 62
src/pages/product/productList/index.vue

@@ -79,8 +79,7 @@
 						:to="{ path: $routeProStr + '/product/product_reply/' + row.id }"><a>查看评论</a></router-link>
 					<Divider type="vertical" />
 					<a @click="del(row, '恢复商品', index)" v-if="artFrom.type === '6'">恢复商品</a>
-					<a @click="del(row, '移入回收站', index)" v-else-if="artFrom.type !== '7'">移到回收站</a>
-					<a @click="examine(row.id)" v-if="artFrom.type === '7'">审核</a>
+					<a @click="del(row, '移入回收站', index)" v-else>移到回收站</a>
 				</template>
 			</Table>
 			<div class="acea-row row-right page">
@@ -137,8 +136,7 @@
 						<div class="acea-row">
 							<Select v-model="batchFormData.temp_id" clearable placeholder="请选择运费模板" class="perW20 maxW">
 								<Option v-for="(item, index) in templateList" :value="item.id" :key="index">
-									{{ item.name }}
-								</Option>
+									{{ item.name }}</Option>
 							</Select>
 						</div>
 					</FormItem>
@@ -224,8 +222,6 @@
 		storeProductApi,
 		batchSetting,
 		productGetTemplateApi,
-		set_audit_success,
-		set_audit_fail
 	} from '@/api/product';
 	import userLabel from '@/components/labelList';
 
@@ -392,62 +388,6 @@
 			}
 		},
 		methods: {
-			examine(id) {
-				const that = this;
-				that.$confirm('审核过后无法修改!是否审核通过?', '提示', {
-					distinguishCancelAndClose:true,
-					confirmButtonText: '通过',
-					cancelButtonText: '拒绝',
-					type: 'warning'
-				}).then(() => {
-					// that.$message({
-					// 	type: 'success',
-					// 	message: '删除成功!'
-					// });
-					set_audit_success(id).then((res)=>{
-						that.$message({
-							type: 'success',
-							message:res.msg
-						});
-						that.getDataList();
-						that.goodHeade();
-					}).catch((res)=>{
-						that.$message({
-							type: 'error',
-							message: res.msg
-						});
-					})
-					
-				}).catch((action ) => {
-					if(action === 'cancel'){
-						that.$prompt('请输入拒绝理由', '提示', {
-							confirmButtonText: '确定',
-							cancelButtonText: '取消',
-						}).then(({
-							value
-						}) => {
-							set_audit_fail(id,{audit_msg:value}).then((res)=>{
-								that.$message({
-									type: 'success',
-									message:res.msg
-								});
-								that.getDataList();
-								that.goodHeade();
-							}).catch((res)=>{
-								that.$message({
-									type: 'error',
-									message: res.msg
-								});
-							})
-						}).catch((e) => {
-							that.$message({
-								type: 'info',
-								message: '已取消'
-							});
-						});
-					}
-				});
-			},
 			batchSub() {
 				let data = this.batchFormData;
 				data.ids = this.ids;

+ 88 - 30
src/pages/shop/shop.vue

@@ -1,10 +1,19 @@
 <template>
 	<div class="article-manager">
 		<Card :bordered="false" dis-hover class="ivu-mt">
+			<Tabs class="mb20" v-model="artFrom.type" @on-click="onClickTab">
+				<TabPane :label="item.name + '(' + item.count + ')'" :name="item.type.toString()"
+					v-for="(item, index) in headeNum" :key="index" />
+			</Tabs>
 			<Form ref="artFrom" :model="artFrom" :label-width="75" label-position="right" @submit.native.prevent>
 				<Row type="flex" :gutter="24">
 					<Col v-bind="grid">
 					<FormItem label="商户分类:" label-for="merchant_category_id">
+						<!-- <Select v-model="artFrom.cate_id" placeholder="请选择商品分类" clearable @on-change="userSearchs">
+                <Option v-for="item in treeSelect" :value="item.id" :key="item.id">{{
+                  item.html + item.cate_name
+                }}</Option>
+              </Select> -->
 						<el-cascader v-model="artFrom.category_id" size="small" :options="classifySelect"
 							:props="{ emitPath: false,value:'merchant_category_id',label:'category_name' }"
 							clearable></el-cascader>
@@ -12,6 +21,11 @@
 					</Col>
 					<Col v-bind="grid">
 					<FormItem label="商户类型:" label-for="mer_type_id">
+						<!-- <Select v-model="artFrom.cate_id" placeholder="请选择商品分类" clearable @on-change="userSearchs">
+					  <Option v-for="item in treeSelect" :value="item.id" :key="item.id">{{
+					    item.html + item.cate_name
+					  }}</Option>
+					</Select> -->
 						<el-cascader v-model="artFrom.type_id" size="small" :options="typeSelect"
 							:props="{ emitPath: false ,value:'mer_type_id',label:'type_name'}" clearable></el-cascader>
 					</FormItem>
@@ -27,8 +41,9 @@
 			<div class="Button">
 				<Button type="primary" @click="add('添加')" class="bnt mr15" icon="md-add">添加商户</Button>
 			</div>
-			<Table ref="table" :columns="columns" :data="tableList" class="ivu-mt mt25" :loading="loading" highlight-row
-				no-data-text="暂无数据" no-filtered-data-text="暂无筛选结果">
+			<Table ref="table" :columns="artFrom.type !== '1' && artFrom.type !== '2' ? columns2 : columns"
+				:data="tableList" class="ivu-mt mt25" :loading="loading" highlight-row no-data-text="暂无数据"
+				no-filtered-data-text="暂无筛选结果">
 				<template slot-scope="{ row }" slot="image">
 					<div class="tabBox_img" v-viewer>
 						<img v-lazy="row.image" />
@@ -48,14 +63,6 @@
 						<span slot="close">禁用</span>
 					</i-switch>
 				</template>
-				<template slot-scope="{ row, index }" slot="is_audit">
-					<i-switch v-model="row.is_audit" :value="row.is_audit" :true-value="1" :false-value="0"
-						@on-change="changeExamineSwitch(row)" size="large">
-						<span slot="open">开启</span>
-						<span slot="close">关闭</span>
-					</i-switch>
-				</template>
-
 				<template slot-scope="{ row, index }" slot="action">
 					<!-- <a @click="onLogo(row)">登录</a>
 					<Divider type="vertical" /> -->
@@ -166,13 +173,13 @@
 		merchentlist,
 		getmerchent,
 		addadmin,
+		updataadmin,
 		changepwd,
 		lst,
 		typeList,
 		forbidden,
 		openMerchant,
-		merchantLoginApi,
-		openMerchantProduct
+		merchantLoginApi
 	} from '@/api/shop';
 	import {
 		setCookies
@@ -184,6 +191,7 @@
 		formatFlatteningRoutes,
 		findFirstNonNullChildren
 	} from '@/libs/system';
+	import SettingMer from "@/libs/settingMer";
 	export default {
 		name: 'shop_list',
 		components: {
@@ -228,6 +236,7 @@
 				},
 				list: [],
 				tableList: [],
+				headeNum: [],
 				classifySelect: [],
 				typeSelect: [],
 				loading: false,
@@ -268,8 +277,8 @@
 						minWidth: 150,
 					},
 					{
-						title: '审核',
-						slot: 'is_audit',
+						title: '商户简介',
+						key: 'introduction',
 						minWidth: 150,
 					},
 					{
@@ -309,7 +318,11 @@
 				],
 				data: [],
 				total: 0,
+				attrTemplate: false,
+				ids: [],
 				goodsId: '',
+				isProductBox: false,
+				treeSelect: [],
 				modals: false,
 				modalPic: false,
 				pwd: false,
@@ -350,6 +363,16 @@
 						message: '请输入商户名称',
 						trigger: 'blur'
 					}],
+					// category_id: [{
+					// 	required: true,
+					// 	message: '请选择商户分类',
+					// 	trigger: 'blur'
+					// }],
+					// type_id: [{
+					// 	required: true,
+					// 	message: '请选择商户类型',
+					// 	trigger: 'blur'
+					// }],
 					real_name: [{
 						required: true,
 						message: '请输入商户负责人名称',
@@ -396,6 +419,7 @@
 			this.getDataList();
 		},
 		activated() {
+			this.goodHeade();
 			// this.goodsCategory();
 			if (this.$route.fullPath === this.$routeProStr + '/product/product_list?type=5') {
 				this.getPath();
@@ -474,6 +498,11 @@
 				let expiresTimeNum = expiresTime - nowTimeNum;
 				return parseFloat(parseFloat(parseFloat(expiresTimeNum / 60) / 60) / 24);
 			},
+			//对象数组去重;
+			unique(arr) {
+				const res = new Map();
+				return arr.filter((arr) => !res.has(arr.id) && res.set(arr.id, 1));
+			},
 			getPic(pc) {
 				console.log(pc, 'info');
 				switch (this.picTit) {
@@ -502,7 +531,49 @@
 				this.artFrom.type = this.$route.query.type.toString();
 				this.getDataList();
 			},
-			// 商户类型;
+			freight() {
+				this.$refs.template.isTemplate = true;
+			},
+			clearAll(status) {
+				this.$refs.table.selectAll(status);
+			},
+			setChecked() {
+				//将new Set()转化为数组
+				this.ids = [...this.selectedIds];
+				// 找到绑定的table的ref对应的dom,找到table的objData对象,objData保存的是当前页的数据
+				let objData = this.$refs.table.objData;
+				for (let index in objData) {
+					if (this.selectedIds.has(objData[index].id)) {
+						objData[index]._isChecked = true;
+					}
+				}
+			},
+			// tab选择
+			onClickTab(name) {
+				this.artFrom.type = name;
+				this.columns2 = [...this.columns];
+				if (name !== '1' && name !== '2') {
+					this.columns2.shift({
+						type: 'selection',
+						width: 60,
+						align: 'center',
+					});
+				}
+				this.artFrom.page = 1;
+				this.selectedIds.clear();
+				this.getDataList();
+			},
+			// 获取商品表单头数量
+			goodHeade() {
+				getGoodHeade()
+					.then((res) => {
+						this.headeNum = res.data.list;
+					})
+					.catch((res) => {
+						this.$Message.error(res.msg);
+					});
+			},
+			// 商品分类;
 			gettype() {
 				console.log('进入');
 				typeList()
@@ -513,7 +584,7 @@
 						this.$Message.error(res.msg);
 					});
 			},
-			// 商分类;
+			// 商分类;
 			getclassify() {
 				console.log('进入');
 				lst()
@@ -582,20 +653,6 @@
 						this.$Message.error(res.msg);
 					});
 			},
-			// 商户审核开启关闭
-			changeExamineSwitch(row) {
-				openMerchantProduct({
-						mer_id: row.mer_id,
-						is_audit: row.is_audit
-					})
-					.then((res) => {
-						this.$Message.success(res.msg);
-					})
-					.catch((res) => {
-						row.is_show = !row.is_show ? 1 : 0;
-						this.$Message.error(res.msg);
-					});
-			},
 			// 编辑
 			edit(row) {
 				this.$modalForm(getmerchent({}, row.mer_id)).then(() => this.getDataList());
@@ -643,6 +700,7 @@
 					.then((res) => {
 						this.$Message.success(res.msg);
 						this.tableList.splice(num, 1);
+						this.goodHeade();
 					})
 					.catch((res) => {
 						this.$Message.error(res.msg);

+ 0 - 416
src/pages/shop_finance/userExtract/index.vue

@@ -1,416 +0,0 @@
-<template>
-	<div class="article-manager">
-		<Card :bordered="false" dis-hover class="ivu-mt">
-			<Form ref="artFrom" :model="artFrom" :label-width="75" label-position="right" @submit.native.prevent>
-				<Row type="flex" :gutter="24">
-					<Col v-bind="grid">
-						<FormItem label="提现类型:" >
-							<Select v-model="artFrom.extract_type"  @on-change="userSearchs" clearable placeholder="请选择提现类型">
-							    <Option
-							      label="全部"
-							      value="">
-							    </Option>
-								<Option
-								  label="银行"
-								  value="bank">
-								</Option>
-								<Option
-								  label="支付宝"
-								  value="ali">
-								</Option>
-							  </Select>
-						</FormItem>
-					</Col>
-					<Col v-bind="grid">
-						<FormItem label="审核状态:" >
-							<Select v-model="artFrom.status"  @on-change="userSearchs" clearable placeholder="请选择提现类型">
-							    <Option
-							      label="全部"
-							      value="">
-							    </Option>
-								<Option
-								  label="审核中"
-								  :value="0">
-								</Option>
-								<Option
-								  label="通过"
-								  :value="1">
-								</Option>
-								<Option
-								  label="未通过"
-								  :value="-1">
-								</Option>
-							  </Select>
-						</FormItem>
-					</Col>
-					<Col v-bind="grid">
-						<FormItem label="商户搜索:">
-							<Input search enter-button placeholder="请输入支付宝号/银行卡号" v-model="artFrom.field_key"
-								@on-search="userSearchs" />
-						</FormItem>
-					</Col>
-				</Row>
-			</Form>
-			<div class="Button" style="display: flex; justify-content: flex-start; align-items: center;">
-				<Button type="primary" @click="add('添加')" class="bnt mr15" icon="md-add">申请提现</Button>
-				<div>可提现金额:{{allmoney}}</div>
-			</div>
-			
-			<Table ref="table" :columns="columns"
-				:data="tableList" class="ivu-mt mt25" :loading="loading" highlight-row no-data-text="暂无数据"
-				no-filtered-data-text="暂无筛选结果">
-				<template slot-scope="{ row }" slot="extract_type">
-					<div v-if="row.extract_type=='ali'">
-						支付宝
-					</div>
-					<div v-else-if="row.extract_type=='bank'">
-						银行
-					</div>
-					<div v-else>
-						其他
-					</div>
-				</template>
-				<template slot-scope="{ row }" slot="extract_detail">
-					<div v-if="row.extract_type=='ali'">
-						支付宝账号:{{row.alipay_code}}
-					</div>
-					<div v-else-if="row.extract_type=='bank'">
-						开户行:{{row.bank_address}}<br />
-						银行卡:{{row.bank_code}}<br />
-						用户名:{{row.real_name}}<br />
-					</div>
-					<div v-else>
-						其他
-					</div>
-				</template>
-				<template slot-scope="{ row }" slot="action">
-					<div v-if="row.status==0">
-						审核中
-					</div>
-					<div v-else-if="row.status==1">
-						通过
-					</div>
-					<div v-else-if="row.status==-1">
-						拒绝
-					</div>
-				</template>
-			</Table>
-			<div class="acea-row row-right page">
-				<Page :total="total" :current="artFrom.page" show-elevator show-total @on-change="pageChange"
-					:page-size="artFrom.limit" />
-			</div>
-		</Card>
-		<!-- 新增编辑-->
-		<Modal v-model="modals" @on-cancel="onCancel" scrollable footer-hide closable title="申请提现"
-			:mask-closable="false" width="700">
-			<Form ref="formInline" :model="formInline" :rules="ruleValidate" :label-width="150"
-				:label-position="labelPosition2" @submit.native.prevent>
-				<FormItem label="提现类型:" label-for="extract_type" prop="extract_type">
-					<Select v-model="formInline.extract_type" placeholder="请选择提现类型">
-						<Option
-						  label="银行"
-						  value="bank">
-						</Option>
-						<Option
-						  label="支付宝"
-						  value="ali">
-						</Option>
-					  </Select>
-				</FormItem>
-				<FormItem label="姓名:" label-for="real_name" prop="real_name">
-					<Input placeholder="请输入提现人员姓名" v-model="formInline.real_name" />
-				</FormItem>
-				<FormItem v-if="formInline.extract_type=='bank'" label="银行卡号:" prop='bank_code'>
-					<Input placeholder="请输入银行卡号" v-model="formInline.bank_code" />
-				</FormItem>
-				<FormItem v-if="formInline.extract_type=='bank'" label="开户行:" label-for="account" prop="account">
-					<Input placeholder="请输入开户行" v-model="formInline.bank_address" />
-				</FormItem>
-				<FormItem v-if="formInline.extract_type=='ali'"  label="支付宝:" label-for="alipay_code" prop="alipay_code">
-					<Input placeholder="请输入支付宝账号" v-model="formInline.alipay_code" />
-				</FormItem>
-				<FormItem label="提现金额:" label-for="extract_price" prop="extract_price">
-					<Input type="number" placeholder="请输入提现金额" v-model="formInline.extract_price" />
-				</FormItem>
-				<Button type="primary" size="large" long @click="handleSubmit('formInline')">提交</Button>
-			</Form>
-		</Modal>
-	</div>
-</template>
-
-<script>
-	import {
-		mapState
-	} from 'vuex';
-	import {
-		getExtractList,
-		shopExtract
-	} from '@/api/shopOrder';
-	import {
-		addadmin,
-	} from '@/api/shop';
-	export default {
-		name: 'shop_extract',
-		computed: {
-			labelPosition2() {
-				return this.isMobile ? 'top' : 'right';
-			},
-		},
-		data() {
-			return {
-				allmoney:'',
-				template: false,
-				grid: {
-					xl: 7,
-					lg: 7,
-					md: 12,
-					sm: 24,
-					xs: 24,
-				},
-				artFrom: {
-					page: 1,
-					limit: 10,
-					status: '',
-					extract_type: '',
-					field_key:''
-				},
-				tableList: [],
-				loading: false,
-				columns: [{
-						title: 'ID',
-						key: 'id',
-						width: 80,
-					},
-					{
-						title: '提现方式',
-						slot: 'extract_type',
-						minWidth: 80,
-					},
-					{
-						title: '提现信息',
-						slot: 'extract_detail',
-						minWidth: 200,
-					},
-					{
-						title: '提现金额',
-						key: 'extract_price',
-						minWidth: 100,
-					},
-					{
-						title: '审核状态',
-						slot: 'action',
-					},
-				],
-				data: [],
-				total: 0,
-				modals: false,
-				formInline: {
-					extract_type: 'bank',
-					real_name: '',
-					bank_code: '',
-					bank_address: '',
-					alipay_code: '',
-					extract_price: '',
-				},
-				ruleValidate: {
-					real_name: [{
-						required: true,
-						message: '请输入用户名称',
-						trigger: 'blur'
-					}],
-					extract_type: [{
-						required: true,
-						message: '请选择提现类型',
-						trigger: 'blur'
-					}],
-					extract_price: [{
-						required: true,
-						message: '请输入提现金额',
-						trigger: 'blur'
-					}],
-				},
-			};
-		},
-		// watch: {
-		// 	$route() {
-		// 		if (this.$route.fullPath === this.$routeProStr + '/product/product_list?type=5') {
-		// 			this.getPath();
-		// 		}
-		// 	},
-		// },
-		created() {
-			// this.gettype();
-			// this.getclassify();
-			this.getDataList();
-		},
-		activated() {
-			// this.goodHeade();
-			// this.goodsCategory();
-			// if (this.$route.fullPath === this.$routeProStr + '/product/product_list?type=5') {
-			// 	this.getPath();
-			// } else {
-			// 	this.getDataList();
-			// }
-		},
-		methods: {
-			// 商户列表
-			getDataList() {
-				this.loading = true;
-				getExtractList(this.artFrom)
-					.then((res) => {
-						let data = res.data;
-						this.tableList = data.list;
-						this.total = data.count;
-						this.allmoney = +data.mer_price.mer_money
-						// this.$nextTick(() => {
-						// 	//确保dom加载完毕
-						// 	this.setChecked();
-						// });
-						this.loading = false;
-					})
-					.catch((res) => {
-						this.loading = false;
-						this.$Message.error(res.msg);
-					});
-			},
-			pageChange(status) {
-				this.artFrom.page = status;
-				this.getDataList();
-			},
-			// 表格搜索
-			userSearchs() {
-				this.artFrom.page = 1;
-				this.getDataList();
-			},
-			// 添加
-			add(name) {
-				this.modals = true;
-			},
-			handleSubmit(name) {
-				const that = this;
-				that.$refs[name].validate((valid) => {
-					if (valid) {
-						if(that.formInline.extract_type=='bank'){
-							if(!that.formInline.bank_code){
-								return  this.$Message.warning('请输入银行卡号')
-							}
-							if(!that.formInline.bank_address){
-								return  this.$Message.warning('请输入开户行')
-							}
-						}
-						if(that.formInline.extract_type=='ali'){
-							if(!that.formInline.alipay_code){
-								return  this.$Message.warning('请输入支付宝账号')
-							}
-						}
-						shopExtract(that.formInline)
-							.then(async (res) => {
-								that.$Message.success(res.msg);
-								that.modals = false;
-								that.getDataList();
-								that.$refs[name].resetFields();
-							})
-							.catch((res) => {
-								that.$Message.error(res.msg);
-							});
-					} else {
-						return false;
-					}
-				});
-			},
-			onCancel() {
-				this.$refs['formInline'].resetFields();
-			},
-		},
-	};
-</script>
-<style scoped lang="stylus">
-	/deep/.ivu-modal-mask {
-		z-index: 999 !important;
-	}
-
-	/deep/.ivu-modal-wrap {
-		z-index: 999 !important;
-	}
-
-	.Box {
-		>>>.ivu-modal-body {
-			height: 700px;
-			overflow: auto;
-		}
-	}
-
-	.batch-box {
-		>>>.ivu-modal-body {
-			overflow: auto;
-			min-height: 350px;
-		}
-	}
-
-	.tabBox_img {
-		width: 36px;
-		height: 36px;
-		border-radius: 4px;
-		cursor: pointer;
-
-		img {
-			width: 100%;
-			height: 100%;
-		}
-	}
-
-	.bg {
-		position: fixed;
-		left: 0;
-		top: 0;
-		width: 100%;
-		height: 100%;
-		background: rgba(0, 0, 0, 0.5);
-		z-index: 11;
-	}
-
-	/deep/.happy-scroll-content {
-		width: 100%;
-
-		.demo-spin-icon-load {
-			animation: ani-demo-spin 1s linear infinite;
-		}
-
-		@keyframes ani-demo-spin {
-			from {
-				transform: rotate(0deg);
-			}
-
-			50% {
-				transform: rotate(180deg);
-			}
-
-			to {
-				transform: rotate(360deg);
-			}
-		}
-
-		.demo-spin-col {
-			height: 100px;
-			position: relative;
-			border: 1px solid #eee;
-		}
-	}
-
-	.labelInput {
-		border: 1px solid #dcdee2;
-		width: 20%;
-		padding: 0 5px;
-		border-radius: 5px;
-		min-height: 30px;
-		cursor: pointer;
-
-		.span {
-			color: #c5c8ce;
-		}
-
-		.iconxiayi {
-			font-size: 12px;
-		}
-	}
-</style>

+ 0 - 631
src/pages/shop_order/invoice/index.vue

@@ -1,631 +0,0 @@
-<template>
-  <div>
-    <Card :bordered="false" dis-hover class="ivu-mb-16">
-      <div class="table_box">
-        <Form
-          ref="orderData"
-          :model="orderData"
-          :label-width="80"
-          label-position="right"
-          class="tabform"
-          @submit.native.prevent
-        >
-          <Row :gutter="24" type="flex" justify="end">
-            <!--                        <Col span="24" class="ivu-text-left">-->
-            <!--                            <FormItem label="订单状态:">-->
-            <!--                                <RadioGroup v-model="orderData.status" type="button"  @on-change="selectChange()">-->
-            <!--                                    <Radio label="">全部 {{  '(' +tablists.statusAll?tablists.statusAll:0 + ')' }}</Radio>-->
-            <!--                                    <Radio label="0">未支付 {{  '(' +tablists.unpaid?tablists.unpaid:0+ ')' }}</Radio>-->
-            <!--                                    <Radio label="1">未发货 {{  '(' +tablists.unshipped?tablists.unshipped:0+ ')' }}</Radio>-->
-            <!--                                    <Radio label="2">待收货 {{  '(' +tablists.untake?tablists.untake:0+ ')' }}</Radio>-->
-            <!--                                    <Radio label="3">待评价 {{  '(' +tablists.unevaluate?tablists.unevaluate:0+ ')' }}</Radio>-->
-            <!--                                    <Radio label="4">交易完成 {{  '(' +tablists.complete?tablists.complete:0+ ')' }}</Radio>-->
-            <!--                                    <Radio label="5">待核销 {{  '(' +tablists.write_off?tablists.write_off:0+ ')' }}</Radio>-->
-            <!--                                    <Radio label="-1">退款中 {{  '(' +tablists.refunding?tablists.refunding:0+ ')' }}</Radio>-->
-            <!--                                    <Radio label="-2">已退款 {{  '(' +tablists.refund?tablists.refund:0+ ')' }}</Radio>-->
-            <!--                                    <Radio label="-4">已删除 {{  '(' +tablists.del?tablists.del:0+ ')' }}</Radio>-->
-            <!--                                </RadioGroup>-->
-            <!--                            </FormItem>-->
-            <!--                        </Col>-->
-            <Col span="24" class="ivu-text-left">
-              <FormItem label="创建时间:">
-                <DatePicker
-                  :editable="false"
-                  @on-change="onchangeTime"
-                  :value="timeVal"
-                  format="yyyy/MM/dd"
-                  type="datetimerange"
-                  placement="bottom-start"
-                  placeholder="请选择时间"
-                  style="width: 300px"
-                  class="mr20"
-                  :options="options"
-                ></DatePicker>
-              </FormItem>
-            </Col>
-            <Col span="24">
-              <Col v-bind="grid" class="mr">
-                <FormItem label="搜索:" prop="real_name" label-for="real_name">
-                  <Input
-                    v-model="orderData.real_name"
-                    search
-                    enter-button
-                    placeholder="请输入"
-                    element-id="name"
-                    @on-search="orderSearch()"
-                  >
-                    <Select v-model="orderData.field_key" slot="prepend" style="width: 80px">
-                      <Option value="all">全部</Option>
-                      <Option value="order_id">订单号</Option>
-                      <Option value="uid">UID</Option>
-                      <Option value="real_name">用户姓名</Option>
-                      <Option value="user_phone">用户电话</Option>
-                    </Select>
-                  </Input>
-                </FormItem>
-              </Col>
-            </Col>
-          </Row>
-        </Form>
-      </div>
-    </Card>
-    <Card :bordered="false" dis-hover>
-      <Tabs v-model="currentTab" @on-click="onClickTab" v-if="tablists" class="mb20">
-        <TabPane :label="'全部发票(' + tablists.all + ')'" name=" " />
-        <TabPane :label="'待开发票(' + tablists.noOpened + ')'" name="1" />
-        <TabPane :label="'已开发票(' + tablists.opened + ')'" name="2" />
-        <TabPane :label="'退款发票(' + tablists.refund + ')'" name="3" />
-      </Tabs>
-      <Table
-        :columns="columns"
-        :data="orderList"
-        ref="table"
-        :loading="loading"
-        highlight-row
-        no-userFrom-text="暂无数据"
-        no-filtered-userFrom-text="暂无筛选结果"
-      >
-        <template slot-scope="{ row, index }" slot="pay_price">
-          <div>¥ {{ row.pay_price }}</div>
-        </template>
-        <template slot-scope="{ row, index }" slot="type">
-          <div v-if="row.type === 1">电子普通发票</div>
-          <div v-else>纸质专用发票</div>
-        </template>
-        <template slot-scope="{ row, index }" slot="is_invoice">
-          <div v-if="row.is_invoice === 1">已开票</div>
-          <div v-else>未开票</div>
-        </template>
-        <template slot-scope="{ row, index }" slot="status">
-          <div v-if="row.status === 0">未发货</div>
-          <div v-else-if="row.status === 1">待收货</div>
-          <div v-else-if="row.status === 2">待评价</div>
-          <div v-else-if="row.status === 3">已完成</div>
-          <div v-else-if="row.status === -2">已退款</div>
-        </template>
-        <template slot-scope="{ row, index }" slot="header_type">
-          <div v-if="row.header_type === 1">个人</div>
-          <div v-else>企业</div>
-        </template>
-        <template slot-scope="{ row, index }" slot="action">
-          <a v-if="row.status != -2" @click="edit(row)">编辑</a>
-          <Divider v-if="row.status != -2" type="vertical" />
-          <a @click="orderInfo(row.id)">订单信息</a>
-        </template>
-      </Table>
-      <div class="acea-row row-right page">
-        <Page
-          :total="total"
-          :current="orderData.page"
-          show-elevator
-          show-total
-          @on-change="pageChange"
-          :page-size="orderData.limit"
-        />
-      </div>
-    </Card>
-    <Modal
-      v-model="invoiceShow"
-      scrollable
-      title="发票详情"
-      class="order_box"
-      width="700"
-      @on-cancel="cancel"
-      footer-hide
-    >
-      <Form ref="formInline" :model="formInline" :label-width="100" @submit.native.prevent>
-        <div v-if="invoiceDetails.header_type === 1 && invoiceDetails.type === 1">
-          <div class="list">
-            <div class="title">发票信息</div>
-            <Row class="row">
-              <Col span="12"
-                >发票抬头: <span class="info">{{ invoiceDetails.name }}</span></Col
-              >
-              <Col span="12">发票类型: <span class="info">电子普通发票</span></Col>
-            </Row>
-            <Row class="row">
-              <Col span="12">发票抬头类型: 个人</Col>
-              <Col span="12">订单金额: {{ invoiceDetails.pay_price }}</Col>
-            </Row>
-          </div>
-          <div class="list">
-            <div class="title row">联系信息</div>
-            <Row class="row">
-              <Col span="12">真实姓名: {{ invoiceDetails.name }}</Col>
-              <Col span="12">联系电话: {{ invoiceDetails.drawer_phone }}</Col>
-            </Row>
-            <Row class="row">
-              <Col span="12">联系邮箱: {{ invoiceDetails.email }}</Col>
-            </Row>
-          </div>
-        </div>
-        <div v-if="invoiceDetails.header_type === 2 && invoiceDetails.type === 1">
-          <div class="list">
-            <div class="title">发票信息</div>
-            <Row class="row">
-              <Col span="12"
-                >发票抬头: <span class="info">{{ invoiceDetails.name }}</span></Col
-              >
-              <Col span="12"
-                >企业税号: <span class="info">{{ invoiceDetails.duty_number }}</span></Col
-              >
-            </Row>
-            <Row class="row">
-              <Col span="12">发票类型: 电子普通发票</Col>
-              <Col span="12">发票抬头类型: 企业</Col>
-            </Row>
-          </div>
-          <div class="list">
-            <div class="title row">联系信息</div>
-            <Row class="row">
-              <Col span="12">真实姓名: {{ invoiceDetails.name }}</Col>
-              <Col span="12">联系电话: {{ invoiceDetails.user_phone }}</Col>
-            </Row>
-            <Row class="row">
-              <Col span="12">联系邮箱: {{ invoiceDetails.email }}</Col>
-            </Row>
-          </div>
-        </div>
-        <div v-if="invoiceDetails.header_type === 2 && invoiceDetails.type === 2">
-          <div class="list">
-            <div class="title">发票信息</div>
-            <Row class="row">
-              <Col span="12"
-                >发票抬头: <span class="info">{{ invoiceDetails.name }}</span></Col
-              >
-              <Col span="12"
-                >企业税号: <span class="info">{{ invoiceDetails.duty_number }}</span></Col
-              >
-            </Row>
-            <Row class="row">
-              <Col span="12">发票类型: 纸质专用发票</Col>
-              <Col span="12">发票抬头类型: 企业</Col>
-            </Row>
-            <Row class="row">
-              <Col span="12"
-                >开户银行: <span class="info">{{ invoiceDetails.bank }}</span></Col
-              >
-              <Col span="12"
-                >银行账号: <span class="info">{{ invoiceDetails.card_number }}</span></Col
-              >
-            </Row>
-            <Row class="row">
-              <Col span="12">企业地址: {{ invoiceDetails.address }}</Col>
-              <Col span="12">企业电话: {{ invoiceDetails.drawer_phone }}</Col>
-            </Row>
-          </div>
-          <div class="list">
-            <div class="title row">联系信息</div>
-            <Row class="row">
-              <Col span="12">真实姓名: {{ invoiceDetails.real_name }}</Col>
-              <Col span="12">联系电话: {{ invoiceDetails.user_phone }}</Col>
-            </Row>
-            <Row class="row">
-              <Col span="12">联系邮箱: {{ invoiceDetails.email }}</Col>
-            </Row>
-          </div>
-        </div>
-        <FormItem label="开票状态:" style="margin-top: 14px">
-          <RadioGroup v-model="formInline.is_invoice" @on-change="kaiInvoice(formInline.is_invoice)">
-            <Radio :label="1">已开票</Radio>
-            <Radio :label="0">未开票</Radio>
-          </RadioGroup>
-        </FormItem>
-        <FormItem label="发票编号:" v-if="formInline.is_invoice === 1">
-          <Input v-model="formInline.invoice_number" placeholder="请输入发票编号"></Input>
-        </FormItem>
-        <FormItem label="发票备注:" v-if="formInline.is_invoice === 1">
-          <Input
-            v-model="formInline.remark"
-            value="备注"
-            type="textarea"
-            :autosize="{ minRows: 2, maxRows: 5 }"
-            placeholder="请输入发票备注"
-          ></Input>
-        </FormItem>
-        <Button type="primary" @click="handleSubmit()" style="width: 100%; margin: 0 10px">确定</Button>
-      </Form>
-    </Modal>
-    <Modal v-model="orderShow" scrollable title="订单详情" footer-hide class="order_box" width="700">
-      <orderDetall :orderId="orderId" @detall="detall" v-if="orderShow"></orderDetall>
-    </Modal>
-  </div>
-</template>
-<script>
-import orderDetall from './orderDetall';
-import { orderInvoiceChart, orderInvoiceList, orderInvoiceSet } from '@/api/order';
-import { mapState } from 'vuex';
-export default {
-  name: 'invoice',
-  components: {
-    orderDetall,
-  },
-  computed: {
-    ...mapState('media', ['isMobile']),
-    labelWidth() {
-      return this.isMobile ? undefined : 75;
-    },
-    labelPosition() {
-      return this.isMobile ? 'top' : 'right';
-    },
-  },
-  data() {
-    return {
-      orderShow: false,
-      invoiceShow: false,
-      invoiceDetails: {},
-      formInline: {
-        is_invoice: 0,
-        invoice_number: '',
-        remark: '',
-      },
-      loading: false,
-      currentTab: '',
-      tablists: null,
-      timeVal: [],
-      options: {
-        shortcuts: [
-          {
-            text: '今天',
-            value() {
-              const end = new Date();
-              const start = new Date();
-              start.setTime(new Date(new Date().getFullYear(), new Date().getMonth(), new Date().getDate()));
-              return [start, end];
-            },
-          },
-          {
-            text: '昨天',
-            value() {
-              const end = new Date();
-              const start = new Date();
-              start.setTime(
-                start.setTime(new Date(new Date().getFullYear(), new Date().getMonth(), new Date().getDate() - 1)),
-              );
-              end.setTime(
-                end.setTime(new Date(new Date().getFullYear(), new Date().getMonth(), new Date().getDate() - 1)),
-              );
-              return [start, end];
-            },
-          },
-          {
-            text: '最近7天',
-            value() {
-              const end = new Date();
-              const start = new Date();
-              start.setTime(
-                start.setTime(new Date(new Date().getFullYear(), new Date().getMonth(), new Date().getDate() - 6)),
-              );
-              return [start, end];
-            },
-          },
-          {
-            text: '最近30天',
-            value() {
-              const end = new Date();
-              const start = new Date();
-              start.setTime(
-                start.setTime(new Date(new Date().getFullYear(), new Date().getMonth(), new Date().getDate() - 29)),
-              );
-              return [start, end];
-            },
-          },
-          {
-            text: '本月',
-            value() {
-              const end = new Date();
-              const start = new Date();
-              start.setTime(start.setTime(new Date(new Date().getFullYear(), new Date().getMonth(), 1)));
-              return [start, end];
-            },
-          },
-          {
-            text: '本年',
-            value() {
-              const end = new Date();
-              const start = new Date();
-              start.setTime(start.setTime(new Date(new Date().getFullYear(), 0, 1)));
-              return [start, end];
-            },
-          },
-        ],
-      },
-      grid: {
-        xl: 12,
-        lg: 16,
-        md: 24,
-        sm: 24,
-        xs: 24,
-      },
-      columns: [
-        {
-          title: '订单号',
-          key: 'order_id',
-          minWidth: 170,
-        },
-        // {
-        //     title: '订单类型',
-        //     key: 'pink_name',
-        //     minWidth: 150
-        // },
-        {
-          title: '订单金额',
-          slot: 'pay_price',
-          minWidth: 100,
-        },
-        {
-          title: '发票类型',
-          slot: 'type',
-          minWidth: 120,
-          filters: [
-            {
-              label: '电子普通发票',
-              value: 1,
-            },
-            {
-              label: '纸质专用发票',
-              value: 2,
-            },
-          ],
-          filterMultiple: false,
-          filterMethod(value, row) {
-            if (value === 1) {
-              return row.type === 1;
-            } else if (value === 2) {
-              return row.type === 2;
-            }
-          },
-        },
-        {
-          title: '发票抬头类型',
-          slot: 'header_type',
-          minWidth: 110,
-          filters: [
-            {
-              label: '个人',
-              value: 1,
-            },
-            {
-              label: '企业',
-              value: 2,
-            },
-          ],
-          filterMultiple: false,
-          filterMethod(value, row) {
-            if (value === 1) {
-              return row.header_type === 1;
-            } else if (value === 2) {
-              return row.header_type === 2;
-            }
-          },
-        },
-        // {
-        //     title: '支付状态',
-        //     key: 'pay_type_name',
-        //     minWidth: 90
-        // },
-        {
-          title: '下单时间',
-          key: 'add_time',
-          minWidth: 150,
-          sortable: true,
-        },
-        {
-          title: '开票状态',
-          slot: 'is_invoice',
-          minWidth: 80,
-        },
-        {
-          title: '订单状态',
-          slot: 'status',
-          minWidth: 80,
-        },
-        {
-          title: '操作',
-          slot: 'action',
-          fixed: 'right',
-          minWidth: 150,
-          align: 'center',
-        },
-      ],
-      orderList: [],
-      total: 0, // 总条数
-      orderData: {
-        page: 1, // 当前页
-        limit: 10, // 每页显示条数
-        status: '',
-        data: '',
-        real_name: '',
-        field_key: '',
-        type: '',
-      },
-      orderId: 0,
-    };
-  },
-  created() {
-    this.getTabs();
-    this.getList();
-  },
-  mounted() {},
-  methods: {
-    detall(e) {
-      this.orderShow = e;
-    },
-    orderInfo(id) {
-      this.orderId = id;
-      this.orderShow = true;
-    },
-    empty() {
-      this.formInline = {
-        is_invoice: 1,
-        invoice_number: '',
-        remark: '',
-      };
-    },
-    cancel() {
-      this.invoiceShow = false;
-      this.empty();
-    },
-    kaiInvoice(invoice) {
-      if (invoice !== 1) {
-        this.formInline.invoice_number = '';
-        this.formInline.remark = '';
-      }
-    },
-    handleSubmit() {
-      if (this.formInline.is_invoice === 1) {
-        if (this.formInline.invoice_number.trim() === '') return this.$Message.error('请填写发票编号');
-      }
-      orderInvoiceSet(this.invoiceDetails.invoice_id, this.formInline)
-        .then((res) => {
-          this.$Message.success(res.msg);
-          this.invoiceShow = false;
-          this.getList();
-          this.empty();
-          this.getTabs();
-        })
-        .catch((err) => {
-          this.$Message.error(err.msg);
-        });
-    },
-    edit(row) {
-      this.invoiceShow = true;
-      this.invoiceDetails = row;
-      this.formInline.invoice_number = row.invoice_number;
-      this.formInline.remark = row.invoice_reamrk;
-      this.formInline.is_invoice = row.is_invoice;
-    },
-    // 订单列表
-    getList() {
-      this.loading = true;
-      orderInvoiceList(this.orderData)
-        .then(async (res) => {
-          this.loading = false;
-          let data = res.data;
-          this.orderList = data.list;
-          this.total = data.count;
-        })
-        .catch((res) => {
-          this.loading = false;
-          this.$Message.error(res.msg);
-        });
-    },
-    pageChange(index) {
-      this.orderData.page = index;
-      this.getList();
-    },
-    getTabs() {
-      orderInvoiceChart(this.orderData)
-        .then((res) => {
-          this.tablists = res.data;
-        })
-        .catch((err) => {
-          this.$Message.error(err.msg);
-        });
-    },
-    // 精确搜索()
-    orderSearch() {
-      this.orderData.page = 1;
-      this.getTabs();
-      this.getList();
-    },
-    // 具体日期搜索();
-    onchangeTime(e) {
-      this.orderData.page = 1;
-      this.timeVal = e;
-      this.orderData.data = this.timeVal[0] ? this.timeVal.join('-') : '';
-      this.getList();
-      this.getTabs();
-    },
-    //订单状态搜索()
-    selectChange() {
-      this.orderData.page = 1;
-      this.getList();
-    },
-    //订单搜索()
-    onClickTab() {
-      this.orderData.page = 1;
-      this.orderData.type = this.currentTab;
-      this.getList();
-    },
-  },
-};
-</script>
-<style scoped lang="stylus">
-.order_box .list {
-  font-size: 12px;
-  color: #17233D;
-  border-bottom: 1px solid #E7EAEC;
-  margin: 0 10px;
-  padding-bottom: 22px;
-}
-
-.ivu-form-item {
-  margin-left: 10px;
-  margin-right: 10px;
-}
-
-/deep/.ivu-form-item-label {
-  text-align: left;
-  width: 83px !important;
-}
-
-/deep/.ivu-form-item-content {
-  margin-left: 83px !important;
-}
-
-.order_box .list .title {
-  color: #000000;
-  font-weight: bold;
-}
-
-.order_box .list .row {
-  margin-top: 13px;
-}
-
-.order_box .list .info {
-  color: #515A6E;
-}
-
-.tab_data >>> .ivu-form-item-content {
-  margin-left: 0 !important;
-}
-
-.table_box >>> .ivu-divider-horizontal {
-  margin-top: 0px !important;
-}
-
-.table_box >>> .ivu-form-item {
-  margin-bottom: 15px !important;
-}
-
-.tabform {
-  margin-bottom: 10px;
-}
-
-.Refresh {
-  font-size: 12px;
-  color: #1890FF;
-  cursor: pointer;
-}
-</style>

+ 0 - 188
src/pages/shop_order/invoice/orderDetall.vue

@@ -1,188 +0,0 @@
-<template>
-  <div class="order_detail" v-if="orderDetail.userInfo">
-    <div class="msg-box">
-      <div class="box-title">收货信息</div>
-      <div class="msg-wrapper">
-        <div class="msg-item">
-          <div class="item"><span>用户昵称:</span>{{ orderDetail.userInfo.nickname }}</div>
-          <div class="item"><span>收货人:</span>{{ orderDetail.orderInfo.real_name }}</div>
-        </div>
-        <div class="msg-item">
-          <div class="item"><span>联系电话:</span>{{ orderDetail.orderInfo.user_phone }}</div>
-          <div class="item"><span>收货地址:</span>{{ orderDetail.orderInfo.user_address }}</div>
-        </div>
-      </div>
-    </div>
-    <div class="msg-box" style="border: none">
-      <div class="box-title">订单信息</div>
-      <div class="msg-wrapper">
-        <div class="msg-item">
-          <div class="item"><span>订单ID:</span>{{ orderDetail.orderInfo.order_id }}</div>
-          <div class="item" style="color: red">
-            <span style="color: red">订单状态:</span>{{ orderDetail.orderInfo._status._title }}
-          </div>
-        </div>
-        <div class="msg-item">
-          <div class="item"><span>商品总数:</span>{{ orderDetail.orderInfo.total_num }}</div>
-          <div class="item">
-            <span>商品总价:</span
-            >{{ parseFloat(orderDetail.orderInfo.total_price) + parseFloat(orderDetail.orderInfo.vip_true_price || 0) }}
-          </div>
-        </div>
-        <div class="msg-item">
-          <div class="item"><span>交付邮费:</span>{{ orderDetail.orderInfo.pay_postage }}</div>
-          <div class="item"><span>优惠券金额:</span>{{ orderDetail.orderInfo.coupon_price }}</div>
-        </div>
-        <div class="msg-item">
-          <div class="item"><span>会员商品优惠:</span>{{ orderDetail.orderInfo.vip_true_price || 0.0 }}</div>
-          <div class="item"><span>积分抵扣:</span>{{ orderDetail.orderInfo.deduction_price || 0.0 }}</div>
-        </div>
-        <div class="msg-item">
-          <div class="item"><span>实际支付:</span>{{ orderDetail.orderInfo.pay_price }}</div>
-          <div class="item"><span>创建时间:</span>{{ orderDetail.orderInfo.add_time }}</div>
-        </div>
-        <div class="msg-item">
-          <div class="item"><span>支付方式:</span>{{ orderDetail.orderInfo._status._payType }}</div>
-          <div class="item"><span>推广人:</span>{{ orderDetail.userInfo.spread_name }}</div>
-        </div>
-        <div class="msg-item">
-          <div class="item"><span>商家备注:</span>{{ orderDetail.orderInfo.mark }}</div>
-        </div>
-      </div>
-    </div>
-    <div class="goods-box">
-      <Table :columns="columns1" :data="orderList">
-        <template slot-scope="{ row, index }" slot="id">
-          {{ row.productInfo.id }}
-        </template>
-        <template slot-scope="{ row, index }" slot="name">
-          <div class="product_info">
-            <img :src="row.productInfo.image" alt="" />
-            <p>{{ row.productInfo.store_name }}</p>
-          </div>
-        </template>
-        <template slot-scope="{ row, index }" slot="className">
-          {{ row.class_name }}
-        </template>
-        <template slot-scope="{ row, index }" slot="price">
-          {{ row.productInfo.price }}
-        </template>
-        <template slot-scope="{ row, index }" slot="total_num">
-          {{ row.cart_num }}
-        </template>
-      </Table>
-    </div>
-    <Spin fix v-if="spinShow"></Spin>
-  </div>
-</template>
-
-<script>
-import { orderInvoiceInfo } from '@/api/order';
-export default {
-  name: 'order_detail',
-  props: {
-    orderId: {
-      type: String | Number,
-      default: '',
-    },
-  },
-  data() {
-    return {
-      orderDetail: {},
-      orderList: [],
-      columns1: [
-        {
-          title: '商品ID',
-          slot: 'id',
-          maxWidth: 80,
-        },
-        {
-          title: '商品名称',
-          slot: 'name',
-          minWidth: 160,
-        },
-        {
-          title: '商品分类',
-          slot: 'className',
-        },
-        {
-          title: '商品售价',
-          slot: 'price',
-        },
-        {
-          title: '商品数量',
-          slot: 'total_num',
-        },
-      ],
-      spinShow: false,
-    };
-  },
-  mounted() {
-    this.getOrderInfo();
-  },
-  methods: {
-    getOrderInfo() {
-      this.spinShow = true;
-      orderInvoiceInfo(this.orderId)
-        .then((res) => {
-          this.spinShow = false;
-          this.orderDetail = res.data;
-          this.orderList = res.data.orderInfo.cartInfo;
-        })
-        .catch((err) => {
-          this.spinShow = false;
-          this.$Message.error(err.msg);
-          this.$emit('detall', false);
-        });
-    },
-  },
-};
-</script>
-
-<style lang="stylus" scoped>
-.order_detail {
-  .msg-box {
-    border-bottom: 1px solid #E8EAED;
-
-    .box-title {
-      padding-top: 20px;
-      font-size: 16px;
-      color: #333;
-    }
-
-    .msg-wrapper {
-      margin-top: 15px;
-      padding-bottom: 10px;
-
-      .msg-item {
-        display: flex;
-
-        .item {
-          flex: 1;
-          margin-bottom: 15px;
-
-          span {
-            color: #333;
-          }
-        }
-      }
-    }
-
-    &:first-child .box-title {
-      padding-top: 0;
-    }
-  }
-
-  .product_info {
-    display: flex;
-    align-items: center;
-
-    img {
-      width: 36px;
-      height: 36px;
-      border-radius: 4px;
-      margin-right: 10px;
-    }
-  }
-}
-</style>

+ 0 - 319
src/pages/shop_order/offline/index.vue

@@ -1,319 +0,0 @@
-<template>
-  <div>
-    <Card :bordered="false" dis-hover class="ivu-mt">
-      <Form
-        ref="pagination"
-        :model="pagination"
-        :label-width="labelWidth"
-        :label-position="labelPosition"
-        @submit.native.prevent
-      >
-        <Row type="flex" :gutter="24">
-          <Col v-bind="grid" class="ivu-text-left">
-            <FormItem label="创建时间:">
-              <DatePicker
-                :editable="false"
-                @on-change="onchangeTime"
-                :value="timeVal"
-                format="yyyy/MM/dd"
-                type="datetimerange"
-                placement="bottom-start"
-                placeholder="请选择时间"
-                style="width: 300px"
-                class="mr20"
-                :options="options"
-              ></DatePicker>
-            </FormItem>
-          </Col>
-          <Col v-bind="grid">
-            <FormItem label="订单号:" label-for="title">
-              <Input
-                search
-                enter-button
-                v-model="pagination.order_id"
-                placeholder="请输入订单号"
-                @on-search="orderSearch"
-              />
-            </FormItem>
-          </Col>
-          <Col v-bind="grid">
-            <FormItem label="用户名:" label-for="title">
-              <Input search enter-button v-model="pagination.name" placeholder="请输入用户名" @on-search="nameSearch" />
-            </FormItem>
-          </Col>
-        </Row>
-        <Row type="flex">
-          <Col v-bind="grid">
-            <Button type="primary" @click="qrcodeShow">查看收款二维码</Button>
-          </Col>
-        </Row>
-      </Form>
-      <Table
-        :columns="thead"
-        :data="tbody"
-        ref="table"
-        class="mt25"
-        :loading="loading"
-        highlight-row
-        no-userFrom-text="暂无数据"
-        no-filtered-userFrom-text="暂无筛选结果"
-      >
-      </Table>
-      <div class="acea-row row-right page">
-        <Page
-          :total="total"
-          :current="pagination.page"
-          show-elevator
-          show-total
-          @on-change="pageChange"
-          :page-size="pagination.limit"
-        />
-      </div>
-    </Card>
-    <Modal v-model="modal" title="收款码" footer-hide>
-      <div>
-        <!--<div class="acea-row row-around mb10">-->
-        <!--<RadioGroup v-model="animal" @on-change="onchangeCode(animal)" style="width: 180px;">-->
-        <!--<Radio :label="0">二维码</Radio>-->
-        <!--<Radio :label="1">收款码</Radio>-->
-        <!--</RadioGroup>-->
-        <!--<div style="width: 180px;"></div>-->
-        <!--</div>-->
-        <div v-viewer class="acea-row row-around code">
-          <Spin fix v-if="spin"></Spin>
-          <div class="acea-row row-column-around row-between-wrapper">
-            <div class="QRpic">
-              <img v-lazy="qrcode && qrcode.wechat" />
-            </div>
-            <span class="mt10">{{ animal ? '公众号收款码' : '公众号二维码' }}</span>
-          </div>
-          <div class="acea-row row-column-around row-between-wrapper">
-            <div class="QRpic">
-              <img v-lazy="qrcode && qrcode.routine" />
-            </div>
-            <span class="mt10">{{ animal ? '小程序收款码' : '小程序二维码' }}</span>
-          </div>
-        </div>
-      </div>
-    </Modal>
-  </div>
-</template>
-
-<script>
-import { mapState } from 'vuex';
-import { orderScanList, orderOfflineScan } from '@/api/order';
-
-export default {
-  data() {
-    return {
-      grid: {
-        xl: 7,
-        lg: 7,
-        md: 12,
-        sm: 24,
-        xs: 24,
-      },
-      thead: [
-        {
-          title: '订单号',
-          key: 'order_id',
-        },
-        // {
-        //     title: "订单类型",
-        //     render: (h, params) => {
-        //         return h("span", "线下支付");
-        //     }
-        // },
-        {
-          title: '用户信息',
-          key: 'nickname',
-        },
-        {
-          title: '实际支付',
-          key: 'pay_price',
-        },
-        {
-          title: '优惠价格',
-          key: 'true_price',
-        },
-        // {
-        //     title: "订单状态",
-        //     render: (h, params) => {
-        //         return h("span", "已支付");
-        //     }
-        // },
-        {
-          title: '支付时间',
-          key: 'pay_time',
-        },
-      ],
-      tbody: [],
-      loading: false,
-      total: 0,
-      animal: 0, // 隐藏装饰边框
-      pagination: {
-        page: 1,
-        limit: 30,
-        order_id: '',
-        add_time: '',
-      },
-      options: {
-        shortcuts: [
-          {
-            text: '今天',
-            value() {
-              const end = new Date();
-              const start = new Date();
-              start.setTime(new Date(new Date().getFullYear(), new Date().getMonth(), new Date().getDate()));
-              return [start, end];
-            },
-          },
-          {
-            text: '昨天',
-            value() {
-              const end = new Date();
-              const start = new Date();
-              start.setTime(
-                start.setTime(new Date(new Date().getFullYear(), new Date().getMonth(), new Date().getDate() - 1)),
-              );
-              end.setTime(
-                end.setTime(new Date(new Date().getFullYear(), new Date().getMonth(), new Date().getDate() - 1)),
-              );
-              return [start, end];
-            },
-          },
-          {
-            text: '最近7天',
-            value() {
-              const end = new Date();
-              const start = new Date();
-              start.setTime(
-                start.setTime(new Date(new Date().getFullYear(), new Date().getMonth(), new Date().getDate() - 6)),
-              );
-              return [start, end];
-            },
-          },
-          {
-            text: '最近30天',
-            value() {
-              const end = new Date();
-              const start = new Date();
-              start.setTime(
-                start.setTime(new Date(new Date().getFullYear(), new Date().getMonth(), new Date().getDate() - 29)),
-              );
-              return [start, end];
-            },
-          },
-          {
-            text: '本月',
-            value() {
-              const end = new Date();
-              const start = new Date();
-              start.setTime(start.setTime(new Date(new Date().getFullYear(), new Date().getMonth(), 1)));
-              return [start, end];
-            },
-          },
-          {
-            text: '本年',
-            value() {
-              const end = new Date();
-              const start = new Date();
-              start.setTime(start.setTime(new Date(new Date().getFullYear(), 0, 1)));
-              return [start, end];
-            },
-          },
-        ],
-      },
-      timeVal: [],
-      modal: false,
-      qrcode: null,
-      name: '',
-      spin: false,
-    };
-  },
-  computed: {
-    ...mapState('media', ['isMobile']),
-    labelWidth() {
-      return this.isMobile ? undefined : 75;
-    },
-    labelPosition() {
-      return this.isMobile ? 'top' : 'right';
-    },
-  },
-  created() {
-    this.getOrderList();
-  },
-  methods: {
-    onchangeCode(e) {
-      this.animal = e;
-      this.qrcodeShow();
-    },
-    // 具体日期搜索();
-    onchangeTime(e) {
-      this.pagination.page = 1;
-      this.timeVal = e;
-      this.pagination.add_time = this.timeVal[0] ? this.timeVal.join('-') : '';
-      this.getOrderList();
-    },
-    // 订单列表
-    getOrderList() {
-      this.loading = true;
-      orderScanList(this.pagination)
-        .then((res) => {
-          this.loading = false;
-          const { count, list } = res.data;
-          this.total = count;
-          this.tbody = list;
-        })
-        .catch((err) => {
-          this.loading = false;
-          this.$Message.error(err.msg);
-        });
-    },
-    // 分页
-    pageChange(index) {
-      this.pagination.page = index;
-      this.getOrderList();
-    },
-    nameSearch() {
-      this.pagination.page = 1;
-      this.getOrderList();
-    },
-    // 订单搜索
-    orderSearch() {
-      this.pagination.page = 1;
-      this.getOrderList();
-    },
-    // 查看二维码
-    qrcodeShow() {
-      this.modal = true;
-
-      this.spin = true;
-      orderOfflineScan({ type: this.animal })
-        .then((res) => {
-          this.spin = false;
-          this.qrcode = res.data;
-        })
-        .catch((err) => {
-          this.spin = false;
-          this.$Message.error(err.msg);
-        });
-    },
-  },
-};
-</script>
-
-<style lang="less" scoped>
-.code {
-  position: relative;
-}
-.QRpic {
-  width: 180px;
-  // height: 259px;
-
-  img {
-    width: 100%;
-    height: 100%;
-  }
-}
-</style>

+ 0 - 54
src/pages/shop_order/orderList/components/tableExpand.vue

@@ -1,54 +0,0 @@
-<template>
-	<div class="expand">
-		<Row class="expand-row">
-			<Col span="6">
-			<span class="expand-key">商品总价:</span>
-			<span class="expand-value" v-text="row.total_price"></span>
-			</Col>
-			<Col span="6">
-			<span class="expand-key">下单时间:</span>
-			<span class="expand-value" v-text="row.add_time"></span>
-			</Col>
-			<Col span="6">
-			<span class="expand-key">推广人:</span>
-			<span class="expand-value" v-text="row.spread_nickname ? row.spread_nickname : '无'"></span>
-			</Col>
-			<Col span="6">
-			<span class="expand-key">事业部:</span>
-			<span class="expand-value" v-text="row.division_name ? row.division_name : '无'"></span>
-			</Col>
-		</Row>
-		<Row>
-			<Col span="6">
-			<span class="expand-key">用户备注:</span>
-			<span class="expand-value" v-text="row.mark ? row.mark : '无'"></span>
-			</Col>
-			<Col span="6">
-			<span class="expand-key">商家备注:</span>
-			<span class="expand-value" v-text="row.remark ? row.remark : '无'"></span>
-			</Col>
-			<Col span="6">
-			<span class="expand-key">核销码:</span>
-			<span class="expand-value" v-text="row.verify_code ? row.verify_code : '无'"></span>
-			</Col>
-		</Row>
-	</div>
-</template>
-<script>
-	export default {
-		name: 'table-expand',
-		props: {
-			row: Object,
-		},
-	};
-</script>
-
-<style scoped>
-	.expand {
-		padding-left: 50px;
-	}
-
-	.expand-row {
-		margin-bottom: 16px;
-	}
-</style>

+ 0 - 523
src/pages/shop_order/orderList/components/tableFrom.vue

@@ -1,523 +0,0 @@
-<template>
-	<div class="table_box">
-		<Form ref="orderData" :model="orderData" :label-width="80" label-position="right" class="tabform"
-			@submit.native.prevent>
-			<Row :gutter="24" type="flex" justify="end">
-				<Col span="24" class="ivu-text-left">
-				<FormItem label="订单状态:">
-					<RadioGroup v-model="orderData.status" type="button" @on-change="selectChange2(orderData.status)">
-						<Radio label="">全部</Radio>
-						<Radio label="0">未支付</Radio>
-						<Radio label="1">未发货</Radio>
-						<Radio label="2">待收货</Radio>
-						<Radio label="3">待评价</Radio>
-						<Radio label="4">交易完成</Radio>
-						<Radio label="5">待核销</Radio>
-						<Radio label="6">已核销</Radio>
-						<!--                                <Radio label="-1">退款中 {{  '(' +orderChartType.refunding?orderChartType.refunding:0+ ')' }}</Radio>-->
-						<!--                                <Radio label="-2">已退款 {{  '(' +orderChartType.refund?orderChartType.refund:0+ ')' }}</Radio>-->
-						<Radio label="-2">已退款</Radio>
-						<Radio label="-4">已删除</Radio>
-					</RadioGroup>
-				</FormItem>
-				</Col>
-				<Col span="24" class="ivu-text-left">
-				<FormItem label="支付方式:">
-					<RadioGroup v-model="orderData.pay_type" type="button" @on-change="userSearchs">
-						<Radio v-for="item in payList" :label="item.val" :key="item.id">{{ item.label }}</Radio>
-					</RadioGroup>
-				</FormItem>
-				</Col>
-				<Col span="8" class="ivu-text-left">
-				<FormItem label="创建时间:">
-					<DatePicker :editable="false" @on-change="onchangeTime" :value="timeVal"
-						format="yyyy/MM/dd HH:mm:ss" type="datetimerange" placement="bottom-start" placeholder="请选择创建时间"
-						style="width: 300px" class="mr20" :options="options"></DatePicker>
-				</FormItem>
-				</Col>
-				<Col span="16">
-				<Col span="12" class="mr">
-				<FormItem label="搜索:" prop="real_name" label-for="real_name">
-					<Input v-model="orderData.real_name" search enter-button placeholder="请输入" element-id="name"
-						@on-search="orderSearch(orderData.real_name)">
-					<Select v-model="orderData.field_key" slot="prepend" style="width: 80px">
-						<Option value="all">全部</Option>
-						<Option value="order_id">订单号</Option>
-						<Option value="uid">UID</Option>
-						<Option value="real_name">用户姓名</Option>
-						<Option value="user_phone">用户电话</Option>
-						<Option value="title">商品名称(模糊)</Option>
-					</Select>
-					</Input>
-				</FormItem>
-				</Col>
-				<!--<Col v-bind="grid">-->
-				<!--<Button class="mr">导出</Button>-->
-				<!--<span class="Refresh" @click="Refresh">刷新</span><Icon type="ios-refresh" />-->
-				<!--</Col>-->
-				</Col>
-				<Col span="24">
-				<div class="ml20">
-					<Button v-auth="['order-dels']" class="mr10" type="primary" @click="delAll">批量删除订单</Button>
-					<Button v-auth="['order-write']" type="success" class="mr10 greens" size="default"
-						@click="writeOff">
-						<Icon type="md-list"></Icon>
-						订单核销
-					</Button>
-					<Button v-auth="['export-storeOrder']" class="export" icon="ios-share-outline"
-						@click="exportList">导出</Button>
-				</div>
-				</Col>
-			</Row>
-		</Form>
-		<!--订单核销模态框-->
-		<Modal v-model="modals2" title="订单核销" class="paymentFooter" :closable="false" width="400"
-			@on-visible-change="changeModal">
-			<Form ref="writeOffFrom" :model="writeOffFrom" :rules="writeOffRules" label-position="right" class="tabform"
-				@submit.native.prevent>
-				<FormItem prop="code" label-for="code">
-					<Input style="width: 100%" type="text" placeholder="请输入12位核销码" v-model.number="writeOffFrom.code" />
-				</FormItem>
-			</Form>
-			<div slot="footer">
-				<Button type="primary" @click="ok('writeOffFrom')">立即核销</Button>
-				<Button @click="del('writeOffFrom')">取消</Button>
-			</div>
-		</Modal>
-	</div>
-</template>
-
-<script>
-	import {
-		mapState,
-		mapMutations
-	} from 'vuex';
-	import {
-		putWrite,
-		storeOrderApi
-	} from '@/api/shopOrder';
-	import {
-		exportOrderList
-	} from '@/api/export';
-	export default {
-		name: 'table_from',
-		data() {
-			const codeNum = (rule, value, callback) => {
-				if (!value) {
-					return callback(new Error('请填写核销码'));
-				}
-				// 模拟异步验证效果
-				if (!Number.isInteger(value)) {
-					callback(new Error('请填写12位数字'));
-				} else {
-					const reg = /\b\d{12}\b/;
-					if (!reg.test(value)) {
-						callback(new Error('请填写12位数字'));
-					} else {
-						callback();
-					}
-				}
-			};
-			return {
-				fromList: {
-					title: '选择时间',
-					custom: true,
-					fromTxt: [{
-							text: '全部',
-							val: ''
-						},
-						{
-							text: '今天',
-							val: 'today'
-						},
-						{
-							text: '昨天',
-							val: 'yesterday'
-						},
-						{
-							text: '最近7天',
-							val: 'lately7'
-						},
-						{
-							text: '最近30天',
-							val: 'lately30'
-						},
-						{
-							text: '本月',
-							val: 'month'
-						},
-						{
-							text: '本年',
-							val: 'year'
-						},
-					],
-				},
-				currentTab: '',
-				grid: {
-					xl: 8,
-					lg: 8,
-					md: 8,
-					sm: 24,
-					xs: 24,
-				},
-				// 搜索条件
-				orderData: {
-					status: '',
-					data: '',
-					real_name: '',
-					field_key: 'all',
-					pay_type: '',
-					type: '',
-				},
-				modalTitleSs: '',
-				statusType: '',
-				time: '',
-				value2: [],
-				writeOffRules: {
-					code: [{
-						validator: codeNum,
-						trigger: 'blur',
-						required: true
-					}],
-				},
-				writeOffFrom: {
-					code: '',
-					confirm: 0,
-				},
-				modals2: false,
-				timeVal: [],
-				options: {
-					shortcuts: [{
-							text: '今天',
-							value() {
-								const end = new Date();
-								const start = new Date();
-								start.setTime(new Date(new Date().getFullYear(), new Date().getMonth(), new Date()
-									.getDate()));
-								return [start, end];
-							},
-						},
-						{
-							text: '昨天',
-							value() {
-								const end = new Date();
-								const start = new Date();
-								start.setTime(
-									start.setTime(new Date(new Date().getFullYear(), new Date().getMonth(),
-										new Date().getDate() - 1)),
-								);
-								end.setTime(
-									end.setTime(new Date(new Date().getFullYear(), new Date().getMonth(),
-										new Date().getDate()) - 1),
-								);
-								return [start, end];
-							},
-						},
-						{
-							text: '最近7天',
-							value() {
-								const end = new Date();
-								const start = new Date();
-								start.setTime(
-									start.setTime(new Date(new Date().getFullYear(), new Date().getMonth(),
-										new Date().getDate() - 6)),
-								);
-								return [start, end];
-							},
-						},
-						{
-							text: '最近30天',
-							value() {
-								const end = new Date();
-								const start = new Date();
-								start.setTime(
-									start.setTime(new Date(new Date().getFullYear(), new Date().getMonth(),
-										new Date().getDate() - 29)),
-								);
-								return [start, end];
-							},
-						},
-						{
-							text: '本月',
-							value() {
-								const end = new Date();
-								const start = new Date();
-								start.setTime(start.setTime(new Date(new Date().getFullYear(), new Date().getMonth(),
-									1)));
-								return [start, end];
-							},
-						},
-						{
-							text: '本年',
-							value() {
-								const end = new Date();
-								const start = new Date();
-								start.setTime(start.setTime(new Date(new Date().getFullYear(), 0, 1)));
-								return [start, end];
-							},
-						},
-					],
-				},
-				payList: [{
-						label: '全部',
-						val: ''
-					},
-					{
-						label: '微信支付',
-						val: '1'
-					},
-					{
-						label: '支付宝支付',
-						val: '4'
-					},
-					{
-						label: '余额支付',
-						val: '2'
-					},
-					{
-						label: '线下支付',
-						val: '3'
-					},
-				],
-			};
-		},
-		computed: {
-			...mapState('shopOrder', ['orderChartType', 'isDels', 'delIdList', 'orderType']),
-			today() {
-				const end = new Date();
-				const start = new Date();
-				var datetimeStart = start.getFullYear() + '/' + (start.getMonth() + 1) + '/' + start.getDate();
-				var datetimeEnd = end.getFullYear() + '/' + (end.getMonth() + 1) + '/' + end.getDate();
-				return [datetimeStart, datetimeEnd];
-			},
-		},
-		watch: {
-			$route() {
-				if (this.$route.fullPath === this.$routeProStr + '/order/list?status=1') {
-					this.getPath();
-				}
-			},
-		},
-		created() {
-			// this.timeVal = this.today;
-			// this.orderData.data = this.timeVal.join('-');
-			if (this.$route.fullPath === this.$routeProStr + '/order/list?status=1') {
-				this.getPath();
-			}
-		},
-		methods: {
-			...mapMutations('shopOrder', ['getOrderStatus', 'getOrderType', 'getOrderTime', 'getOrderNum', 'getfieldKey']),
-			getPath() {
-				this.orderData.status = this.$route.query.status.toString();
-				this.getOrderStatus(this.orderData.status);
-				this.$emit('getList', 1);
-			},
-			changeModal(status) {
-				if (!status) this.writeOffFrom.code = '';
-			},
-			// 导出
-			async exportList() {
-				this.orderData.type = this.orderType === 0 ? '' : this.orderType;
-				let [th, filekey, data, fileName] = [
-					[],
-					[],
-					[], ''
-				];
-				let excelData = JSON.parse(JSON.stringify(this.orderData));
-				excelData.page = 1;
-				excelData.limit = 200;
-				excelData.ids = this.delIdList;
-				for (let i = 0; i < excelData.page + 1; i++) {
-					let lebData = await this.getExcelData(excelData);
-					if (!fileName) fileName = lebData.filename;
-					if (!filekey.length) {
-						filekey = lebData.fileKey;
-					}
-					if (!th.length) th = lebData.header;
-					if (lebData.export.length) {
-						data = data.concat(lebData.export);
-						excelData.page++;
-					} else {
-						this.$exportExcel(th, filekey, fileName, data);
-						return;
-					}
-				}
-			},
-			getExcelData(excelData) {
-				return new Promise((resolve, reject) => {
-					exportOrderList(excelData).then((res) => {
-						resolve(res.data);
-					});
-				});
-			},
-			// 具体日期
-			onchangeTime(e) {
-				this.timeVal = e;
-				this.orderData.data = this.timeVal[0] ? this.timeVal.join('-') : '';
-				this.$store.dispatch('shopOrder/getOrderTabs', {
-					data: this.orderData.data
-				});
-				this.getOrderTime(this.orderData.data);
-				this.$emit('getList', 1);
-			},
-			// 选择时间
-			selectChange(tab) {
-				this.$store.dispatch('shopOrder/getOrderTabs', {
-					data: tab
-				});
-				this.orderData.data = tab;
-				this.getOrderTime(this.orderData.data);
-				this.timeVal = [];
-				this.$emit('getList');
-			},
-			// 订单选择状态
-			selectChange2(tab) {
-				this.getOrderStatus(tab);
-				this.$emit('getList', 1);
-			},
-			userSearchs(type) {
-				this.getOrderType(type);
-				this.$emit('getList', 1);
-			},
-			// 时间状态
-			timeChange(time) {
-				this.getOrderTime(time);
-				this.$emit('getList');
-			},
-			// 订单号搜索
-			orderSearch(num) {
-				this.getOrderNum(num);
-				this.getfieldKey(this.orderData.field_key);
-				this.$emit('getList', 1);
-			},
-			// 点击订单类型
-			onClickTab() {
-				this.$emit('onChangeType', this.currentTab);
-			},
-			// 批量删除
-			delAll() {
-				if (this.delIdList.length === 0) {
-					this.$Message.error('请先选择删除的订单!');
-				} else {
-					if (this.isDels) {
-						let idss = {
-							ids: this.delIdList,
-						};
-						let delfromData = {
-							title: '删除订单',
-							url: `mer/order/dels`,
-							method: 'post',
-							ids: idss,
-						};
-						this.$modalSure(delfromData)
-							.then((res) => {
-								this.$Message.success(res.msg);
-								this.$emit('getList');
-							})
-							.catch((res) => {
-								this.$Message.error(res.msg);
-							});
-					} else {
-						const title = '错误!';
-						const content = '<p>您选择的的订单存在用户未删除的订单,无法删除用户未删除的订单!</p>';
-						this.$Modal.error({
-							title: title,
-							content: content,
-						});
-					}
-				}
-			},
-			// 订单核销
-			writeOff() {
-				this.modals2 = true;
-			},
-			// 验证
-			search(name) {
-				this.$refs[name].validate((valid) => {
-					if (valid) {
-						this.writeOffFrom.confirm = 0;
-						putWrite(this.writeOffFrom)
-							.then(async (res) => {
-								if (res.status === 200) {
-									this.$Message.success(res.msg);
-									// this.modals2 = false
-									// this.$refs[name].resetFields()
-									// this.$emit('getList')
-								} else {
-									this.$Message.error(res.msg);
-								}
-							})
-							.catch((res) => {
-								this.$Message.error(res.msg);
-							});
-					} else {
-						this.$Message.error('请填写正确的核销码');
-					}
-				});
-			},
-			// 订单核销
-			ok(name) {
-				if (!this.writeOffFrom.code) {
-					this.$Message.warning('请先验证订单!');
-				} else {
-					this.writeOffFrom.confirm = 1;
-					putWrite(this.writeOffFrom)
-						.then(async (res) => {
-							if (res.status === 200) {
-								this.$Message.success(res.msg);
-								this.modals2 = false;
-								this.$refs[name].resetFields();
-								this.$emit('getList', 1);
-							} else {
-								this.$Message.error(res.msg);
-							}
-						})
-						.catch((res) => {
-							this.$Message.error(res.msg);
-						});
-				}
-			},
-			del(name) {
-				this.modals2 = false;
-				this.writeOffFrom.code = '';
-				this.$refs[name].resetFields();
-			},
-			handleSubmit() {
-				this.$emit('on-submit', this.data);
-			},
-			// 刷新
-			Refresh() {
-				this.$emit('getList');
-			},
-			//
-			handleReset() {
-				this.$refs.form.resetFields();
-				this.$emit('on-reset');
-			},
-		},
-	};
-</script>
-
-<style scoped lang="stylus">
-	.tab_data>>>.ivu-form-item-content {
-		margin-left: 0 !important;
-	}
-
-	.table_box>>>.ivu-divider-horizontal {
-		margin-top: 0px !important;
-	}
-
-	.table_box>>>.ivu-form-item {
-		margin-bottom: 15px !important;
-	}
-
-	.tabform {
-		margin-bottom: 10px;
-	}
-
-	.Refresh {
-		font-size: 12px;
-		color: #1890FF;
-		cursor: pointer;
-	}
-</style>

+ 0 - 717
src/pages/shop_order/orderList/components/tableList.vue

@@ -1,717 +0,0 @@
-<template>
-	<div>
-		<Table :columns="columns" :data="orderList" ref="table" :loading="loading" highlight-row no-data-text="暂无数据"
-			no-filtered-data-text="暂无筛选结果" @on-select="handleSelectRow" @on-select-cancel="handleCancelRow"
-			@on-select-all="handleSelectAll" @on-select-all-cancel="handleSelectAll" class="orderData mt25">
-			<template slot-scope="{ row, index }" slot="order_id">
-				<div>{{ row.order_id }}</div>
-				<div class="pink_name">{{ row.pink_name }}</div>
-				<span v-show="row.is_del === 1" style="color: #ed4014; display: block">用户已删除</span>
-			</template>
-			<template slot-scope="{ row, index }" slot="nickname">
-				<span class="nickname">{{ row.nickname }}</span> |
-				<span class="uid">{{ row.uid }}</span>
-			</template>
-			<template slot-scope="{ row, index }" slot="pay_price">
-				<span>{{ row.paid ? row.pay_price : '未支付' }}</span>
-			</template>
-			<template slot-scope="{ row, index }" slot="info">
-				<div class="tabBox" v-for="(val, i) in row._info" :key="i">
-					<div class="tabBox_img" v-viewer>
-						<img v-lazy="
-                val.cart_info.productInfo.attrInfo
-                  ? val.cart_info.productInfo.attrInfo.image
-                  : val.cart_info.productInfo.image
-              " />
-					</div>
-					<span class="tabBox_tit">{{ val.cart_info.productInfo.store_name + ' | '
-            }}{{ val.cart_info.productInfo.attrInfo ? val.cart_info.productInfo.attrInfo.suk : '' }}</span>
-					<span
-						class="tabBox_pice">{{ '¥' + val.cart_info.truePrice + ' x ' + val.cart_info.cart_num }}</span>
-				</div>
-			</template>
-			<template slot-scope="{ row, index }" slot="statusName">
-				<div v-html="row.status_name.status_name" class="pt5"></div>
-				<div v-if="!row.is_all_refund && row.refund.length" class="trip">部分退款中</div>
-				<div v-if="row.refund_status == 0 && row.is_all_refund && row.refund.length && row.refund_type != 6"
-					class="trip">
-					退款中
-				</div>
-				<div class="img">
-					<div v-viewer v-if="row.status_name.pics" class="pictrue"
-						v-for="(item, index) in row.status_name.pics || []" :key="index">
-						<img v-lazy="item" :src="item" />
-					</div>
-				</div>
-			</template>
-			<template slot-scope="{ row, index }" slot="action">
-				<a @click="edit(row)" v-if="row._status === 1 && row.is_del !== 1">编辑</a>
-				<a @click="sendOrder(row)" v-if="
-            (row.status === 4 || row._status === 2 || row._status === 8) &&
-            row.shipping_type === 1 &&
-            (row.pinkStatus === null || row.pinkStatus === 2) &&
-            row.is_del !== 1
-          ">发送货</a>
-				<a @click="delivery(row)" v-if="row._status === 4 && !row.split.length">配送信息</a>
-				<a @click="bindWrite(row)"
-					v-if="row.shipping_type == 2 && row.status == 0 && row.paid == 1 && row.refund_status === 0">立即核销</a>
-				<Divider type="vertical"
-					v-if="(row._status === 8 || row.status === 0 || row.status === 4) && row.split.length && row.is_del !== 1" />
-				<a @click="splitOrderDetail(row)" v-if="row.split.length && row.is_del !== 1">查看子订单</a>
-				<Divider type="vertical" v-if="
-            (row._status === 2 && row.shipping_type === 1 && row.pinkStatus === 2) ||
-            (row.split.length && row.is_del !== 1)
-          " />
-				<Divider type="vertical" v-if="
-            row.refund_type !== 4 &&
-            row.refund_type !== 5 &&
-            (row._status === 1 ||
-              row._status === 3 ||
-              (row._status === 2 && !row.pinkStatus) ||
-              row._status === 4 ||
-              (row.shipping_type == 2 && row.status == 0 && row.paid == 1 && row.refund_status === 0)) &&
-            row.is_del !== 1
-          " />
-				<template>
-					<Dropdown @on-click="changeMenu(row, $event)" :transfer="true">
-						<a href="javascript:void(0)">更多
-							<Icon type="ios-arrow-down"></Icon>
-						</a>
-						<DropdownMenu slot="list">
-							<DropdownItem name="1" ref="ones"
-								v-show="row._status === 1 && row.paid === 0 && row.pay_type === 'offline' && row.is_del !== 1">
-								确认付款</DropdownItem>
-							<DropdownItem name="2">订单详情</DropdownItem>
-							<DropdownItem name="3">订单记录</DropdownItem>
-							<DropdownItem name="11" v-show="row._status >= 3 && row.express_dump">电子面单打印</DropdownItem>
-							<DropdownItem name="10" v-show="row._status >= 2">小票打印</DropdownItem>
-							<DropdownItem name="4" v-show="
-                  row._status !== 1 ||
-                  (row._status === 3 && row.use_integral > 0 && row.use_integral >= row.back_integral)
-                ">订单备注</DropdownItem>
-							<!-- <DropdownItem
-                name="5"
-                v-show="
-                  row._status !== 1 &&
-                  (parseFloat(row.pay_price) > parseFloat(row.refund_price) ||
-                    (row.pay_price == 0 &&
-                      [0, 1].indexOf(row.refund_status) !== -1))
-                "
-                >立即退款</DropdownItem
-              > -->
-							<!--                            <DropdownItem name="6"  v-show='row._status !==1 && (row.use_integral > 0 && row.use_integral >= row.back_integral) '>退积分</DropdownItem>-->
-							<!--                            <DropdownItem name="7"  v-show='row._status === 3'>不退款</DropdownItem>-->
-							<DropdownItem name="8" v-show="row._status === 4">已收货</DropdownItem>
-							<DropdownItem name="9">删除订单</DropdownItem>
-							<DropdownItem name="12" v-show="row.kuaidi_label">快递面单打印</DropdownItem>
-						</DropdownMenu>
-					</Dropdown>
-				</template>
-			</template>
-		</Table>
-		<div class="acea-row row-right page">
-			<Page :total="page.total" :current="page.pageNum" show-elevator show-total @on-change="pageChange"
-				:page-size="page.pageSize" @on-page-size-change="limitChange" />
-		</div>
-		<!-- 编辑 退款 退积分 不退款-->
-		<edit-from ref="edits" :FromData="FromData" @submitFail="submitFail"></edit-from>
-		<!-- 详情 -->
-		<details-from ref="details" :orderDatalist="orderDatalist" :orderId="orderId"></details-from>
-		<!-- 备注 -->
-		<order-remark ref="remarks" :orderId="orderId" @submitFail="submitFail"></order-remark>
-		<!-- 记录 -->
-		<order-record ref="record"></order-record>
-		<!-- 发送货 -->
-		<order-send ref="send" :orderId="orderId" :status="status" :pay_type="pay_type" :virtual_type="virtual_type"
-			@submitFail="submitFail" @clearId="
-        () => {
-          orderId = 0;
-        }
-      "></order-send>
-	</div>
-</template>
-
-<script>
-	import expandRow from './tableExpand.vue';
-	import printJS from 'print-js';
-	import {
-		orderList,
-		getOrdeDatas,
-		getDataInfo,
-		getRefundFrom,
-		getnoRefund,
-		refundIntegral,
-		getDistribution,
-		writeUpdate,
-	} from '@/api/shopOrder';
-	import {
-		mapState,
-		mapMutations
-	} from 'vuex';
-	import editFrom from '../../../../components/from/from';
-	import detailsFrom from '../handle/orderDetails';
-	import orderRemark from '../handle/orderRemark';
-	import orderRecord from '../handle/orderRecord';
-	import orderSend from '../handle/orderSend';
-
-	export default {
-		name: 'table_list',
-		components: {
-			expandRow,
-			editFrom,
-			detailsFrom,
-			orderRemark,
-			orderRecord,
-			orderSend,
-		},
-		data() {
-			return {
-				delfromData: {},
-				modal: false,
-				orderList: [],
-				orderCards: [],
-				loading: false,
-				orderId: 0,
-				total_num: 0,
-				virtual_type: 0,
-				status: 0,
-				pay_type: '',
-				columns: [{
-						type: 'expand',
-						width: 30,
-						render: (h, params) => {
-							return h(expandRow, {
-								props: {
-									row: params.row,
-								},
-							});
-						},
-					},
-					{
-						type: 'selection',
-						width: 40,
-						align: 'center',
-					},
-					{
-						title: '订单号 | 类型',
-						align: 'center',
-						slot: 'order_id',
-						width: 200,
-					},
-					{
-						title: '用户昵称 | ID',
-						slot: 'nickname',
-						align: 'center',
-						width: 150,
-					},
-					{
-						title: '商品信息',
-						slot: 'info',
-						minWidth: 330,
-					},
-					{
-						title: '实际支付',
-						slot: 'pay_price',
-						align: 'center',
-						width: 100,
-					},
-					{
-						title: '支付方式',
-						key: 'pay_type_name',
-						width: 80,
-					},
-					{
-						title: '支付时间',
-						key: '_pay_time',
-						align: 'center',
-						minWidth: 75,
-						maxWidth: 160,
-					},
-					{
-						title: '订单状态',
-						key: 'statusName',
-						slot: 'statusName',
-						align: 'center',
-						width: 100,
-					},
-					{
-						title: '操作',
-						slot: 'action',
-						fixed: 'right',
-						width: 170,
-						align: 'center',
-					},
-				],
-				page: {
-					total: 0, // 总条数
-					pageNum: 1, // 当前页
-					pageSize: 10, // 每页显示条数
-				},
-				data: [],
-				FromData: null,
-				orderDatalist: null,
-				// modalTitleSs: '',
-				selectedIds: new Set(), //选中合并项的id
-			};
-		},
-		computed: {
-			...mapState('shopOrder', ['orderPayType', 'orderStatus', 'orderTime', 'orderNum', 'fieldKey', 'orderType']),
-		},
-		mounted() {},
-		created() {
-			this.getList();
-		},
-		watch: {
-			orderType: function() {
-				this.page.pageNum = 1;
-				this.getList();
-			},
-		},
-		methods: {
-			...mapMutations('shopOrder', ['getIsDel', 'getisDelIdListl']),
-			// 操作
-			changeMenu(row, name) {
-				this.orderId = row.id;
-				switch (name) {
-					case '1':
-						this.delfromData = {
-							title: '修改立即支付',
-							url: `mer/order/pay_offline/${row.id}`,
-							method: 'post',
-							ids: '',
-						};
-						this.$modalSure(this.delfromData)
-							.then((res) => {
-								this.$Message.success(res.msg);
-								this.$emit('changeGetTabs');
-								this.getList();
-							})
-							.catch((res) => {
-								this.$Message.error(res.msg);
-							});
-						// this.modalTitleSs = '修改立即支付';
-						break;
-					case '2':
-						this.getData(row.id);
-						break;
-					case '3':
-						this.$refs.record.modals = true;
-						this.$refs.record.getList(row.id);
-						break;
-					case '4':
-						this.$refs.remarks.modals = true;
-						this.$refs.remarks.formValidate.remark = row.remark;
-						break;
-					case '5':
-						this.getRefundData(row.id);
-						break;
-					case '6':
-						this.getRefundIntegral(row.id);
-						break;
-					case '7':
-						this.getNoRefundData(row.id);
-						break;
-					case '8':
-						this.delfromData = {
-							title: '修改确认收货',
-							url: `mer/order/take/${row.id}`,
-							method: 'put',
-							ids: '',
-						};
-						this.$modalSure(this.delfromData)
-							.then((res) => {
-								this.$Message.success(res.msg);
-								this.getList();
-							})
-							.catch((res) => {
-								this.$Message.error(res.msg);
-							});
-						// this.modalTitleSs = '修改确认收货';
-						break;
-					case '10':
-						this.delfromData = {
-							title: '立即打印订单',
-							info: '您确认打印此订单吗?',
-							url: `mer/order/print/${row.id}`,
-							method: 'get',
-							ids: '',
-						};
-						this.$modalSure(this.delfromData)
-							.then((res) => {
-								this.$Message.success(res.msg);
-								this.$emit('changeGetTabs');
-								this.getList();
-							})
-							.catch((res) => {
-								this.$Message.error(res.msg);
-							});
-						break;
-					case '11':
-						this.delfromData = {
-							title: '立即打印电子面单',
-							info: '您确认打印此电子面单吗?',
-							url: `mer/order/order_dump/${row.id}`,
-							method: 'get',
-							ids: '',
-						};
-						this.$modalSure(this.delfromData)
-							.then((res) => {
-								this.$Message.success(res.msg);
-								this.getList();
-							})
-							.catch((res) => {
-								this.$Message.error(res.msg);
-							});
-						break;
-					case '12':
-						this.printImg(row.kuaidi_label);
-						break;
-					default:
-						this.delfromData = {
-							title: '删除订单',
-							url: `mer/order/del/${row.id}`,
-							method: 'DELETE',
-							ids: '',
-						};
-						// this.modalTitleSs = '删除订单';
-						this.delOrder(row, this.delfromData);
-				}
-			},
-			printImg(url) {
-				printJS({
-					printable: url,
-					type: 'image',
-					documentTitle: '快递信息',
-					style: `img{
-          width: 100%;
-          height: 476px;
-        }`,
-				});
-			},
-			// 立即支付 /确认收货//删除单条订单
-			submitModel() {
-				this.getList();
-			},
-			pageChange(index) {
-				this.page.pageNum = index;
-				this.getList();
-			},
-			limitChange(limit) {
-				this.page.pageSize = limit;
-				this.getList();
-			},
-			// 订单列表
-			getList(res) {
-				this.page.pageNum = res === 1 ? 1 : this.page.pageNum;
-				this.loading = true;
-				orderList({
-						page: this.page.pageNum,
-						limit: this.page.pageSize,
-						status: this.orderStatus,
-						pay_type: this.orderPayType,
-						data: this.orderTime,
-						real_name: this.orderNum,
-						field_key: this.fieldKey,
-						type: this.orderType === 0 ? '' : this.orderType,
-					})
-					.then(async (res) => {
-						let data = res.data;
-						this.orderList = data.data;
-						this.orderCards = data.stat;
-						this.page.total = data.count;
-						this.$nextTick(() => {
-							//确保dom加载完毕
-							this.setChecked();
-						});
-						this.$emit('on-changeCards', data.stat);
-						this.loading = false;
-					})
-					.catch((res) => {
-						this.loading = false;
-						this.$Message.error(res.msg);
-					});
-			},
-			// 全选
-			// onSelectTab (selection) {
-			//     let isDel = selection.some(item => {
-			//         return item.is_del === 1
-			//     });
-			//     this.getIsDel(isDel);
-			//     this.getisDelIdListl(selection);
-			// },
-			//全选和取消全选时触发
-			handleSelectAll(selection) {
-				if (selection.length === 0) {
-					//获取table的数据;
-					let data = this.$refs.table.data;
-					data.forEach((item) => {
-						if (this.selectedIds.has(item.id)) {
-							this.selectedIds.delete(item.id);
-						}
-					});
-				} else {
-					selection.forEach((item) => {
-						this.selectedIds.add(item.id);
-					});
-				}
-				this.isDel(selection);
-				this.$nextTick(() => {
-					//确保dom加载完毕
-					this.setChecked();
-				});
-			},
-			//  选中某一行
-			handleSelectRow(selection, row) {
-				this.isDel(selection);
-				this.selectedIds.add(row.id);
-				this.$nextTick(() => {
-					//确保dom加载完毕
-					this.setChecked();
-				});
-			},
-			//  取消某一行
-			handleCancelRow(selection, row) {
-				this.isDel(selection);
-				this.selectedIds.delete(row.id);
-				this.$nextTick(() => {
-					//确保dom加载完毕
-					this.setChecked();
-				});
-			},
-			setChecked() {
-				//将new Set()转化为数组
-				let ids = [...this.selectedIds];
-				this.getisDelIdListl(ids);
-				// 找到绑定的table的ref对应的dom,找到table的objData对象,objData保存的是当前页的数据
-				let objData = this.$refs.table.objData;
-				for (let index in objData) {
-					if (this.selectedIds.has(objData[index].id)) {
-						objData[index]._isChecked = true;
-					}
-				}
-			},
-			isDel(selection) {
-				if (selection.findIndex((target) => target.is_del === 0) == -1) {
-					this.getIsDel(1);
-				} else {
-					this.getIsDel(0);
-				}
-			},
-			// 编辑
-			edit(row) {
-				this.getOrderData(row.id);
-			},
-			// 删除单条订单
-			delOrder(row, data) {
-				if (row.is_del === 1) {
-					this.$modalSure(data)
-						.then((res) => {
-							this.$Message.success(res.msg);
-							this.getList();
-						})
-						.catch((res) => {
-							this.$Message.error(res.msg);
-						});
-				} else {
-					const title = '错误!';
-					const content = '<p>您选择的的订单存在用户未删除的订单,无法删除用户未删除的订单!</p>';
-					this.$Modal.error({
-						title: title,
-						content: content,
-					});
-				}
-			},
-			splitOrderDetail(row) {
-				this.$router.push({
-					path: 'split_list',
-					query: {
-						id: row.id,
-					},
-				});
-			},
-			// 获取编辑表单数据
-			getOrderData(id) {
-				getOrdeDatas(id)
-					.then(async (res) => {
-						if (res.data.status === false) {
-							return this.$authLapse(res.data);
-						}
-						this.$authLapse(res.data);
-						this.FromData = res.data;
-						this.$refs.edits.modals = true;
-					})
-					.catch((res) => {
-						this.$Message.error(res.msg);
-					});
-			},
-			// 获取详情表单数据
-			getData(id) {
-				getDataInfo(id)
-					.then(async (res) => {
-						this.$refs.details.modals = true;
-						this.orderDatalist = res.data;
-						if (this.orderDatalist.orderInfo.refund_reason_wap_img) {
-							try {
-								this.orderDatalist.orderInfo.refund_reason_wap_img = JSON.parse(
-									this.orderDatalist.orderInfo.refund_reason_wap_img,
-								);
-							} catch (e) {
-								this.orderDatalist.orderInfo.refund_reason_wap_img = [];
-							}
-						}
-					})
-					.catch((res) => {
-						this.$Message.error(res.msg);
-					});
-			},
-			// 修改成功
-			submitFail() {
-				this.getList();
-				this.$emit('changeGetTabs');
-			},
-			// 获取退款表单数据
-			getRefundData(id) {
-				this.$modalForm(getRefundFrom(id)).then(() => {
-					this.getList();
-					this.$emit('changeGetTabs');
-				});
-			},
-			// 获取退积分表单数据
-			getRefundIntegral(id) {
-				refundIntegral(id)
-					.then(async (res) => {
-						this.FromData = res.data;
-						this.$refs.edits.modals = true;
-					})
-					.catch((res) => {
-						this.$Message.error(res.msg);
-					});
-			},
-			// 不退款表单数据
-			getNoRefundData(id) {
-				this.$modalForm(getnoRefund(id)).then(() => {
-					this.getList();
-					this.$emit('changeGetTabs');
-				});
-			},
-			// 发送货
-			sendOrder(row) {
-				this.$refs.send.total_num = row.total_num;
-				this.$refs.send.modals = true;
-				this.orderId = row.id;
-				this.status = row._status;
-				this.pay_type = row.pay_type;
-				this.virtual_type = row.virtual_type;
-				this.$refs.send.getList();
-				this.$refs.send.getDeliveryList();
-				this.$nextTick((e) => {
-					this.$refs.send.getCartInfo(row._status, row.id);
-				});
-			},
-			// 配送信息表单数据
-			delivery(row) {
-				getDistribution(row.id)
-					.then(async (res) => {
-						this.FromData = res.data;
-						this.$refs.edits.modals = true;
-					})
-					.catch((res) => {
-						this.$Message.error(res.msg);
-					});
-			},
-			change(status) {},
-			// 数据导出;
-			exportData: function() {
-				this.$refs.table.exportCsv({
-					filename: '商品列表',
-				});
-			},
-			// 核销订单
-			bindWrite(row) {
-				let self = this;
-				this.$Modal.confirm({
-					title: '提示',
-					content: '确定要核销该订单吗?',
-					cancelText: '取消',
-					closable: true,
-					maskClosable: true,
-					onOk: function() {
-						writeUpdate(row.order_id)
-							.then((res) => {
-								self.$Message.success(res.msg);
-								self.getList();
-							})
-							.catch((res) => {
-								self.$Message.error(res.msg);
-							});
-					},
-				});
-			},
-		},
-	};
-</script>
-
-<style scoped lang="stylus">
-	img {
-		height: 36px;
-		display: block;
-	}
-
-	.tabBox {
-		width: 100%;
-		height: 100%;
-		display: flex;
-		align-items: center;
-		margin-bottom: 2px;
-
-		.tabBox_img {
-			width: 36px;
-			height: 36px;
-
-			img {
-				width: 100%;
-				height: 100%;
-			}
-		}
-
-		.tabBox_tit {
-			width: 60%;
-			font-size: 12px !important;
-			margin: 0 10px 0 10px;
-			letter-spacing: 1px;
-			padding: 5px 0;
-			box-sizing: border-box;
-		}
-	}
-
-	.orderData>>>.ivu-table-cell {
-		padding-left: 0 !important;
-	}
-
-	.vertical-center-modal {
-		display: flex;
-		align-items: center;
-		justify-content: center;
-	}
-
-	.nickname {}
-
-	.uid {
-		color: #2d8cf0;
-	}
-
-	.pink_name {
-		color: #666;
-	}
-
-	.img {
-		display: flex;
-		flex-wrap: wrap;
-
-		img {
-			width: 30px;
-			height: 30px;
-			margin-right: 3px;
-		}
-	}
-</style>

+ 0 - 299
src/pages/shop_order/orderList/handle/orderDetails.vue

@@ -1,299 +0,0 @@
-<template>
-	<div v-if="orderDatalist">
-		<Drawer title="订单详情" :closable="false" width="700" v-model="modals" scrollable>
-			<Card :bordered="false" dis-hover class="i-table-no-border">
-				<div class="ivu-description-list-title">收货信息</div>
-				<Row class="mb10">
-					<Col span="12">用户昵称:{{ orderDatalist.userInfo.nickname }}</Col>
-					<Col span="12">收货人:{{ orderDatalist.orderInfo.real_name }}</Col>
-				</Row>
-				<Row class="mb10">
-					<Col span="12">联系电话:{{ orderDatalist.orderInfo.user_phone || '' }}</Col>
-					<Col span="12">收货地址:{{ orderDatalist.orderInfo.user_address || '' }}</Col>
-				</Row>
-				<Divider style="margin: 20px 0 !important" />
-				<div class="ivu-description-list-title">订单信息</div>
-				<Row class="mb10">
-					<Col span="12">订单ID:{{ orderDatalist.orderInfo.order_id }}</Col>
-					<Col span="12" class="fontColor1">订单状态:{{ orderDatalist.orderInfo._status._title }}
-					{{
-              orderDatalist.orderInfo.refund &&
-              orderDatalist.orderInfo.refund.length &&
-              orderDatalist.orderInfo.refund_status < 2
-                ? orderDatalist.orderInfo.is_all_refund
-                  ? '退款中'
-                  : '部分退款中'
-                : ''
-            }}
-					</Col>
-				</Row>
-				<Row class="mb10">
-					<Col span="12">商品总数:{{ orderDatalist.orderInfo.total_num }}</Col>
-					<Col span="12">商品总价:{{ orderDatalist.orderInfo.total_price }}</Col>
-				</Row>
-				<Row class="mb10">
-					<Col span="12">交付邮费:{{ orderDatalist.orderInfo.pay_postage }}</Col>
-					<Col span="12">优惠券金额:{{ orderDatalist.orderInfo.coupon_price }}</Col>
-				</Row>
-				<Row class="mb10">
-					<Col span="12">用户等级优惠:{{ orderDatalist.orderInfo.levelPrice || 0.0 }}</Col>
-					<Col span="12">付费会员优惠:{{ orderDatalist.orderInfo.memberPrice || 0.0 }}</Col>
-				</Row>
-				<Row class="mb10">
-					<Col span="12">积分抵扣:{{ orderDatalist.orderInfo.deduction_price || 0.0 }}</Col>
-					<Col span="12">实际支付:{{ orderDatalist.orderInfo.pay_price }}</Col>
-				</Row>
-				<Row class="mb10">
-					<Col span="12" class="fontColor3 mb10"
-						v-if="parseFloat(orderDatalist.orderInfo.refund_price) && orderDatalist.orderInfo.refund_type != 3">
-					退款金额:{{ parseFloat(orderDatalist.orderInfo.refund_price) }}</Col>
-					<Col span="12" class="fontColor3 mb10" v-if="parseFloat(orderDatalist.orderInfo.use_integral)">
-					使用积分:{{ parseFloat(orderDatalist.orderInfo.use_integral) }}</Col>
-					<Col span="12" class="fontColor3 mb10" v-if="parseFloat(orderDatalist.orderInfo.back_integral)">
-					退回积分:{{ parseFloat(orderDatalist.orderInfo.back_integral) }}</Col>
-					<Col span="12" class="fontColor3 mb10"
-						v-if="parseFloat(orderDatalist.orderInfo.gain_integral) && orderDatalist.orderInfo.paid == 1">
-					赠送积分:{{ parseFloat(orderDatalist.orderInfo.gain_integral) }}</Col>
-					<Col span="12" class="mb10">创建时间:{{ orderDatalist.orderInfo._add_time }}</Col>
-					<Col span="12" class="mb10">支付时间:{{ orderDatalist.orderInfo._pay_time }}</Col>
-					<Col span="12" class="mb10">支付方式:{{ orderDatalist.orderInfo._status._payType }}</Col>
-					<Col span="12" class="mb10" v-if="is_refund != 1">
-					推广人:{{ orderDatalist.orderInfo.spread_name + '/' + orderDatalist.orderInfo.spread_uid }}</Col>
-					<Col span="12" class="mb10" v-if="
-              orderDatalist.orderInfo.shipping_type === 2 &&
-              orderDatalist.orderInfo.refund_status === 0 &&
-              orderDatalist.orderInfo.paid === 1
-            ">门店名称:{{ orderDatalist.orderInfo._store_name }}</Col>
-					<Col span="12" class="mb10" v-if="
-              orderDatalist.orderInfo.shipping_type === 2 &&
-              orderDatalist.orderInfo.refund_status === 0 &&
-              orderDatalist.orderInfo.paid === 1
-            ">核销码:{{ orderDatalist.orderInfo.verify_code }}</Col>
-					<Col span="24" class="mb10" v-if="orderDatalist.orderInfo.remark">
-					商家备注:{{ orderDatalist.orderInfo.remark }}</Col>
-					<Col span="24" class="mb10" v-if="orderDatalist.orderInfo.fictitious_content">
-					虚拟发货备注:{{ orderDatalist.orderInfo.fictitious_content }}</Col>
-				</Row>
-				<Divider style="margin: 20px 0 !important" v-if="orderDatalist.orderInfo.custom_form.length" />
-				<div class="ivu-description-list-title" v-if="orderDatalist.orderInfo.custom_form.length">表单信息</div>
-				<Row class="mb10" v-if="orderDatalist.orderInfo.custom_form.length">
-					<Col class="mb10" :span="item.label !== 'text' ? 12 : 24" v-if="item.label !== 'img'"
-						v-for="(item, index) in orderDatalist.orderInfo.custom_form" :key="index">
-					{{ item.title }}:{{ item.value }}</Col>
-					<Col span="24" v-else>
-					<div>{{ item.title }}:</div>
-					<div class="pic">
-						<div v-for="(img, i) in item.value" :key="i" class="img">
-							<img v-viewer :src="img" alt="" />
-						</div>
-					</div>
-					</Col>
-				</Row>
-				<div v-if="orderDatalist.orderInfo.delivery_type === 'express'">
-					<Divider style="margin: 20px 0 !important" />
-					<div class="ivu-description-list-title">物流信息</div>
-					<Row class="mb10">
-						<Col span="12">快递公司:{{ orderDatalist.orderInfo.delivery_name }}</Col>
-						<Col span="12">快递单号:{{ orderDatalist.orderInfo.delivery_id }}
-						<Button type="info" size="small" @click="openLogistics">物流查询</Button></Col>
-					</Row>
-				</div>
-				<div v-if="orderDatalist.orderInfo.delivery_type === 'send'">
-					<Divider style="margin: 20px 0 !important" />
-					<div class="ivu-description-list-title">配送信息</div>
-					<Row class="mb10">
-						<Col span="12">送货人姓名:{{ orderDatalist.orderInfo.delivery_name }}</Col>
-						<Col span="12">送货人电话:{{ orderDatalist.orderInfo.delivery_id }}</Col>
-					</Row>
-				</div>
-				<div v-if="orderDatalist.orderInfo.mark">
-					<Divider style="margin: 20px 0 !important" v-if="orderDatalist.orderInfo.mark" />
-					<div class="ivu-description-list-title" v-if="orderDatalist.orderInfo.mark">备注信息</div>
-					<Row class="mb10">
-						<Col span="12" class="fontColor2">{{ orderDatalist.orderInfo.mark }}</Col>
-					</Row>
-				</div>
-			</Card>
-		</Drawer>
-		<Modal v-model="modal2" scrollable title="物流查询" width="350" class="order_box2">
-			<div class="logistics acea-row row-top">
-				<div class="logistics_img">
-					<img src="../../../../assets/images/expressi.jpg" />
-				</div>
-				<div class="logistics_cent">
-					<span>物流公司:{{ orderDatalist.orderInfo.delivery_name }}</span>
-					<span>物流单号:{{ orderDatalist.orderInfo.delivery_id }}</span>
-				</div>
-			</div>
-			<div class="acea-row row-column-around trees-coadd">
-				<div class="scollhide">
-					<Timeline>
-						<TimelineItem v-for="(item, i) in result" :key="i">
-							<p class="time" v-text="item.time"></p>
-							<p class="content" v-text="item.status"></p>
-						</TimelineItem>
-					</Timeline>
-				</div>
-			</div>
-		</Modal>
-	</div>
-</template>
-
-<script>
-	import {
-		getExpress
-	} from '@/api/shopOrder';
-	export default {
-		name: 'orderDetails',
-		data() {
-			return {
-				modal2: false,
-				modals: false,
-				grid: {
-					xl: 8,
-					lg: 8,
-					md: 12,
-					sm: 24,
-					xs: 24,
-				},
-				result: [],
-			};
-		},
-		props: {
-			orderDatalist: Object,
-			orderId: Number,
-			is_refund: Number,
-		},
-		methods: {
-			openLogistics() {
-				this.getOrderData();
-				this.modal2 = true;
-			},
-			// 获取订单物流信息
-			getOrderData() {
-				getExpress(this.orderId)
-					.then(async (res) => {
-						this.result = res.data.result;
-					})
-					.catch((res) => {
-						this.$Message.error(res.msg);
-					});
-			},
-		},
-		computed: {},
-	};
-</script>
-
-<style scoped lang="stylus">
-	.ivu-description-list-title {
-		margin-bottom: 16px;
-		color: #17233d;
-		font-weight: 500;
-		font-size: 14px;
-	}
-
-	.logistics {
-		align-items: center;
-		padding: 10px 0px;
-
-		.logistics_img {
-			width: 45px;
-			height: 45px;
-			margin-right: 12px;
-
-			img {
-				width: 100%;
-				height: 100%;
-			}
-		}
-
-		.logistics_cent {
-			span {
-				display: block;
-				font-size: 12px;
-			}
-		}
-	}
-
-	.trees-coadd {
-		width: 100%;
-		height: 400px;
-		border-radius: 4px;
-		overflow: hidden;
-
-		.scollhide {
-			width: 100%;
-			height: 100%;
-			overflow: auto;
-			margin-left: 18px;
-			padding: 10px 0 10px 0;
-			box-sizing: border-box;
-
-			.content {
-				font-size: 12px;
-			}
-
-			.time {
-				font-size: 12px;
-				color: #2d8cf0;
-			}
-		}
-	}
-
-	.order_box2 {
-		position: absolute;
-		z-index: 999999999;
-	}
-
-	.order_box>>>.ivu-modal-header {
-		padding: 30x 16px !important;
-	}
-
-	.order_box>>>.ivu-card {
-		font-size: 12px !important;
-	}
-
-	.fontColor1 {
-		color: red !important;
-	}
-
-	.fontColor2 {
-		color: #733AF9 !important;
-	}
-
-	.order_box>>>.ivu-description-term {
-		padding-bottom: 10px !important;
-	}
-
-	.order_box>>>.ivu-description-detail {
-		padding-bottom: 10px !important;
-	}
-
-	.order_box>>>.ivu-modal-body {
-		padding: 0 16px !important;
-	}
-
-	.fontColor3 {
-		color: #f1a417 !important;
-	}
-
-	.fontColor3 {
-		color: #f1a417 !important;
-	}
-
-	.pic {
-		display: flex;
-		flex-wrap: wrap;
-	}
-
-	.img {
-		width: 100px;
-		height: 100px;
-		margin: 10px 10px;
-
-		img {
-			width: 100%;
-			height: 100%;
-		}
-	}
-</style>

+ 0 - 84
src/pages/shop_order/orderList/handle/orderRecord.vue

@@ -1,84 +0,0 @@
-<template>
-	<Drawer title="订单记录" :closable="false" width="700" scrollable v-model="modals">
-		<Card :bordered="false" dis-hover>
-			<Table :columns="columns" border :data="recordData" :loading="loading" no-data-text="暂无数据" highlight-row
-				no-filtered-data-text="暂无筛选结果"></Table>
-			<!--            <div class="acea-row row-right page">-->
-			<!--                <Page :total="recordData.length" show-elevator show-total @on-change="pageChange"-->
-			<!--                      :page-size="page.limit"/>-->
-			<!--            </div>-->
-		</Card>
-	</Drawer>
-</template>
-
-<script>
-	import {
-		getOrderRecord
-	} from '@/api/shopOrder';
-	export default {
-		name: 'orderRecord',
-		data() {
-			return {
-				modals: false,
-				loading: false,
-				recordData: [],
-				page: {
-					page: 1, // 当前页
-					limit: 10, // 每页显示条数
-				},
-				columns: [{
-						title: '订单ID',
-						key: 'oid',
-						align: 'center',
-						minWidth: 40,
-					},
-					{
-						title: '操作记录',
-						key: 'change_message',
-						align: 'center',
-						minWidth: 280,
-					},
-					{
-						title: '操作时间',
-						key: 'change_time',
-						align: 'center',
-						minWidth: 100,
-					},
-				],
-			};
-		},
-		methods: {
-			pageChange(index) {
-				this.page.pageNum = index;
-				this.getList();
-			},
-			getList(id) {
-				let data = {
-					id: id,
-					datas: this.page,
-				};
-				this.loading = true;
-				getOrderRecord(data)
-					.then(async (res) => {
-						this.recordData = res.data;
-						this.loading = false;
-					})
-					.catch((res) => {
-						this.loading = false;
-						this.$Message.error(res.msg);
-					});
-			},
-		},
-	};
-</script>
-
-<style scoped lang="stylus">
-	.ivu-table-wrapper {
-		border-left: 1px solid #dcdee2;
-		border-top: 1px solid #dcdee2;
-	}
-
-	.order_box>>>.ivu-table th {
-		background: #f8f8f9 !important;
-	}
-</style>

+ 0 - 78
src/pages/shop_order/orderList/handle/orderRemark.vue

@@ -1,78 +0,0 @@
-<template>
-	<Modal v-model="modals" scrollable title="请修改内容" class="order_box" :closable="false">
-		<Form ref="formValidate" :model="formValidate" :rules="ruleValidate" :label-width="80" @submit.native.prevent>
-			<FormItem label="备注:" prop="remark">
-				<Input v-model="formValidate.remark" :maxlength="200" show-word-limit type="textarea" placeholder="订单备注"
-					style="width: 100%" />
-			</FormItem>
-		</Form>
-		<div slot="footer">
-			<Button type="primary" @click="putRemark('formValidate')">提交</Button>
-			<Button @click="cancel('formValidate')">取消</Button>
-		</div>
-	</Modal>
-</template>
-
-<script>
-	import {
-		putRemarkData,
-		putRefundRemarkData
-	} from '@/api/shopOrder';
-	export default {
-		name: 'orderMark',
-		data() {
-			return {
-				formValidate: {
-					remark: '',
-				},
-				modals: false,
-				ruleValidate: {
-					remark: [{
-							required: true,
-							message: '请输入备注信息',
-							trigger: 'blur'
-						},
-						// { type: 'string', min: 20, message: 'Introduce no less than 20 words', trigger: 'blur' }
-					],
-				},
-			};
-		},
-		props: {
-			orderId: Number,
-			remarkType: {
-				default: '',
-				type: String,
-			},
-		},
-		methods: {
-			cancel(name) {
-				this.modals = false;
-				this.$refs[name].resetFields();
-			},
-			putRemark(name) {
-				let data = {
-					id: this.orderId,
-					remark: this.formValidate,
-				};
-				this.$refs[name].validate((valid) => {
-					if (valid) {
-						(this.remarkType ? putRefundRemarkData : putRemarkData)(data)
-						.then(async (res) => {
-								this.$Message.success(res.msg);
-								this.modals = false;
-								this.$refs[name].resetFields();
-								this.$emit('submitFail');
-							})
-							.catch((res) => {
-								this.$Message.error(res.msg);
-							});
-					} else {
-						this.$Message.warning('请填写备注信息');
-					}
-				});
-			},
-		},
-	};
-</script>
-
-<style scoped></style>

+ 0 - 548
src/pages/shop_order/orderList/handle/orderSend.vue

@@ -1,548 +0,0 @@
-<template>
-	<Modal v-model="modals" scrollable title="订单发送货" class="order_box" :closable="false" width="1000"
-		@on-visible-change="changeModal">
-		<Form v-if="modals" ref="formItem" :model="formItem" :label-width="100" @submit.native.prevent>
-			<FormItem label="选择类型:">
-				<RadioGroup v-model="formItem.type" @on-change="changeRadio">
-					<Radio label="1" v-if="virtual_type !== 3">发货</Radio>
-					<Radio label="2" v-if="virtual_type !== 3">送货</Radio>
-					<Radio label="3">无需配送</Radio>
-				</RadioGroup>
-			</FormItem>
-			<FormItem v-if="formItem.type == 1" v-show="export_open" label="发货类型:">
-				<RadioGroup v-model="formItem.express_record_type" @on-change="changeExpress">
-					<Radio label="1">手动填写</Radio>
-					<Radio label="2">电子面单打印</Radio>
-				</RadioGroup>
-			</FormItem>
-			<div>
-				<FormItem label="快递公司:" v-if="formItem.type == 1">
-					<Select v-model="formItem.delivery_name" filterable placeholder="请选择快递公司" style="width: 80%"
-						@on-change="expressChange">
-						<Option v-for="(item, i) in express" :value="item.value" :key="item.value">{{ item.value }}
-						</Option>
-					</Select>
-				</FormItem>
-				<FormItem v-if="formItem.express_record_type === '1' && formItem.type == 1" label="快递单号:">
-					<Input v-model="formItem.delivery_id" placeholder="请输入快递单号" style="width: 80%"></Input>
-					<div class="trips" v-if="formItem.delivery_name == '顺丰速运'">
-						<p>顺丰请输入单号 :收件人或寄件人手机号后四位,</p>
-						<p>例如:SF000000000000:3941</p>
-					</div>
-				</FormItem>
-				<template v-if="formItem.express_record_type === '2' && formItem.type == 1">
-					<FormItem label="电子面单:" class="express_temp_id">
-						<Select v-model="formItem.express_temp_id" placeholder="请选择电子面单" style="width: 80%"
-							@on-change="expressTempChange">
-							<Option v-for="(item, i) in expressTemp" :value="item.temp_id" :key="i">{{ item.title }}
-							</Option>
-						</Select>
-						<Button v-if="formItem.express_temp_id" type="text" @click="preview">预览</Button>
-					</FormItem>
-					<FormItem label="寄件人姓名:">
-						<Input v-model="formItem.to_name" placeholder="请输入寄件人姓名" style="width: 80%"></Input>
-					</FormItem>
-					<FormItem label="寄件人电话:">
-						<Input v-model="formItem.to_tel" placeholder="请输入寄件人电话" style="width: 80%"></Input>
-					</FormItem>
-					<FormItem label="寄件人地址:">
-						<Input v-model="formItem.to_addr" placeholder="请输入寄件人地址" style="width: 80%"></Input>
-					</FormItem>
-				</template>
-			</div>
-			<div v-show="formItem.type === '2'">
-				<FormItem label="送货人:">
-					<Select v-model="formItem.sh_delivery" placeholder="请选择送货人" style="width: 80%"
-						@on-change="shDeliveryChange">
-						<Option v-for="(item, i) in deliveryList" :value="item.id" :key="i">
-							{{ item.wx_name }}({{ item.phone }})</Option>
-					</Select>
-				</FormItem>
-			</div>
-			<div v-show="formItem.type === '3'">
-				<FormItem label="备注:">
-					<Input v-model="formItem.fictitious_content" type="textarea" :autosize="{ minRows: 2, maxRows: 5 }"
-						placeholder="备注" style="width: 80%"></Input>
-				</FormItem>
-			</div>
-			<div v-if="total_num > 1">
-				<FormItem label="分单发货:">
-					<i-switch size="large" v-model="splitSwitch" :disabled="orderStatus === 8 || orderStatus === 11"
-						@on-change="changeSplitStatus">
-						<span slot="open">开启</span>
-						<span slot="close">关闭</span>
-					</i-switch>
-					<div class="trips">
-						<p>可选择表格中的商品单独发货,发货后会生成新的订单且不能撤回,请谨慎操作!</p>
-					</div>
-					<i-table v-if="splitSwitch && manyFormValidate.length" :data="manyFormValidate"
-						@on-selection-change="selectOne" :columns="header">
-						<template slot-scope="{ row, index }" slot="image">
-							<div class="product-data">
-								<img class="image" :src="row.cart_info.productInfo.image" />
-								<div class="line2">
-									{{ row.cart_info.productInfo.store_name }}
-								</div>
-							</div>
-						</template>
-						<template slot-scope="{ row, index }" slot="value">
-							<div class="product-data">
-								<div>{{ row.cart_info.productInfo.attrInfo.suk }}</div>
-							</div>
-						</template>
-						<template slot-scope="{ row, index }" slot="price">
-							<div class="product-data">
-								<div>{{ row.cart_info.truePrice }}</div>
-							</div>
-						</template>
-					</i-table>
-				</FormItem>
-			</div>
-		</Form>
-		<div slot="footer">
-			<Button @click="cancel">取消</Button>
-			<Button type="primary" @click="putSend">提交</Button>
-		</div>
-		<!-- <viewer @inited="inited">
-            <img :src="temp.pic" style="display:none" />
-        </viewer> -->
-		<div ref="viewer" v-viewer v-show="temp">
-			<img :src="temp.pic" style="display: none" />
-		</div>
-	</Modal>
-</template>
-
-<script>
-	import {
-		getExpressData,
-		putDelivery,
-		splitDelivery,
-		orderExpressTemp,
-		orderDeliveryList,
-		orderSheetInfo,
-		splitCartInfo,
-	} from '@/api/shopOrder';
-	import printJS from 'print-js';
-	export default {
-		name: 'orderSend',
-		props: {
-			orderId: Number,
-			status: Number,
-			// total_num: Number,
-			pay_type: String,
-			virtual_type: Number,
-		},
-		watch: {
-			orderId(val) {
-				if (this.virtual_type == 3) this.formItem.type = '3';
-			},
-		},
-		data() {
-			return {
-				orderStatus: 0,
-				total_num: 0,
-				splitSwitch: true,
-				formItem: {
-					type: '1',
-					express_record_type: '1',
-					delivery_name: '',
-					delivery_id: '',
-					express_temp_id: '',
-					to_name: '',
-					to_tel: '',
-					to_addr: '',
-					sh_delivery: '',
-					fictitious_content: '',
-				},
-				modals: false,
-				express: [],
-				expressTemp: [],
-				deliveryList: [],
-				temp: {},
-				export_open: false,
-				manyFormValidate: [],
-				header: [{
-						type: 'selection',
-						width: 60,
-						align: 'center',
-					},
-					{
-						title: '商品信息',
-						slot: 'image',
-						width: 200,
-						align: 'center',
-					},
-					{
-						title: '规格',
-						slot: 'value',
-						align: 'center',
-						minWidth: 120,
-					},
-					{
-						title: '价格',
-						slot: 'price',
-						align: 'center',
-						minWidth: 120,
-					},
-					{
-						title: '总数',
-						key: 'cart_num',
-						align: 'center',
-						minWidth: 120,
-					},
-					{
-						title: '待发数量',
-						key: 'surplus_num',
-						align: 'center',
-						width: 180,
-						render: (h, params) => {
-							return h('div', [
-								h('InputNumber', {
-									props: {
-										min: 1,
-										max: params.row.surplus_num,
-										value: params.row.num || params.row.surplus_num,
-									},
-									on: {
-										'on-change': (e) => {
-											// params.row.surplus_num = e || 1;
-											params.row.num = e || 1;
-											this.manyFormValidate[params.index] = params.row;
-											this.selectData.forEach((v, index) => {
-												if (v.cart_id === params.row.cart_id) {
-													this.selectData.splice(index, 1, params
-														.row);
-												}
-											});
-										},
-									},
-								}),
-							]);
-						},
-					},
-				],
-				selectData: [],
-			};
-		},
-		methods: {
-			selectOne(data) {
-				this.selectData = data;
-			},
-			changeModal(status) {
-				if (!status) {
-					this.cancel();
-				}
-			},
-			changeSplitStatus(status) {
-				// this.splitSwitch = status;
-				if (status) {
-					splitCartInfo(this.orderId).then((res) => {
-						this.manyFormValidate = [];
-						Object.keys(res.data).forEach((key) => {
-							this.manyFormValidate.push(res.data[key]);
-						});
-					});
-				}
-			},
-			changeRadio(o) {
-				this.$refs.formItem.resetFields();
-				switch (o) {
-					case '1':
-						this.formItem.delivery_name = '';
-						this.formItem.delivery_id = '';
-						this.formItem.express_temp_id = '';
-						this.formItem.express_record_type = '1';
-						this.expressTemp = [];
-						this.getList(1);
-						break;
-					case '2':
-						this.formItem.sh_delivery = '';
-						break;
-					case '3':
-						this.formItem.fictitious_content = '';
-						break;
-					default:
-						// this.formItem = {
-						//     type: '3',
-						//     express_record_type: '1',
-						//     delivery_name: '',
-						//     delivery_id: '',
-						//     express_temp_id: '',
-						//     to_name: '',
-						//     to_tel: '',
-						//     to_addr: '',
-						//     sh_delivery: ''
-						// };
-						break;
-				}
-			},
-			changeExpress(j) {
-				switch (j) {
-					case '2':
-						this.formItem.delivery_name = '';
-						this.formItem.express_temp_id = '';
-						this.expressTemp = [];
-						this.getList(2);
-						break;
-					case '1':
-						this.formItem.delivery_name = '';
-						this.formItem.delivery_id = '';
-						this.getList(1);
-						break;
-					default:
-						break;
-				}
-			},
-			reset() {
-				this.formItem = {
-					type: '1',
-					express_record_type: '1',
-					delivery_name: '',
-					delivery_id: '',
-					express_temp_id: '',
-					expressTemp: [],
-					to_name: '',
-					to_tel: '',
-					to_addr: '',
-					sh_delivery: '',
-					fictitious_content: '',
-				};
-			},
-			// 物流公司列表
-			getList(type) {
-				let status = type === 2 ? 1 : '';
-				getExpressData(status)
-					.then(async (res) => {
-						this.express = res.data;
-						this.getSheetInfo();
-					})
-					.catch((res) => {
-						this.loading = false;
-						this.$Message.error(res.msg);
-					});
-			},
-			printImg(url) {
-				printJS({
-					printable: url,
-					type: 'image',
-					documentTitle: '快递信息',
-					style: `img{
-          width: 100%;
-          height: 476px;
-        }`,
-				});
-			},
-
-			// 提交
-			putSend(name) {
-				let data = {
-					id: this.orderId,
-					datas: this.formItem,
-				};
-				if (this.formItem.type === '1' && this.formItem.express_record_type === '2') {
-					if (this.formItem.delivery_name === '') {
-						return this.$Message.error('快递公司不能为空');
-					} else if (this.formItem.express_temp_id === '') {
-						return this.$Message.error('电子面单不能为空');
-					} else if (this.formItem.to_name === '') {
-						return this.$Message.error('寄件人姓名不能为空');
-					} else if (this.formItem.to_tel === '') {
-						return this.$Message.error('寄件人电话不能为空');
-					} else if (!/^1(3|4|5|7|8|9|6)\d{9}$/i.test(this.formItem.to_tel)) {
-						return this.$Message.error('请输入正确的手机号码');
-					} else if (this.formItem.to_addr === '') {
-						return this.$Message.error('寄件人地址不能为空');
-					}
-				}
-				if (this.formItem.type === '1' && this.formItem.express_record_type === '1') {
-					if (this.formItem.delivery_name === '') {
-						return this.$Message.error('快递公司不能为空');
-					} else if (this.formItem.delivery_id === '') {
-						return this.$Message.error('快递单号不能为空');
-					}
-				}
-				if (this.formItem.type === '2') {
-					if (this.formItem.sh_delivery === '') {
-						return this.$Message.error('送货人不能为空');
-					}
-				}
-				if (this.splitSwitch) {
-					data.datas.cart_ids = [];
-					this.selectData.forEach((v) => {
-						data.datas.cart_ids.push({
-							cart_id: v.cart_id,
-							cart_num: v.num || v.surplus_num,
-						});
-					});
-					splitDelivery(data)
-						.then((res) => {
-							this.modals = false;
-							this.$Message.success(res.msg);
-							this.$emit('submitFail');
-							this.reset();
-							this.splitSwitch = false;
-							if (res.data.label) this.printImg(res.data.label);
-						})
-						.catch((res) => {
-							this.$Message.error(res.msg);
-						});
-				} else {
-					putDelivery(data)
-						.then(async (res) => {
-							this.modals = false;
-							this.$Message.success(res.msg);
-							this.splitSwitch = false;
-							this.$emit('submitFail');
-							this.reset();
-							if (res.data.label) this.printImg(res.data.label);
-						})
-						.catch((res) => {
-							this.$Message.error(res.msg);
-						});
-				}
-			},
-			cancel(name) {
-				this.modals = false;
-				this.orderStatus = 0;
-				this.splitSwitch = false;
-				this.selectData = [];
-				this.formItem.type = '1';
-				this.$emit('clearId');
-				this.reset();
-				// this.$refs[name].resetFields();
-				// this.formItem.type = '1';
-			},
-			// 电子面单列表
-			expressChange(value) {
-				let expressItem = this.express.find((item) => {
-					return item.value === value;
-				});
-				if (expressItem === undefined) {
-					return;
-				}
-				this.formItem.delivery_code = expressItem.code;
-				if (this.formItem.express_record_type === '2') {
-					this.expressTemp = [];
-					this.formItem.express_temp_id = '';
-					orderExpressTemp({
-							com: this.formItem.delivery_code,
-						})
-						.then((res) => {
-							this.expressTemp = res.data;
-							if (!res.data.length) {
-								this.$Message.error('请配置你所选快递公司的电子面单');
-							}
-						})
-						.catch((err) => {
-							this.$Message.error(err.msg);
-						});
-				}
-			},
-			getCartInfo(data, orderid) {
-				this.$set(this, 'orderStatus', data);
-				this.$set(this, 'splitSwitch', data === 8 || data === 11 ? true : false);
-				splitCartInfo(this.orderId).then((res) => {
-					this.manyFormValidate = [];
-					Object.keys(res.data).forEach((key) => {
-						this.manyFormValidate.push(res.data[key]);
-					});
-				});
-			},
-			getDeliveryList() {
-				orderDeliveryList()
-					.then((res) => {
-						this.deliveryList = res.data.list;
-					})
-					.catch((err) => {
-						this.$Message.error(err.msg);
-					});
-			},
-			getSheetInfo() {
-				orderSheetInfo()
-					.then((res) => {
-						const data = res.data;
-						for (const key in data) {
-							if (data.hasOwnProperty(key)) {
-								this.formItem[key] = data[key];
-							}
-						}
-						this.export_open = data.export_open === undefined ? true : data.export_open;
-						if (!this.export_open) {
-							this.formItem.express_record_type = '1';
-						}
-						this.formItem.to_addr = data.to_add;
-					})
-					.catch((err) => {
-						this.$Message.error(err.msg);
-					});
-			},
-			shDeliveryChange(value) {
-				if (!value) return;
-				let deliveryItem = this.deliveryList.find((item) => {
-					return item.id === value;
-				});
-				this.formItem.sh_delivery_name = deliveryItem.wx_name;
-				this.formItem.sh_delivery_id = deliveryItem.phone;
-				this.formItem.sh_delivery_uid = deliveryItem.uid;
-			},
-			expressTempChange(tempId) {
-				this.temp = this.expressTemp.find((item) => {
-					return tempId === item.temp_id;
-				});
-				if (this.temp === undefined) {
-					this.temp = {};
-				}
-			},
-			// inited (viewer) {
-			//     this.$viewer = viewer;
-			// },
-			preview() {
-				this.$refs.viewer.$viewer.show();
-				// this.$viewer.show();
-			},
-		},
-	};
-</script>
-
-<style scoped>
-	.express_temp_id {
-		position: relative;
-	}
-
-	.express_temp_id button {
-		position: absolute;
-		top: 50%;
-		right: 110px;
-		padding: 0;
-		border: none;
-		background: none;
-		transform: translateY(-50%);
-		color: #57a3f3;
-	}
-
-	.ivu-btn-text:focus {
-		box-shadow: none;
-	}
-
-	.trips {
-		color: #ccc;
-	}
-
-	.product-data {
-		display: flex;
-		align-items: center;
-		justify-content: center;
-	}
-
-	.product-data .image {
-		width: 50px !important;
-		height: 50px !important;
-	}
-
-	.line2 {
-		display: -webkit-box;
-		-webkit-line-clamp: 2;
-		-webkit-box-orient: vertical;
-		overflow: hidden;
-	}
-</style>

+ 0 - 205
src/pages/shop_order/orderList/index.vue

@@ -1,205 +0,0 @@
-<template>
-	<div>
-		<Card :bordered="false" dis-hover>
-			<Tabs class="mb20" v-model="currentTab" @on-click="onClickTab" v-if="tablists">
-				<TabPane v-for="(item, index) in tabs" :label="item.label" :name="item.type" :key="index" />
-			</Tabs>
-			<productlist-details v-if="currentTab === 'article' || 'project' || 'app'"
-				ref="productlist"></productlist-details>
-			<Spin size="large" fix v-if="spinShow"></Spin>
-		</Card>
-	</div>
-</template>
-
-<script>
-	import productlistDetails from './orderlistDetails';
-	import {
-		mapMutations
-	} from 'vuex';
-	export default {
-		name: 'list',
-		components: {
-			productlistDetails,
-		},
-		data() {
-			return {
-				tabs: [{
-						type: '',
-						label: (h) => {
-							return h('div', [
-								h('span', '全部订单'),
-								h('Badge', {
-									props: {
-										count: Number(this.tablists.all),
-										'overflow-count': 999999,
-									},
-								}),
-							]);
-						},
-					},
-					{
-						type: '1',
-						label: (h) => {
-							return h('div', [
-								h('span', '普通订单'),
-								h('Badge', {
-									props: {
-										count: Number(this.tablists.general),
-										'overflow-count': 999999,
-									},
-								}),
-							]);
-						},
-					},
-					{
-						type: '2',
-						label: (h) => {
-							return h('div', [
-								h('span', '拼团订单'),
-								h('Badge', {
-									props: {
-										count: Number(this.tablists.pink),
-										'overflow-count': 999999,
-									},
-								}),
-							]);
-						},
-					},
-					{
-						type: '3',
-						label: (h) => {
-							return h('div', [
-								h('span', '秒杀订单'),
-								h('Badge', {
-									props: {
-										count: Number(this.tablists.seckill),
-										'overflow-count': 999999,
-									},
-								}),
-							]);
-						},
-					},
-					{
-						type: '4',
-						label: (h) => {
-							return h('div', [
-								h('span', '砍价订单'),
-								h('Badge', {
-									props: {
-										count: Number(this.tablists.bargain),
-										'overflow-count': 999999,
-									},
-								}),
-							]);
-						},
-					},
-					{
-						type: '5',
-						label: (h) => {
-							return h('div', [
-								h('span', '预售订单'),
-								h('Badge', {
-									props: {
-										count: Number(this.tablists.advance),
-										'overflow-count': 999999,
-									},
-								}),
-							]);
-						},
-					},
-				],
-				spinShow: false,
-				currentTab: '',
-				data: [],
-				tablists: null,
-			};
-		},
-		created() {
-			this.getOrderType('');
-			this.getOrderStatus('');
-			this.getOrderTime('');
-			this.getOrderNum('');
-			this.getfieldKey('');
-			this.onChangeTabs('');
-			this.getisDelIdListl('');
-			this.getIsDel(1);
-		},
-		beforeDestroy() {
-			this.getOrderType('');
-			this.getOrderStatus('');
-			this.getOrderTime('');
-			this.getOrderNum('');
-			this.getfieldKey('');
-			this.onChangeTabs('');
-			this.getisDelIdListl('');
-			this.getIsDel(1);
-		},
-		mounted() {
-			this.getTabs();
-		},
-		methods: {
-			...mapMutations('shopOrder', [
-				'onChangeTabs',
-				'getOrderStatus',
-				'getOrderTime',
-				'getOrderNum',
-				'getfieldKey',
-				'getOrderType',
-				'getisDelIdListl',
-				'getIsDel',
-				// 'onChangeChart'
-			]),
-			// 订单类型  @on-changeTabs="getChangeTabs"
-			getTabs() {
-				this.spinShow = true;
-				this.$store
-					.dispatch('shopOrder/getOrderTabs', {
-						data: '',
-					})
-					.then((res) => {
-						this.tablists = res.data;
-						// this.onChangeChart(this.tablists)
-						this.spinShow = false;
-					})
-					.catch((res) => {
-						this.spinShow = false;
-						this.$Message.error(res.msg);
-					});
-			},
-			onClickTab() {
-				this.onChangeTabs(Number(this.currentTab));
-				// this.$store.dispatch("order/getOrderTabs", {
-				//   data: "",
-				//   type: Number(this.currentTab),
-				// });
-				// this.$refs.productlist.getChangeTabs();
-				this.$store.dispatch('shopOrder/getOrderTabs', {
-					type: this.currentTab
-				});
-			},
-		},
-	};
-</script>
-<style scoped lang="stylus">
-	.product_tabs>>>.ivu-tabs-bar {
-		margin-bottom: 0px !important;
-	}
-
-	.product_tabs>>>.ivu-page-header-content {
-		margin-bottom: 0px !important;
-	}
-
-	.product_tabs>>>.ivu-page-header-breadcrumb {
-		margin-bottom: 0px !important;
-	}
-
-	/deep/ .ivu-badge-count-alone {
-		top: -7px;
-		right: 2px;
-	}
-
-	.i-layout-page-header /deep/ .ivu-badge-count {
-		line-height: 14px;
-		height: 15px;
-	}
-</style>

+ 0 - 94
src/pages/shop_order/orderList/orderlistDetails.vue

@@ -1,94 +0,0 @@
-<template>
-	<div>
-		<!-- <cards-data
-      :cardLists="cardLists"
-      v-if="cardLists.length >= 0"
-    ></cards-data> -->
-		<table-form @getList="getData" />
-		<table-list ref="table" @on-changeCards="getCards" @changeGetTabs="changeGetTabs" />
-	</div>
-</template>
-
-<script>
-	import cardsData from '../../../components/cards/cards';
-	import tableForm from './components/tableFrom';
-	import tableList from './components/tableList';
-	export default {
-		name: 'orderlistDetails',
-		components: {
-			tableForm,
-			tableList,
-			cardsData,
-		},
-		data() {
-			return {
-				currentTab: '',
-				cardLists: [],
-			};
-		},
-		methods: {
-			changeGetTabs() {
-
-				this.$parent.getTabs();
-			},
-			// 列表数据
-			getData(res) {
-				this.$refs.table.getList(res);
-			},
-			// 模块数据
-			getCards(list) {
-				console.log('调用233')
-				this.cardLists = list;
-			},
-			handleResize() {
-				this.$refs.ellipsis.forEach((item) => item.init());
-			},
-		},
-		mounted() {},
-	};
-</script>
-
-<style scoped lang="stylus">
-	.card_cent>>>.ivu-card-body {
-		width: 100%;
-		height: 100%;
-	}
-
-	.card_box {
-		width: 100%;
-		height: 100%;
-		display: flex;
-		align-items: center;
-		justify-content: center;
-		padding: 25px;
-		box-sizing: border-box;
-		border-radius: 4px;
-
-		.card_box_img {
-			width: 48px;
-			height: 48px;
-			border-radius: 50%;
-			overflow: hidden;
-			margin-right: 20px;
-
-			img {
-				width: 100%;
-				height: 100%;
-			}
-		}
-
-		.card_box_txt {
-			.sp1 {
-				display: block;
-				color: #252631;
-				font-size: 24px;
-			}
-
-			.sp2 {
-				display: block;
-				color: #98A9BC;
-				font-size: 12px;
-			}
-		}
-	}
-</style>

+ 0 - 866
src/pages/shop_order/orderList/splitList.vue

@@ -1,866 +0,0 @@
-<template>
-	<div>
-		<div class="i-layout-page-header">
-			<div class="i-layout-page-header">
-				<span class="ivu-page-header-title">子订单列表</span>
-				<span class="return" @click="$router.go(-1)">返回</span>
-			</div>
-		</div>
-		<Table :columns="columns" :data="orderList" ref="table" :loading="loading" highlight-row no-data-text="暂无数据"
-			no-filtered-data-text="暂无筛选结果" @on-selection-change="onSelectTab" @on-select-all="selectAll"
-			@on-select-all-cancel="selectAll" @on-select-cancel="onSelectCancel" class="orderData mt25">
-			<template slot-scope="{ row, index }" slot="order_id">
-				<span v-text="row.order_id" style="display: block"></span>
-				<span v-show="row.is_del === 1" style="color: #ed4014; display: block">用户已删除</span>
-			</template>
-			<template slot-scope="{ row, index }" slot="nickname">
-				<a @click="showUserInfo(row)">{{ row.nickname }}</a>
-			</template>
-			<template slot-scope="{ row, index }" slot="info">
-				<div class="tabBox" v-for="(val, i) in row._info" :key="i">
-					<div class="tabBox_img" v-viewer>
-						<img v-lazy="
-                val.cart_info.productInfo.attrInfo
-                  ? val.cart_info.productInfo.attrInfo.image
-                  : val.cart_info.productInfo.image
-              " />
-					</div>
-					<span class="tabBox_tit">
-						{{ val.cart_info.productInfo.store_name + ' | '
-            }}{{ val.cart_info.productInfo.attrInfo ? val.cart_info.productInfo.attrInfo.suk : '' }}
-					</span>
-					<span
-						class="tabBox_pice">{{ '¥' + val.cart_info.truePrice + ' x ' + val.cart_info.cart_num }}</span>
-				</div>
-			</template>
-			<template slot-scope="{ row, index }" slot="statusName">
-				<div v-html="row.status_name.status_name" class="pt5"></div>
-				<div class="pictrue-box">
-					<div v-viewer v-if="row.status_name.pics" v-for="(item, index) in row.status_name.pics || []"
-						:key="index">
-						<img class="pictrue mr10" v-lazy="item" :src="item" />
-					</div>
-				</div>
-			</template>
-			<template slot-scope="{ row, index }" slot="action">
-				<a @click="edit(row)" v-if="row._status === 1">编辑</a>
-				<a @click="sendOrder(row)" v-if="
-            (row._status === 2 || row._status === 8) &&
-            row.shipping_type === 1 &&
-            (row.pinkStatus === null || row.pinkStatus === 2)
-          ">发送货</a>
-				<a @click="delivery(row)" v-if="row._status === 4">配送信息</a>
-				<a @click="bindWrite(row)"
-					v-if="row.shipping_type == 2 && row.status == 0 && row.paid == 1 && row.refund_status === 0">立即核销</a>
-				<Divider type="vertical" v-if="row._status === 2 || row._status === 8" />
-				<a @click="splitOrderDetail(row)" v-if="row._status === 8">查看子订单</a>
-
-				<Divider type="vertical" v-if="
-            row._status === 1 ||
-            ((row._status === 2 || row._status === 8) && (row.pinkStatus === null || row.pinkStatus === 2)) ||
-            row._status === 4 ||
-            (row.shipping_type == 2 && row.status == 0 && row.paid == 1 && row.refund_status === 0)
-          " />
-				<template>
-					<Dropdown @on-click="changeMenu(row, $event)">
-						<a href="javascript:void(0)">
-							更多
-							<Icon type="ios-arrow-down"></Icon>
-						</a>
-						<DropdownMenu slot="list">
-							<DropdownItem name="1" ref="ones"
-								v-show="row._status === 1 && row.paid === 0 && row.pay_type === 'offline'">立即支付
-							</DropdownItem>
-							<DropdownItem name="2">订单详情</DropdownItem>
-							<DropdownItem name="3">订单记录</DropdownItem>
-							<DropdownItem name="11" v-show="row._status >= 3 && row.express_dump">电子面单打印</DropdownItem>
-							<DropdownItem name="10" v-show="row._status >= 2">小票打印</DropdownItem>
-							<!-- <DropdownItem name="10" v-show="row._status >= 2">订单打印</DropdownItem> -->
-							<DropdownItem name="4" v-show="
-                  row._status !== 1 ||
-                  (row._status === 3 && row.use_integral > 0 && row.use_integral >= row.back_integral)
-                ">订单备注</DropdownItem>
-							<!-- <DropdownItem
-                name="5"
-                v-show="
-                  row._status === 3 &&
-                  (parseFloat(row.pay_price) > parseFloat(row.refund_price) ||
-                    (row.pay_price == 0 &&
-                      [0, 1].indexOf(row.refund_status) !== -1))
-                "
-                >立即退款</DropdownItem
-              >
-              <DropdownItem
-                name="6"
-                v-show="
-                  row._status !== 1 &&
-                  row.use_integral > 0 &&
-                  row.use_integral >= row.back_integral
-                "
-                >退积分</DropdownItem
-              >
-              <DropdownItem name="7" v-show="row._status === 3"
-                >不退款</DropdownItem
-              > -->
-							<DropdownItem name="8" v-show="row._status === 4">已收货</DropdownItem>
-							<DropdownItem name="9" v-if="row.is_del == 1">删除订单</DropdownItem>
-						</DropdownMenu>
-					</Dropdown>
-				</template>
-			</template>
-		</Table>
-		<div class="acea-row row-right page">
-			<!-- <Page
-        :total="page.total"
-        :current="page.pageNum"
-        show-elevator
-        show-total
-        @on-change="pageChange"
-        :page-size="page.pageSize"
-        @on-page-size-change="limitChange"
-        show-sizer
-      /> -->
-		</div>
-		<!-- 编辑 退款 退积分 不退款-->
-		<edit-from ref="edits" :FromData="FromData" @submitFail="submitFail"></edit-from>
-		<!-- 会员详情-->
-		<user-details ref="userDetails"></user-details>
-		<!-- 详情 -->
-		<details-from ref="detailss" :orderDatalist="orderDatalist" :orderId="orderId"></details-from>
-		<!-- 备注 -->
-		<order-remark ref="remarks" :orderId="orderId" @submitFail="submitFail"></order-remark>
-		<!-- 记录 -->
-		<order-record ref="record"></order-record>
-		<!-- 发送货 -->
-		<order-send ref="send" :orderId="orderId" :status="status" @submitFail="submitFail"></order-send>
-	</div>
-</template>
-
-<script>
-	import expandRow from './components/tableExpand.vue';
-	import {
-		orderList,
-		getOrdeDatas,
-		getDataInfo,
-		getRefundFrom,
-		getnoRefund,
-		refundIntegral,
-		getDistribution,
-		writeUpdate,
-		splitOrderList,
-	} from '@/api/shopOrder';
-	import {
-		mapState,
-		mapMutations
-	} from 'vuex';
-	import editFrom from '../../../components/from/from';
-	import detailsFrom from './handle/orderDetails';
-	import orderRemark from './handle/orderRemark';
-	import orderRecord from './handle/orderRecord';
-	import orderSend from './handle/orderSend';
-	import userDetails from '@/pages/user/list/handle/userDetails';
-
-	export default {
-		name: 'table_list',
-		components: {
-			expandRow,
-			editFrom,
-			detailsFrom,
-			orderRemark,
-			orderRecord,
-			orderSend,
-			userDetails,
-		},
-		props: ['where', 'isAll'],
-		data() {
-			return {
-				delfromData: {},
-				modal: false,
-				orderList: [],
-				orderCards: [],
-				loading: false,
-				orderId: 0,
-				columns: [{
-						type: 'expand',
-						width: 30,
-						render: (h, params) => {
-							return h(expandRow, {
-								props: {
-									row: params.row,
-								},
-							});
-						},
-					},
-					{
-						width: 50,
-						align: 'center',
-						renderHeader: (h, params) => {
-							return h(
-								'div', {
-									class: {
-										'select-panel': true,
-									},
-									on: {
-										mouseenter: (e) => {
-											this.display = 'block';
-										},
-										mouseleave: (e) => {
-											this.display = 'none';
-										},
-									},
-								},
-								[
-									h('Checkbox', {
-										props: {
-											value: this.checkBox,
-										},
-										on: {
-											'on-change': (e) => {
-												this.checkBox = e;
-												this.$refs.table.selectAll(this.checkBox);
-												this.$emit('on-all', e ? 0 : -1);
-											},
-										},
-									}),
-									h(
-										'div', {
-											style: {
-												position: 'absolute',
-												top: 0,
-												zIndex: 2,
-												display: this.display,
-												width: '80px',
-												height: '100%',
-												padding: '0px 0',
-												borderRadius: '4px',
-												backgroundColor: '#fff',
-												boxShadow: '0 0px 5px rgba(0, 0, 0, 0.2)',
-												transform: 'translateX(25%)',
-											},
-										},
-										[
-											h(
-												'div', {
-													class: {
-														'select-item': true,
-														on: this.isAll == 0,
-													},
-													style: {
-														padding: '1px 6px',
-														cursor: 'pointer',
-														height: '50%',
-													},
-													on: {
-														click: (e) => {
-															if (this.isAll === 0) {
-																this.$emit('on-all', -1);
-																this.checkBox = false;
-																this.$refs.table.selectAll(this.checkBox);
-															} else {
-																this.$emit('on-all', 0);
-																if (!this.formSelection.length) {
-																	this.checkBox = true;
-																	this.$refs.table.selectAll(this
-																		.checkBox);
-																}
-															}
-															this.display = 'none';
-														},
-													},
-												},
-												'选择当页',
-											),
-											h(
-												'div', {
-													class: {
-														'select-item': true,
-														on: this.isAll == 1,
-													},
-													style: {
-														padding: '1px 6px',
-														cursor: 'pointer',
-														height: '50%',
-													},
-													on: {
-														click: (e) => {
-															if (this.isAll === 1) {
-																this.isAll = -1;
-																this.$emit('on-all', -1);
-																this.checkBox = false;
-															} else {
-																this.isAll = 1;
-																this.$emit('on-all', 1);
-																this.checkBox = true;
-															}
-															this.$refs.table.selectAll(this.checkBox);
-															this.display = 'none';
-														},
-													},
-												},
-												'选择全部',
-											),
-										],
-									),
-								],
-							);
-						},
-						render: (h, params) => {
-							return h('Checkbox', {
-								props: {
-									value: params.row.checkBox,
-								},
-								on: {
-									'on-change': (e) => {
-										if (e) {
-											this.formSelection.push(params.row);
-										} else {
-											this.checkBox = false;
-											this.formSelection.forEach((item, index) => {
-												if (item.id === params.row.id) {
-													this.formSelection.splice(index, 1);
-												}
-											});
-										}
-										this.$emit('on-all', this.formSelection.length ? 0 : -1);
-										// this.responseData为查询出的结果数据
-										// params.row.checkBox = e;
-										params.row.checkBox = e;
-										this.orderList[params.index].checkBox = e;
-									},
-								},
-								ref: 'checkbox',
-								refInFor: true,
-							});
-						},
-					},
-					{
-						title: '订单号',
-						align: 'center',
-						slot: 'order_id',
-						minWidth: 150,
-					},
-					{
-						title: '订单类型',
-						key: 'pink_name',
-						minWidth: 120,
-					},
-					{
-						title: '用户信息',
-						slot: 'nickname',
-						minWidth: 100,
-					},
-					{
-						title: '商品信息',
-						slot: 'info',
-						minWidth: 330,
-					},
-					{
-						title: '实际支付',
-						key: 'pay_price',
-						minWidth: 70,
-					},
-					{
-						title: '支付时间',
-						key: '_pay_time',
-						minWidth: 100,
-					},
-					{
-						title: '支付状态',
-						key: 'pay_type_name',
-						minWidth: 80,
-					},
-					{
-						title: '订单状态',
-						key: 'statusName',
-						slot: 'statusName',
-						minWidth: 120,
-					},
-					{
-						title: '操作',
-						slot: 'action',
-						fixed: 'right',
-						minWidth: 150,
-						align: 'center',
-					},
-				],
-				page: {
-					total: 0, // 总条数
-					pageNum: 1, // 当前页
-					pageSize: 10, // 每页显示条数
-				},
-				data: [],
-				FromData: null,
-				orderDatalist: null,
-				modalTitleSs: '',
-				isDelIdList: [],
-				checkBox: false,
-				formSelection: [],
-				selectionCopy: [],
-				display: 'none',
-				autoDisabled: false,
-				status: 0, //发货状态判断
-				// isAll: -1,
-			};
-		},
-		computed: {
-			...mapState('admin/shopOrder', ['orderPayType', 'orderStatus', 'orderTime', 'orderNum', 'fieldKey',
-				'orderType'
-			]),
-		},
-		mounted() {},
-		created() {
-			console.log(this.$store, 'store')
-			console.log('可以store')
-			this.getList();
-		},
-		watch: {
-			orderType: function() {
-				console.log('修改')
-				this.page.pageNum = 1;
-				this.getList();
-			},
-			formSelection(value) {
-				this.$emit('order-select', value);
-				if (value.length) {
-					this.$emit('auto-disabled', 0);
-				} else {
-					this.$emit('auto-disabled', 1);
-				}
-				let isDel = value.some((item) => {
-					return item.is_del === 1;
-				});
-				this.getIsDel(isDel);
-				this.getisDelIdListl(value);
-			},
-			orderList: {
-				deep: true,
-				handler(value) {
-					value.forEach((item) => {
-						this.formSelection.forEach((itm) => {
-							if (itm.id === item.id) {
-								item.checkBox = true;
-							}
-						});
-					});
-					const arr = this.orderList.filter((item) => item.checkBox);
-					if (this.orderList.length) {
-						this.checkBox = this.orderList.length === arr.length;
-					} else {
-						this.checkBox = false;
-					}
-				},
-			},
-		},
-		methods: {
-			...mapMutations('admin/shopOrder', ['getIsDel', 'getisDelIdListl']),
-			selectAll(row) {
-				if (row.length) {
-					this.formSelection = row;
-					this.selectionCopy = row;
-				}
-				this.selectionCopy.forEach((item, index) => {
-					item.checkBox = this.checkBox;
-					this.$set(this.orderList, index, item);
-				});
-			},
-			showUserInfo(row) {
-				this.$refs.userDetails.modals = true;
-				this.$refs.userDetails.getDetails(row.uid);
-			},
-			// 操作
-			changeMenu(row, name) {
-				this.orderId = row.id;
-				switch (name) {
-					case '1':
-						this.delfromData = {
-							title: '修改立即支付',
-							url: `mer/order/pay_offline/${row.id}`,
-							method: 'post',
-							ids: '',
-						};
-						this.$modalSure(this.delfromData)
-							.then((res) => {
-								this.$Message.success(res.msg);
-								this.$emit('changeGetTabs');
-								this.getList();
-							})
-							.catch((res) => {
-								this.$Message.error(res.msg);
-							});
-						// this.modalTitleSs = '修改立即支付';
-						break;
-					case '2':
-						this.getData(row.id);
-						break;
-					case '3':
-						this.$refs.record.modals = true;
-						this.$refs.record.getList(row.id);
-						break;
-					case '4':
-						this.$refs.remarks.modals = true;
-						break;
-					case '5':
-						this.getRefundData(row.id);
-						break;
-					case '6':
-						this.getRefundIntegral(row.id);
-						break;
-					case '7':
-						this.getNoRefundData(row.id);
-						break;
-					case '8':
-						this.delfromData = {
-							title: '修改确认收货',
-							url: `mer/order/take/${row.id}`,
-							method: 'put',
-							ids: '',
-						};
-						this.$modalSure(this.delfromData)
-							.then((res) => {
-								this.$Message.success(res.msg);
-								this.getList();
-							})
-							.catch((res) => {
-								this.$Message.error(res.msg);
-							});
-						// this.modalTitleSs = '修改确认收货';
-						break;
-					case '10':
-						this.delfromData = {
-							title: '立即打印订单',
-							info: '您确认打印此订单吗?',
-							url: `mer/order/print/${row.id}`,
-							method: 'get',
-							ids: '',
-						};
-						this.$modalSure(this.delfromData)
-							.then((res) => {
-								this.$Message.success(res.msg);
-								this.$emit('changeGetTabs');
-								this.getList();
-							})
-							.catch((res) => {
-								this.$Message.error(res.msg);
-							});
-						break;
-					case '11':
-						this.delfromData = {
-							title: '立即打印电子面单',
-							info: '您确认打印此电子面单吗?',
-							url: `mer/order/order_dump/${row.id}`,
-							method: 'get',
-							ids: '',
-						};
-						this.$modalSure(this.delfromData)
-							.then((res) => {
-								this.$Message.success(res.msg);
-								this.getList();
-							})
-							.catch((res) => {
-								this.$Message.error(res.msg);
-							});
-						break;
-					default:
-						this.delfromData = {
-							title: '删除订单',
-							url: `mer/order/del/${row.id}`,
-							method: 'DELETE',
-							ids: '',
-						};
-						// this.modalTitleSs = '删除订单';
-						this.delOrder(row, this.delfromData);
-				}
-			},
-			// 立即支付 /确认收货//删除单条订单
-			submitModel() {
-				this.getList();
-			},
-			pageChange(index) {
-				this.page.pageNum = index;
-				this.getList();
-			},
-			limitChange(limit) {
-				this.page.pageSize = limit;
-				this.getList();
-			},
-			getOrderList(id) {
-				splitOrderList(id).then((res) => {});
-			},
-			// 订单列表
-			getList(res) {
-				this.page.pageNum = res === 1 ? 1 : this.page.pageNum;
-				this.loading = true;
-
-				splitOrderList(this.$route.query.id)
-					.then(async (res) => {
-						let data = res.data;
-						// this.orderList = data.data;
-						this.orderList = data.map((item) => {
-							// item.checkBox = false;
-							if (this.isAll === 1) {
-								item.checkBox = true;
-							} else {
-								item.checkBox = false;
-							}
-							return item;
-						});
-						this.orderCards = data.stat;
-						this.page.total = data.count;
-						this.$emit('on-changeCards', data.stat);
-						this.loading = false;
-					})
-					.catch((res) => {
-						this.loading = false;
-						this.$Message.error(res.msg);
-					});
-			},
-			// 全选
-			onSelectTab(selection) {
-				this.formSelection = selection;
-				let isDel = selection.some((item) => {
-					return item.is_del === 1;
-				});
-				this.getIsDel(isDel);
-				this.getisDelIdListl(selection);
-			},
-			// 编辑
-			edit(row) {
-				this.getOrderData(row.id);
-			},
-			splitOrderDetail(row) {
-				this.$router.push({
-					path: 'split_order',
-					query: {
-						id: row.id,
-					},
-				});
-			},
-			// 删除单条订单
-			delOrder(row, data) {
-				if (row.is_del === 1) {
-					this.$modalSure(data)
-						.then((res) => {
-							this.$Message.success(res.msg);
-							this.getList();
-						})
-						.catch((res) => {
-							this.$Message.error(res.msg);
-						});
-				} else {
-					const title = '错误!';
-					const content = '<p>您选择的的订单存在用户未删除的订单,无法删除用户未删除的订单!</p>';
-					this.$Modal.error({
-						title: title,
-						content: content,
-					});
-				}
-			},
-			// 获取编辑表单数据
-			getOrderData(id) {
-				getOrdeDatas(id)
-					.then(async (res) => {
-						if (res.data.status === false) {
-							return this.$authLapse(res.data);
-						}
-						this.$authLapse(res.data);
-						this.FromData = res.data;
-						this.$refs.edits.modals = true;
-					})
-					.catch((res) => {
-						this.$Message.error(res.msg);
-					});
-			},
-			// 获取详情表单数据
-			getData(id) {
-				getDataInfo(id)
-					.then(async (res) => {
-						this.$refs.detailss.modals = true;
-						this.orderDatalist = res.data;
-						if (this.orderDatalist.orderInfo.refund_reason_wap_img) {
-							try {
-								this.orderDatalist.orderInfo.refund_reason_wap_img = JSON.parse(
-									this.orderDatalist.orderInfo.refund_reason_wap_img,
-								);
-							} catch (e) {
-								this.orderDatalist.orderInfo.refund_reason_wap_img = [];
-							}
-						}
-					})
-					.catch((res) => {
-						this.$Message.error(res.msg);
-					});
-			},
-			// 修改成功
-			submitFail() {
-				this.status = 0;
-				this.getList();
-			},
-			// 获取退款表单数据
-			getRefundData(id) {
-				this.$modalForm(getRefundFrom(id)).then(() => {
-					this.getList();
-					this.$emit('changeGetTabs');
-				});
-			},
-			// 获取退积分表单数据
-			getRefundIntegral(id) {
-				refundIntegral(id)
-					.then(async (res) => {
-						this.FromData = res.data;
-						this.$refs.edits.modals = true;
-					})
-					.catch((res) => {
-						this.$Message.error(res.msg);
-					});
-			},
-			// 不退款表单数据
-			getNoRefundData(id) {
-				this.$modalForm(getnoRefund(id)).then(() => {
-					this.getList();
-					this.$emit('changeGetTabs');
-				});
-			},
-			// 发送货
-			sendOrder(row) {
-				this.$refs.send.modals = true;
-				this.orderId = row.id;
-				this.status = row._status;
-				this.$refs.send.getList();
-				this.$refs.send.getDeliveryList();
-				this.$nextTick((e) => {
-					this.$refs.send.getCartInfo(row._status, row.id);
-				});
-			},
-			// 配送信息表单数据
-			delivery(row) {
-				getDistribution(row.id)
-					.then(async (res) => {
-						this.FromData = res.data;
-						this.$refs.edits.modals = true;
-					})
-					.catch((res) => {
-						this.$Message.error(res.msg);
-					});
-			},
-			change(status) {},
-			// 数据导出;
-			exportData: function() {
-				this.$refs.table.exportCsv({
-					filename: '商品列表',
-				});
-			},
-			// 核销订单
-			bindWrite(row) {
-				let self = this;
-				this.$Modal.confirm({
-					title: '提示',
-					content: '确定要核销该订单吗?',
-					cancelText: '取消',
-					closable: true,
-					maskClosable: true,
-					onOk: function() {
-						writeUpdate(row.order_id).then((res) => {
-							self.$Message.success(res.msg);
-							self.getList();
-						});
-					},
-					onCancel: () => {},
-				});
-			},
-			onSelectCancel(selection, row) {},
-		},
-	};
-</script>
-
-<style scoped lang="stylus">
-	img {
-		height: 36px;
-		display: block;
-	}
-
-	.tabBox {
-		width: 100%;
-		height: 100%;
-		display: flex;
-		align-items: center;
-
-		.tabBox_img {
-			width: 36px;
-			height: 36px;
-
-			img {
-				width: 100%;
-				height: 100%;
-			}
-		}
-
-		.tabBox_tit {
-			width: 60%;
-			font-size: 12px !important;
-			margin: 0 2px 0 10px;
-			letter-spacing: 1px;
-			padding: 5px 0;
-			box-sizing: border-box;
-		}
-	}
-
-	.orderData>>>.ivu-table-cell {
-		padding-left: 0 !important;
-	}
-
-	.vertical-center-modal {
-		display: flex;
-		align-items: center;
-		justify-content: center;
-	}
-
-	.orderData .ivu-table {
-		overflow: visible !important;
-	}
-
-	.orderData .ivu-table th {
-		overflow: visible !important;
-	}
-
-	.orderData .ivu-table-header {
-		overflow: visible !important;
-	}
-
-	/deep/.ivu-table-header {
-		// overflow: visible;
-	}
-
-	/deep/.ivu-table th {
-		overflow: visible;
-	}
-
-	/deep/.select-item:hover {
-		background-color: #f3f3f3;
-	}
-
-	/deep/.select-on {
-		display: block;
-	}
-
-	/deep/.select-item.on {
-		background: #f3f3f3;
-	}
-
-	.pictrue-box {
-		display: flex;
-		align-item: center;
-	}
-
-	.pictrue {
-		width: 25px;
-		height: 25px;
-	}
-
-	.return {
-		border: 1px solid #ccc;
-		padding: 3px 5px;
-		margin-left: 15px;
-		border-radius: 3px;
-		cursor: pointer;
-	}
-</style>

+ 0 - 686
src/pages/shop_order/refund/index.vue

@@ -1,686 +0,0 @@
-<template>
-	<div>
-		<Card :bordered="false" dis-hover class="ivu-mt">
-			<Form ref="pagination" :model="pagination" :label-width="labelWidth" :label-position="labelPosition"
-				@submit.native.prevent>
-				<Col span="24" class="ivu-text-left">
-				<FormItem label="订单状态:">
-					<RadioGroup v-model="pagination.refund_type" type="button"
-						@on-change="selectChange2(pagination.refund_type)">
-						<Radio v-for="(item, index) in num" :key="index" :label="index">{{ item.name }}</Radio>
-					</RadioGroup>
-				</FormItem>
-				</Col>
-				<Row type="flex" :gutter="24">
-					<Col v-bind="grid" class="ivu-text-left">
-					<FormItem label="退款时间:">
-						<DatePicker :editable="false" @on-change="onchangeTime" :value="timeVal" format="yyyy/MM/dd"
-							type="daterange" placement="bottom-start" placeholder="请选择时间" style="width: 200px"
-							class="mr20" :options="options"></DatePicker>
-					</FormItem>
-					</Col>
-					<Col v-bind="grid">
-					<FormItem label="订单号:" label-for="title">
-						<Input search enter-button v-model="pagination.order_id" placeholder="请输入订单号"
-							@on-search="orderSearch" />
-					</FormItem>
-					</Col>
-				</Row>
-			</Form>
-			<Table :columns="thead" :data="tbody" ref="table" :loading="loading" highlight-row no-userFrom-text="暂无数据"
-				no-filtered-userFrom-text="暂无筛选结果">
-				<template slot-scope="{ row, index }" slot="order_id">
-					<span v-text="row.order_id" style="display: block"></span>
-					<span v-show="row.is_del === 1" style="color: #ed4014; display: block">用户已删除</span>
-				</template>
-				<template slot-scope="{ row, index }" slot="user">
-					<div>用户名:{{ row.nickname }}</div>
-					<div>用户ID:{{ row.uid }}</div>
-				</template>
-				<template slot-scope="{ row, index }" slot="refund_type">
-					<div v-if="row.refund_type == 1">仅退款</div>
-					<div v-else-if="row.refund_type == 2">退货退款</div>
-					<div v-else-if="row.refund_type == 3">
-						<div>拒绝退款</div>
-						<div>原因:{{ row.refuse_reason }}</div>
-					</div>
-					<div v-else-if="row.refund_type == 4">商品待退货</div>
-					<div v-else-if="row.refund_type == 5">
-						<div>退货待收货</div>
-						<div>单号:{{ row.refund_express }}</div>
-					</div>
-					<div v-else-if="row.refund_type == 6">已退款</div>
-				</template>
-				<template slot-scope="{ row, index }" slot="info">
-					<div class="tabBox" v-for="(val, i) in row._info" :key="i">
-						<div class="tabBox_img" v-viewer>
-							<img v-lazy="
-                  val.cart_info.productInfo.attrInfo
-                    ? val.cart_info.productInfo.attrInfo.image
-                    : val.cart_info.productInfo.image
-                " />
-						</div>
-						<span class="tabBox_tit">{{ val.cart_info.productInfo.store_name + ' | '
-              }}{{ val.cart_info.productInfo.attrInfo ? val.cart_info.productInfo.attrInfo.suk : '' }}</span>
-						<span
-							class="tabBox_pice">{{ '¥' + val.cart_info.truePrice + ' x ' + val.cart_info.cart_num }}</span>
-					</div>
-				</template>
-				<template slot-scope="{ row, index }" slot="order_info">
-					<div>订单金额:{{ row.pay_price }}</div>
-					<div>付款方式:{{ row.pay_type_name }}</div>
-					<div>订单状态:<span v-html="row.status_name.status_name"></span></div>
-				</template>
-				<template slot-scope="{ row, index }" slot="statusName">
-					<div v-html="row.refund_reason" class="pt5"></div>
-					<div class="pictrue-box" v-if="row.refund_img.length">
-						<div v-viewer v-for="(item, index) in row.refund_img || []" :key="index">
-							<img class="pictrue mr10" v-lazy="item" :src="item" />
-						</div>
-					</div>
-				</template>
-				<template slot-scope="{ row, index }" slot="action">
-					<!--          <a @click="edit(row)" v-if="row._status === 1">编辑</a>-->
-					<!--          <a-->
-					<!--            @click="sendOrder(row)"-->
-					<!--            v-if="-->
-					<!--              row._status === 2 && row.shipping_type === 1 && !row.pinkStatus-->
-					<!--            "-->
-					<!--            >发送货</a-->
-					<!--          >-->
-					<!--          <a-->
-					<!--            @click="sendOrder(row)"-->
-					<!--            v-if="-->
-					<!--              row._status === 2 &&-->
-					<!--              row.shipping_type === 1 &&-->
-					<!--              row.pinkStatus === 2-->
-					<!--            "-->
-					<!--            >发送货</a-->
-					<!--          >-->
-					<!--          <a @click="delivery(row)" v-if="row._status === 4">配送信息</a>-->
-					<!--          <a-->
-					<!--            @click="bindWrite(row)"-->
-					<!--            v-if="-->
-					<!--              row.shipping_type == 2 &&-->
-					<!--              row.status == 0 &&-->
-					<!--              row.paid == 1 &&-->
-					<!--              row.refund_status === 0-->
-					<!--            "-->
-					<!--            >立即核销</a-->
-					<!--          >-->
-					<!--          <Divider-->
-					<!--            type="vertical"-->
-					<!--            v-if="-->
-					<!--              row._status === 2 &&-->
-					<!--              row.shipping_type === 1 &&-->
-					<!--              row.pinkStatus === 2-->
-					<!--            "-->
-					<!--          />-->
-					<!--          <Divider-->
-					<!--            type="vertical"-->
-					<!--            v-if="-->
-					<!--              row._status === 1 ||-->
-					<!--              (row._status === 2 && !row.pinkStatus) ||-->
-					<!--              row._status === 4 ||-->
-					<!--              (row.shipping_type == 2 &&-->
-					<!--                row.status == 0 &&-->
-					<!--                row.paid == 1 &&-->
-					<!--                row.refund_status === 0)-->
-					<!--            "-->
-					<!--          />-->
-					<template>
-						<Dropdown @on-click="changeMenu(row, $event)" :transfer="true">
-							<a href="javascript:void(0)">更多
-								<Icon type="ios-arrow-down"></Icon>
-							</a>
-							<DropdownMenu slot="list">
-								<DropdownItem name="1" ref="ones"
-									v-show="row._status === 1 && row.paid === 0 && row.pay_type === 'offline'">立即支付
-								</DropdownItem>
-								<DropdownItem name="2">订单详情</DropdownItem>
-								<!-- <DropdownItem name="3">订单记录</DropdownItem> -->
-								<!--                <DropdownItem-->
-								<!--                  name="11"-->
-								<!--                  v-show="row._status >= 3 && row.express_dump"-->
-								<!--                  >电子面单打印</DropdownItem-->
-								<!--                >-->
-								<!--                <DropdownItem name="10" v-show="row._status >= 2"-->
-								<!--                  >小票打印</DropdownItem-->
-								<!--                >-->
-								<DropdownItem name="4" v-show="
-                    row._status !== 1 ||
-                    (row._status === 3 && row.use_integral > 0 && row.use_integral >= row.back_integral)
-                  ">售后备注</DropdownItem>
-								<DropdownItem name="5" v-show="
-                    [1, 2, 5].includes(row.refund_type) &&
-                    (parseFloat(row.pay_price) > parseFloat(row.refunded_price) || row.pay_price == 0)
-                  ">{{ row.refund_type == 2 ? '同意退货' : '立即退款' }}</DropdownItem>
-								<!--                <DropdownItem-->
-								<!--                  name="6"-->
-								<!--                  v-show="-->
-								<!--                    row._status !== 1 &&-->
-								<!--                    row.use_integral > 0 &&-->
-								<!--                    row.use_integral >= row.back_integral-->
-								<!--                  "-->
-								<!--                  >退积分</DropdownItem-->
-								<!--                >-->
-								<DropdownItem name="7"
-									v-show="[1, 2].includes(row.refund_type) && row.is_pink_cancel === 0">不退款
-								</DropdownItem>
-								<DropdownItem name="8" v-show="row.is_del == 1">删除订单</DropdownItem>
-							</DropdownMenu>
-						</Dropdown>
-					</template>
-				</template>
-			</Table>
-			<div class="acea-row row-right page">
-				<Page :total="total" :current="pagination.page" show-elevator show-total @on-change="pageChange"
-					:page-size="pagination.limit" />
-			</div>
-		</Card>
-		<!-- 编辑 退款 退积分 不退款-->
-		<edit-from ref="edits" :FromData="FromData" @submitFail="submitFail"></edit-from>
-		<!-- 详情 -->
-		<details-from ref="detailss" :orderDatalist="orderDatalist" :orderId="orderId" :is_refund="1"></details-from>
-		<!-- 备注 -->
-		<order-remark ref="remarks" remarkType="refund" :orderId="orderId" @submitFail="submitFail"></order-remark>
-		<!-- 记录 -->
-		<order-record ref="record"></order-record>
-	</div>
-</template>
-
-<script>
-	import {
-		mapState
-	} from 'vuex';
-	import {
-		orderRefundList,
-		orderList,
-		getOrdeDatas,
-		getDataInfoNew,
-		getRefundFrom,
-		getNewRefundFrom,
-		getnoRefund,
-		getNewnoRefundFrom,
-		refundIntegral,
-		getDistribution,
-		writeUpdate,
-	} from '@/api/shopOrder';
-	import editFrom from '@/components/from/from';
-	import detailsFrom from '../orderList/handle/orderDetails';
-	import orderRemark from '../orderList/handle/orderRemark';
-	import orderRecord from '../orderList/handle/orderRecord';
-	export default {
-		components: {
-			editFrom,
-			detailsFrom,
-			orderRemark,
-			orderRecord
-		},
-		data() {
-			return {
-				grid: {
-					xl: 7,
-					lg: 7,
-					md: 12,
-					sm: 24,
-					xs: 24,
-				},
-				thead: [{
-						title: '订单号',
-						align: 'center',
-						slot: 'order_id',
-						minWidth: 150,
-					},
-					{
-						title: '用户信息',
-						key: 'nickname',
-						minWidth: 100,
-					},
-					{
-						title: '商品信息',
-						slot: 'info',
-						minWidth: 330,
-					},
-					{
-						title: '实际支付',
-						key: 'pay_price',
-						minWidth: 70,
-					},
-					{
-						title: '发起退款时间',
-						key: 'add_time',
-						minWidth: 100,
-					},
-					{
-						title: '退款状态',
-						slot: 'refund_type',
-						minWidth: 100,
-					},
-					{
-						title: '退款信息',
-						slot: 'statusName',
-						minWidth: 120,
-					},
-					{
-						title: '售后备注',
-						key: 'remark',
-						minWidth: 100,
-					},
-					{
-						title: '操作',
-						slot: 'action',
-						fixed: 'right',
-						minWidth: 150,
-						align: 'center',
-					},
-				],
-				tbody: [],
-				num: [],
-				orderDatalist: null,
-				loading: false,
-				FromData: null,
-				total: 0,
-				orderId: 0,
-				animal: 1,
-				pagination: {
-					page: 1,
-					limit: 15,
-					order_id: '',
-					time: '',
-					refund_type: 0,
-				},
-				options: {
-					shortcuts: [{
-							text: '今天',
-							value() {
-								const end = new Date();
-								const start = new Date();
-								start.setTime(new Date(new Date().getFullYear(), new Date().getMonth(), new Date()
-									.getDate()));
-								return [start, end];
-							},
-						},
-						{
-							text: '昨天',
-							value() {
-								const end = new Date();
-								const start = new Date();
-								start.setTime(
-									start.setTime(new Date(new Date().getFullYear(), new Date().getMonth(),
-										new Date().getDate() - 1)),
-								);
-								end.setTime(
-									end.setTime(new Date(new Date().getFullYear(), new Date().getMonth(),
-										new Date().getDate() - 1)),
-								);
-								return [start, end];
-							},
-						},
-						{
-							text: '最近7天',
-							value() {
-								const end = new Date();
-								const start = new Date();
-								start.setTime(
-									start.setTime(new Date(new Date().getFullYear(), new Date().getMonth(),
-										new Date().getDate() - 6)),
-								);
-								return [start, end];
-							},
-						},
-						{
-							text: '最近30天',
-							value() {
-								const end = new Date();
-								const start = new Date();
-								start.setTime(
-									start.setTime(new Date(new Date().getFullYear(), new Date().getMonth(),
-										new Date().getDate() - 29)),
-								);
-								return [start, end];
-							},
-						},
-						{
-							text: '本月',
-							value() {
-								const end = new Date();
-								const start = new Date();
-								start.setTime(start.setTime(new Date(new Date().getFullYear(), new Date().getMonth(),
-									1)));
-								return [start, end];
-							},
-						},
-						{
-							text: '本年',
-							value() {
-								const end = new Date();
-								const start = new Date();
-								start.setTime(start.setTime(new Date(new Date().getFullYear(), 0, 1)));
-								return [start, end];
-							},
-						},
-					],
-				},
-				timeVal: [],
-				modal: false,
-				qrcode: null,
-				name: '',
-				spin: false,
-			};
-		},
-		computed: {
-			...mapState('shopOrder', ['orderChartType']),
-			// ...mapState("admin/layout", ["isMobile"]),
-			labelWidth() {
-				return this.isMobile ? undefined : 75;
-			},
-			labelPosition() {
-				return this.isMobile ? 'top' : 'right';
-			},
-		},
-		created() {
-			this.getOrderList();
-		},
-		methods: {
-			onchangeCode(e) {
-				this.animal = e;
-				this.qrcodeShow();
-			},
-			// 具体日期搜索();
-			onchangeTime(e) {
-				this.pagination.page = 1;
-				this.timeVal = e;
-				this.pagination.time = this.timeVal[0] ? this.timeVal.join('-') : '';
-				this.getOrderList();
-			},
-			// 操作
-			changeMenu(row, name) {
-				this.orderId = row.id;
-				switch (name) {
-					case '1':
-						this.delfromData = {
-							title: '修改立即支付',
-							url: `mer/order/pay_offline/${row.id}`,
-							method: 'post',
-							ids: '',
-						};
-						this.$modalSure(this.delfromData)
-							.then((res) => {
-								this.$Message.success(res.msg);
-								this.getOrderList();
-							})
-							.catch((res) => {
-								this.$Message.error(res.msg);
-							});
-						// this.modalTitleSs = '修改立即支付';
-						break;
-					case '2':
-						this.getData(row.order_id);
-						break;
-					case '3':
-						this.$refs.record.modals = true;
-						this.$refs.record.getList(row.id);
-						break;
-					case '4':
-						this.$refs.remarks.modals = true;
-						this.$refs.remarks.formValidate.remark = row.remark;
-						break;
-					case '5':
-						this.getRefundData(row.id, row.refund_type);
-						break;
-					case '6':
-						this.getRefundIntegral(row.id);
-						break;
-					case '7':
-						this.getNoRefundData(row.id);
-						break;
-					case '8':
-						this.delfromData = {
-							title: '删除订单',
-							url: `mer/order/del/${row.store_order_id}`,
-							method: 'DELETE',
-							ids: '',
-						};
-						this.delOrder(row, this.delfromData);
-						break;
-					case '10':
-						this.delfromData = {
-							title: '立即打印订单',
-							info: '您确认打印此订单吗?',
-							url: `mer/order/print/${row.id}`,
-							method: 'get',
-							ids: '',
-						};
-						this.$modalSure(this.delfromData)
-							.then((res) => {
-								this.$Message.success(res.msg);
-								this.$emit('changeGetTabs');
-								this.getOrderList();
-							})
-							.catch((res) => {
-								this.$Message.error(res.msg);
-							});
-						break;
-					case '11':
-						this.delfromData = {
-							title: '立即打印电子面单',
-							info: '您确认打印此电子面单吗?',
-							url: `mer/order/order_dump/${row.id}`,
-							method: 'get',
-							ids: '',
-						};
-						this.$modalSure(this.delfromData)
-							.then((res) => {
-								this.$Message.success(res.msg);
-								this.getOrderList();
-							})
-							.catch((res) => {
-								this.$Message.error(res.msg);
-							});
-						break;
-					default:
-						this.delfromData = {
-							title: '删除订单',
-							url: `mer/order/del/${row.id}`,
-							method: 'DELETE',
-							ids: '',
-						};
-						// this.modalTitleSs = '删除订单';
-						this.delOrder(row, this.delfromData);
-				}
-			},
-			// 获取退款表单数据
-			getRefundData(id, refund_type) {
-				if (refund_type == 2) {
-					this.delfromData = {
-						title: '同意退货退款',
-						url: `mer/refund/agree/${id}`,
-						method: 'get',
-					};
-					this.$modalSure(this.delfromData)
-						.then((res) => {
-							this.$Message.success(res.msg);
-							this.getOrderList();
-						})
-						.catch((res) => {
-							this.$Message.error(res.msg);
-						});
-				} else {
-					this.$modalForm(getNewRefundFrom(id)).then(() => {
-						this.getOrderList();
-						this.$emit('changeGetTabs');
-					});
-				}
-			},
-			// 获取退积分表单数据
-			getRefundIntegral(id) {
-				refundIntegral(id)
-					.then(async (res) => {
-						this.FromData = res.data;
-						this.$refs.edits.modals = true;
-					})
-					.catch((res) => {
-						this.$Message.error(res.msg);
-					});
-			},
-			// 获取详情表单数据
-			getData(id) {
-				getDataInfoNew(id)
-					.then(async (res) => {
-						this.orderDatalist = res.data;
-						if (this.orderDatalist.orderInfo.refund_img.length) {
-							try {
-								this.orderDatalist.orderInfo.refund_img = JSON.parse(this.orderDatalist.orderInfo
-									.refund_img);
-							} catch (e) {
-								this.orderDatalist.orderInfo.refund_img = [];
-							}
-						}
-						this.$nextTick((e) => {
-							this.$refs.detailss.modals = true;
-						});
-					})
-					.catch((res) => {
-						this.$Message.error(res.msg);
-					});
-			},
-			// 删除单条订单
-			delOrder(row, data) {
-				if (row.is_del === 1) {
-					this.$modalSure(data)
-						.then((res) => {
-							this.$Message.success(res.msg);
-							this.getOrderList();
-						})
-						.catch((res) => {
-							this.$Message.error(res.msg);
-						});
-				} else {
-					const title = '错误!';
-					const content = '<p>您选择的的订单存在用户未删除的订单,无法删除用户未删除的订单!</p>';
-					this.$Modal.error({
-						title: title,
-						content: content,
-					});
-				}
-			},
-			// 修改成功
-			submitFail() {
-				this.getOrderList();
-			},
-			// 订单选择状态
-			selectChange2(tab) {
-				this.pagination.page = 1;
-				this.pagination.refund_type = tab;
-				this.getOrderList(tab);
-			},
-			// 不退款表单数据
-			getNoRefundData(id) {
-				this.$modalForm(getNewnoRefundFrom(id)).then(() => {
-					this.getOrderList();
-					this.$emit('changeGetTabs');
-				});
-			},
-			// 订单列表
-			getOrderList() {
-				this.loading = true;
-				orderRefundList(this.pagination)
-					.then((res) => {
-						this.loading = false;
-						const {
-							count,
-							list,
-							num
-						} = res.data;
-						this.total = count;
-						this.tbody = list;
-						this.num = num;
-					})
-					.catch((err) => {
-						this.loading = false;
-						this.$Message.error(err.msg);
-					});
-			},
-			// 分页
-			pageChange(index) {
-				this.pagination.page = index;
-				this.getOrderList();
-			},
-			nameSearch() {
-				this.pagination.page = 1;
-				this.getOrderList();
-			},
-			// 订单搜索
-			orderSearch() {
-				this.pagination.page = 1;
-				this.getOrderList();
-			},
-			// 配送信息表单数据
-			delivery(row) {
-				getDistribution(row.id)
-					.then(async (res) => {
-						this.FromData = res.data;
-						this.$refs.edits.modals = true;
-					})
-					.catch((res) => {
-						this.$Message.error(res.msg);
-					});
-			},
-		},
-	};
-</script>
-
-<style lang="stylus" scoped>
-	.code {
-		position: relative;
-	}
-
-	.ivu-form-item {}
-
-	.QRpic {
-		width: 180px;
-		height: 259px;
-
-		img {
-			width: 100%;
-			height: 100%;
-		}
-	}
-
-	.tabBox {
-		width: 100%;
-		height: 100%;
-		display: flex;
-		align-items: center;
-
-		.tabBox_img {
-			width: 36px;
-			height: 36px;
-
-			img {
-				width: 100%;
-				height: 100%;
-			}
-		}
-
-		.tabBox_tit {
-			width: 60%;
-			font-size: 12px !important;
-			margin: 0 2px 0 10px;
-			letter-spacing: 1px;
-			padding: 5px 0;
-			box-sizing: border-box;
-		}
-	}
-
-	.pictrue-box {
-		display: flex;
-		align-item: center;
-	}
-
-	.pictrue {
-		width: 25px;
-		height: 25px;
-	}
-</style>

+ 1 - 4
src/pages/shop_product/productList/index.vue

@@ -64,14 +64,11 @@
 					</div>
 				</template>
 				<template slot-scope="{ row, index }" slot="state">
-					<i-switch v-if="artFrom.type !== '8'" v-model="row.is_show" :value="row.is_show" :true-value="1" :false-value="0"
+					<i-switch v-model="row.is_show" :value="row.is_show" :true-value="1" :false-value="0"
 						@on-change="changeSwitch(row)" size="large">
 						<span slot="open">上架</span>
 						<span slot="close">下架</span>
 					</i-switch>
-					<div v-else>
-						{{row.audit_msg}}
-					</div>
 				</template>
 				<template slot-scope="{ row, index }" slot="action">
 					<a @click="look(row)">查看</a>

+ 7 - 2
src/pages/user/list/handle/userEdit.vue

@@ -38,6 +38,9 @@
 	  <FormItem label="公钥:">
 	    <Input class="form-sty" v-model="formItem.pi_address" placeholder="请输入用户公钥" style="width: 80%"></Input>
 	  </FormItem>
+	  <FormItem label="令牌:">
+	    <Input class="form-sty" v-model="formItem.token_number" placeholder="请输入用户令牌" style="width: 80%"></Input>
+	  </FormItem>
       <FormItem label="登录密码:" prop="pwd">
         <Input
           class="form-sty"
@@ -165,7 +168,8 @@ export default {
         spread_open: 0,
         is_promoter: 0,
         status: 1,
-		pi_address:''
+		pi_address:'',
+		token_number:''
       },
       groupInfo: [],
       labelInfo: [],
@@ -251,7 +255,8 @@ export default {
         spread_open: 0,
         is_promoter: 0,
         status: 1,
-		pi_address:''
+		pi_address:'',
+		token_number:''
       };
     },
   },

+ 9 - 2
src/pages/user/list/handle/userEditForm.vue

@@ -46,6 +46,11 @@
 		      <Input class="form-sty" type="text" autocomplete='off' v-model="formItem.pi_address" placeholder="请输入公钥"></Input>
 		    </FormItem>
 		  </div>
+		  <div class="item">
+		    <FormItem label="公钥:">
+		      <Input class="form-sty" type="text" autocomplete='off' v-model="formItem.token_number" placeholder="请输入令牌"></Input>
+		    </FormItem>
+		  </div>
         </div>
       </div>
       <div class="section">
@@ -221,7 +226,8 @@ export default {
         spread_open: 0,
         is_promoter: 0,
         status: 1,
-		pi_address:''
+		pi_address:'',
+		token_number:''
       },
       groupInfo: [],
       labelInfo: [],
@@ -342,7 +348,8 @@ export default {
         spread_open: 0,
         is_promoter: 0,
         status: 1,
-		pi_address:''
+		pi_address:'',
+		token_number:""
       };
     },
   },

+ 5 - 0
src/pages/user/list/handle/userInfo.vue

@@ -36,6 +36,11 @@
 		  <div>公钥:</div>
 		  <div class="value">{{ psInfo.pi_address|| '-' }}</div>
 		</div>
+		<div class="item">
+		  <div>令牌:</div>
+		  <div class="value">{{ psInfo.token_number|| '-' }}</div>
+		</div>
+		
       </div>
     </div>
     <div class="section">

+ 97 - 119
src/router/index.js

@@ -21,83 +21,70 @@ import routes from './routers';
 import Setting from '@/setting';
 import store from '@/store';
 import iView from 'iview';
-import {
-	removeCookies,
-	getCookies,
-	setTitle
-} from '@/libs/util';
-import {
-	includeArray
-} from '@/libs/auth';
-import {
-	PrevLoading
-} from '@/utils/loading.js';
+import { removeCookies, getCookies, setTitle } from '@/libs/util';
+import { includeArray } from '@/libs/auth';
+import { PrevLoading } from '@/utils/loading.js';
 
 Vue.use(Router);
 // 解决 `element ui` 导航栏重复点菜单报错问题
 const originalPush = Router.prototype.push;
 Router.prototype.push = function push(location) {
-	return originalPush.call(this, location).catch((err) => err);
+  return originalPush.call(this, location).catch((err) => err);
 };
 
 const router = new Router({
-	routes,
-	mode: Setting.routerMode,
+  routes,
+  mode: Setting.routerMode,
 });
 
 // 判断路由 meta.roles 中是否包含当前登录用户权限字段
 export function hasAuth(roles, route) {
-	if (route.meta && route.meta.auth) return roles.some((role) => route.meta.auth.includes(role));
-	else return true;
+  if (route.meta && route.meta.auth) return roles.some((role) => route.meta.auth.includes(role));
+  else return true;
 }
 
 // 递归过滤有权限的路由
 export function setFilterMenuFun(routes, role) {
-	const menu = [];
-	routes.forEach((route) => {
-		const item = {
-			...route
-		};
-		if (hasAuth(role, item)) {
-			if (item.children) item.children = setFilterMenuFun(item.children, role);
-			menu.push(item);
-		}
-	});
-	return menu;
+  const menu = [];
+  routes.forEach((route) => {
+    const item = { ...route };
+    if (hasAuth(role, item)) {
+      if (item.children) item.children = setFilterMenuFun(item.children, role);
+      menu.push(item);
+    }
+  });
+  return menu;
 }
 
 // 递归处理多余的 layout : <router-view>,让需要访问的组件保持在第一层 layout 层。
 // 因为 `keep-alive` 只能缓存二级路由
 // 默认初始化时就执行
 export function keepAliveSplice(to) {
-	if (to.matched && to.matched.length > 2) {
-		to.matched.map((v, k) => {
-			if (v.components.default instanceof Function) {
-				v.components.default().then((components) => {
-					if (components.default.name === 'parent') {
-						to.matched.splice(k, 1);
-						router.push({
-							path: to.path,
-							query: to.query
-						});
-						keepAliveSplice(to);
-					}
-				});
-			} else {
-				if (v.components.default.name === 'parent') {
-					to.matched.splice(k, 1);
-					keepAliveSplice(to);
-				}
-			}
-		});
-	}
+  if (to.matched && to.matched.length > 2) {
+    to.matched.map((v, k) => {
+      if (v.components.default instanceof Function) {
+        v.components.default().then((components) => {
+          if (components.default.name === 'parent') {
+            to.matched.splice(k, 1);
+            router.push({ path: to.path, query: to.query });
+            keepAliveSplice(to);
+          }
+        });
+      } else {
+        if (v.components.default.name === 'parent') {
+          to.matched.splice(k, 1);
+          keepAliveSplice(to);
+        }
+      }
+    });
+  }
 }
 
 // 延迟关闭进度条
 export function delayNProgressDone(time = 300) {
-	setTimeout(() => {
-		NProgress.done();
-	}, time);
+  setTimeout(() => {
+    NProgress.done();
+  }, time);
 }
 
 /**
@@ -106,75 +93,66 @@ export function delayNProgressDone(time = 300) {
  */
 
 router.beforeEach(async (to, from, next) => {
-	// PrevLoading.start();
-	keepAliveSplice(to);
+  // PrevLoading.start();
+  keepAliveSplice(to);
 
-	if (to.fullPath.indexOf('kefu') != -1) {
-		return next();
-	}
-	// if (Setting.showProgressBar) iView.LoadingBar.start()
-	// 判断是否需要登录才可以进入
-	if (to.matched.some((_) => _.meta.auth)) {
-		// 这里依据 token 判断是否登录,可视情况修改
-		const token = getCookies('token');
-		if (token && token !== 'undefined') {
-			const access = store.state.userInfo.uniqueAuth;
-			const isPermission = includeArray(to.meta.auth, access); //  判断是否有权限  TODO
-			if (access.length) {
-				next();
-			} else {
-				if (access.length == 0) {
-					if (store.state.userInfo.type == 'admin') {
-						next({
-							name: 'login',
-							query: {
-								redirect: to.fullPath,
-							},
-						});
-					} else if (store.state.userInfo.type == 'shanghu') {
-						next({
-							name: 'shoplogin',
-							query: {
-								redirect: to.fullPath,
-							},
-						});
-					}
-					localStorage.clear();
-					removeCookies('token');
-					removeCookies('expires_time');
-					removeCookies('uuid');
-				} else {
-					next({
-						name: '403',
-					});
-				}
-			}
-			// next();
-		} else {
-			// 没有登录的时候跳转到登录界面
-			// 携带上登陆成功之后需要跳转的页面完整路径
-			next({
-				name: 'login',
-				query: {
-					redirect: to.fullPath,
-				},
-			});
-			localStorage.clear();
-			removeCookies('token');
-			removeCookies('expires_time');
-			removeCookies('uuid');
-		}
-	} else {
-		// 不需要身份校验 直接通过
-		next();
-	}
+  if (to.fullPath.indexOf('kefu') != -1) {
+    return next();
+  }
+  // if (Setting.showProgressBar) iView.LoadingBar.start()
+  // 判断是否需要登录才可以进入
+  if (to.matched.some((_) => _.meta.auth)) {
+    // 这里依据 token 判断是否登录,可视情况修改
+    const token = getCookies('token');
+    if (token && token !== 'undefined') {
+      const access = store.state.userInfo.uniqueAuth;
+      const isPermission = includeArray(to.meta.auth, access); //  判断是否有权限  TODO
+      if (access.length) {
+        next();
+      } else {
+        if (access.length == 0) {
+          next({
+            name: 'login',
+            query: {
+              redirect: to.fullPath,
+            },
+          });
+          localStorage.clear();
+          removeCookies('token');
+          removeCookies('expires_time');
+          removeCookies('uuid');
+        } else {
+          next({
+            name: '403',
+          });
+        }
+      }
+      // next();
+    } else {
+      // 没有登录的时候跳转到登录界面
+      // 携带上登陆成功之后需要跳转的页面完整路径
+      next({
+        name: 'login',
+        query: {
+          redirect: to.fullPath,
+        },
+      });
+      localStorage.clear();
+      removeCookies('token');
+      removeCookies('expires_time');
+      removeCookies('uuid');
+    }
+  } else {
+    // 不需要身份校验 直接通过
+    next();
+  }
 });
 router.afterEach((to) => {
-	// if (Setting.showProgressBar) iView.LoadingBar.finish()
-	// 更改标题
-	setTitle(to, router.app);
-	// 返回页面顶端
-	window.scrollTo(0, 0);
-	PrevLoading.done();
+  // if (Setting.showProgressBar) iView.LoadingBar.finish()
+  // 更改标题
+  setTitle(to, router.app);
+  // 返回页面顶端
+  window.scrollTo(0, 0);
+  PrevLoading.done();
 });
-export default router;
+export default router;

+ 77 - 85
src/router/modules/finance.js

@@ -14,88 +14,80 @@ let routePre = setting.routePre;
 
 const pre = 'finance_';
 export default {
-	path: routePre + '/finance',
-	name: 'finance',
-	header: 'finance',
-	meta: {
-		// 授权标识
-		auth: ['admin-finance'],
-	},
-	redirect: {
-		name: `${pre}cashApply`,
-	},
-	component: LayoutMain,
-	children: [{
-			path: 'billing_records/index',
-			name: `${pre}billingRecords`,
-			meta: {
-				auth: ['finance-billing_records-index'],
-				title: '账单记录',
-			},
-			component: () => import('@/pages/finance/billingRecords/index'),
-		},
-		{
-			path: 'capital_flow/index',
-			name: `${pre}capitalFlow`,
-			meta: {
-				auth: ['finance-capital_flow-index'],
-				title: '资金流水',
-			},
-			component: () => import('@/pages/finance/capitalFlow/index'),
-		},
-		{
-			path: 'user_extract/index',
-			name: `${pre}cashApply`,
-			meta: {
-				auth: ['finance-user_extract'],
-				title: '提现申请',
-			},
-			component: () => import('@/pages/finance/userExtract/index'),
-		},
-		{
-			path: 'shop_extract/index',
-			name: `${pre}shopApply`,
-			meta: {
-				auth: ['finance-shop_extract'],
-				title: '商家提现',
-			},
-			component: () => import('@/pages/finance/shopExtract/index'),
-		},
-		{
-			path: 'user_recharge/index',
-			name: `${pre}recharge`,
-			meta: {
-				auth: ['finance-user-recharge'],
-				title: '充值记录',
-			},
-			component: () => import('@/pages/finance/financialRecords/recharge'),
-		},
-		{
-			path: 'finance/bill',
-			name: `${pre}bill`,
-			meta: {
-				auth: ['finance-finance-bill'],
-				title: '资金记录',
-			},
-			component: () => import('@/pages/finance/financialRecords/bill'),
-		},
-		{
-			path: 'finance/commission',
-			name: `${pre}commissionRecord`,
-			meta: {
-				auth: ['finance-finance-commission'],
-				title: '佣金记录',
-			},
-			component: () => import('@/pages/finance/commission/index'),
-		},
-		{
-			path: 'balance/balance',
-			name: `${pre}balance`,
-			meta: {
-				auth: ['finance-user-balance'],
-				title: '余额记录',
-			},
-			component: () => import('@/pages/finance/balance/index'),
-		},
-	],
-};
+  path: routePre + '/finance',
+  name: 'finance',
+  header: 'finance',
+  meta: {
+    // 授权标识
+    auth: ['admin-finance'],
+  },
+  redirect: {
+    name: `${pre}cashApply`,
+  },
+  component: LayoutMain,
+  children: [
+    {
+      path: 'billing_records/index',
+      name: `${pre}billingRecords`,
+      meta: {
+        auth: ['finance-billing_records-index'],
+        title: '账单记录',
+      },
+      component: () => import('@/pages/finance/billingRecords/index'),
+    },
+    {
+      path: 'capital_flow/index',
+      name: `${pre}capitalFlow`,
+      meta: {
+        auth: ['finance-capital_flow-index'],
+        title: '资金流水',
+      },
+      component: () => import('@/pages/finance/capitalFlow/index'),
+    },
+    {
+      path: 'user_extract/index',
+      name: `${pre}cashApply`,
+      meta: {
+        auth: ['finance-user_extract'],
+        title: '提现申请',
+      },
+      component: () => import('@/pages/finance/userExtract/index'),
+    },
+    {
+      path: 'user_recharge/index',
+      name: `${pre}recharge`,
+      meta: {
+        auth: ['finance-user-recharge'],
+        title: '充值记录',
+      },
+      component: () => import('@/pages/finance/financialRecords/recharge'),
+    },
+    {
+      path: 'finance/bill',
+      name: `${pre}bill`,
+      meta: {
+        auth: ['finance-finance-bill'],
+        title: '资金记录',
+      },
+      component: () => import('@/pages/finance/financialRecords/bill'),
+    },
+    {
+      path: 'finance/commission',
+      name: `${pre}commissionRecord`,
+      meta: {
+        auth: ['finance-finance-commission'],
+        title: '佣金记录',
+      },
+      component: () => import('@/pages/finance/commission/index'),
+    },
+    {
+      path: 'balance/balance',
+      name: `${pre}balance`,
+      meta: {
+        auth: ['finance-user-balance'],
+        title: '余额记录',
+      },
+      component: () => import('@/pages/finance/balance/index'),
+    },
+  ],
+};

+ 632 - 631
src/router/modules/setting.js

@@ -13,639 +13,640 @@ import setting from '@/setting';
 let routePre = setting.routePre;
 
 const meta = {
-	auth: true,
+  auth: true,
 };
 
 const pre = 'setting_';
 
 export default {
-	path: routePre + '/setting',
-	name: 'setting',
-	header: 'setting',
-	redirect: {
-		name: `${pre}setSystem`,
-	},
-	component: LayoutMain,
-	children: [{
-			path: 'system_role/index',
-			name: `${pre}systemRole`,
-			meta: {
-				auth: ['setting-system-role'],
-				title: '身份管理',
-			},
-			component: () => import('@/pages/setting/systemRole/index'),
-		},
-		{
-			path: 'system_admin/index',
-			name: `${pre}systemAdmin`,
-			meta: {
-				auth: ['setting-system-list'],
-				title: '管理员列表',
-			},
-			component: () => import('@/pages/setting/systemAdmin/index'),
-		},
-		{
-			path: 'system_menus/index',
-			name: `${pre}systemMenus`,
-			meta: {
-				auth: ['setting-system-menus'],
-				title: '权限规则',
-			},
-			component: () => import('@/pages/setting/systemMenus/index'),
-		},
-		{
-			path: 'system_config',
-			name: `${pre}setSystem`,
-			meta: {
-				auth: ['setting-system-config'],
-				title: '系统设置',
-			},
-			component: () => import('@/pages/setting/setSystem/index'),
-		},
-		{
-			path: 'system_config/:type?/:tab_id?',
-			name: `${pre}setApp`,
-			meta: {
-				title: '应用设置',
-			},
-			component: () => import('@/pages/setting/setSystem/index'),
-		},
-		{
-			path: 'system_config_retail/:type?/:tab_id?',
-			name: `${pre}distributionSet`,
-			meta: {
-				...meta,
-				title: '分销配置',
-			},
-			component: () => import('@/pages/setting/setSystem/index'),
-		},
-		{
-			path: 'membership_level/index',
-			name: `${pre}membershipLevel`,
-			meta: {
-				...meta,
-				title: '分销等级',
-			},
-			component: () => import('@/pages/setting/membershipLevel/index'),
-		},
-		{
-			path: 'system_config_message/:type?/:tab_id?',
-			name: `${pre}message`,
-			meta: {
-				auth: ['setting-system-config-message'],
-				title: '短信开关',
-			},
-			component: () => import('@/pages/setting/setSystem/index'),
-		},
-		{
-			path: 'notification/index',
-			name: `${pre}notification`,
-			meta: {
-				auth: ['setting-notification'],
-				title: '消息管理',
-			},
-			component: () => import('@/pages/setting/notification/index'),
-		},
-		{
-			path: 'notification/notificationEdit',
-			name: `${pre}notificationEdit`,
-			meta: {
-				auth: ['setting-notification'],
-				title: '消息编辑',
-			},
-			component: () => import('@/pages/setting/notification/notificationEdit'),
-		},
-		{
-			path: 'system_config_logistics/:type?/:tab_id?',
-			name: `${pre}logistics`,
-			meta: {
-				auth: ['setting-system-config-logistics'],
-				title: '物流配置',
-			},
-			component: () => import('@/pages/setting/setSystem/index'),
-		},
-		{
-			path: 'sms/sms_config/index',
-			name: `${pre}config`,
-			meta: {
-				auth: ['setting-sms-sms-config'],
-				title: '一号通账户',
-			},
-			component: () => import('@/pages/notify/smsConfig/index'),
-		},
-		{
-			path: 'sms/sms_template_apply/index',
-			name: `${pre}smsTemplateApply`,
-			meta: {
-				auth: ['setting-sms-config-template'],
-				title: '短信模板',
-			},
-			component: () => import('@/pages/notify/smsTemplateApply/index'),
-		},
-		{
-			path: 'sms/sms_pay/index',
-			name: `${pre}smsPay`,
-			meta: {
-				auth: ['setting-sms-sms-template'],
-				title: '短信购买',
-			},
-			component: () => import('@/pages/notify/smsPay/index'),
-		},
-		{
-			path: 'sms/sms_template_apply/commons',
-			name: `${pre}commons`,
-			meta: {
-				...meta,
-				title: '公共短信模板',
-			},
-			component: () => import('@/pages/notify/smsTemplateApply/index'),
-		},
-		{
-			path: 'system_group_data/index/:id',
-			name: `${pre}groupDataIndex`,
-			meta: {
-				auth: ['setting-system-group_data-index'],
-				title: '首页导航按钮',
-			},
-			component: () => import('@/pages/system/group/list'),
-		},
-		{
-			path: 'system_group_data/slide/:id',
-			name: `${pre}groupDataSlide`,
-			meta: {
-				auth: ['setting-system-group_data-slide'],
-				title: '首页幻灯片',
-			},
-			component: () => import('@/pages/system/group/list'),
-		},
-		{
-			path: 'system_group_data/sign/:id',
-			name: `${pre}groupDataSign`,
-			meta: {
-				auth: ['setting-system-group_data-sign'],
-				title: '签到天数配置',
-			},
-			component: () => import('@/pages/system/group/list'),
-		},
-		// {
-		//   path: 'system_group_data/order/:id',
-		//   name: `${pre}groupDataOrder`,
-		//   meta: {
-		//     auth: ['setting-system-group_data-order'],
-		//     title: '订单详情动态图'
-		//   },
-		//   component: () => import('@/pages/system/group/list')
-		// },
-		// {
-		//   path: 'system_group_data/user/:id',
-		//   name: `${pre}groupDataUser`,
-		//   meta: {
-		//     auth: ['setting-system-group_data-user'],
-		//     title: '个人中心菜单'
-		//   },
-		//   component: () => import('@/pages/system/group/list')
-		// },
-		{
-			path: 'system_group_data/new/:id',
-			name: `${pre}groupDataNew`,
-			meta: {
-				auth: ['setting-system-group_data-new'],
-				title: '首页滚动新闻',
-			},
-			component: () => import('@/pages/system/group/list'),
-		},
-		{
-			path: 'system_group_data/search/:id',
-			name: `${pre}groupDataNew`,
-			meta: {
-				auth: ['setting-system-group_data-search'],
-				title: '热门搜索',
-			},
-			component: () => import('@/pages/system/group/list'),
-		},
-		{
-			path: 'system_group_data/hot/:id',
-			name: `${pre}groupDataHot`,
-			meta: {
-				auth: ['setting-system-group_data-hot'],
-				title: '热门榜单推荐',
-			},
-			component: () => import('@/pages/system/group/list'),
-		},
-		{
-			path: 'system_group_data/new_product/:id',
-			name: `${pre}groupDataNewProduct`,
-			meta: {
-				auth: ['setting-system-group_data-new_product'],
-				title: '首发新品推荐',
-			},
-			component: () => import('@/pages/system/group/list'),
-		},
-		{
-			path: 'system_group_data/promotion/:id',
-			name: `${pre}groupDataPromotion`,
-			meta: {
-				auth: ['setting-system-group_data-promotion'],
-				title: '促销单品推荐',
-			},
-			component: () => import('@/pages/system/group/list'),
-		},
-		{
-			path: 'system_group_data/poster/:id',
-			name: `${pre}groupDataPoster`,
-			meta: {
-				auth: ['setting-system-group_data-poster'],
-				title: '个人中心分销海报',
-			},
-			component: () => import('@/pages/system/group/list'),
-		},
-		{
-			path: 'system_group_data/best/:id',
-			name: `${pre}groupDataBest`,
-			meta: {
-				auth: ['setting-system-group_data-best'],
-				title: '精品推荐',
-			},
-			component: () => import('@/pages/system/group/list'),
-		},
-		{
-			path: 'system_group_data/activity/:id',
-			name: `${pre}groupDataActivity`,
-			meta: {
-				auth: ['setting-system-group_data-activity'],
-				title: '首页活动区域图片',
-			},
-			component: () => import('@/pages/system/group/list'),
-		},
-		{
-			path: 'system_group_data/system/:id',
-			name: `${pre}groupDataSystem`,
-			meta: {
-				auth: ['setting-system-group_data-system'],
-				title: '首页配置',
-			},
-			component: () => import('@/pages/system/group/list'),
-		},
-		{
-			path: 'system_group_data/hot_money/:id',
-			name: `${pre}groupDataHotMoney`,
-			meta: {
-				auth: ['admin-setting-system_group_data-hot_money'],
-				title: '首页超值爆款',
-			},
-			component: () => import('@/pages/system/group/list'),
-		},
-		{
-			path: 'merchant/system_store/index',
-			name: `${pre}systemStore`,
-			meta: {
-				auth: ['setting-system-config-merchant'],
-				title: '门店设置',
-			},
-			component: () => import('@/pages/setting/systemStore/index'),
-		},
-		{
-			path: 'freight/express/index',
-			name: `${pre}freight`,
-			meta: {
-				auth: ['setting-freight-express'],
-				title: '物流公司',
-			},
-			component: () => import('@/pages/setting/freight/index'),
-		},
-		{
-			path: 'store_service/index',
-			name: `${pre}service`,
-			meta: {
-				auth: ['setting-store-service'],
-				title: '客服管理',
-			},
-			component: () => import('@/pages/setting/storeService/index'),
-		},
-		{
-			path: 'freight/city/list',
-			name: `${pre}dada`,
-			meta: {
-				auth: ['setting-system-city'],
-				title: '城市数据',
-			},
-			component: () => import('@/pages/setting/cityDada/index'),
-		},
-		{
-			path: 'freight/shipping_templates/list',
-			name: `${pre}templates`,
-			meta: {
-				auth: ['setting-shipping-templates'],
-				title: '运费模板',
-			},
-			component: () => import('@/pages/setting/shippingTemplates/index'),
-		},
-		{
-			path: 'merchant/system_store/list',
-			name: `${pre}store`,
-			meta: {
-				auth: ['setting-merchant-system-store'],
-				title: '提货点',
-			},
-			component: () => import('@/pages/setting/storeList/index'),
-		},
-		{
-			path: 'merchant/system_store_staff/index',
-			name: `${pre}staff`,
-			meta: {
-				auth: ['setting-merchant-system-store-staff'],
-				title: '核销员',
-			},
-			component: () => import('@/pages/setting/clerkList/index'),
-		},
-		{
-			path: 'merchant/system_verify_order/index',
-			name: `${pre}order`,
-			meta: {
-				auth: ['setting-merchant-system-verify-order'],
-				title: '核销订单',
-			},
-			component: () => import('@/pages/setting/verifyOrder/index'),
-		},
-		{
-			path: 'theme_style',
-			name: `${pre}themeStyle`,
-			meta: {
-				auth: ['admin-setting-theme_style'],
-				title: '主题风格',
-			},
-			component: () => import('@/pages/setting/themeStyle/index'),
-		},
-		{
-			path: 'pages',
-			name: `${pre}page`,
-			header: 'setting',
-			redirect: {
-				name: `${pre}devise`,
-			},
-		},
-		{
-			path: 'pages/devise',
-			name: `${pre}devise`,
-			meta: {
-				auth: ['admin-setting-pages-devise'],
-				title: '店铺装修',
-			},
-			component: () => import('@/pages/setting/devise/list'),
-		},
-		{
-			path: 'pages/diy',
-			name: `${pre}diy`,
-			meta: {
-				auth: ['admin-setting-pages-diy'],
-				title: '页面设计',
-				activeMenu: routePre + '/setting/pages/devise',
-			},
-			component: () => import('@/pages/setting/devisePage/index'),
-		},
-		{
-			path: 'pages/diy_index',
-			name: `${pre}index_diy`,
-			meta: {
-				auth: ['admin-setting-pages-diy'],
-				title: '首页设计',
-				fullScreen: true, //是否全屏显示main区域
-			},
-			component: () => import('@/pages/setting/devise/diyIndex'),
-		},
-		{
-			path: 'pages/links',
-			name: `${pre}links`,
-			meta: {
-				auth: ['admin-setting-pages-links'],
-				title: '页面链接',
-			},
-			component: () => import('@/pages/setting/devise/links'),
-		},
-		{
-			path: 'store_service/speechcraft',
-			name: `${pre}speechcraft`,
-			meta: {
-				auth: ['admin-setting-store_service-speechcraft'],
-				title: '客服话术',
-			},
-			component: () => import('@/pages/setting/storeService/speechcraft'),
-		},
-		{
-			path: 'store_service/feedback',
-			name: `${pre}feedback`,
-			meta: {
-				auth: ['admin-setting-store_service-feedback'],
-				title: '用户留言',
-			},
-			component: () => import('@/pages/setting/storeService/feedback'),
-		},
-		{
-			path: 'system_group_data/pc/:id',
-			name: `${pre}groupDataPc`,
-			meta: {
-				auth: ['setting-system-group_data-pc'],
-				title: 'PC主页轮播',
-			},
-			component: () => import('@/pages/system/group/list'),
-		},
-		{
-			path: 'system_config_member_right/:type?/:tab_id?',
-			name: `${pre}right`,
-			meta: {
-				auth: ['setting-system-config-member-right'],
-				title: '会员权益',
-			},
-			component: () => import('@/pages/setting/setSystem/index'),
-		},
-		{
-			path: 'delivery_service/index',
-			name: `${pre}deliveryService`,
-			meta: {
-				auth: ['setting-delivery-service'],
-				title: '配送员列表',
-			},
-			component: () => import('@/pages/setting/deliveryService/index'),
-		},
-		{
-			path: 'pc_group_data',
-			name: `${pre}systemGroupData`,
-			meta: {
-				auth: ['setting-system-pc_data'],
-				title: 'PC商城',
-			},
-			component: () => import('@/pages/system/group/pc'),
-		},
-		{
-			path: 'system_visualization_data',
-			name: `${pre}systemGroupData`,
-			meta: {
-				auth: ['admin-setting-system_visualization_data'],
-				title: '数据配置',
-			},
-			component: () => import('@/pages/system/group/visualization'),
-		},
-		{
-			path: 'storage',
-			name: `${pre}storage`,
-			meta: {
-				auth: ['setting-storage'],
-				title: '储存配置',
-			},
-			component: () => import('@/pages/setting/storage'),
-		},
-		{
-			path: 'wechat_config/:type?/:tab_id?',
-			name: `${pre}wechat_config`,
-			meta: {
-				...meta,
-				title: '公众号配置',
-			},
-			component: () => import('@/pages/setting/setSystem/index'),
-		},
-		{
-			path: 'routine_config/:type?/:tab_id?',
-			name: `${pre}routine_config`,
-			meta: {
-				...meta,
-				title: '小程序配置',
-			},
-			component: () => import('@/pages/setting/setSystem/index'),
-		},
-		{
-			path: 'app_config/:type?/:tab_id?',
-			name: `${pre}app_config`,
-			meta: {
-				...meta,
-				title: 'app配置',
-			},
-			component: () => import('@/pages/setting/setSystem/index'),
-		},
-		{
-			path: 'pc_config/:type?/:tab_id?',
-			name: `${pre}pc_config`,
-			meta: {
-				...meta,
-				title: 'PC配置',
-			},
-			component: () => import('@/pages/setting/setSystem/index'),
-		},
-		{
-			path: 'other_config/print/:type?/:tab_id?',
-			name: `${pre}other_print`,
-			meta: {
-				auth: ['setting-other-print'],
-				title: '小票打印配置',
-			},
-			component: () => import('@/pages/setting/setSystem/index'),
-		},
-		{
-			path: 'other_config/copy/:type?/:tab_id?',
-			name: `${pre}other_copy`,
-			meta: {
-				auth: ['setting-other-copy'],
-				title: '商品采集配置',
-			},
-			component: () => import('@/pages/setting/setSystem/index'),
-		},
-		{
-			path: 'other_config/logistics/:type?/:tab_id?',
-			name: `${pre}other_logistics`,
-			meta: {
-				auth: ['setting-other-logistics'],
-				title: '物流查询配置',
-			},
-			component: () => import('@/pages/setting/setSystem/index'),
-		},
-		{
-			path: 'other_config/electronic/:type?/:tab_id?',
-			name: `${pre}other_electronic`,
-			meta: {
-				auth: ['setting-other-electronic'],
-				title: '电子面单配置',
-			},
-			component: () => import('@/pages/setting/setSystem/index'),
-		},
-		{
-			path: 'other_config/sms/:type?/:tab_id?',
-			name: `${pre}other_sms`,
-			meta: {
-				auth: ['setting-other-sms'],
-				title: '短信功能配置',
-			},
-			component: () => import('@/pages/setting/setSystem/index'),
-		},
-		{
-			path: 'other_config/pay/:type?/:tab_id?',
-			name: `${pre}other_pay`,
-			meta: {
-				auth: ['setting-other-sms'],
-				title: '商城支付配置',
-			},
-			component: () => import('@/pages/setting/setSystem/index'),
-		},
-		{
-			path: 'agreement',
-			name: `${pre}notification`,
-			meta: {
-				auth: ['setting-agreement'],
-				title: '协议设置',
-			},
-			component: () => import('@/pages/setting/agreement/index'),
-		},
-		{
-			path: 'other_config/out/:type?/:tab_id?',
-			name: `${pre}other_print`,
-			meta: {
-				auth: ['setting-other-out'],
-				title: '对外接口配置',
-			},
-			component: () => import('@/pages/setting/setSystem/index'),
-		},
-		{
-			path: 'system_out_account/index',
-			name: `${pre}systemOutAccount`,
-			meta: {
-				auth: ['setting-system-out-account-index'],
-				title: '账号列表',
-			},
-			component: () => import('@/pages/setting/systemOutAccount/index'),
-		},
-		{
-			path: 'system_out_interface/index',
-			name: `${pre}systemOutAccount`,
-			meta: {
-				auth: ['setting-system-out-interface-index'],
-				title: '接口文档',
-			},
-			component: () => import('@/pages/setting/systemOutInterface/index'),
-		},
-		{
-			path: 'lang/list',
-			name: `${pre}langList`,
-			meta: {
-				auth: ['admin-lang-list'],
-				title: '语言列表',
-			},
-			component: () => import('@/pages/setting/multiLanguage/list'),
-		},
-		{
-			path: 'lang/info',
-			name: `${pre}langInfo`,
-			meta: {
-				auth: ['admin-lang-info'],
-				title: '语言详情',
-			},
-			component: () => import('@/pages/setting/multiLanguage/langList'),
-		},
-		{
-			path: 'lang/country',
-			name: `${pre}langCountry`,
-			meta: {
-				auth: ['admin-lang-country'],
-				title: '地区关联语言',
-			},
-			component: () => import('@/pages/setting/multiLanguage/country'),
-		},
-	],
-};
+  path: routePre + '/setting',
+  name: 'setting',
+  header: 'setting',
+  redirect: {
+    name: `${pre}setSystem`,
+  },
+  component: LayoutMain,
+  children: [
+    {
+      path: 'system_role/index',
+      name: `${pre}systemRole`,
+      meta: {
+        auth: ['setting-system-role'],
+        title: '身份管理',
+      },
+      component: () => import('@/pages/setting/systemRole/index'),
+    },
+    {
+      path: 'system_admin/index',
+      name: `${pre}systemAdmin`,
+      meta: {
+        auth: ['setting-system-list'],
+        title: '管理员列表',
+      },
+      component: () => import('@/pages/setting/systemAdmin/index'),
+    },
+    {
+      path: 'system_menus/index',
+      name: `${pre}systemMenus`,
+      meta: {
+        auth: ['setting-system-menus'],
+        title: '权限规则',
+      },
+      component: () => import('@/pages/setting/systemMenus/index'),
+    },
+    {
+      path: 'system_config',
+      name: `${pre}setSystem`,
+      meta: {
+        auth: ['setting-system-config'],
+        title: '系统设置',
+      },
+      component: () => import('@/pages/setting/setSystem/index'),
+    },
+    {
+      path: 'system_config/:type?/:tab_id?',
+      name: `${pre}setApp`,
+      meta: {
+        title: '应用设置',
+      },
+      component: () => import('@/pages/setting/setSystem/index'),
+    },
+    {
+      path: 'system_config_retail/:type?/:tab_id?',
+      name: `${pre}distributionSet`,
+      meta: {
+        ...meta,
+        title: '分销配置',
+      },
+      component: () => import('@/pages/setting/setSystem/index'),
+    },
+    {
+      path: 'membership_level/index',
+      name: `${pre}membershipLevel`,
+      meta: {
+        ...meta,
+        title: '分销等级',
+      },
+      component: () => import('@/pages/setting/membershipLevel/index'),
+    },
+    {
+      path: 'system_config_message/:type?/:tab_id?',
+      name: `${pre}message`,
+      meta: {
+        auth: ['setting-system-config-message'],
+        title: '短信开关',
+      },
+      component: () => import('@/pages/setting/setSystem/index'),
+    },
+    {
+      path: 'notification/index',
+      name: `${pre}notification`,
+      meta: {
+        auth: ['setting-notification'],
+        title: '消息管理',
+      },
+      component: () => import('@/pages/setting/notification/index'),
+    },
+    {
+      path: 'notification/notificationEdit',
+      name: `${pre}notificationEdit`,
+      meta: {
+        auth: ['setting-notification'],
+        title: '消息编辑',
+      },
+      component: () => import('@/pages/setting/notification/notificationEdit'),
+    },
+    {
+      path: 'system_config_logistics/:type?/:tab_id?',
+      name: `${pre}logistics`,
+      meta: {
+        auth: ['setting-system-config-logistics'],
+        title: '物流配置',
+      },
+      component: () => import('@/pages/setting/setSystem/index'),
+    },
+    {
+      path: 'sms/sms_config/index',
+      name: `${pre}config`,
+      meta: {
+        auth: ['setting-sms-sms-config'],
+        title: '一号通账户',
+      },
+      component: () => import('@/pages/notify/smsConfig/index'),
+    },
+    {
+      path: 'sms/sms_template_apply/index',
+      name: `${pre}smsTemplateApply`,
+      meta: {
+        auth: ['setting-sms-config-template'],
+        title: '短信模板',
+      },
+      component: () => import('@/pages/notify/smsTemplateApply/index'),
+    },
+    {
+      path: 'sms/sms_pay/index',
+      name: `${pre}smsPay`,
+      meta: {
+        auth: ['setting-sms-sms-template'],
+        title: '短信购买',
+      },
+      component: () => import('@/pages/notify/smsPay/index'),
+    },
+    {
+      path: 'sms/sms_template_apply/commons',
+      name: `${pre}commons`,
+      meta: {
+        ...meta,
+        title: '公共短信模板',
+      },
+      component: () => import('@/pages/notify/smsTemplateApply/index'),
+    },
+    {
+      path: 'system_group_data/index/:id',
+      name: `${pre}groupDataIndex`,
+      meta: {
+        auth: ['setting-system-group_data-index'],
+        title: '首页导航按钮',
+      },
+      component: () => import('@/pages/system/group/list'),
+    },
+    {
+      path: 'system_group_data/slide/:id',
+      name: `${pre}groupDataSlide`,
+      meta: {
+        auth: ['setting-system-group_data-slide'],
+        title: '首页幻灯片',
+      },
+      component: () => import('@/pages/system/group/list'),
+    },
+    {
+      path: 'system_group_data/sign/:id',
+      name: `${pre}groupDataSign`,
+      meta: {
+        auth: ['setting-system-group_data-sign'],
+        title: '签到天数配置',
+      },
+      component: () => import('@/pages/system/group/list'),
+    },
+    // {
+    //   path: 'system_group_data/order/:id',
+    //   name: `${pre}groupDataOrder`,
+    //   meta: {
+    //     auth: ['setting-system-group_data-order'],
+    //     title: '订单详情动态图'
+    //   },
+    //   component: () => import('@/pages/system/group/list')
+    // },
+    // {
+    //   path: 'system_group_data/user/:id',
+    //   name: `${pre}groupDataUser`,
+    //   meta: {
+    //     auth: ['setting-system-group_data-user'],
+    //     title: '个人中心菜单'
+    //   },
+    //   component: () => import('@/pages/system/group/list')
+    // },
+    {
+      path: 'system_group_data/new/:id',
+      name: `${pre}groupDataNew`,
+      meta: {
+        auth: ['setting-system-group_data-new'],
+        title: '首页滚动新闻',
+      },
+      component: () => import('@/pages/system/group/list'),
+    },
+    {
+      path: 'system_group_data/search/:id',
+      name: `${pre}groupDataNew`,
+      meta: {
+        auth: ['setting-system-group_data-search'],
+        title: '热门搜索',
+      },
+      component: () => import('@/pages/system/group/list'),
+    },
+    {
+      path: 'system_group_data/hot/:id',
+      name: `${pre}groupDataHot`,
+      meta: {
+        auth: ['setting-system-group_data-hot'],
+        title: '热门榜单推荐',
+      },
+      component: () => import('@/pages/system/group/list'),
+    },
+    {
+      path: 'system_group_data/new_product/:id',
+      name: `${pre}groupDataNewProduct`,
+      meta: {
+        auth: ['setting-system-group_data-new_product'],
+        title: '首发新品推荐',
+      },
+      component: () => import('@/pages/system/group/list'),
+    },
+    {
+      path: 'system_group_data/promotion/:id',
+      name: `${pre}groupDataPromotion`,
+      meta: {
+        auth: ['setting-system-group_data-promotion'],
+        title: '促销单品推荐',
+      },
+      component: () => import('@/pages/system/group/list'),
+    },
+    {
+      path: 'system_group_data/poster/:id',
+      name: `${pre}groupDataPoster`,
+      meta: {
+        auth: ['setting-system-group_data-poster'],
+        title: '个人中心分销海报',
+      },
+      component: () => import('@/pages/system/group/list'),
+    },
+    {
+      path: 'system_group_data/best/:id',
+      name: `${pre}groupDataBest`,
+      meta: {
+        auth: ['setting-system-group_data-best'],
+        title: '精品推荐',
+      },
+      component: () => import('@/pages/system/group/list'),
+    },
+    {
+      path: 'system_group_data/activity/:id',
+      name: `${pre}groupDataActivity`,
+      meta: {
+        auth: ['setting-system-group_data-activity'],
+        title: '首页活动区域图片',
+      },
+      component: () => import('@/pages/system/group/list'),
+    },
+    {
+      path: 'system_group_data/system/:id',
+      name: `${pre}groupDataSystem`,
+      meta: {
+        auth: ['setting-system-group_data-system'],
+        title: '首页配置',
+      },
+      component: () => import('@/pages/system/group/list'),
+    },
+    {
+      path: 'system_group_data/hot_money/:id',
+      name: `${pre}groupDataHotMoney`,
+      meta: {
+        auth: ['admin-setting-system_group_data-hot_money'],
+        title: '首页超值爆款',
+      },
+      component: () => import('@/pages/system/group/list'),
+    },
+    {
+      path: 'merchant/system_store/index',
+      name: `${pre}systemStore`,
+      meta: {
+        auth: ['setting-system-config-merchant'],
+        title: '门店设置',
+      },
+      component: () => import('@/pages/setting/systemStore/index'),
+    },
+    {
+      path: 'freight/express/index',
+      name: `${pre}freight`,
+      meta: {
+        auth: ['setting-freight-express'],
+        title: '物流公司',
+      },
+      component: () => import('@/pages/setting/freight/index'),
+    },
+    {
+      path: 'store_service/index',
+      name: `${pre}service`,
+      meta: {
+        auth: ['setting-store-service'],
+        title: '客服管理',
+      },
+      component: () => import('@/pages/setting/storeService/index'),
+    },
+    {
+      path: 'freight/city/list',
+      name: `${pre}dada`,
+      meta: {
+        auth: ['setting-system-city'],
+        title: '城市数据',
+      },
+      component: () => import('@/pages/setting/cityDada/index'),
+    },
+    {
+      path: 'freight/shipping_templates/list',
+      name: `${pre}templates`,
+      meta: {
+        auth: ['setting-shipping-templates'],
+        title: '运费模板',
+      },
+      component: () => import('@/pages/setting/shippingTemplates/index'),
+    },
+    {
+      path: 'merchant/system_store/list',
+      name: `${pre}store`,
+      meta: {
+        auth: ['setting-merchant-system-store'],
+        title: '提货点',
+      },
+      component: () => import('@/pages/setting/storeList/index'),
+    },
+    {
+      path: 'merchant/system_store_staff/index',
+      name: `${pre}staff`,
+      meta: {
+        auth: ['setting-merchant-system-store-staff'],
+        title: '核销员',
+      },
+      component: () => import('@/pages/setting/clerkList/index'),
+    },
+    {
+      path: 'merchant/system_verify_order/index',
+      name: `${pre}order`,
+      meta: {
+        auth: ['setting-merchant-system-verify-order'],
+        title: '核销订单',
+      },
+      component: () => import('@/pages/setting/verifyOrder/index'),
+    },
+    {
+      path: 'theme_style',
+      name: `${pre}themeStyle`,
+      meta: {
+        auth: ['admin-setting-theme_style'],
+        title: '主题风格',
+      },
+      component: () => import('@/pages/setting/themeStyle/index'),
+    },
+    {
+      path: 'pages',
+      name: `${pre}page`,
+      header: 'setting',
+      redirect: {
+        name: `${pre}devise`,
+      },
+    },
+    {
+      path: 'pages/devise',
+      name: `${pre}devise`,
+      meta: {
+        auth: ['admin-setting-pages-devise'],
+        title: '店铺装修',
+      },
+      component: () => import('@/pages/setting/devise/list'),
+    },
+    {
+      path: 'pages/diy',
+      name: `${pre}diy`,
+      meta: {
+        auth: ['admin-setting-pages-diy'],
+        title: '页面设计',
+        activeMenu: routePre + '/setting/pages/devise',
+      },
+      component: () => import('@/pages/setting/devisePage/index'),
+    },
+    {
+      path: 'pages/diy_index',
+      name: `${pre}index_diy`,
+      meta: {
+        auth: ['admin-setting-pages-diy'],
+        title: '首页设计',
+        fullScreen: true, //是否全屏显示main区域
+      },
+      component: () => import('@/pages/setting/devise/diyIndex'),
+    },
+    {
+      path: 'pages/links',
+      name: `${pre}links`,
+      meta: {
+        auth: ['admin-setting-pages-links'],
+        title: '页面链接',
+      },
+      component: () => import('@/pages/setting/devise/links'),
+    },
+    {
+      path: 'store_service/speechcraft',
+      name: `${pre}speechcraft`,
+      meta: {
+        auth: ['admin-setting-store_service-speechcraft'],
+        title: '客服话术',
+      },
+      component: () => import('@/pages/setting/storeService/speechcraft'),
+    },
+    {
+      path: 'store_service/feedback',
+      name: `${pre}feedback`,
+      meta: {
+        auth: ['admin-setting-store_service-feedback'],
+        title: '用户留言',
+      },
+      component: () => import('@/pages/setting/storeService/feedback'),
+    },
+    {
+      path: 'system_group_data/pc/:id',
+      name: `${pre}groupDataPc`,
+      meta: {
+        auth: ['setting-system-group_data-pc'],
+        title: 'PC主页轮播',
+      },
+      component: () => import('@/pages/system/group/list'),
+    },
+    {
+      path: 'system_config_member_right/:type?/:tab_id?',
+      name: `${pre}right`,
+      meta: {
+        auth: ['setting-system-config-member-right'],
+        title: '会员权益',
+      },
+      component: () => import('@/pages/setting/setSystem/index'),
+    },
+    {
+      path: 'delivery_service/index',
+      name: `${pre}deliveryService`,
+      meta: {
+        auth: ['setting-delivery-service'],
+        title: '配送员列表',
+      },
+      component: () => import('@/pages/setting/deliveryService/index'),
+    },
+    {
+      path: 'pc_group_data',
+      name: `${pre}systemGroupData`,
+      meta: {
+        auth: ['setting-system-pc_data'],
+        title: 'PC商城',
+      },
+      component: () => import('@/pages/system/group/pc'),
+    },
+    {
+      path: 'system_visualization_data',
+      name: `${pre}systemGroupData`,
+      meta: {
+        auth: ['admin-setting-system_visualization_data'],
+        title: '数据配置',
+      },
+      component: () => import('@/pages/system/group/visualization'),
+    },
+    {
+      path: 'storage',
+      name: `${pre}storage`,
+      meta: {
+        auth: ['setting-storage'],
+        title: '储存配置',
+      },
+      component: () => import('@/pages/setting/storage'),
+    },
+    {
+      path: 'wechat_config/:type?/:tab_id?',
+      name: `${pre}wechat_config`,
+      meta: {
+        ...meta,
+        title: '公众号配置',
+      },
+      component: () => import('@/pages/setting/setSystem/index'),
+    },
+    {
+      path: 'routine_config/:type?/:tab_id?',
+      name: `${pre}routine_config`,
+      meta: {
+        ...meta,
+        title: '小程序配置',
+      },
+      component: () => import('@/pages/setting/setSystem/index'),
+    },
+    {
+      path: 'app_config/:type?/:tab_id?',
+      name: `${pre}app_config`,
+      meta: {
+        ...meta,
+        title: 'app配置',
+      },
+      component: () => import('@/pages/setting/setSystem/index'),
+    },
+    {
+      path: 'pc_config/:type?/:tab_id?',
+      name: `${pre}pc_config`,
+      meta: {
+        ...meta,
+        title: 'PC配置',
+      },
+      component: () => import('@/pages/setting/setSystem/index'),
+    },
+    {
+      path: 'other_config/print/:type?/:tab_id?',
+      name: `${pre}other_print`,
+      meta: {
+        auth: ['setting-other-print'],
+        title: '小票打印配置',
+      },
+      component: () => import('@/pages/setting/setSystem/index'),
+    },
+    {
+      path: 'other_config/copy/:type?/:tab_id?',
+      name: `${pre}other_copy`,
+      meta: {
+        auth: ['setting-other-copy'],
+        title: '商品采集配置',
+      },
+      component: () => import('@/pages/setting/setSystem/index'),
+    },
+    {
+      path: 'other_config/logistics/:type?/:tab_id?',
+      name: `${pre}other_logistics`,
+      meta: {
+        auth: ['setting-other-logistics'],
+        title: '物流查询配置',
+      },
+      component: () => import('@/pages/setting/setSystem/index'),
+    },
+    {
+      path: 'other_config/electronic/:type?/:tab_id?',
+      name: `${pre}other_electronic`,
+      meta: {
+        auth: ['setting-other-electronic'],
+        title: '电子面单配置',
+      },
+      component: () => import('@/pages/setting/setSystem/index'),
+    },
+    {
+      path: 'other_config/sms/:type?/:tab_id?',
+      name: `${pre}other_sms`,
+      meta: {
+        auth: ['setting-other-sms'],
+        title: '短信功能配置',
+      },
+      component: () => import('@/pages/setting/setSystem/index'),
+    },
+    {
+      path: 'other_config/pay/:type?/:tab_id?',
+      name: `${pre}other_pay`,
+      meta: {
+        auth: ['setting-other-sms'],
+        title: '商城支付配置',
+      },
+      component: () => import('@/pages/setting/setSystem/index'),
+    },
+    {
+      path: 'agreement',
+      name: `${pre}notification`,
+      meta: {
+        auth: ['setting-agreement'],
+        title: '协议设置',
+      },
+      component: () => import('@/pages/setting/agreement/index'),
+    },
+    {
+      path: 'other_config/out/:type?/:tab_id?',
+      name: `${pre}other_print`,
+      meta: {
+        auth: ['setting-other-out'],
+        title: '对外接口配置',
+      },
+      component: () => import('@/pages/setting/setSystem/index'),
+    },
+    {
+      path: 'system_out_account/index',
+      name: `${pre}systemOutAccount`,
+      meta: {
+        auth: ['setting-system-out-account-index'],
+        title: '账号列表',
+      },
+      component: () => import('@/pages/setting/systemOutAccount/index'),
+    },
+    {
+      path: 'system_out_interface/index',
+      name: `${pre}systemOutAccount`,
+      meta: {
+        auth: ['setting-system-out-interface-index'],
+        title: '接口文档',
+      },
+      component: () => import('@/pages/setting/systemOutInterface/index'),
+    },
+    {
+      path: 'lang/list',
+      name: `${pre}langList`,
+      meta: {
+        auth: ['admin-lang-list'],
+        title: '语言列表',
+      },
+      component: () => import('@/pages/setting/multiLanguage/list'),
+    },
+    {
+      path: 'lang/info',
+      name: `${pre}langInfo`,
+      meta: {
+        auth: ['admin-lang-info'],
+        title: '语言详情',
+      },
+      component: () => import('@/pages/setting/multiLanguage/langList'),
+    },
+    {
+      path: 'lang/country',
+      name: `${pre}langCountry`,
+      meta: {
+        auth: ['admin-lang-country'],
+        title: '地区关联语言',
+      },
+      component: () => import('@/pages/setting/multiLanguage/country'),
+    },
+  ],
+};

+ 0 - 37
src/router/modules/shop_finance.js

@@ -1,37 +0,0 @@
-// +---------------------------------------------------------------------
-// | CRMEB [ CRMEB赋能开发者,助力企业发展 ]
-// +---------------------------------------------------------------------
-// | Copyright (c) 2016~2023 https://www.crmeb.com All rights reserved.
-// +---------------------------------------------------------------------
-// | Licensed CRMEB并不是自由软件,未经许可不能去掉CRMEB相关版权
-// +---------------------------------------------------------------------
-// | Author: CRMEB Team <admin@crmeb.com>
-// +---------------------------------------------------------------------
-
-import LayoutMain from '@/layout';
-import setting from '@/setting';
-let routePre = setting.shoproutePre;
-
-const pre = 'finance_';
-export default {
-	path: routePre + '/finance',
-	name: 'finance',
-	header: 'finance',
-	meta: {
-		// 授权标识
-		auth: ['admin-finance'],
-	},
-	redirect: {
-		name: `${pre}cashApply`,
-	},
-	component: LayoutMain,
-	children: [{
-		path: 'user_extract/index',
-		name: `${pre}cashApply`,
-		meta: {
-			auth: ['finance-user_extract'],
-			title: '提现申请',
-		},
-		component: () => import('@/pages/shop_finance/userExtract/index'),
-	}, ],
-};

+ 0 - 74
src/router/modules/shop_order.js

@@ -1,74 +0,0 @@
-// +---------------------------------------------------------------------
-// | CRMEB [ CRMEB赋能开发者,助力企业发展 ]
-// +---------------------------------------------------------------------
-// | Copyright (c) 2016~2023 https://www.crmeb.com All rights reserved.
-// +---------------------------------------------------------------------
-// | Licensed CRMEB并不是自由软件,未经许可不能去掉CRMEB相关版权
-// +---------------------------------------------------------------------
-// | Author: CRMEB Team <admin@crmeb.com>
-// +---------------------------------------------------------------------
-
-import LayoutMain from '@/layout';
-import setting from '@/setting';
-let routePre = setting.shoproutePre;
-
-const pre = 'order_';
-
-export default {
-	path: routePre + '/order',
-	name: 'shop_order',
-	header: 'shop_order',
-	meta: {
-		title: '订单'
-	},
-	redirect: {
-		name: `${pre}orderList`,
-	},
-	component: LayoutMain,
-	children: [{
-			path: 'list',
-			name: `${pre}list`,
-			meta: {
-				auth: ['admin-order-storeOrder-index'],
-				title: '订单管理',
-			},
-			component: () => import('@/pages/shop_order/orderList/index'),
-		},
-		{
-			path: 'split_list',
-			name: `${pre}split_list`,
-			meta: {
-				auth: ['admin-order-storeOrder-index'],
-				title: '子订单列表',
-			},
-			component: () => import('@/pages/shop_order/orderList/splitList.vue'),
-		},
-		{
-			path: 'offline',
-			name: `${pre}offline`,
-			meta: {
-				auth: ['admin-order-offline'],
-				title: '收银订单',
-			},
-			component: () => import('@/pages/shop_order/offline/index'),
-		},
-		{
-			path: 'refund',
-			name: `${pre}refund`,
-			meta: {
-				auth: ['admin-order-refund'],
-				title: '售后订单',
-			},
-			component: () => import('@/pages/shop_order/refund/index'),
-		},
-		{
-			path: 'invoice/list',
-			name: `${pre}invoice`,
-			meta: {
-				auth: ['admin-order-startOrderInvoice-index'],
-				title: '发票管理',
-			},
-			component: () => import('@/pages/shop_order/invoice/index'),
-		},
-	],
-};

+ 3 - 7
src/router/routers.js

@@ -29,8 +29,6 @@ import division from './modules/division';
 import settings from '@/setting';
 import crud from './modules/crud';
 import shop from './modules/shop';
-import shopOrder from './modules/shop_order';
-import shopFinance from './modules/shop_finance';
 
 const modulesFiles = require.context('./modules/crud', true, /\.js$/);
 
@@ -49,7 +47,7 @@ let routePre = settings.routePre;
 const frameIn = [{
 		path: '/',
 		meta: {
-			title: '派商国际',
+			title: 'CRMEB',
 		},
 		redirect: {
 			name: 'home_index',
@@ -112,7 +110,7 @@ const frameIn = [{
 	{
 		path: routePre,
 		meta: {
-			title: '派商国际',
+			title: 'CRMEB',
 		},
 		redirect: {
 			name: 'home_index',
@@ -179,10 +177,8 @@ const frameIn = [{
 	division,
 	...routers,
 	crud,
-	shopOrder,
-	shopFinance
 ];
-// console.log(frameIn);
+
 /**
  * 在主框架之外显示
  */

+ 57 - 60
src/store/index.js

@@ -34,7 +34,6 @@ import routesList from './module/routesList';
 import tagsViewRoutes from './module/tagsViewRoutes';
 import userInfos from './module/userInfos';
 import keepAliveNames from './module/keepAliveNames';
-import shopOrder from './module/shopOrder';
 
 Vue.use(Vuex);
 // 持久化储存
@@ -44,62 +43,60 @@ Vue.use(Vuex);
 // })
 
 export default new Vuex.Store({
-	state: {
-		//
-	},
-	mutations: {
-		//
-	},
-	actions: {
-		//
-	},
-	plugins: [
-		new VuexPersistence({
-			reducer: (state) => ({
-				user: state.user, //这个就是存入localStorage的值
-				app: state.app,
-				menus: state.menus,
-				menu: state.menu,
-				userInfo: state.userInfo,
-				userLevel: state.userLevel,
-				order: state.order,
-				media: state.media,
-				kefu: state.kefu,
-				integralOrder: state.integralOrder,
-				mobildConfig: state.mobildConfig,
-				upgrade: state.upgrade,
-				layout: state.layout,
-				themeConfig: state.themeConfig,
-				routesList: state.routesList,
-				keepAliveNames: state.keepAliveNames,
-				shopOrder: state.shopOrder,
-			}),
-			storage: window.localStorage,
-		}).plugin,
-	],
-	modules: {
-		user,
-		app,
-		menus,
-		menu,
-		userInfo,
-		userLevel,
-		order,
-		media,
-		goodSelect,
-		moren,
-		shopping,
-		fresh,
-		kefu,
-		mobildConfig,
-		integralOrder,
-		upgrade,
-		layout,
-		themeConfig,
-		routesList,
-		tagsViewRoutes,
-		userInfos,
-		keepAliveNames,
-		shopOrder
-	},
-});
+  state: {
+    //
+  },
+  mutations: {
+    //
+  },
+  actions: {
+    //
+  },
+  plugins: [
+    new VuexPersistence({
+      reducer: (state) => ({
+        user: state.user, //这个就是存入localStorage的值
+        app: state.app,
+        menus: state.menus,
+        menu: state.menu,
+        userInfo: state.userInfo,
+        userLevel: state.userLevel,
+        order: state.order,
+        media: state.media,
+        kefu: state.kefu,
+        integralOrder: state.integralOrder,
+        mobildConfig: state.mobildConfig,
+        upgrade: state.upgrade,
+        layout: state.layout,
+        themeConfig: state.themeConfig,
+        routesList: state.routesList,
+        keepAliveNames: state.keepAliveNames,
+      }),
+      storage: window.localStorage,
+    }).plugin,
+  ],
+  modules: {
+    user,
+    app,
+    menus,
+    menu,
+    userInfo,
+    userLevel,
+    order,
+    media,
+    goodSelect,
+    moren,
+    shopping,
+    fresh,
+    kefu,
+    mobildConfig,
+    integralOrder,
+    upgrade,
+    layout,
+    themeConfig,
+    routesList,
+    tagsViewRoutes,
+    userInfos,
+    keepAliveNames,
+  },
+});

+ 0 - 163
src/store/module/shopOrder.js

@@ -1,163 +0,0 @@
-// +----------------------------------------------------------------------
-// | CRMEB [ CRMEB赋能开发者,助力企业发展 ]
-// +----------------------------------------------------------------------
-// | Copyright (c) 2016~2023 https://www.crmeb.com All rights reserved.
-// +----------------------------------------------------------------------
-// | Licensed CRMEB并不是自由软件,未经许可不能去掉CRMEB相关版权
-// +----------------------------------------------------------------------
-// | Author: CRMEB Team <admin@crmeb.com>
-// +----------------------------------------------------------------------
-
-/**
- * 布局配置
- * */
-import screenfull from 'screenfull';
-import {
-	getOrdes
-} from '@/api/shopOrder';
-// function today () {
-//     const end = new Date();
-//     const start = new Date();
-//     var datetimeStart = start.getFullYear() + '/' + (start.getMonth() + 1) + '/' + start.getDate();
-//     var datetimeEnd = end.getFullYear() + '/' + (end.getMonth() + 1) + '/' + end.getDate();
-//     return [datetimeStart, datetimeEnd];
-// }
-export default {
-	namespaced: true,
-	state: {
-		orderStatus: '', // 订单状态
-		// orderTime: today().join('-'), // 订单时间
-		orderTime: '',
-		orderNum: '',
-		orderType: 0, // 订单状态
-		fieldKey: '',
-		orderChartType: {},
-		isDels: false,
-		delIdList: [],
-		iconsaaaa: '',
-		orderPayType: '',
-		// modelLists: function
-	},
-	mutations: {
-		/**
-		 * @description 设置设备类型
-		 * @param {Object} state vuex state
-		 * @param {String} type 设备类型,可选值为 Mobile、Tablet、Desktop
-		 */
-
-		/**
-		 * @description 订单状态搜索
-		 */
-		getOrderStatus(state, orderStatus) {
-			state.orderStatus = orderStatus;
-		},
-
-		/**
-		 * @description 订单状态搜索
-		 */
-		getOrderType(state, orderPayType) {
-			state.orderPayType = orderPayType;
-		},
-
-		/**
-		 * @description 时间状态
-		 */
-		getOrderTime(state, orderTime) {
-			state.orderTime = orderTime;
-		},
-
-		/**
-		 * @description 订单号选择状态
-		 */
-		getOrderNum(state, orderNum) {
-			state.orderNum = orderNum;
-		},
-
-		getfieldKey(state, fieldKey) {
-			state.fieldKey = fieldKey;
-		},
-
-		/**
-		 * @description tab切换,选择订单状态
-		 */
-		onChangeTabs(state, orderType) {
-			state.orderType = orderType;
-		},
-
-		/**
-		 * @description  订单状态 全部对象
-		 */
-		onChangeChart(state, orderChartType) {
-			state.orderChartType = orderChartType;
-		},
-
-		/**
-		 * @description  是否可以批量删除订单
-		 */
-		getIsDel(state, isDels) {
-			state.isDels = isDels;
-		},
-
-		/**
-		 * @description  批量删除订单的id集合
-		 */
-		getisDelIdListl(state, delIdList) {
-			state.delIdList = delIdList;
-		},
-	},
-	actions: {
-		/**
-		 * @description 订单状态
-		 */
-		getOrderTabs({
-			commit
-		}, data) {
-			return new Promise((resolve, reject) => {
-				getOrdes(data)
-					.then(async (res) => {
-						resolve(res);
-						commit('onChangeChart', res.data);
-					})
-					.catch((res) => {
-						reject(res);
-					});
-			});
-		},
-		/**
-		 * @description 初始化监听全屏状态
-		 */
-		listenFullscreen({
-			commit
-		}) {
-			return new Promise((resolve) => {
-				if (screenfull.enabled) {
-					screenfull.on('change', () => {
-						if (!screenfull.isFullscreen) {
-							commit('setFullscreen', false);
-						}
-					});
-				}
-				// end
-				resolve();
-			});
-		},
-		/**
-		 * @description 切换全屏
-		 */
-		toggleFullscreen({
-			commit
-		}) {
-			return new Promise((resolve) => {
-				if (screenfull.isFullscreen) {
-					screenfull.exit();
-					commit('setFullscreen', false);
-				} else {
-					screenfull.request();
-					commit('setFullscreen', true);
-				}
-				// end
-				resolve();
-			});
-		},
-	},
-};

+ 2 - 2
vue.config.js

@@ -105,12 +105,12 @@ module.exports = {
   productionSourceMap: false,
   // 这里写你调用接口的基础路径,来解决跨域,如果设置了代理,那你本地开发环境的axios的baseUrl要写为 '' ,即空字符串
   devServer: {
-    // port: 1617, //端口号
+    port: 1617, //端口号
     proxy: {
       // "/adminapi": {
       '/adminapi': {
         // "target" : "https://www.psgjsc.com" ,//目标接口域名
-        target: 'http://paishang.ns.liuniu946.com', //目标接口域名
+        target: 'http://paishang.frp.liuniu946.com', //目标接口域名
         ws: true,
         changeOrigin: true,
         // "changeOrigin" : true, //是否跨域