From 7a648ed5c64a234198dafc0c541b91e990e237d9 Mon Sep 17 00:00:00 2001
From: peng <peng.com>
Date: 星期二, 09 九月 2025 12:00:31 +0800
Subject: [PATCH] 解决发货时会多发的问题

---
 seller/src/views/order/order/orderDetail.vue |   39 +++++++++++++++++++++++++++++++++++++--
 1 files changed, 37 insertions(+), 2 deletions(-)

diff --git a/seller/src/views/order/order/orderDetail.vue b/seller/src/views/order/order/orderDetail.vue
index fbfd09b..dd1896f 100644
--- a/seller/src/views/order/order/orderDetail.vue
+++ b/seller/src/views/order/order/orderDetail.vue
@@ -807,6 +807,7 @@
 
       // 鍒嗗寘瑁瑰彂璐�
       groupShipModal: false,
+      groupShipModalOpened: false, // 鏍囪瘑鍒嗗寘瑁瑰彂璐у脊绐楁槸鍚﹀凡鎵撳紑杩�
       shipLoading: true,
       groupOrderDeliveryForm: {
         logisticsNo: "", //鍙戣揣鍗曞彿
@@ -857,11 +858,19 @@
   methods: {
     // 閫変腑
     selectGroupShipGoodsMethods (selected) {
+      console.log('selectGroupShipGoodsMethods琚皟鐢�, selected:', JSON.stringify(selected));
+      // 绠�鍖栭�昏緫锛岀洿鎺ヤ繚瀛橀�変腑鐨勫晢鍝侊紝鏁伴噺鍦ㄦ彁浜ゆ椂浠巇ata鏁扮粍鑾峰彇
       this.selectGroupShipGoods = selected;
+      console.log('selectGroupShipGoods宸叉洿鏂�');
     },
     // 鍒嗗寘瑁瑰彂璐�
     groupShip () {
       this.groupShipModal = true;
+      this.groupShipModalOpened = true; // 鏍囪寮圭獥宸叉墦寮�
+      this.groupOrderDeliveryForm = {
+        logisticsNo: "", //鍙戣揣鍗曞彿
+        logisticsId: "", //鐗╂祦鍏徃
+      }
       this.getLogisticsList();
     },
     // 鍒嗛〉鑾峰彇鐗╂祦鍏徃
@@ -874,6 +883,7 @@
     },
     // 鍒嗗寘瑁瑰彂璐�
     confirmShipGroupGoods () {
+      console.log('琛ㄥ崟鍘熷鏁版嵁--------------------------銆�',JSON.stringify(this.selectGroupShipGoods))
       this.$refs.groupOrderDeliveryForm.validate(async (valid) => {
         if (valid) {
           if (this.selectGroupShipGoods.length) {
@@ -881,16 +891,33 @@
               ...this.groupOrderDeliveryForm,
               orderSn: this.sn,
               partDeliveryDTOList: this.selectGroupShipGoods.map((item) => {
+                // 鐩存帴浠巇ata鏁扮粍涓幏鍙栨渶鏂扮殑canNum鍊硷紝鑰屼笉渚濊禆閫夋嫨鏃剁殑鏁版嵁
+                const currentDataItem = this.data.find(d => d.id === item.id);
+                const finalDeliveryNum = currentDataItem ? currentDataItem.canNum : item.num;
+                
+                console.log('澶勭悊鍟嗗搧椤�:', {
+                  id: item.id,
+                  selectedCanNum: item.canNum,
+                  dataCanNum: currentDataItem?.canNum,
+                  num: item.num,
+                  finalDeliveryNum: finalDeliveryNum
+                });
+                
                 return {
                   orderItemId: item.id,
-                  deliveryNum: item.canNum ? item.canNum : item.num,
+                  deliveryNum: finalDeliveryNum,
                 };
               }),
             };
+            console.log('---------------------->',JSON.stringify(submit));
             const res = await API_Order.partDelivery(this.sn, submit);
             if (res.success) {
               this.$Message.success("鍙戣揣鎴愬姛!");
               this.shipLoading = false;
+              // 娓呯┖閫変腑鐨勫晢鍝佹暟鎹紝閬垮厤鏁版嵁娈嬬暀
+              this.selectGroupShipGoods = [];
+              // 閲嶇疆寮圭獥鎵撳紑鏍囪瘑锛屼笅娆℃墦寮�鏃舵樉绀洪粯璁ゅ��
+              this.groupShipModalOpened = false;
               this.getDataDetail();
               this.getOrderPackage();
               this.groupShipModal = false;
@@ -987,13 +1014,21 @@
           this.allowOperation = res.result.allowOperationVO;
           if (res.result.orderItems.length) {
             this.data = res.result.orderItems.map((item) => {
+              // 鍙湪寮圭獥鎵撳紑鐘舵�佷笅鎵嶄繚鐣欑敤鎴蜂慨鏀圭殑canNum鍊�
+              const existingItem = this.groupShipModalOpened ? this.data.find(d => d.id === item.id) : null;
+              const defaultCanNum = item.num - item.deliverNumber;
+              
               return {
                 ...item,
                 ___num: item.num,
                 _disabled: item.deliverNumber >= item.num,
-                canNum: item.num - item.deliverNumber
+                // 濡傛灉寮圭獥宸叉墦寮�涓旂敤鎴峰凡缁忎慨鏀硅繃canNum涓斿�煎悎鐞嗭紝鍒欎繚鐣欙紱鍚﹀垯浣跨敤榛樿鍊�
+                canNum: (existingItem && existingItem.canNum !== undefined && existingItem.canNum <= defaultCanNum) 
+                  ? existingItem.canNum 
+                  : defaultCanNum
               };
             });
+            console.log('---------------------->璁㈠崟璇︽儏',this.data)
           }
           this.orderLogData = res.result.orderLogs;
           this.typeList = JSON.parse(JSON.stringify(res.result.order.priceDetailDTO.discountPriceDetail));

--
Gitblit v1.8.0