From f9b6865fafcad274edb9f89a43e0535a9b4eff40 Mon Sep 17 00:00:00 2001 From: cloudroam <cloudroam> Date: 星期三, 08 一月 2025 14:46:40 +0800 Subject: [PATCH] add:物流发货针对散户更改微信发货方式,保存物流单号,未发送之前可更改 --- pages/order/list/index.vue | 179 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 173 insertions(+), 6 deletions(-) diff --git a/pages/order/list/index.vue b/pages/order/list/index.vue index eaae30c..753861e 100644 --- a/pages/order/list/index.vue +++ b/pages/order/list/index.vue @@ -1,6 +1,6 @@ <template> <div> - <el-bus-crud +<!-- <el-bus-crud ref="crud" v-bind="tableConfig" :extra-query="{ levelDown: checkedLevelDown }" @@ -14,7 +14,11 @@ >未处理的质检异常订单</el-checkbox > </template> - </el-bus-crud> + </el-bus-crud>--> + <el-bus-crud + ref="crud" + v-bind="tableConfig" + ></el-bus-crud> <div id="print-container"> <print-list ref="printList" :order-list="orderList" /> </div> @@ -37,10 +41,14 @@ orderList: [], tableConfig: { url: 'flower/api/order/list', + editUrl: 'flower/api/order/page/update', hasNew: false, - hasEdit: false, + hasEdit: true, hasDelete: false, persistSelection: true, + hasExport: true, + exportUrl: 'flower/api/order/list/export', + exportText: '导出订单', onResetView: (row) => { this.$router.push(`${this.$route.path}/${row.id}`) }, @@ -57,6 +65,17 @@ statusComp.extraQuery = { ...params, statusBackend: '' } statusComp.getOtherOptions() } + const abnormalOrderStatusComp = searchForm.getComponentById('abnormalOrderStatus') + if (abnormalOrderStatusComp) { + // 组件内部不会修改这个prop直接修改可忽略警告 + abnormalOrderStatusComp.extraQuery = { ...params, abnormalOrderStatus: '' } + abnormalOrderStatusComp.getOtherOptions() + } + } + }, + beforeOpen: (row, isNew) => { + if (!isNew) { + row.districtStr = this.getDistrict(row) } }, columns: [ @@ -75,11 +94,13 @@ }, { label: '订单金额(元)', prop: 'totalAmount', minWidth: 150 }, { label: '底价(元)', prop: 'supplierAmount', minWidth: 150 }, + { label: '销售扎数', prop: 'saleNum', minWidth: 150 }, { label: '订单状态', prop: 'statusBackendStr', minWidth: 120 }, { label: '下单时间', prop: 'createTime', minWidth: 180 }, + { label: '支付时间', prop: 'paymentTime', minWidth: 180 }, { label: '合伙人', prop: 'partnerName', minWidth: 120 }, { label: '库位', prop: 'warehouseLocationCode', minWidth: 120 }, - { label: '特殊需求', prop: 'specialNeeds', minWidth: 120 }, + { label: '特殊需求', prop: 'specialNeedsStr', minWidth: 120 }, { label: '备注', formatter: (row) => ( @@ -114,7 +135,42 @@ }, // code: 'ORDER_STATUS_BACKEND', }, - default: '', + default: this.$route.query.statusBackend || '', + span: 24, + searchImmediately: true, + on: { + optionsChange: (e, updateForm, { currentComp }) => { + if (Array.isArray(e[0]) && e[0].length > 0) { + const totalCount = e[0].reduce((total, current) => { + return (total += current.orderCount) + }, 0) + // 组件内部不会修改这个prop直接修改可忽略警告 + currentComp.props = { + allLabel: `不限(${totalCount})`, + } + } + }, + }, + }, + { + label: '异常订单:', + id: 'abnormalOrderStatus', + type: 'bus-radio', + el: { + hasAll: true, + otherInterfaceUri: 'flower/api/order/abnormal/status/count', + childType: 'el-radio-button', + filterOptions: (list) => { + return list.map((item) => { + return { + ...item, + label: `${item.label}(${item.orderCount})`, + } + }) + }, + // code: 'ORDER_STATUS_BACKEND', + }, + default: this.$route.query.abnormalOrderStatus || '', span: 24, searchImmediately: true, on: { @@ -157,6 +213,76 @@ el: { placeholder: '收货人姓名/手机号' }, }, { label: '收货地址:', id: 'address', type: 'input' }, + { label: '库位:', id: 'warehouseLocationCode', type: 'input' }, + { + label: '用户账号:', + id: 'createName', + type: 'input', + el: { placeholder: '用户账号' }, + rules: { + required: false, + pattern: /^\d{1,11}$/, + message: '请输入合法的用户账号', + trigger: 'blur', + }, + }, + { + label: '地区', + id: 'province', + component: 'el-bus-select-area', + el: { + clearable: true, + }, + commonFormat: true, + commonFormatProps: ['province', 'city', 'region'], + customClass: 'in-bus-form', + }, + ], + }, + ], + form: [ + { + type: 'row', + span: 12, + items: [ + { + label: '地区:', + id: 'customerProvince', + component: 'el-bus-select-area', + span: 24, + commonFormat: true, + commonFormatProps: [ + 'customerProvince', + 'customerCity', + 'customerRegion', + ], + str: true, + strKey: 'districtStr', + rules: { required: true, message: '请选择地区' }, + }, + { + label: '详细地址:', + id: 'customerAddress', + type: 'input', + span: 24, + rules: { + required: true, + message: '请输入详细地址且最大不超过50个汉字', + trigger: 'blur', + max: 50, + }, + }, + { + label: '联系方式:', + id: 'customerTel', + type: 'input', + rules: { + required: true, + pattern: this.$elBusUtil.REG.MOBILEPHONE, + message: '请输入合法的手机号', + trigger: 'blur', + }, + }, ], }, ], @@ -234,6 +360,14 @@ ], extraButtons: [ { + text: '快递单号', + show: (row) => !row.partnerName && row.statusBackend === 'SEND', + atClick: (row) => { + this.$refs.crud.$refs.extraDialog[1].show(row) + return false + }, + }, + { text: '发货', show: (row) => !row.partnerName && row.statusBackend === 'SEND', atClick: (row) => { @@ -272,7 +406,8 @@ { label: '快递号:', id: 'deliveryNo', - type: 'input', + type: 'text', + readonly: true, rules: { required: true, message: '请输入快递号', @@ -290,6 +425,31 @@ } }, }, + { + title: '快递单号录入', + hiddenReverseItems: [], + form: [ + { + label: '快递号:', + id: 'deliveryNo', + type: 'input', + rules: { + required: true, + message: '请输入快递号', + trigger: 'blur', + }, + }, + ], + atConfirm: async (val) => { + const { code } = await this.$elBusHttp.request( + 'flower/api/order/list/saveDeliveryNo', + { method: 'post', data: val } + ) + if (code === 0) { + this.$message.success('快递单号录入成功') + } + }, + }, ], }, } @@ -304,6 +464,13 @@ this.$refs.crud.search() }, }, + methods: { + getDistrict(row) { + return `${row.customerProvince || ''}${row.customerCity || ''}${ + row.customerRegion || '' + }` + }, + }, } </script> -- Gitblit v1.9.3