From 460ed5e7904c3ef8131a0a26f354e8e2c669425b Mon Sep 17 00:00:00 2001
From: yuan <123@>
Date: 星期二, 26 五月 2026 11:43:05 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/dev_鹤壁_强信宇_pro' into dev_鹤壁_强信宇_pro

---
 src/views/salesManagement/salesLedger/index.vue |  122 +++++++++++++++++++++++-----------------
 1 files changed, 69 insertions(+), 53 deletions(-)

diff --git a/src/views/salesManagement/salesLedger/index.vue b/src/views/salesManagement/salesLedger/index.vue
index 56f9fd2..5a5156c 100644
--- a/src/views/salesManagement/salesLedger/index.vue
+++ b/src/views/salesManagement/salesLedger/index.vue
@@ -329,7 +329,7 @@
                            :label="item.customerName"
                            :value="item.id">
                   {{
-                    item.customerName + "鈥斺��" + item.taxpayerIdentificationNumber
+                    item.customerName
                   }}
                 </el-option>
               </el-select>
@@ -456,13 +456,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">
@@ -664,11 +664,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" />
@@ -677,12 +677,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>
@@ -1396,11 +1396,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;
@@ -1453,7 +1469,7 @@
     if (!isCurrentUserMaintainer(row)) {
       return "*****";
     }
-    return formattedNumber(row, column, cellValue);
+    return format8(row, column, cellValue);
   };
   // 鑾峰彇tree瀛愭暟鎹�
   const getModels = value => {
@@ -1568,7 +1584,10 @@
       "contractAmount",
       "taxInclusiveTotalPrice",
       "taxExclusiveTotalPrice",
-    ]);
+    ], {
+      taxInclusiveTotalPrice: { decimalPlaces: 8 },
+      taxExclusiveTotalPrice: { decimalPlaces: 8 },
+    });
   };
   // 瀛愯〃鍚堣鏂规硶
   const summarizeChildrenTable = (param, parentRow) => {
@@ -1594,7 +1613,11 @@
       "taxInclusiveUnitPrice",
       "taxInclusiveTotalPrice",
       "taxExclusiveTotalPrice",
-    ]);
+    ], {
+      taxInclusiveUnitPrice: { decimalPlaces: 8 },
+      taxInclusiveTotalPrice: { decimalPlaces: 8 },
+      taxExclusiveTotalPrice: { decimalPlaces: 8 },
+    });
   };
   // 鎵撳紑寮规
   const openForm = async (type, row) => {
@@ -1722,19 +1745,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: "澧炴櫘绁�",
@@ -2408,7 +2430,7 @@
     const total = products.reduce((sum, product) => {
       return sum + (parseFloat(product.taxInclusiveTotalPrice) || 0);
     }, 0);
-    return total.toFixed(2);
+    return total.toFixed(8);
   };
 
   // 鐢ㄤ簬鎵撳嵃鐨勮绠楀嚱鏁�
@@ -2425,30 +2447,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
+      );
     }
   };
 
@@ -2466,15 +2483,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;
@@ -2503,12 +2519,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;
   };
@@ -2531,15 +2547,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;
@@ -2563,15 +2578,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;
@@ -2597,8 +2611,10 @@
     isCalculating.value = true;
 
     // 璁$畻涓嶅惈绋庢�讳环
-    productForm.value.taxExclusiveTotalPrice =
-      proxy.calculateTaxExclusiveTotalPrice(inclusiveTotalPrice, taxRate);
+    productForm.value.taxExclusiveTotalPrice = calculateTaxExclusiveTotalPrice8(
+      inclusiveTotalPrice,
+      taxRate
+    );
 
     isCalculating.value = false;
   };

--
Gitblit v1.9.3