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