From d49ef920c2ea5e1f3a24dcf7f2faca865d0eb75d Mon Sep 17 00:00:00 2001
From: peng <peng.com>
Date: 星期四, 20 十一月 2025 10:56:57 +0800
Subject: [PATCH] 0元购可以退款0元

---
 seller/src/views/order/order/orderDetail.vue |  143 ++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 140 insertions(+), 3 deletions(-)

diff --git a/seller/src/views/order/order/orderDetail.vue b/seller/src/views/order/order/orderDetail.vue
index 15e21c4..32ed473 100644
--- a/seller/src/views/order/order/orderDetail.vue
+++ b/seller/src/views/order/order/orderDetail.vue
@@ -439,6 +439,10 @@
       <div v-if="packageTraceList.length > 0" v-for="(packageItem, packageIndex) in packageTraceList" :key="packageIndex">
         <div class="layui-layer-wrap">
           <dl>
+            <dt>鍖呰9缂栧彿锛�</dt>
+            <dd><div class="text-box">{{ packageItem.packageNo }}</div></dd>
+          </dl>
+          <dl>
             <dt>鐗╂祦鍏徃锛�</dt>
             <dd><div class="text-box">{{ packageItem.logisticsName }}</div></dd>
           </dl>
@@ -464,6 +468,10 @@
             </ul>
             <ul class="express-log" v-else><li>鏆傛棤鐗╂祦淇℃伅</li></ul>
           </div>
+          <!-- 娣诲姞淇敼鐗╂祦鍗曞彿鎸夐挳 -->
+          <div style="text-align: center; margin-top: 10px;">
+            <Button type="primary" @click="modifyPackageLogistics(packageItem)">淇敼鐗╂祦鍗曞彿</Button>
+          </div>
         </div>
       </div>
       <div v-if = "packageTraceList.length == 0 && logisticsInfo">
@@ -485,6 +493,10 @@
             </ul>
             <ul class="express-log" v-else><li>鏆傛棤鐗╂祦淇℃伅</li></ul>
           </div>
+          <!-- 娣诲姞淇敼鐗╂祦鍗曞彿鎸夐挳 -->
+          <div style="text-align: center; margin-top: 10px;">
+            <Button type="primary" @click="modifySingleLogistics">淇敼鐗╂祦鍗曞彿</Button>
+          </div>
         </div>
       </div>
       <div slot="footer" style="text-align: right">
@@ -492,7 +504,38 @@
       </div>
     </Modal>
 
-
+    <!-- 淇敼鐗╂祦鍗曞彿寮圭獥 -->
+    <Modal v-model="modifyLogisticsModal" width="530">
+      <p slot="header">
+        <Icon type="edit"></Icon>
+        <span>淇敼鐗╂祦鍗曞彿</span>
+      </p>
+      <div>
+        <Form ref="modifyLogisticsForm" :model="modifyLogisticsForm" label-position="left" :label-width="100" :rules="modifyLogisticsValidate">
+          <FormItem label="鍖呰9缂栧彿" prop="packageNo">
+            <Input v-model="modifyLogisticsForm.packageNo" size="large" disabled></Input>
+          </FormItem>
+          <FormItem label="璁㈠崟缂栧彿" prop="orderSn">
+            <Input v-model="modifyLogisticsForm.orderSn" size="large" disabled></Input>
+          </FormItem>
+          <FormItem label="蹇�掑叕鍙�" prop="logisticsId">
+            <Select v-model="modifyLogisticsForm.logisticsId" placeholder="璇烽�夋嫨蹇�掑叕鍙�" style="width: 100%">
+              <Option v-for="(item, i) in checkedLogistics" :key="i" :value="item.logisticsId">{{ item.name }}</Option>
+            </Select>
+          </FormItem>
+          <FormItem label="蹇�掑崟鍙�" prop="logisticsNo">
+            <Input v-model="modifyLogisticsForm.logisticsNo" size="large"></Input>
+          </FormItem>
+<!--          <FormItem label="蹇�掔紪鐮�" prop="logisticsCode">-->
+<!--            <Input v-model="modifyLogisticsForm.logisticsCode" size="large"></Input>-->
+<!--          </FormItem>-->
+        </Form>
+      </div>
+      <div slot="footer" style="text-align: right">
+        <Button @click="modifyLogisticsModal = false">鍏抽棴</Button>
+        <Button type="primary" @click="modifyLogisticsSubmit">纭淇敼</Button>
+      </div>
+    </Modal>
     <!-- 璁㈠崟鍙戣揣 -->
     <Modal v-model="orderDeliverModal" width="500px">
       <p slot="header">
@@ -1031,7 +1074,26 @@
       editTemplateModalVisible: false,
       currentTemplateId: "",
       // 鐢ㄤ簬浼犻�抲serCheckTemplates鏁版嵁缁欏瓙缁勪欢
-      userCheckTemplates: []
+      userCheckTemplates: [],
+
+      // 娣诲姞淇敼鐗╂祦鍗曞彿鐩稿叧鏁版嵁
+      modifyLogisticsModal: false, // 寮瑰嚭淇敼鐗╂祦鍗曞彿妗�
+      modifyLogisticsForm: {
+        packageNo: "",
+        orderSn: "",
+        logisticsId: "",
+        logisticsNo: "",
+        logisticsCode: ""
+      },
+      modifyLogisticsValidate: {
+        logisticsId: [
+          { required: true, message: "璇烽�夋嫨蹇�掑叕鍙�", trigger: "change" }
+        ],
+        logisticsNo: [
+          { required: true, message: "璇疯緭鍏ュ揩閫掑崟鍙�", trigger: "blur" }
+        ]
+      },
+
     };
   },
   methods: {
@@ -1505,7 +1567,82 @@
           this.endpoint = res.data.endpoint;
         }
       });
-    }
+    },
+
+    // 娣诲姞淇敼鐗╂祦鍗曞彿鏂规硶
+    modifyLogisticsNo() {
+      // 鑾峰彇鐗╂祦鍏徃鍒楄〃
+      this.getLogisticsList();
+
+      // 鍒濆鍖栬〃鍗曟暟鎹�
+      this.modifyLogisticsForm.orderSn = this.sn;
+
+      // 濡傛灉鏈夊寘瑁逛俊鎭紝鍒濆鍖栫涓�涓寘瑁圭殑淇℃伅
+      if (this.orderPackage && this.orderPackage.length > 0) {
+        const firstPackage = this.orderPackage[0];
+        this.modifyLogisticsForm.packageNo = firstPackage.packageNo || "";
+        this.modifyLogisticsForm.logisticsId = firstPackage.logisticsId || "";
+        this.modifyLogisticsForm.logisticsNo = firstPackage.logisticsNo || "";
+        this.modifyLogisticsForm.logisticsCode = firstPackage.logisticsCode || "";
+      }
+
+      this.modifyLogisticsModal = true;
+    },
+
+    // 淇敼鎸囧畾鍖呰9鐨勭墿娴佸崟鍙�
+    modifyPackageLogistics(packageItem) {
+      // 鑾峰彇鐗╂祦鍏徃鍒楄〃
+      this.getLogisticsList();
+
+      // 鍒濆鍖栬〃鍗曟暟鎹�
+      this.modifyLogisticsForm.packageNo = packageItem.packageNo || "";
+      this.modifyLogisticsForm.orderSn = this.sn;
+      this.modifyLogisticsForm.logisticsId = packageItem.logisticsId || "";
+      this.modifyLogisticsForm.logisticsNo = packageItem.logisticsNo || "";
+      this.modifyLogisticsForm.logisticsCode = packageItem.logisticsCode || "";
+
+      // 鍏抽棴鏌ョ湅鐗╂祦寮圭獥锛屾墦寮�淇敼鐗╂祦寮圭獥
+      this.logisticsModal = false;
+      this.modifyLogisticsModal = true;
+    },
+
+    // 淇敼鍗曚釜鐗╂祦鍗曞彿锛堥潪鍒嗗寘瑁规儏鍐碉級
+    modifySingleLogistics() {
+      // 鑾峰彇鐗╂祦鍏徃鍒楄〃
+      this.getLogisticsList();
+
+      // 鍒濆鍖栬〃鍗曟暟鎹�
+      this.modifyLogisticsForm.orderSn = this.sn;
+      this.modifyLogisticsForm.logisticsId = "";
+      this.modifyLogisticsForm.logisticsNo = this.logisticsInfo.logisticCode || "";
+      this.modifyLogisticsForm.logisticsCode = "";
+
+      // 鍏抽棴鏌ョ湅鐗╂祦寮圭獥锛屾墦寮�淇敼鐗╂祦寮圭獥
+      this.logisticsModal = false;
+      this.modifyLogisticsModal = true;
+    },
+
+    // 淇敼鐗╂祦鍗曞彿鎻愪氦
+    modifyLogisticsSubmit() {
+      this.$refs.modifyLogisticsForm.validate((valid) => {
+        if (valid) {
+          API_Order.updateTraces(this.modifyLogisticsForm).then((res) => {
+            if (res.success) {
+              this.$Message.success("淇敼鐗╂祦鍗曞彿鎴愬姛");
+              this.modifyLogisticsModal = false;
+              // 閲嶆柊鑾峰彇璁㈠崟璇︽儏鍜屽寘瑁逛俊鎭�
+              this.getDataDetail();
+              this.getOrderPackage();
+              // 閲嶆柊鍔犺浇鐗╂祦淇℃伅
+              this.checkLogistics();
+            } else {
+              this.$Message.error(res.message || "淇敼鐗╂祦鍗曞彿澶辫触");
+            }
+          });
+        }
+      });
+    },
+
   },
   mounted () {
     this.sn = this.$route.query.sn;

--
Gitblit v1.8.0