From ef6cbd25049a42855212b1a8d47b63ab4ace231c Mon Sep 17 00:00:00 2001
From: yuan <123@>
Date: 星期四, 21 五月 2026 18:45:11 +0800
Subject: [PATCH] 修改合同金额保留小数点后六位

---
 src/views/salesManagement/returnOrder/components/formDia.vue |    4 
 src/views/salesManagement/receiptPaymentLedger/index.vue     |    4 
 src/views/salesManagement/salesLedger/index.vue              |  120 ++++++++++++++++++++++-----------------
 src/views/salesManagement/salesQuotation/index.vue           |    2 
 4 files changed, 73 insertions(+), 57 deletions(-)

diff --git a/src/views/salesManagement/receiptPaymentLedger/index.vue b/src/views/salesManagement/receiptPaymentLedger/index.vue
index e41e24f..e9980ce 100644
--- a/src/views/salesManagement/receiptPaymentLedger/index.vue
+++ b/src/views/salesManagement/receiptPaymentLedger/index.vue
@@ -188,7 +188,7 @@
   });
 };
 const formattedNumber = (row, column, cellValue) => {
-  return parseFloat(cellValue).toFixed(2);
+  return parseFloat(cellValue).toFixed(8);
 };
 // 涓昏〃鍚堣鏂规硶
 const summarizeMainTable = (param) => {
@@ -217,7 +217,7 @@
       (item) => item.id == customerId.value
     );
     summarizeTable[summarizeTable.length - 1] =
-      tableData.value[index].unReceiptPaymentAmount.toFixed(2);
+      tableData.value[index].unReceiptPaymentAmount.toFixed(8);
   } else {
     summarizeTable[summarizeTable.length - 1] = 0.0;
   }
diff --git a/src/views/salesManagement/returnOrder/components/formDia.vue b/src/views/salesManagement/returnOrder/components/formDia.vue
index 6a6d756..7faa4d7 100644
--- a/src/views/salesManagement/returnOrder/components/formDia.vue
+++ b/src/views/salesManagement/returnOrder/components/formDia.vue
@@ -650,14 +650,14 @@
 const calculateRowAmount = (row) => {
   const stockOutNum = Number(row.returnQuantity || 0);
   const price = Number(row.price || 0);
-  row.amount = (stockOutNum * price).toFixed(2);
+  row.amount = (stockOutNum * price).toFixed(8);
 };
 
 const calculateTotalRefund = () => {
   const total = tableData.value.reduce((sum, row) => {
     return sum + Number(row.amount || 0);
   }, 0);
-  form.value.refundAmount = total.toFixed(2);
+  form.value.refundAmount = total.toFixed(8);
 };
 
 const availableProducts = ref([]);
diff --git a/src/views/salesManagement/salesLedger/index.vue b/src/views/salesManagement/salesLedger/index.vue
index be8a2d7..f9a7cc9 100644
--- a/src/views/salesManagement/salesLedger/index.vue
+++ b/src/views/salesManagement/salesLedger/index.vue
@@ -444,13 +444,13 @@
                            prop="taxRate" />
           <el-table-column label="鍚◣鍗曚环(鍏�)"
                            prop="taxInclusiveUnitPrice"
-                           :formatter="formattedNumber" />
+                           :formatter="format8" />
           <el-table-column label="鍚◣鎬讳环(鍏�)"
                            prop="taxInclusiveTotalPrice"
-                           :formatter="formattedNumber" />
+                           :formatter="format8" />
           <el-table-column label="涓嶅惈绋庢�讳环(鍏�)"
                            prop="taxExclusiveTotalPrice"
-                           :formatter="formattedNumber" />
+                           :formatter="format8" />
           <el-table-column label="鏄惁鐢熶骇"
                            prop="isProduction"
                            width="150">
@@ -650,11 +650,11 @@
           <el-col :span="12">
             <el-form-item label="鍚◣鍗曚环(鍏�)锛�"
                           prop="taxInclusiveUnitPrice">
-              <el-input-number :step="0.01"
+              <el-input-number :step="1"
                                :min="0"
                                v-model="productForm.taxInclusiveUnitPrice"
                                style="width: 100%"
-                               :precision="2"
+                               :precision="8"
                                placeholder="璇疯緭鍏�"
                                clearable
                                @change="calculateFromUnitPrice" />
@@ -663,12 +663,12 @@
           <el-col :span="12">
             <el-form-item label="鏁伴噺锛�"
                           prop="quantity">
-              <el-input-number :step="0.1"
+              <el-input-number :step="1"
                                :min="0"
                                v-model="productForm.quantity"
                                placeholder="璇疯緭鍏�"
                                clearable
-                               :precision="2"
+                               :precision="8"
                                @change="calculateFromQuantity"
                                style="width: 100%" />
             </el-form-item>
@@ -1366,11 +1366,27 @@
       return productOptions.value;
     });
   };
+  const calculateTaxExclusiveTotalPrice8 = (inclusiveTotalPrice, taxRate) => {
+    const taxRateDecimal = taxRate / 100;
+    return (inclusiveTotalPrice / (1 + taxRateDecimal)).toFixed(8);
+  };
+
+  const calculateTaxIncludeTotalPrice8 = (unitPrice, quantity) => {
+    return (unitPrice * quantity).toFixed(8);
+  };
+
+  const format8 = (row, column, cellValue) => {
+    if (cellValue === undefined || cellValue === null || cellValue === "") {
+      return "0.00000000";
+    }
+    return parseFloat(cellValue).toFixed(8);
+  };
+
   const formattedNumber = (row, column, cellValue) => {
     if (cellValue === undefined || cellValue === null || cellValue === "") {
       return "0.00";
     }
-    return parseFloat(cellValue).toFixed(2);
+    return parseFloat(cellValue).toFixed(8);
   };
   const findLedgerRecordByRow = row => {
     if (!row) return null;
@@ -1423,7 +1439,7 @@
     if (!isCurrentUserMaintainer(row)) {
       return "*****";
     }
-    return formattedNumber(row, column, cellValue);
+    return format8(row, column, cellValue);
   };
   // 鑾峰彇tree瀛愭暟鎹�
   const getModels = value => {
@@ -1538,7 +1554,10 @@
       "contractAmount",
       "taxInclusiveTotalPrice",
       "taxExclusiveTotalPrice",
-    ]);
+    ], {
+      taxInclusiveTotalPrice: { decimalPlaces: 8 },
+      taxExclusiveTotalPrice: { decimalPlaces: 8 },
+    });
   };
   // 瀛愯〃鍚堣鏂规硶
   const summarizeChildrenTable = (param, parentRow) => {
@@ -1564,7 +1583,11 @@
       "taxInclusiveUnitPrice",
       "taxInclusiveTotalPrice",
       "taxExclusiveTotalPrice",
-    ]);
+    ], {
+      taxInclusiveUnitPrice: { decimalPlaces: 8 },
+      taxInclusiveTotalPrice: { decimalPlaces: 8 },
+      taxExclusiveTotalPrice: { decimalPlaces: 8 },
+    });
   };
   // 鎵撳紑寮规
   const openForm = async (type, row) => {
@@ -1688,19 +1711,18 @@
       const quantity = Number(p.quantity ?? 0) || 0;
       const unitPrice = Number(p.unitPrice ?? 0) || 0;
       const taxRate = "13"; // 榛樿 13%锛屼究浜庣洿鎺ユ彁浜わ紙濡傞渶鍙湪浜у搧涓嚜琛屼慨鏀癸級
-      const taxInclusiveTotalPrice = (unitPrice * quantity).toFixed(2);
-      const taxExclusiveTotalPrice = proxy.calculateTaxExclusiveTotalPrice(
+      const taxInclusiveTotalPrice = (unitPrice * quantity).toFixed(8);
+      const taxExclusiveTotalPrice = calculateTaxExclusiveTotalPrice8(
         taxInclusiveTotalPrice,
         taxRate
       );
       return {
-        // 鍙拌处瀛楁
         productCategory: p.product || p.productName || "",
         specificationModel: p.specification || "",
         unit: p.unit || "",
         quantity: quantity,
         taxRate: taxRate,
-        taxInclusiveUnitPrice: unitPrice.toFixed(2),
+        taxInclusiveUnitPrice: unitPrice.toFixed(8),
         taxInclusiveTotalPrice: taxInclusiveTotalPrice,
         taxExclusiveTotalPrice: taxExclusiveTotalPrice,
         invoiceType: "澧炴櫘绁�",
@@ -2375,7 +2397,7 @@
     const total = products.reduce((sum, product) => {
       return sum + (parseFloat(product.taxInclusiveTotalPrice) || 0);
     }, 0);
-    return total.toFixed(2);
+    return total.toFixed(8);
   };
 
   // 鐢ㄤ簬鎵撳嵃鐨勮绠楀嚱鏁�
@@ -2392,30 +2414,25 @@
     const total = products.reduce((sum, product) => {
       return sum + (parseFloat(product.taxInclusiveTotalPrice) || 0);
     }, 0);
-    return total.toFixed(2);
+    return total.toFixed(8);
   };
 
   const mathNum = () => {
-    console.log("productForm.value", productForm.value);
     if (!productForm.value.taxInclusiveUnitPrice) {
       return;
     }
     if (!productForm.value.quantity) {
       return;
     }
-    // 鍚◣鎬讳环璁$畻
-    productForm.value.taxInclusiveTotalPrice =
-      proxy.calculateTaxIncludeTotalPrice(
-        productForm.value.taxInclusiveUnitPrice,
-        productForm.value.quantity
-      );
+    productForm.value.taxInclusiveTotalPrice = calculateTaxIncludeTotalPrice8(
+      productForm.value.taxInclusiveUnitPrice,
+      productForm.value.quantity
+    );
     if (productForm.value.taxRate) {
-      // 涓嶅惈绋庢�讳环璁$畻
-      productForm.value.taxExclusiveTotalPrice =
-        proxy.calculateTaxExclusiveTotalPrice(
-          productForm.value.taxInclusiveTotalPrice,
-          productForm.value.taxRate
-        );
+      productForm.value.taxExclusiveTotalPrice = calculateTaxExclusiveTotalPrice8(
+        productForm.value.taxInclusiveTotalPrice,
+        productForm.value.taxRate
+      );
     }
   };
 
@@ -2433,15 +2450,14 @@
     isCalculating.value = true;
 
     // 璁$畻鍚◣鍗曚环 = 鍚◣鎬讳环 / 鏁伴噺
-    productForm.value.taxInclusiveUnitPrice = (totalPrice / quantity).toFixed(2);
+    productForm.value.taxInclusiveUnitPrice = (totalPrice / quantity).toFixed(8);
 
     // 濡傛灉鏈夌◣鐜囷紝璁$畻涓嶅惈绋庢�讳环
     if (productForm.value.taxRate) {
-      productForm.value.taxExclusiveTotalPrice =
-        proxy.calculateTaxExclusiveTotalPrice(
-          totalPrice,
-          productForm.value.taxRate
-        );
+      productForm.value.taxExclusiveTotalPrice = calculateTaxExclusiveTotalPrice8(
+        totalPrice,
+        productForm.value.taxRate
+      );
     }
 
     isCalculating.value = false;
@@ -2470,12 +2486,12 @@
     // 鍏堣绠楀惈绋庢�讳环 = 涓嶅惈绋庢�讳环 / (1 - 绋庣巼/100)
     const taxRateDecimal = taxRate / 100;
     const inclusiveTotalPrice = exclusiveTotalPrice / (1 - taxRateDecimal);
-    productForm.value.taxInclusiveTotalPrice = inclusiveTotalPrice.toFixed(2);
+    productForm.value.taxInclusiveTotalPrice = inclusiveTotalPrice.toFixed(8);
 
     // 璁$畻鍚◣鍗曚环 = 鍚◣鎬讳环 / 鏁伴噺
     productForm.value.taxInclusiveUnitPrice = (
       inclusiveTotalPrice / quantity
-    ).toFixed(2);
+    ).toFixed(8);
 
     isCalculating.value = false;
   };
@@ -2498,15 +2514,14 @@
     isCalculating.value = true;
 
     // 璁$畻鍚◣鎬讳环
-    productForm.value.taxInclusiveTotalPrice = (unitPrice * quantity).toFixed(2);
+    productForm.value.taxInclusiveTotalPrice = (unitPrice * quantity).toFixed(8);
 
     // 濡傛灉鏈夌◣鐜囷紝璁$畻涓嶅惈绋庢�讳环
     if (productForm.value.taxRate) {
-      productForm.value.taxExclusiveTotalPrice =
-        proxy.calculateTaxExclusiveTotalPrice(
-          productForm.value.taxInclusiveTotalPrice,
-          productForm.value.taxRate
-        );
+      productForm.value.taxExclusiveTotalPrice = calculateTaxExclusiveTotalPrice8(
+        productForm.value.taxInclusiveTotalPrice,
+        productForm.value.taxRate
+      );
     }
 
     isCalculating.value = false;
@@ -2530,15 +2545,14 @@
     isCalculating.value = true;
 
     // 璁$畻鍚◣鎬讳环
-    productForm.value.taxInclusiveTotalPrice = (unitPrice * quantity).toFixed(2);
+    productForm.value.taxInclusiveTotalPrice = (unitPrice * quantity).toFixed(8);
 
     // 濡傛灉鏈夌◣鐜囷紝璁$畻涓嶅惈绋庢�讳环
     if (productForm.value.taxRate) {
-      productForm.value.taxExclusiveTotalPrice =
-        proxy.calculateTaxExclusiveTotalPrice(
-          productForm.value.taxInclusiveTotalPrice,
-          productForm.value.taxRate
-        );
+      productForm.value.taxExclusiveTotalPrice = calculateTaxExclusiveTotalPrice8(
+        productForm.value.taxInclusiveTotalPrice,
+        productForm.value.taxRate
+      );
     }
 
     isCalculating.value = false;
@@ -2564,8 +2578,10 @@
     isCalculating.value = true;
 
     // 璁$畻涓嶅惈绋庢�讳环
-    productForm.value.taxExclusiveTotalPrice =
-      proxy.calculateTaxExclusiveTotalPrice(inclusiveTotalPrice, taxRate);
+    productForm.value.taxExclusiveTotalPrice = calculateTaxExclusiveTotalPrice8(
+      inclusiveTotalPrice,
+      taxRate
+    );
 
     isCalculating.value = false;
   };
diff --git a/src/views/salesManagement/salesQuotation/index.vue b/src/views/salesManagement/salesQuotation/index.vue
index fce764f..226526f 100644
--- a/src/views/salesManagement/salesQuotation/index.vue
+++ b/src/views/salesManagement/salesQuotation/index.vue
@@ -215,7 +215,7 @@
             <el-table-column prop="unitPrice" label="鍗曚环">
               <template #default="scope">
                 <el-form-item :prop="`products.${scope.$index}.unitPrice`" class="product-table-form-item">
-                  <el-input-number v-model="scope.row.unitPrice" :min="0" :precision="2" style="width: 100%" />
+                  <el-input-number v-model="scope.row.unitPrice" :min="0" :precision="8" style="width: 100%" />
                 </el-form-item>
               </template>
             </el-table-column>

--
Gitblit v1.9.3