From b401f28ff6adc15cfe733fabc4629a144cfb3548 Mon Sep 17 00:00:00 2001
From: gongchunyi <deslre0381@gmail.com>
Date: 星期六, 22 八月 2026 19:16:40 +0800
Subject: [PATCH] fix: 发货数量精度计算修复

---
 src/views/salesManagement/salesLedger/index.vue |   27 ++++++++++++++-------------
 1 files changed, 14 insertions(+), 13 deletions(-)

diff --git a/src/views/salesManagement/salesLedger/index.vue b/src/views/salesManagement/salesLedger/index.vue
index 1057d97..c7e9df7 100644
--- a/src/views/salesManagement/salesLedger/index.vue
+++ b/src/views/salesManagement/salesLedger/index.vue
@@ -1102,6 +1102,7 @@
     tableAmountFormatter,
     formatDecimal,
     buildAmountSummaryFormat,
+    roundAmount,
   } from "@/utils/numberFormat";
   import ImageUpload from "@/components/AttachmentUpload/image/index.vue";
   import { getCurrentDate } from "@/utils/index.js";
@@ -1244,7 +1245,7 @@
       item?.qualifiedUnLockedQuantity ??
       item?.qualifiedQuantity ??
       item?.stockQuantity;
-    return quantity ?? 0;
+    return roundAmount(quantity ?? 0);
   };
   const formatDeliveryBatchSalesOrderNo = item =>
     item?.salesContractNo || "--";
@@ -1263,14 +1264,14 @@
       rawList.forEach(item => {
         total += Number(getDeliveryBatchQuantity(item) || 0);
       });
-      currentStock.value = total;
+      currentStock.value = roundAmount(total);
     } catch (e) {
       console.error(e);
       currentStock.value = 0;
     }
   };
   const getCurrentDeliveryRowQuantity = () => {
-    return Number(currentDeliveryRow.value?.noQuantity || 0);
+    return roundAmount(Number(currentDeliveryRow.value?.noQuantity || 0));
   };
   const getDeliveryBatchDeliveryMax = row => {
     const productQuantity = getCurrentDeliveryRowQuantity();
@@ -1282,9 +1283,8 @@
       },
       0
     );
-    const remainingProductQuantity = Math.max(
-      0,
-      productQuantity - otherBatchTotal
+    const remainingProductQuantity = roundAmount(
+      Math.max(0, productQuantity - otherBatchTotal)
     );
     return Math.max(0, Math.min(batchQuantity, remainingProductQuantity));
   };
@@ -1298,9 +1298,8 @@
       },
       0
     );
-    const remainingProductQuantity = Math.max(
-      0,
-      productQuantity - otherBatchTotal
+    const remainingProductQuantity = roundAmount(
+      Math.max(0, productQuantity - otherBatchTotal)
     );
     const currentValue = Number(row?.deliveryQuantity || 0);
 
@@ -2522,16 +2521,18 @@
           proxy.$modal.msgWarning("璇疯嚦灏戝~鍐欎竴涓壒鍙风殑鍙戣揣鏁伴噺");
           return;
         }
-        const totalDeliveryQuantity = selectedBatchRows.reduce(
-          (sum, item) => sum + Number(item.deliveryQuantity || 0),
-          0
+        const totalDeliveryQuantity = roundAmount(
+          selectedBatchRows.reduce(
+            (sum, item) => sum + Number(item.deliveryQuantity || 0),
+            0
+          )
         );
         const currentRowNoQuantity = Number(
           currentDeliveryRow.value?.noQuantity || 0
         );
         if (
           currentRowNoQuantity > 0 &&
-          totalDeliveryQuantity > currentRowNoQuantity
+          totalDeliveryQuantity > roundAmount(currentRowNoQuantity)
         ) {
           proxy.$modal.msgWarning("鎵瑰彿鍙戣揣鎬绘暟涓嶈兘瓒呰繃寰呭彂璐ф暟閲�");
           return;

--
Gitblit v1.9.3