86bfc955ba6f6e4d2ac870538cbf7805.json 39 KB

1
  1. {"remainingRequest":"C:\\Users\\Administrator\\Desktop\\crmeb5.0\\template\\admin\\node_modules\\vue-loader\\lib\\index.js??vue-loader-options!C:\\Users\\Administrator\\Desktop\\crmeb5.0\\template\\admin\\src\\pages\\order\\orderList\\components\\tableList.vue?vue&type=style&index=0&id=1186764a&lang=scss&scoped=true","dependencies":[{"path":"C:\\Users\\Administrator\\Desktop\\crmeb5.0\\template\\admin\\src\\pages\\order\\orderList\\components\\tableList.vue","mtime":1761185180148},{"path":"C:\\Users\\Administrator\\Desktop\\crmeb5.0\\template\\admin\\node_modules\\css-loader\\index.js","mtime":499162500000},{"path":"C:\\Users\\Administrator\\Desktop\\crmeb5.0\\template\\admin\\node_modules\\vue-loader\\lib\\loaders\\stylePostLoader.js","mtime":499162500000},{"path":"C:\\Users\\Administrator\\Desktop\\crmeb5.0\\template\\admin\\node_modules\\postcss-loader\\src\\index.js","mtime":499162500000},{"path":"C:\\Users\\Administrator\\Desktop\\crmeb5.0\\template\\admin\\node_modules\\sass-loader\\dist\\cjs.js","mtime":499162500000},{"path":"C:\\Users\\Administrator\\Desktop\\crmeb5.0\\template\\admin\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"C:\\Users\\Administrator\\Desktop\\crmeb5.0\\template\\admin\\node_modules\\vue-loader\\lib\\index.js","mtime":499162500000}],"contextDependencies":[],"result":[{"type":"Buffer","data":"base64:DQo6OnYtZGVlcCAuZWwtdXBsb2FkLA0KOjp2LWRlZXAgLmVsLXVwbG9hZC1kcmFnZ2VyIHsNCiAgd2lkdGg6IDEwMCU7DQp9DQoNCjo6di1kZWVwIC5lbC11cGxvYWQtbGlzdCB7DQogIGRpc3BsYXk6IG5vbmU7DQp9DQoNCjo6di1kZWVwIC5lbC10YWJzX19pdGVtIHsNCiAgaGVpZ2h0OiA1NHB4Ow0KICBsaW5lLWhlaWdodDogNTRweDsNCn0NCg0KaW1nIHsNCiAgaGVpZ2h0OiAzNnB4Ow0KICBkaXNwbGF5OiBibG9jazsNCn0NCg0KLnRhYkJveCB7DQogIHdpZHRoOiAxMDAlOw0KICBoZWlnaHQ6IDEwMCU7DQogIGRpc3BsYXk6IGZsZXg7DQogIGFsaWduLWl0ZW1zOiBjZW50ZXI7DQogIG1hcmdpbi1ib3R0b206IDJweDsNCg0KICAudGFiQm94X2ltZyB7DQogICAgd2lkdGg6IDM2cHg7DQogICAgaGVpZ2h0OiAzNnB4Ow0KDQogICAgaW1nIHsNCiAgICAgIHdpZHRoOiAxMDAlOw0KICAgICAgaGVpZ2h0OiAxMDAlOw0KICAgIH0NCiAgfQ0KDQogIC50YWJCb3hfdGl0IHsNCiAgICB3aWR0aDogNjAlOw0KICAgIGZvbnQtc2l6ZTogMTJweCAhaW1wb3J0YW50Ow0KICAgIG1hcmdpbjogMCAxMHB4IDAgMTBweDsNCiAgICBsZXR0ZXItc3BhY2luZzogMXB4Ow0KICAgIHBhZGRpbmc6IDVweCAwOw0KICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7DQogIH0NCn0NCg0KLm9yZGVyRGF0YSA6OnYtZGVlcCAuaXZ1LXRhYmxlLWNlbGwgew0KICBwYWRkaW5nLWxlZnQ6IDAgIWltcG9ydGFudDsNCn0NCg0KLnZlcnRpY2FsLWNlbnRlci1tb2RhbCB7DQogIGRpc3BsYXk6IGZsZXg7DQogIGFsaWduLWl0ZW1zOiBjZW50ZXI7DQogIGp1c3RpZnktY29udGVudDogY2VudGVyOw0KfQ0KDQoubmlja25hbWUgew0KfQ0KDQoudWlkIHsNCiAgY29sb3I6ICMyZDhjZjA7DQp9DQoNCi5waW5rX25hbWUgew0KICBjb2xvcjogIzY2NjsNCn0NCg0KLnRhYiB7DQogIGRpc3BsYXk6IGZsZXg7DQogIGFsaWduLWl0ZW1zOiBjZW50ZXI7DQoNCiAgaW1nIHsNCiAgICB3aWR0aDogMzZweDsNCiAgICBoZWlnaHQ6IDM2cHg7DQogICAgbWFyZ2luLXJpZ2h0OiAxMHB4Ow0KICB9DQp9DQoNCi53LTI1MCB7DQogIG1heC13aWR0aDogMjUwcHg7DQp9DQoNCi53LTEyMCB7DQogIHdpZHRoOiAxMjBweDsNCn0NCg0KLnRpcHMgew0KICBjb2xvcjogI2MwYzRjYzsNCiAgZm9udC1zaXplOiAxMnB4Ow0KfQ0K"},{"version":3,"sources":["tableList.vue"],"names":[],"mappings":";AAo9BA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA","file":"tableList.vue","sourceRoot":"src/pages/order/orderList/components","sourcesContent":["<template>\r\n <div>\r\n <el-tabs v-model=\"currentTab\" @tab-click=\"onClickTab\" v-if=\"tablists\">\r\n <el-tab-pane name=\"null\" label=\"全部\"></el-tab-pane>\r\n <el-tab-pane\r\n name=\"0\"\r\n :label=\"orderChartType.un_paid > 0 ? `待支付(${orderChartType.un_paid})` : `待支付`\"\r\n ></el-tab-pane>\r\n <el-tab-pane\r\n name=\"1\"\r\n :label=\"orderChartType.un_send > 0 ? `待发货(${orderChartType.un_send})` : `待发货`\"\r\n ></el-tab-pane>\r\n <el-tab-pane name=\"5\" label=\"待核销\"></el-tab-pane>\r\n <el-tab-pane name=\"2\" label=\"待收货\"></el-tab-pane>\r\n <el-tab-pane name=\"3\" label=\"待评价\"></el-tab-pane>\r\n <el-tab-pane name=\"4\" label=\"已完成\"></el-tab-pane>\r\n <el-tab-pane name=\"-2\" label=\"已退款\"></el-tab-pane>\r\n <el-tab-pane name=\"-4\" label=\"已删除\"></el-tab-pane>\r\n </el-tabs>\r\n <div class=\"acea-row\">\r\n <el-button v-auth=\"['order-write']\" type=\"primary\" v-db-click @click=\"writeOff\">订单核销</el-button>\r\n <el-button v-db-click @click=\"batchShipmentModal = true\">批量发货</el-button>\r\n <!-- <el-upload class=\"mr14\" :action=\"expressUrl\" :headers=\"header\" :on-success=\"upExpress\">\r\n <el-button class=\"export\" type=\"primary\">批量发货</el-button>\r\n </el-upload> -->\r\n <el-button v-auth=\"['order-dels']\" v-db-click @click=\"delAll\">批量删除</el-button>\r\n <el-button v-auth=\"['export-storeOrder']\" class=\"export\" v-db-click @click=\"exportList\">订单导出</el-button>\r\n <!-- <el-button class=\"export\" v-db-click @click=\"exportDeliveryList\">发货单导出</el-button> -->\r\n </div>\r\n <el-table\r\n :data=\"orderList\"\r\n ref=\"table\"\r\n v-loading=\"loading\"\r\n empty-text=\"暂无数据\"\r\n @select=\"handleSelectRow\"\r\n @select-all=\"handleSelectRow\"\r\n class=\"orderData mt14\"\r\n >\r\n <el-table-column type=\"expand\">\r\n <template slot-scope=\"scope\">\r\n <expandRow :row=\"scope.row\"></expandRow>\r\n </template>\r\n </el-table-column>\r\n <el-table-column type=\"selection\" width=\"55\"> </el-table-column>\r\n <el-table-column label=\"订单号 | 类型\" width=\"200\">\r\n <template slot-scope=\"scope\">\r\n <div>{{ scope.row.order_id }}</div>\r\n <div class=\"pink_name\" :style=\"{ color: scope.row.color }\">{{ scope.row.pink_name }}</div>\r\n <span v-if=\"scope.row.is_del === 1\" style=\"color: #ed4014; display: block\">用户已删除</span>\r\n <span v-if=\"scope.row.is_cancel === 1 && scope.row.is_del === 0\" style=\"color: #ed4014; display: block\"\r\n >用户已取消</span\r\n >\r\n <span v-if=\"scope.row.refund_type === 6\" style=\"color: #ed4014; display: block\">订单已退款</span>\r\n </template>\r\n </el-table-column>\r\n <el-table-column label=\"商品信息\" min-width=\"250\">\r\n <template slot-scope=\"scope\">\r\n <div class=\"tab\" v-for=\"(item, i) in scope.row._info\" :key=\"i\">\r\n <img\r\n v-lazy=\"\r\n item.cart_info.productInfo.attrInfo\r\n ? item.cart_info.productInfo.attrInfo.image\r\n : item.cart_info.productInfo.image\r\n \"\r\n />\r\n <el-tooltip placement=\"top\" :open-delay=\"300\">\r\n <div slot=\"content\">\r\n <div>\r\n <span>商品名称:</span>\r\n <span>{{ item.cart_info.productInfo.store_name || '--' }}</span>\r\n </div>\r\n <div>\r\n <span>规格名称:</span>\r\n <span>{{\r\n item.cart_info.productInfo.attrInfo ? item.cart_info.productInfo.attrInfo.suk : '---'\r\n }}</span>\r\n </div>\r\n <div>\r\n <span>支付价格:</span>\r\n <span>¥{{ item.cart_info.truePrice || '--' }}</span>\r\n </div>\r\n <div>\r\n <span>购买数量:</span>\r\n <span>{{ item.cart_info.cart_num || '--' }}</span>\r\n </div>\r\n </div>\r\n <span class=\"line2 w-250\">{{ item.cart_info.productInfo.store_name }}</span>\r\n </el-tooltip>\r\n </div>\r\n </template>\r\n </el-table-column>\r\n <el-table-column label=\"用户信息\" min-width=\"150\">\r\n <template slot-scope=\"scope\">\r\n <span class=\"nickname\">{{ scope.row.nickname }} | {{ scope.row.uid }}</span>\r\n </template>\r\n </el-table-column>\r\n <el-table-column label=\"实际支付\" min-width=\"100\">\r\n <template slot-scope=\"scope\">\r\n <span>{{ scope.row.paid ? scope.row.pay_price : '未支付' }}</span>\r\n </template>\r\n </el-table-column>\r\n <el-table-column label=\"支付方式\" min-width=\"100\">\r\n <template slot-scope=\"scope\">\r\n <span>{{ scope.row.pay_type_name || '--' }}</span>\r\n </template>\r\n </el-table-column>\r\n <el-table-column label=\"支付时间\" min-width=\"150\">\r\n <template slot-scope=\"scope\">\r\n <span>{{ scope.row._pay_time || '--' }}</span>\r\n </template>\r\n </el-table-column>\r\n <el-table-column label=\"订单状态\" min-width=\"100\">\r\n <template slot-scope=\"scope\">\r\n <div v-html=\"scope.row.status_name.status_name\" class=\"pt5\"></div>\r\n <div v-if=\"!scope.row.is_all_refund && scope.row.refund.length\" class=\"trip\">部分退款中</div>\r\n <div\r\n v-if=\"\r\n scope.row.refund_status == 0 &&\r\n scope.row.is_all_refund &&\r\n scope.row.refund.length &&\r\n scope.row.refund_type != 6\r\n \"\r\n class=\"trip\"\r\n >\r\n 退款中\r\n </div>\r\n <div class=\"img\">\r\n <template v-if=\"scope.row.status_name.pics\">\r\n <div v-viewer class=\"pictrue\" v-for=\"(item, index) in scope.row.status_name.pics || []\" :key=\"index\">\r\n <img v-lazy=\"item\" :src=\"item\" />\r\n </div>\r\n </template>\r\n </div>\r\n </template>\r\n </el-table-column>\r\n <el-table-column label=\"操作\" fixed=\"right\" width=\"130\">\r\n <template slot-scope=\"scope\">\r\n <a\r\n v-db-click\r\n @click=\"edit(scope.row)\"\r\n v-if=\"scope.row._status === 1 && scope.row.is_del !== 1 && scope.row.is_cancel !== 1\"\r\n >编辑</a\r\n >\r\n <el-divider\r\n direction=\"vertical\"\r\n v-if=\"scope.row._status === 1 && scope.row.is_del !== 1 && scope.row.is_cancel !== 1\"\r\n />\r\n <a\r\n v-db-click\r\n @click=\"sendOrder(scope.row)\"\r\n v-if=\"\r\n (scope.row.status === 4 || scope.row._status === 2 || scope.row._status === 8) &&\r\n scope.row.shipping_type === 1 &&\r\n (scope.row.pinkStatus === null || scope.row.pinkStatus === 2) &&\r\n scope.row.is_del !== 1 &&\r\n scope.row.is_cancel !== 1 &&\r\n !scope.row.refund.length\r\n \"\r\n >发送货</a\r\n >\r\n <el-divider\r\n direction=\"vertical\"\r\n v-if=\"\r\n (scope.row.status === 4 || scope.row._status === 2 || scope.row._status === 8) &&\r\n scope.row.shipping_type === 1 &&\r\n (scope.row.pinkStatus === null || scope.row.pinkStatus === 2) &&\r\n scope.row.is_del !== 1 &&\r\n scope.row.is_cancel !== 1 &&\r\n !scope.row.refund.length\r\n \"\r\n />\r\n <a v-db-click @click=\"delivery(scope.row)\" v-if=\"scope.row._status === 4 && !scope.row.split.length\"\r\n >配送信息</a\r\n >\r\n <el-divider direction=\"vertical\" v-if=\"scope.row._status === 4 && !scope.row.split.length\" />\r\n <a\r\n v-db-click\r\n @click=\"bindWrite(scope.row)\"\r\n v-if=\"\r\n scope.row.shipping_type == 2 &&\r\n scope.row.status == 0 &&\r\n scope.row.paid == 1 &&\r\n scope.row.refund_status === 0\r\n \"\r\n >立即核销</a\r\n >\r\n <el-divider\r\n direction=\"vertical\"\r\n v-if=\"\r\n scope.row.shipping_type == 2 &&\r\n scope.row.status == 0 &&\r\n scope.row.paid == 1 &&\r\n scope.row.refund_status === 0\r\n \"\r\n />\r\n <template>\r\n <el-dropdown size=\"small\" @command=\"changeMenu(scope.row, $event)\" :transfer=\"true\">\r\n <span class=\"el-dropdown-link\"> 更多<i class=\"el-icon-arrow-down el-icon--right\"></i> </span>\r\n <el-dropdown-menu slot=\"dropdown\">\r\n <el-dropdown-item\r\n command=\"1\"\r\n v-show=\"\r\n scope.row._status === 1 &&\r\n scope.row.paid === 0 &&\r\n scope.row.pay_type === 'offline' &&\r\n scope.row.is_del !== 1 &&\r\n scope.row.is_cancel !== 1\r\n \"\r\n >确认付款</el-dropdown-item\r\n >\r\n <el-dropdown-item command=\"2\">订单详情</el-dropdown-item>\r\n <el-dropdown-item command=\"11\" v-show=\"scope.row._status >= 3 && scope.row.express_dump\"\r\n >电子面单打印</el-dropdown-item\r\n >\r\n <el-dropdown-item command=\"10\" v-show=\"scope.row._status >= 2\">小票打印</el-dropdown-item>\r\n <el-dropdown-item\r\n command=\"4\"\r\n v-show=\"\r\n scope.row._status !== 1 ||\r\n (scope.row._status === 3 &&\r\n scope.row.use_integral > 0 &&\r\n scope.row.use_integral >= scope.row.back_integral)\r\n \"\r\n >订单备注</el-dropdown-item\r\n >\r\n <el-dropdown-item\r\n command=\"5\"\r\n v-show=\"scope.row.paid == 1 && scope.row.refund_status == 0 && !scope.row.refund.length\"\r\n >立即退款</el-dropdown-item\r\n >\r\n <!-- <el-dropdown-item command=\"6\" v-show='scope.row._status !==1 && (scope.row.use_integral > 0 && scope.row.use_integral >= scope.row.back_integral) '>退积分</el-dropdown-item>-->\r\n <!-- <el-dropdown-item command=\"7\" v-show='scope.row._status === 3'>不退款</el-dropdown-item>-->\r\n <el-dropdown-item command=\"8\" v-show=\"scope.row._status === 4\">已收货</el-dropdown-item>\r\n <el-dropdown-item command=\"9\">删除订单</el-dropdown-item>\r\n <el-dropdown-item command=\"12\" v-show=\"scope.row.kuaidi_label\">快递面单打印</el-dropdown-item>\r\n <el-dropdown-item command=\"13\" v-show=\"scope.row.paid\">配货单打印</el-dropdown-item>\r\n </el-dropdown-menu>\r\n </el-dropdown>\r\n </template>\r\n </template>\r\n </el-table-column>\r\n </el-table>\r\n <div class=\"acea-row row-right page\">\r\n <pagination v-if=\"total\" :total=\"total\" :page.sync=\"page.page\" :limit.sync=\"page.limit\" @pagination=\"getList\" />\r\n </div>\r\n <!-- 编辑 退款 退积分 不退款-->\r\n <edit-from ref=\"edits\" :FromData=\"FromData\" @submitFail=\"submitFail\"></edit-from>\r\n <!-- 详情 -->\r\n <details-from ref=\"details\" :orderDatalist=\"orderDatalist\" :orderId=\"orderId\"></details-from>\r\n <!-- 备注 -->\r\n <order-remark ref=\"remarks\" :orderId=\"orderId\" @submitFail=\"submitFail\"></order-remark>\r\n <!-- 取消寄件 -->\r\n <order-shipment ref=\"shipment\" :orderId=\"orderId\" @submitFail=\"submitFail\"></order-shipment>\r\n <!-- 发送货 -->\r\n <order-send\r\n ref=\"send\"\r\n :orderId=\"orderId\"\r\n :status=\"status\"\r\n :pay_type=\"pay_type\"\r\n :virtual_type=\"virtual_type\"\r\n @submitFail=\"submitFail\"\r\n @clearId=\"\r\n () => {\r\n orderId = 0;\r\n virtual_type = null;\r\n }\r\n \"\r\n ></order-send>\r\n <order-refund\r\n ref=\"refund\"\r\n :orderId=\"orderId\"\r\n :status=\"status\"\r\n :pay_type=\"pay_type\"\r\n :virtual_type=\"virtual_type\"\r\n @submitFail=\"submitFail\"\r\n @clearId=\"\r\n () => {\r\n orderId = 0;\r\n virtual_type = null;\r\n }\r\n \"\r\n ></order-refund>\r\n <!-- -->\r\n <el-dialog\r\n :visible.sync=\"modals2\"\r\n title=\"订单核销\"\r\n class=\"paymentFooter\"\r\n :show-close=\"true\"\r\n width=\"540px\"\r\n @closed=\"changeModal\"\r\n >\r\n <el-form\r\n ref=\"writeOffFrom\"\r\n :model=\"writeOffFrom\"\r\n :rules=\"writeOffRules\"\r\n label-width=\"80px\"\r\n label-position=\"right\"\r\n class=\"tabform\"\r\n @submit.native.prevent\r\n >\r\n <el-form-item prop=\"code\" label=\"核销码:\">\r\n <el-input\r\n style=\"width: 414px\"\r\n type=\"text\"\r\n placeholder=\"请输入12位核销码\"\r\n v-model.number=\"writeOffFrom.code\"\r\n />\r\n </el-form-item>\r\n </el-form>\r\n <div slot=\"footer\">\r\n <el-button type=\"primary\" v-db-click @click=\"ok('writeOffFrom')\">立即核销</el-button>\r\n <el-button v-db-click @click=\"del('writeOffFrom')\">取消</el-button>\r\n </div>\r\n </el-dialog>\r\n <el-dialog\r\n :visible.sync=\"batchShipmentModal\"\r\n title=\"批量发货\"\r\n class=\"paymentFooter\"\r\n :show-close=\"true\"\r\n width=\"540px\"\r\n @closed=\"changeModal\"\r\n >\r\n <!-- <el-upload :action=\"expressUrl\" :headers=\"header\" :on-success=\"upExpress\">\r\n <el-button class=\"export\" type=\"primary\">批量发货</el-button>\r\n </el-upload> -->\r\n <el-alert type=\"warning\" :closable=\"false\">\r\n <p>步骤一 导出发货单</p>\r\n <p>步骤二 发货单中填写物流单号</p>\r\n <p>步骤三 将发货单上传</p>\r\n </el-alert>\r\n <div class=\"acea-row row-middle mb10 mt10\">\r\n <el-button v-db-click @click=\"exportDeliveryList\">导出发货单</el-button>\r\n <div class=\"pl20 tips\"></div>\r\n </div>\r\n <el-upload\r\n class=\"upload-demo\"\r\n accept=\".doc,.docx,.xls,.xlsx\"\r\n drag\r\n :action=\"expressUrl\"\r\n :headers=\"header\"\r\n :on-success=\"upExpress\"\r\n :before-upload=\"beforeUpload\"\r\n >\r\n <i class=\"el-icon-upload\"></i>\r\n <div class=\"el-upload__text\">批量发货单,拖入上传或<em>点击上传</em></div>\r\n </el-upload>\r\n </el-dialog>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport expandRow from './tableExpand.vue';\r\nimport printJS from 'print-js';\r\nimport {\r\n orderList,\r\n getOrdeDatas,\r\n getDataInfo,\r\n getRefundFrom,\r\n getnoRefund,\r\n refundIntegral,\r\n getDistribution,\r\n writeUpdate,\r\n shipmentCancelOrder,\r\n putWrite,\r\n importExpress,\r\n} from '@/api/order';\r\nimport { mapState, mapMutations } from 'vuex';\r\nimport editFrom from '../../../../components/from/from';\r\nimport detailsFrom from '../handle/orderDetails';\r\nimport orderRemark from '../handle/orderRemark';\r\nimport orderSend from '../handle/orderSend';\r\nimport orderRefund from '../handle/orderRefund';\r\nimport orderShipment from '../handle/orderShipment';\r\nimport { exportOrderList, exportOrderDeliveryList } from '@api/export';\r\nimport Setting from '@/setting';\r\nimport { getCookies } from '@/libs/util';\r\nimport createWorkBook from '@/vendor/newToExcel.js';\r\nimport { isFileUpload } from '@/utils';\r\n\r\nexport default {\r\n name: 'table_list',\r\n components: {\r\n expandRow,\r\n editFrom,\r\n detailsFrom,\r\n orderRemark,\r\n orderSend,\r\n orderShipment,\r\n orderRefund,\r\n },\r\n data() {\r\n const codeNum = (rule, value, callback) => {\r\n if (!value) {\r\n return callback(new Error('请填写核销码'));\r\n }\r\n // 模拟异步验证效果\r\n if (!Number.isInteger(value)) {\r\n callback(new Error('请填写12位数字'));\r\n } else {\r\n const reg = /\\b\\d{12}\\b/;\r\n if (!reg.test(value)) {\r\n callback(new Error('请填写12位数字'));\r\n } else {\r\n callback();\r\n }\r\n }\r\n };\r\n return {\r\n batchShipmentModal: false,\r\n expressUrl: Setting.apiBaseURL + '/file/upload/1',\r\n header: {},\r\n delfromData: {},\r\n modal: false,\r\n orderList: [],\r\n orderCards: [],\r\n loading: false,\r\n orderId: 0,\r\n total_num: 0,\r\n virtual_type: 0,\r\n status: 0,\r\n pay_type: '',\r\n\r\n total: 0, // 总条数\r\n page: {\r\n page: 1, // 当前页\r\n limit: 15, // 每页显示条数\r\n },\r\n data: [],\r\n FromData: null,\r\n orderDatalist: null,\r\n // modalTitleSs: '',\r\n selectedIds: [], //选中合并项的id\r\n currentTab: 'null',\r\n spinShow: false,\r\n tablists: {\r\n all: '0',\r\n general: '0',\r\n pink: '0',\r\n seckill: '0',\r\n bargain: '0',\r\n advance: '0',\r\n },\r\n writeOffRules: {\r\n code: [{ validator: codeNum, trigger: 'blur', required: true }],\r\n },\r\n writeOffFrom: {\r\n code: '',\r\n confirm: 0,\r\n },\r\n modals2: false,\r\n };\r\n },\r\n computed: {\r\n ...mapState('order', [\r\n 'orderPayType',\r\n 'orderStatus',\r\n 'orderTime',\r\n 'real_name',\r\n 'fieldKey',\r\n 'orderType',\r\n 'delIdList',\r\n 'isDels',\r\n 'orderChartType',\r\n ]),\r\n },\r\n mounted() {},\r\n created() {\r\n this.getTabs();\r\n this.onChangeTabs('');\r\n this.getList();\r\n this.getToken();\r\n },\r\n watch: {\r\n orderType: function () {\r\n this.page.page = 1;\r\n this.getList();\r\n },\r\n },\r\n methods: {\r\n ...mapMutations('order', ['getOrderStatus', 'onChangeTabs', 'getIsDel', 'getisDelIdListl']),\r\n batchShipment() {},\r\n beforeUpload(file) {\r\n return isFileUpload(file);\r\n },\r\n // 操作\r\n changeMenu(row, name) {\r\n this.orderId = row.id;\r\n switch (name) {\r\n case '1':\r\n this.delfromData = {\r\n title: '修改订单为已支付',\r\n url: `/order/pay_offline/${row.id}`,\r\n method: 'post',\r\n ids: '',\r\n };\r\n this.$modalSure(this.delfromData)\r\n .then((res) => {\r\n this.$message.success(res.msg);\r\n this.$emit('changeGetTabs');\r\n this.getList();\r\n })\r\n .catch((res) => {\r\n this.$message.error(res.msg);\r\n });\r\n // this.modalTitleSs = '修改立即支付';\r\n break;\r\n case '2':\r\n this.getData(row.id);\r\n break;\r\n case '4':\r\n this.$refs.remarks.modals = true;\r\n this.$refs.remarks.formValidate.remark = row.remark;\r\n break;\r\n case '5':\r\n // this.getRefundData(row.id);\r\n this.$refs.refund.total_num = row.total_num;\r\n this.$refs.refund.order_id = row.order_id;\r\n this.$refs.refund.formItem.refund_price = row.pay_price;\r\n this.virtual_type = row.virtual_type;\r\n this.$refs.refund.modals = true;\r\n this.orderId = row.id;\r\n this.status = row._status;\r\n this.pay_type = row.pay_type;\r\n break;\r\n // case '6':\r\n // this.getRefundIntegral(row.id);\r\n // break;\r\n // case '7':\r\n // this.getNoRefundData(row.id);\r\n // break;\r\n case '8':\r\n this.delfromData = {\r\n title: '修改确认收货',\r\n url: `/order/take/${row.id}`,\r\n method: 'put',\r\n ids: '',\r\n };\r\n this.$modalSure(this.delfromData)\r\n .then((res) => {\r\n this.$message.success(res.msg);\r\n this.getList();\r\n })\r\n .catch((res) => {\r\n this.$message.error(res.msg);\r\n });\r\n // this.modalTitleSs = '修改确认收货';\r\n break;\r\n case '10':\r\n this.delfromData = {\r\n title: '立即打印订单',\r\n url: `/order/print/${row.id}`,\r\n method: 'get',\r\n ids: '',\r\n };\r\n this.$modalSure(this.delfromData)\r\n .then((res) => {\r\n this.$message.success(res.msg);\r\n this.$emit('changeGetTabs');\r\n this.getList();\r\n })\r\n .catch((res) => {\r\n this.$message.error(res.msg);\r\n });\r\n break;\r\n case '11':\r\n this.delfromData = {\r\n title: '立即打印电子面单',\r\n info: '您确认打印此电子面单吗?',\r\n url: `/order/order_dump/${row.id}`,\r\n method: 'get',\r\n ids: '',\r\n };\r\n this.$modalSure(this.delfromData)\r\n .then((res) => {\r\n this.$message.success(res.msg);\r\n this.getList();\r\n })\r\n .catch((res) => {\r\n this.$message.error(res.msg);\r\n });\r\n break;\r\n case '12':\r\n this.printImg(row.kuaidi_label);\r\n break;\r\n case '13':\r\n let pathInfo = this.$router.resolve({\r\n path: Setting.routePre + '/order/print',\r\n query: {\r\n id: row.order_id,\r\n },\r\n });\r\n window.open(pathInfo.href, '_blank');\r\n break;\r\n default:\r\n this.delfromData = {\r\n title: '删除订单',\r\n url: `/order/del/${row.id}`,\r\n method: 'DELETE',\r\n ids: '',\r\n };\r\n // this.modalTitleSs = '删除订单';\r\n this.delOrder(row, this.delfromData);\r\n }\r\n },\r\n shipmentClear(row) {\r\n this.orderId = row.id;\r\n this.$refs.shipment.modals = true;\r\n },\r\n printImg(url) {\r\n printJS({\r\n printable: url,\r\n type: 'image',\r\n documentTitle: '快递信息',\r\n style: `img{\r\n width: 100%;\r\n height: 476px;\r\n }`,\r\n });\r\n },\r\n // 立即支付 /确认收货//删除单条订单\r\n submitModel() {\r\n this.getList();\r\n },\r\n // 订单列表\r\n getList(res) {\r\n this.page.page = res === 1 ? 1 : this.page.page;\r\n this.loading = true;\r\n orderList({\r\n page: this.page.page,\r\n limit: this.page.limit,\r\n status: this.orderStatus,\r\n pay_type: this.orderPayType,\r\n data: this.orderTime,\r\n real_name: this.real_name,\r\n field_key: this.fieldKey,\r\n type: this.orderType === 0 ? '' : this.orderType,\r\n })\r\n .then(async (res) => {\r\n let data = res.data;\r\n this.orderList = data.data;\r\n this.orderCards = data.stat;\r\n this.total = data.count;\r\n this.$nextTick(() => {\r\n //确保dom加载完毕\r\n this.setChecked();\r\n });\r\n this.$emit('on-changeCards', data.stat);\r\n this.loading = false;\r\n })\r\n .catch((res) => {\r\n this.loading = false;\r\n this.$message.error(res.msg);\r\n });\r\n },\r\n handleSelectRow(selection) {\r\n let ids = [];\r\n selection.map((e) => {\r\n ids.push(e.id);\r\n });\r\n this.selectedIds = ids;\r\n this.$nextTick(() => {\r\n //确保dom加载完毕\r\n this.setChecked();\r\n });\r\n },\r\n setChecked() {\r\n //将new Set()转化为数组\r\n let ids = [...this.selectedIds];\r\n this.getisDelIdListl(ids);\r\n // 找到绑定的table的ref对应的dom,找到table的objData对象,objData保存的是当前页的数据\r\n let objData = this.$refs.table.objData;\r\n for (let index in objData) {\r\n if (this.selectedIds.has(objData[index].id)) {\r\n objData[index]._isChecked = true;\r\n }\r\n }\r\n },\r\n isDel(selection) {\r\n if (selection.findIndex((target) => target.is_del === 0) == -1) {\r\n this.getIsDel(1);\r\n } else {\r\n this.getIsDel(0);\r\n }\r\n },\r\n // 编辑\r\n edit(row) {\r\n this.getOrderData(row.id);\r\n },\r\n // 删除单条订单\r\n delOrder(row, data) {\r\n if (row.is_del === 1) {\r\n this.$modalSure(data)\r\n .then((res) => {\r\n this.$message.success(res.msg);\r\n this.getList();\r\n })\r\n .catch((res) => {\r\n this.$message.error(res.msg);\r\n });\r\n } else {\r\n this.$message.error('您选择的的订单存在用户未删除的订单,无法删除用户未删除的订单!');\r\n }\r\n },\r\n // 获取编辑表单数据\r\n getOrderData(id) {\r\n getOrdeDatas(id)\r\n .then(async (res) => {\r\n this.FromData = res.data;\r\n this.$refs.edits.modals = true;\r\n })\r\n .catch((res) => {\r\n this.$message.error(res.msg);\r\n });\r\n },\r\n // 获取详情表单数据\r\n getData(id) {\r\n getDataInfo(id)\r\n .then(async (res) => {\r\n this.$refs.details.modals = true;\r\n this.orderDatalist = res.data;\r\n if (this.orderDatalist.orderInfo.refund_reason_wap_img) {\r\n try {\r\n this.orderDatalist.orderInfo.refund_reason_wap_img = JSON.parse(\r\n this.orderDatalist.orderInfo.refund_reason_wap_img,\r\n );\r\n } catch (e) {\r\n this.orderDatalist.orderInfo.refund_reason_wap_img = [];\r\n }\r\n }\r\n })\r\n .catch((res) => {\r\n this.$message.error(res.msg);\r\n });\r\n },\r\n // 修改成功\r\n submitFail() {\r\n this.getList();\r\n this.$emit('changeGetTabs');\r\n },\r\n // 获取退款表单数据\r\n getRefundData(id) {\r\n this.$modalForm(getRefundFrom(id)).then(() => {\r\n this.getList();\r\n this.$emit('changeGetTabs');\r\n });\r\n },\r\n // 获取退积分表单数据\r\n getRefundIntegral(id) {\r\n refundIntegral(id)\r\n .then(async (res) => {\r\n this.FromData = res.data;\r\n this.$refs.edits.modals = true;\r\n })\r\n .catch((res) => {\r\n this.$message.error(res.msg);\r\n });\r\n },\r\n // 不退款表单数据\r\n getNoRefundData(id) {\r\n this.$modalForm(getnoRefund(id)).then(() => {\r\n this.getList();\r\n this.$emit('changeGetTabs');\r\n });\r\n },\r\n // 发送货\r\n sendOrder(row) {\r\n if (row.user_address) {\r\n this.$refs.send.userSendmsg = {\r\n real_name: row.real_name,\r\n user_address: row.user_address,\r\n user_phone: row.user_phone,\r\n };\r\n }\r\n this.$refs.send.total_num = row.total_num;\r\n this.virtual_type = row.virtual_type;\r\n this.$refs.send.modals = true;\r\n this.orderId = row.id;\r\n this.status = row._status;\r\n this.pay_type = row.pay_type;\r\n this.$refs.send.getList();\r\n this.$refs.send.getDeliveryList();\r\n this.$nextTick((e) => {\r\n this.$refs.send.getCartInfo(row._status, row.id);\r\n });\r\n },\r\n // 配送信息表单数据\r\n delivery(row) {\r\n getDistribution(row.id)\r\n .then(async (res) => {\r\n this.FromData = res.data;\r\n this.$refs.edits.modals = true;\r\n })\r\n .catch((res) => {\r\n this.$message.error(res.msg);\r\n });\r\n },\r\n // 核销订单\r\n bindWrite(row) {\r\n let self = this;\r\n this.$msgbox({\r\n title: '提示',\r\n message: '确定要核销该订单吗?',\r\n showCancelButton: true,\r\n cancelButtonText: '取消',\r\n confirmButtonText: '确定',\r\n iconClass: 'el-icon-warning',\r\n confirmButtonClass: 'btn-custom-cancel',\r\n })\r\n .then(() => {\r\n writeUpdate(row.order_id)\r\n .then((res) => {\r\n self.$message.success(res.msg);\r\n self.getList();\r\n })\r\n .catch((res) => {\r\n self.$message.error(res.msg);\r\n });\r\n })\r\n .catch(() => {});\r\n },\r\n // 订单类型 @on-changeTabs=\"getChangeTabs\"\r\n getTabs() {\r\n this.spinShow = true;\r\n this.$store\r\n .dispatch('order/getOrderTabs', {\r\n data: '',\r\n })\r\n .then((res) => {\r\n this.tablists = res.data;\r\n // this.onChangeChart(this.tablists)\r\n this.spinShow = false;\r\n })\r\n .catch((res) => {\r\n this.spinShow = false;\r\n this.$message.error(res.msg);\r\n });\r\n },\r\n onClickTab() {\r\n this.getOrderStatus(this.currentTab == 'null' ? '' : this.currentTab);\r\n this.getList();\r\n },\r\n // 批量删除\r\n delAll() {\r\n if (this.delIdList.length === 0) {\r\n this.$message.error('请先选择删除的订单!');\r\n } else {\r\n if (this.isDels) {\r\n let idss = {\r\n ids: this.delIdList,\r\n };\r\n let delfromData = {\r\n title: '删除订单',\r\n url: `/order/dels`,\r\n method: 'post',\r\n ids: idss,\r\n };\r\n this.$modalSure(delfromData)\r\n .then((res) => {\r\n this.$message.success(res.msg);\r\n this.getList();\r\n })\r\n .catch((res) => {\r\n this.$message.error(res.msg);\r\n });\r\n } else {\r\n this.$message.error('您选择的的订单存在用户未删除的订单,无法删除用户未删除的订单!');\r\n }\r\n }\r\n },\r\n // 下载批量发货模版\r\n async exportDeliveryList() {\r\n let [th, filekey, data, fileName] = [[], [], [], ''];\r\n let deliveryData = { page: 1, limit: 200 };\r\n for (let i = 0; i < deliveryData.page + 1; i++) {\r\n let expressData = await this.getDeliveryData(deliveryData);\r\n if (!fileName) fileName = expressData.filename;\r\n if (!filekey.length) {\r\n filekey = expressData.fileKey;\r\n }\r\n if (!th.length) th = expressData.header;\r\n if (expressData.export.length) {\r\n data = data.concat(expressData.export);\r\n deliveryData.page++;\r\n } else {\r\n this.$exportExcel(th, filekey, fileName, data);\r\n return;\r\n }\r\n }\r\n },\r\n getDeliveryData(deliveryData) {\r\n return new Promise((resolve, reject) => {\r\n exportOrderDeliveryList(deliveryData).then((res) => {\r\n resolve(res.data);\r\n });\r\n });\r\n },\r\n // 上传头部token\r\n getToken() {\r\n this.header['Authori-zation'] = 'Bearer ' + getCookies('token');\r\n },\r\n upExpress(data) {\r\n importExpress({ file: data.data.src })\r\n .then((res) => {\r\n this.$message.success(res.msg);\r\n this.getList();\r\n })\r\n .catch((res) => {\r\n this.$message.error(res.msg);\r\n });\r\n },\r\n // 导出\r\n async exportList() {\r\n let excelData = {\r\n page: 1,\r\n limit: 100,\r\n status: this.orderStatus,\r\n pay_type: this.orderPayType,\r\n data: this.orderTime,\r\n real_name: this.real_name,\r\n field_key: this.fieldKey,\r\n type: this.orderType === 0 ? '' : this.orderType,\r\n ids: this.delIdList,\r\n },\r\n data = [],\r\n lebData = {};\r\n for (let i = 1; i < excelData.page + 1; i++) {\r\n lebData = await this.getExcelData(excelData);\r\n if (lebData.export.length) {\r\n data = data.concat(lebData.export);\r\n if (lebData.export.length == excelData.limit) excelData.page++;\r\n }\r\n }\r\n createWorkBook(lebData.header, lebData.filename, data, '', lebData.filename);\r\n },\r\n getExcelData(excelData) {\r\n return new Promise((resolve, reject) => {\r\n exportOrderList(excelData).then((res) => {\r\n resolve(res.data);\r\n });\r\n });\r\n },\r\n // 订单核销\r\n writeOff() {\r\n this.modals2 = true;\r\n },\r\n // 订单核销\r\n ok(name) {\r\n if (!this.writeOffFrom.code) {\r\n this.$message.warning('请先验证订单!');\r\n } else {\r\n this.writeOffFrom.confirm = 1;\r\n putWrite(this.writeOffFrom)\r\n .then(async (res) => {\r\n if (res.status === 200) {\r\n this.$message.success(res.msg);\r\n this.modals2 = false;\r\n this.$refs[name].resetFields();\r\n this.getList();\r\n } else {\r\n this.$message.error(res.msg);\r\n }\r\n })\r\n .catch((res) => {\r\n this.$message.error(res.msg);\r\n });\r\n }\r\n },\r\n del(name) {\r\n this.modals2 = false;\r\n this.writeOffFrom.code = '';\r\n this.$refs[name].resetFields();\r\n },\r\n changeModal() {\r\n this.writeOffFrom.code = '';\r\n },\r\n },\r\n};\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n::v-deep .el-upload,\r\n::v-deep .el-upload-dragger {\r\n width: 100%;\r\n}\r\n\r\n::v-deep .el-upload-list {\r\n display: none;\r\n}\r\n\r\n::v-deep .el-tabs__item {\r\n height: 54px;\r\n line-height: 54px;\r\n}\r\n\r\nimg {\r\n height: 36px;\r\n display: block;\r\n}\r\n\r\n.tabBox {\r\n width: 100%;\r\n height: 100%;\r\n display: flex;\r\n align-items: center;\r\n margin-bottom: 2px;\r\n\r\n .tabBox_img {\r\n width: 36px;\r\n height: 36px;\r\n\r\n img {\r\n width: 100%;\r\n height: 100%;\r\n }\r\n }\r\n\r\n .tabBox_tit {\r\n width: 60%;\r\n font-size: 12px !important;\r\n margin: 0 10px 0 10px;\r\n letter-spacing: 1px;\r\n padding: 5px 0;\r\n box-sizing: border-box;\r\n }\r\n}\r\n\r\n.orderData ::v-deep .ivu-table-cell {\r\n padding-left: 0 !important;\r\n}\r\n\r\n.vertical-center-modal {\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n}\r\n\r\n.nickname {\r\n}\r\n\r\n.uid {\r\n color: #2d8cf0;\r\n}\r\n\r\n.pink_name {\r\n color: #666;\r\n}\r\n\r\n.tab {\r\n display: flex;\r\n align-items: center;\r\n\r\n img {\r\n width: 36px;\r\n height: 36px;\r\n margin-right: 10px;\r\n }\r\n}\r\n\r\n.w-250 {\r\n max-width: 250px;\r\n}\r\n\r\n.w-120 {\r\n width: 120px;\r\n}\r\n\r\n.tips {\r\n color: #c0c4cc;\r\n font-size: 12px;\r\n}\r\n</style>\r\n"]}]}