From 35bca0a78746b8b97497f89c9e1e52e643dc4d5e Mon Sep 17 00:00:00 2001
From: yuan <123@>
Date: 星期日, 13 九月 2026 11:40:35 +0800
Subject: [PATCH] fix: 统一销售和采购相关页面金额、单价、数量、总价保留6位小数

---
 src/views/procurementManagement/purchaseReturnOrder/New.vue |   33 +++++++++++++++++++--------------
 1 files changed, 19 insertions(+), 14 deletions(-)

diff --git a/src/views/procurementManagement/purchaseReturnOrder/New.vue b/src/views/procurementManagement/purchaseReturnOrder/New.vue
index 9474b11..6f67ca9 100644
--- a/src/views/procurementManagement/purchaseReturnOrder/New.vue
+++ b/src/views/procurementManagement/purchaseReturnOrder/New.vue
@@ -275,6 +275,7 @@
                   <el-input-number v-model="scope.row.returnQuantity"
                             controls-position="right"
                             :step="1"
+                            :precision="6"
                             :min="0"
                             :max="getReturnQtyMax(scope.row)"
                             :disabled="getReturnQtyMax(scope.row) <= 0"
@@ -340,7 +341,7 @@
           <el-input-number v-model="formState.totalDiscountAmount"
                            controls-position="right"
                            :step="0.01"
-                           :precision="2"
+                           :precision="6"
                            style="width: 100%;"
                            @change="handleChangeTotalDiscountAmount"
                            placeholder="璇疯緭鍏ユ暣鍗曟姌鎵i"/>
@@ -353,7 +354,7 @@
           <el-input v-model="formState.totalDiscountRate"
                            controls-position="right"
                            :step="0.01"
-                           :precision="2"
+                           :precision="6"
                            style="width: 100%;"
                            @change="totalDiscount"
                            placeholder="璇疯緭鍏ユ暣鍗曟姌鎵g巼">
@@ -377,7 +378,7 @@
           <el-input-number v-model="formState.totalAmount"
                            controls-position="right"
                            :step="0.01"
-                           :precision="2"
+                           :precision="6"
                            style="width: 100%;"
                            placeholder="璇疯緭鍏ユ垚浜ら噾棰�"/>
         </el-form-item>
@@ -511,7 +512,7 @@
 });
 
 const formattedNumber = (row, column, cellValue) => {
-  return parseFloat(cellValue).toFixed(2);
+  return parseFloat(cellValue).toFixed(6);
 };
 
 const formatAmount = (value) => {
@@ -522,7 +523,7 @@
   if (Number.isNaN(num)) {
     return '--'
   }
-  return num.toFixed(2)
+  return num.toFixed(6)
 }
 
 const toNumber = (val) => {
@@ -535,14 +536,15 @@
   const total = Number(row?.stockInNum ?? row?.totalQuantity ?? row?.quantity ?? 0)
   const un = Number(row?.unQuantity ?? 0)
   if (!Number.isFinite(total) || !Number.isFinite(un)) return 0
-  return Math.max(total - un, 0)
+  // 淇濈暀6浣嶅皬鏁帮紝閬垮厤娴偣鍑忔硶浜х敓绮惧害璇樊
+  return Math.max(parseFloat((total - un).toFixed(6)), 0)
 }
 
 const getReturnTotal = (row) => {
   const qty = toNumber(row?.returnQuantity)
   const unitPrice = toNumber(row?.taxInclusiveUnitPrice)
   const total = qty * unitPrice
-  return Number(total.toFixed(2))
+  return Number(total.toFixed(6))
 }
 
 const syncReturnTotal = (row) => {
@@ -568,7 +570,7 @@
   }
   const baseAmount = getBaseAmount()
   // 鎶樻墸棰� = 浜у搧閫�璐ф�讳环鍚堣 * 鎶樻墸鐜�
-  formState.value.totalDiscountAmount = Number((baseAmount * (discountRate / 100)).toFixed(2))
+  formState.value.totalDiscountAmount = Number((baseAmount * (discountRate / 100)).toFixed(6))
   syncTotalAmount()
 }
 
@@ -596,9 +598,12 @@
         "taxExclusiveTotalPrice",
       ],
       {
-        stockInNum: { noDecimal: true }, // 涓嶄繚鐣欏皬鏁�
-        returnQuantity: { noDecimal: true }, // 涓嶄繚鐣欏皬鏁�
-        unQuantity: { noDecimal: true }, // 涓嶄繚鐣欏皬鏁�
+        stockInNum: { decimalPlaces: 6 },
+        returnQuantity: { decimalPlaces: 6 },
+        unQuantity: { decimalPlaces: 6 },
+        taxInclusiveUnitPrice: { decimalPlaces: 6 },
+        taxInclusiveTotalPrice: { decimalPlaces: 6 },
+        taxExclusiveTotalPrice: { decimalPlaces: 6 },
       }
   );
 };
@@ -620,11 +625,11 @@
 
   if (normalizedAmount > baseAmount) {
     proxy.$modal.msgError("鏁村崟鎶樻墸棰濅笉鑳藉ぇ浜庝骇鍝侀��璐ф�讳环鍚堣")
-    formState.value.totalDiscountAmount = Number(baseAmount.toFixed(2))
+    formState.value.totalDiscountAmount = Number(baseAmount.toFixed(6))
   }
 
   const discountRate = (toNumber(formState.value.totalDiscountAmount) / baseAmount) * 100
-  formState.value.totalDiscountRate = Number(discountRate.toFixed(2))
+  formState.value.totalDiscountRate = Number(discountRate.toFixed(6))
   syncTotalAmount()
 }
 
@@ -639,7 +644,7 @@
   const baseAmount = getBaseAmount()
   const discount = toNumber(formState.value.totalDiscountAmount)
   // 鎴愪氦閲戦 = 浜у搧閫�璐ф�讳环鍚堣 - 鎶樻墸棰�
-  formState.value.totalAmount = Number((baseAmount - discount).toFixed(2))
+  formState.value.totalAmount = Number((baseAmount - discount).toFixed(6))
 }
 
 // 鑾峰彇渚涘簲鍟嗛�夐」

--
Gitblit v1.9.3