From 41a639a4a4b6fbf35db7903b5ee3c068c8644430 Mon Sep 17 00:00:00 2001
From: 张诺 <zhang_12370@163.com>
Date: 星期二, 21 四月 2026 10:45:56 +0800
Subject: [PATCH] feat: 统一数值精度为三位小数并添加保养项目字段

---
 src/views/financialManagement/accounting/index.vue                           |    4 
 src/views/procurementManagement/paymentHistory/index.vue                     |    2 
 src/views/procurementManagement/procurementInvoiceLedger/index.vue           |   11 +
 src/views/equipmentManagement/upkeep/Form/PlanModal.vue                      |    8 +
 src/views/procurementManagement/purchaseOrder/index.vue                      |    2 
 src/views/procurementManagement/invoiceEntry/index.vue                       |    6 
 src/views/salesManagement/receiptPaymentLedger/index.vue                     |   12 +
 src/views/procurementManagement/paymentEntry/index.vue                       |    9 +
 src/views/salesManagement/salesLedger/index.vue                              |   17 ++-
 src/views/safeProduction/safetyTrainingAssessment/detail.vue                 |    4 
 src/views/salesManagement/invoiceLedger/index.vue                            |    2 
 src/views/inventoryManagement/vehicleFuelManagement/index.vue                |    8 
 src/views/reportAnalysis/qualityAnalysis/components/right-top.vue            |    6 
 src/views/projectManagement/Management/components/formDia.vue                |   15 +-
 src/views/procurementManagement/purchaseReturnOrder/ProductList.vue          |    2 
 src/views/procurementManagement/invoiceEntry/components/Modal.vue            |   34 +++---
 src/views/equipmentManagement/upkeep/index.vue                               |   10 ++
 src/views/procurementManagement/invoiceEntry/components/ExpandTable.vue      |   10 +-
 src/views/procurementManagement/procurementReport/index.vue                  |    4 
 src/views/salesManagement/receiptPayment/index.vue                           |    6 +
 src/views/productionManagement/safetyMonitoring/index.vue                    |   10 +-
 src/views/salesManagement/salesQuotation/index.vue                           |    8 
 src/views/procurementManagement/priceManagement/index.vue                    |    6 
 src/views/salesManagement/invoiceRegistration/index.vue                      |   32 ++++-
 src/views/procurementManagement/paymentLedger/index.vue                      |   17 ++-
 src/views/reportAnalysis/productionAnalysis/components/center-top.vue        |    2 
 src/views/procurementManagement/procurementLedger/index.vue                  |   15 ++-
 src/views/reportAnalysis/financialAnalysis/components/center-top.vue         |    6 
 src/views/reportAnalysis/PSIDataAnalysis/components/center-top.vue           |    2 
 src/views/procurementManagement/procurementInvoiceLedger/Modal/EditModal.vue |   16 +-
 src/views/procurementManagement/purchaseReturnOrder/New.vue                  |    2 
 src/views/equipmentManagement/upkeep/Form/formDia.vue                        |    5 +
 src/views/reportAnalysis/qualityAnalysis/components/center-top.vue           |    2 
 src/views/reportAnalysis/dataDashboard/components/basic/center-top.vue       |    2 
 src/views/productionManagement/productionReporting/components/formDia.vue    |    2 
 35 files changed, 184 insertions(+), 115 deletions(-)

diff --git a/src/views/equipmentManagement/upkeep/Form/PlanModal.vue b/src/views/equipmentManagement/upkeep/Form/PlanModal.vue
index 19095b9..1203619 100644
--- a/src/views/equipmentManagement/upkeep/Form/PlanModal.vue
+++ b/src/views/equipmentManagement/upkeep/Form/PlanModal.vue
@@ -67,6 +67,14 @@
           clearable
         />
       </el-form-item>
+      <el-form-item label="淇濆吇椤圭洰">
+        <el-input
+          style="width: 100%"
+          v-model="form.maintenanceItem"
+          placeholder="璇疯緭鍏ヤ繚鍏婚」鐩�"
+          clearable
+        />
+      </el-form-item>
     </el-form>
   </FormDialog>
 </template>
diff --git a/src/views/equipmentManagement/upkeep/Form/formDia.vue b/src/views/equipmentManagement/upkeep/Form/formDia.vue
index 66bf067..3778fd0 100644
--- a/src/views/equipmentManagement/upkeep/Form/formDia.vue
+++ b/src/views/equipmentManagement/upkeep/Form/formDia.vue
@@ -82,6 +82,11 @@
 														value-format="HH:mm" />
 					</el-form-item>
 				</el-col>
+				<el-col :span="12">
+					<el-form-item label="淇濆吇椤圭洰" prop="maintenanceItem">
+						<el-input v-model="form.maintenanceItem" placeholder="璇疯緭鍏ヤ繚鍏婚」鐩�" />
+					</el-form-item>
+				</el-col>
 				<el-col :span="12" v-if="form.frequencyType === 'WEEKLY' && form.frequencyType">
 					<el-form-item label="鏃ユ湡" prop="frequencyDetail">
 						<el-select v-model="form.week" placeholder="璇烽�夋嫨" clearable style="width: 50%">
diff --git a/src/views/equipmentManagement/upkeep/index.vue b/src/views/equipmentManagement/upkeep/index.vue
index 543e37b..db83f18 100644
--- a/src/views/equipmentManagement/upkeep/index.vue
+++ b/src/views/equipmentManagement/upkeep/index.vue
@@ -316,6 +316,11 @@
 			QUARTERLY: "瀛e害"
 		}[cell] || "")
 	},
+  {
+    prop: "maintenanceItem",
+    label: "淇濆吇椤圭洰",
+    minWidth: 150,
+  },
 	{
 		prop: "frequencyDetail",
 		label: "寮�濮嬫棩鏈熶笌鏃堕棿",
@@ -372,6 +377,11 @@
 		align: "center",
 		prop: "createUserName",
 	},
+	{
+		label: "淇濆吇椤圭洰",
+		align: "center",
+		prop: "maintenanceItem",
+	},
 	// {
 	//   label: "褰曞叆鏃ユ湡",
 	//   align: "center",
diff --git a/src/views/financialManagement/accounting/index.vue b/src/views/financialManagement/accounting/index.vue
index 830fe1a..3626484 100644
--- a/src/views/financialManagement/accounting/index.vue
+++ b/src/views/financialManagement/accounting/index.vue
@@ -479,8 +479,8 @@
 
 // 鏍煎紡鍖栬揣甯�
 const formatCurrency = (value) => {
-  if (!value) return '0.00';
-  return Number(value).toFixed(2).replace(/\B(?=(\d{3})+(?!\d))/g, ',');
+  if (!value) return '0.000';
+  return Number(value).toFixed(3).replace(/\B(?=(\d{3})+(?!\d))/g, ',');
 };
 
 // 鑾峰彇鐘舵�佹爣绛剧被鍨�
diff --git a/src/views/inventoryManagement/vehicleFuelManagement/index.vue b/src/views/inventoryManagement/vehicleFuelManagement/index.vue
index 8579cba..3f2a466 100644
--- a/src/views/inventoryManagement/vehicleFuelManagement/index.vue
+++ b/src/views/inventoryManagement/vehicleFuelManagement/index.vue
@@ -79,7 +79,7 @@
           align="right"
         >
           <template #default="scope">
-            <span>{{ scope.row.amount?.toFixed(2) }}</span>
+            <span>{{ scope.row.amount?.toFixed(3) }}</span>
           </template>
         </el-table-column>
         <el-table-column
@@ -89,7 +89,7 @@
           align="right"
         >
           <template #default="scope">
-            <span>{{ scope.row.liters?.toFixed(2) }}</span>
+            <span>{{ scope.row.liters?.toFixed(3) }}</span>
           </template>
         </el-table-column>
         <el-table-column
@@ -120,7 +120,7 @@
             <span
               :style="scope.row.isAbnormal ? 'color:#F56C6C;font-weight:600;' : ''"
             >
-              {{ scope.row.fuelConsumption != null ? scope.row.fuelConsumption.toFixed(2) : '-' }}
+              {{ scope.row.fuelConsumption != null ? scope.row.fuelConsumption.toFixed(3) : '-' }}
             </span>
           </template>
         </el-table-column>
@@ -132,7 +132,7 @@
         >
           <template #default="scope">
             <span>
-              {{ scope.row.avgConsumption != null ? scope.row.avgConsumption.toFixed(2) : '-' }}
+              {{ scope.row.avgConsumption != null ? scope.row.avgConsumption.toFixed(3) : '-' }}
             </span>
           </template>
         </el-table-column>
diff --git a/src/views/procurementManagement/invoiceEntry/components/ExpandTable.vue b/src/views/procurementManagement/invoiceEntry/components/ExpandTable.vue
index d329768..43f42e6 100644
--- a/src/views/procurementManagement/invoiceEntry/components/ExpandTable.vue
+++ b/src/views/procurementManagement/invoiceEntry/components/ExpandTable.vue
@@ -62,7 +62,7 @@
       prop: "taxInclusiveUnitPrice",
 			width:200,
       formatData: (val) => {
-        return val ? parseFloat(val).toFixed(2) : "-";
+        return val ? parseFloat(val).toFixed(3) : "-";
       },
     },
     {
@@ -70,7 +70,7 @@
       prop: "taxInclusiveTotalPrice",
 			width:200,
       formatData: (val) => {
-        return val ? parseFloat(val).toFixed(2) : "-";
+        return val ? parseFloat(val).toFixed(3) : "-";
       },
     },
     {
@@ -78,7 +78,7 @@
       prop: "taxExclusiveTotalPrice",
 			width:200,
       formatData: (val) => {
-        return val ? parseFloat(val).toFixed(2) : "-";
+        return val ? parseFloat(val).toFixed(3) : "-";
       },
     },
     {
@@ -86,7 +86,7 @@
       prop: "ticketsAmount",
 			width:200,
       formatData: (val) => {
-        return val ? parseFloat(val).toFixed(2) : "-";
+        return val ? parseFloat(val).toFixed(3) : "-";
       },
     },
     {
@@ -98,7 +98,7 @@
       prop: "futureTicketsAmount",
 			width:200,
       formatData: (val) => {
-        return val ? parseFloat(val).toFixed(2) : "-";
+        return val ? parseFloat(val).toFixed(3) : "-";
       },
     },
   ],
diff --git a/src/views/procurementManagement/invoiceEntry/components/Modal.vue b/src/views/procurementManagement/invoiceEntry/components/Modal.vue
index 33d5144..4133d08 100644
--- a/src/views/procurementManagement/invoiceEntry/components/Modal.vue
+++ b/src/views/procurementManagement/invoiceEntry/components/Modal.vue
@@ -293,7 +293,7 @@
 		prop: "taxInclusiveUnitPrice",
 		width: 150,
 		formatData: (val) => {
-			return val ? parseFloat(val).toFixed(2) : 0;
+			return val ? parseFloat(val).toFixed(3) : 0;
 		},
 	},
 	{
@@ -301,7 +301,7 @@
 		prop: "taxInclusiveTotalPrice",
 		width: 150,
 		formatData: (val) => {
-			return parseFloat(val).toFixed(2) ?? 0;
+			return parseFloat(val).toFixed(3) ?? 0;
 		},
 	},
 	{
@@ -309,7 +309,7 @@
 		prop: "taxExclusiveTotalPrice",
 		width: 150,
 		formatData: (val) => {
-			return parseFloat(val).toFixed(2) ?? 0;
+			return parseFloat(val).toFixed(3) ?? 0;
 		},
 	},
 	{
@@ -341,10 +341,10 @@
 ];
 const formattedNumber = (row, column, cellValue) => {
 	if (cellValue == 0) {
-		return parseFloat(cellValue).toFixed(2);
+		return parseFloat(cellValue).toFixed(3);
 	}
 	if (cellValue) {
-		return parseFloat(cellValue).toFixed(2);
+		return parseFloat(cellValue).toFixed(3);
 	} else {
 		return cellValue;
 	}
@@ -431,10 +431,10 @@
 					item.ticketsNum = Number(item.tempFutureTickets || 0);
 					// 鑱斿姩璁$畻鏈寮�绁ㄩ噾棰濄�佹湭鏉ョエ鏁般�佹湭鏉ョエ閲戦
 					const unitPrice = Number(item.taxInclusiveUnitPrice || 0);
-					item.ticketsAmount = Number((item.ticketsNum * unitPrice).toFixed(2));
-					item.futureTickets = Number((item.tempFutureTickets - item.ticketsNum).toFixed(2));
+					item.ticketsAmount = Number((item.ticketsNum * unitPrice).toFixed(3));
+					item.futureTickets = Number((item.tempFutureTickets - item.ticketsNum).toFixed(3));
 					item.futureTicketsAmount = Number(
-						(item.tempFutureTicketsAmount - item.ticketsAmount).toFixed(2)
+						(item.tempFutureTicketsAmount - item.ticketsAmount).toFixed(3)
 					);
 				}
 			});
@@ -445,7 +445,7 @@
 			const totalAmount = allProductData.reduce((sum, item) => {
 				return sum + (Number(item.ticketsAmount) || 0);
 			}, 0);
-			form.invoiceAmount = Number(totalAmount.toFixed(2));
+			form.invoiceAmount = Number(totalAmount.toFixed(3));
 			
 			// 瀛樺偍閫変腑鐨勫悎鍚屾暟鎹�
 			selectedContracts.value = selectedRows;
@@ -516,11 +516,11 @@
 		row.ticketsNum = Number(row.tempFutureTickets || 0);
 	}
 	// 璁$畻鏈鏉ョエ閲戦
-	row.ticketsAmount = Number((Number(row.ticketsNum) * Number(row.taxInclusiveUnitPrice || 0)).toFixed(2));
+	row.ticketsAmount = Number((Number(row.ticketsNum) * Number(row.taxInclusiveUnitPrice || 0)).toFixed(3));
 	// 璁$畻鏈潵绁ㄦ暟
-	row.futureTickets = Number((Number(row.tempFutureTickets || 0) - Number(row.ticketsNum || 0)).toFixed(2));
+	row.futureTickets = Number((Number(row.tempFutureTickets || 0) - Number(row.ticketsNum || 0)).toFixed(3));
 	// 璁$畻鏈潵绁ㄩ噾棰�
-	row.futureTicketsAmount = Number((Number(row.tempFutureTicketsAmount || 0) - Number(row.ticketsAmount || 0)).toFixed(2));
+	row.futureTicketsAmount = Number((Number(row.tempFutureTicketsAmount || 0) - Number(row.ticketsAmount || 0)).toFixed(3));
 	calculateinvoiceAmount();
 };
 
@@ -536,19 +536,19 @@
 	}
 	// 璁$畻鏈鏉ョエ鏁�
 	row.ticketsNum = Number(
-		(row.ticketsAmount / row.taxInclusiveUnitPrice).toFixed(2)
+		(row.ticketsAmount / row.taxInclusiveUnitPrice).toFixed(3)
 	);
 	// 妫�鏌ユ湰娆″紑绁ㄦ暟鏄惁澶т簬鏈潵绁ㄦ暟
 	if (Number(row.ticketsNum) > Number(row.tempFutureTickets)) {
 		proxy.$modal.msgWarning("鏈寮�绁ㄦ暟涓嶈兘澶т簬鏈潵绁ㄦ暟");
 		row.ticketsNum = Number(row.tempFutureTickets || 0);
 		// 閲嶆柊璁$畻鏈鏉ョエ閲戦
-		row.ticketsAmount = Number((Number(row.ticketsNum) * Number(row.taxInclusiveUnitPrice || 0)).toFixed(2));
+		row.ticketsAmount = Number((Number(row.ticketsNum) * Number(row.taxInclusiveUnitPrice || 0)).toFixed(3));
 	}
 	// 璁$畻鏈潵绁ㄦ暟
-	row.futureTickets = Number((Number(row.tempFutureTickets || 0) - Number(row.ticketsNum || 0)).toFixed(2));
+	row.futureTickets = Number((Number(row.tempFutureTickets || 0) - Number(row.ticketsNum || 0)).toFixed(3));
 	// 璁$畻鏈潵绁ㄩ噾棰�
-	row.futureTicketsAmount = Number((Number(row.tempFutureTicketsAmount || 0) - Number(row.ticketsAmount || 0)).toFixed(2));
+	row.futureTicketsAmount = Number((Number(row.tempFutureTicketsAmount || 0) - Number(row.ticketsAmount || 0)).toFixed(3));
 	calculateinvoiceAmount();
 };
 
@@ -559,7 +559,7 @@
 			invoiceAmountTotal += Number(item.ticketsAmount);
 		}
 	});
-	form.invoiceAmount = Number(invoiceAmountTotal.toFixed(2));
+	form.invoiceAmount = Number(invoiceAmountTotal.toFixed(3));
 };
 
 // 鍒ゆ柇浜у搧鏄惁鍙互缁х画鏉ョエ鎿嶄綔锛氬鏋滄湭鏉ョエ鏁板拰鏈潵绁ㄩ噾棰濋兘涓�0鎴栧皬浜庣瓑浜�0锛屽垯绂佺敤
diff --git a/src/views/procurementManagement/invoiceEntry/index.vue b/src/views/procurementManagement/invoiceEntry/index.vue
index 8c435e0..e63f53a 100644
--- a/src/views/procurementManagement/invoiceEntry/index.vue
+++ b/src/views/procurementManagement/invoiceEntry/index.vue
@@ -150,7 +150,7 @@
       prop: "contractAmount",
       width:200,
       formatData: (val) => {
-        return val ? parseFloat(val).toFixed(2) : 0;
+        return val ? parseFloat(val).toFixed(3) : 0;
       },
     },
     {
@@ -158,7 +158,7 @@
       prop: "receiptPaymentAmount",
       width:200,
       formatData: (val) => {
-        return val ? parseFloat(val).toFixed(2) : 0;
+        return val ? parseFloat(val).toFixed(3) : 0;
       },
     },
     {
@@ -166,7 +166,7 @@
       prop: "unReceiptPaymentAmount",
       width:200,
       formatData: (val) => {
-        return val ? parseFloat(val).toFixed(2) : 0;
+        return val ? parseFloat(val).toFixed(3) : 0;
       },
     },
     {
diff --git a/src/views/procurementManagement/paymentEntry/index.vue b/src/views/procurementManagement/paymentEntry/index.vue
index 3f4512b..533dd8c 100644
--- a/src/views/procurementManagement/paymentEntry/index.vue
+++ b/src/views/procurementManagement/paymentEntry/index.vue
@@ -292,14 +292,14 @@
     label: "宸蹭粯娆鹃噾棰�(鍏�)",
     prop: "ticketsTotal",
     formatData: (params) => {
-      return params ? parseFloat(params).toFixed(2) : 0;
+      return params ? parseFloat(params).toFixed(3) : 0;
     },
   },
   {
     label: "寰呬粯娆鹃噾棰�(鍏�)",
     prop: "pendingTicketsTotal",
     formatData: (params) => {
-      return params ? parseFloat(params).toFixed(2) : 0;
+      return params ? parseFloat(params).toFixed(3) : 0;
     },
   },
 ]);
@@ -362,7 +362,7 @@
 
 const formattedNumber = (row, column, cellValue) => {
   const val = Number(cellValue ?? 0);
-  return Number.isFinite(val) ? val.toFixed(2) : "0.00";
+  return Number.isFinite(val) ? val.toFixed(3) : "0.00";
 };
 // 瀛愯〃鍚堣鏂规硶
 const summarizeMainTable1 = (param) => {
@@ -370,6 +370,8 @@
     param,
     ["ticketsTotal", "pendingTicketsTotal"],
     {
+      ticketsTotal: { decimalPlaces: 3 },
+      pendingTicketsTotal: { decimalPlaces: 3 },
       ticketsNum: { noDecimal: true }, // 涓嶄繚鐣欏皬鏁�
       futureTickets: { noDecimal: true }, // 涓嶄繚鐣欏皬鏁�
     }
@@ -378,6 +380,7 @@
 // 瀛愯〃鍚堣鏂规硶
 const summarizeMainTable2 = (param) => {
 	return proxy.summarizeTable(param, ["currentPaymentAmount"], {
+    currentPaymentAmount: { decimalPlaces: 3 },
 		ticketsNum: { noDecimal: true }, // 涓嶄繚鐣欏皬鏁�
 		futureTickets: { noDecimal: true }, // 涓嶄繚鐣欏皬鏁�
 	});
diff --git a/src/views/procurementManagement/paymentHistory/index.vue b/src/views/procurementManagement/paymentHistory/index.vue
index 179373b..db4f268 100644
--- a/src/views/procurementManagement/paymentHistory/index.vue
+++ b/src/views/procurementManagement/paymentHistory/index.vue
@@ -110,7 +110,7 @@
     label: "浠樻閲戦",
     prop: "currentPaymentAmount",
     formatData: (params) => {
-      return params ? parseFloat(params).toFixed(2) : 0;
+      return params ? parseFloat(params).toFixed(3) : 0;
     },
   },
   {
diff --git a/src/views/procurementManagement/paymentLedger/index.vue b/src/views/procurementManagement/paymentLedger/index.vue
index 294561d..8a1f6e1 100644
--- a/src/views/procurementManagement/paymentLedger/index.vue
+++ b/src/views/procurementManagement/paymentLedger/index.vue
@@ -91,7 +91,7 @@
           >
             <template #payableAmountSlot="{ row }">
               <el-text type="danger">
-                {{ parseFloat(row.payableAmount).toFixed(2) }}
+                {{ parseFloat(row.payableAmount).toFixed(3) }}
               </el-text>
             </template>
           </PIMTable>
@@ -151,7 +151,7 @@
     prop: "invoiceAmount",
 		width: 200,
     formatData: (params) => {
-      return params ? parseFloat(params).toFixed(2) : 0;
+      return params ? parseFloat(params).toFixed(3) : 0;
     },
   },
   {
@@ -159,7 +159,7 @@
     prop: "paymentAmount",
 		width: 200,
     formatData: (params) => {
-      return params ? parseFloat(params).toFixed(2) : 0;
+      return params ? parseFloat(params).toFixed(3) : 0;
     },
   },
   {
@@ -184,6 +184,9 @@
     param,
     ["invoiceAmount", "paymentAmount", "payableAmount"],
     {
+      invoiceAmount: { decimalPlaces: 3 },
+      paymentAmount: { decimalPlaces: 3 },
+      payableAmount: { decimalPlaces: 3 },
       ticketsNum: { noDecimal: true }, // 涓嶄繚鐣欏皬鏁�
       futureTickets: { noDecimal: true }, // 涓嶄繚鐣欏皬鏁�
     }
@@ -195,6 +198,8 @@
     param,
     ["invoiceAmount", "paymentAmount"],
     {
+      invoiceAmount: { decimalPlaces: 3 },
+      paymentAmount: { decimalPlaces: 3 },
       ticketsNum: { noDecimal: true }, // 涓嶄繚鐣欏皬鏁�
       futureTickets: { noDecimal: true }, // 涓嶄繚鐣欏皬鏁�
     }
@@ -203,9 +208,9 @@
     summarizeTable[summarizeTable.length - 1] =
       originalTableDataSon.value[
         originalTableDataSon.value.length - 1
-      ].payableAmount.toFixed(2);
+      ].payableAmount.toFixed(3);
   } else {
-    summarizeTable[summarizeTable.length - 1] = 0.0;
+    summarizeTable[summarizeTable.length - 1] = "0.000";
   }
   return summarizeTable;
 };
@@ -265,7 +270,7 @@
 };
 const formattedNumber = (row, column, cellValue) => {
   if (column.property !== "supplierName") {
-    return parseFloat(cellValue).toFixed(2);
+    return parseFloat(cellValue).toFixed(3);
   } else {
     return cellValue;
   }
diff --git a/src/views/procurementManagement/priceManagement/index.vue b/src/views/procurementManagement/priceManagement/index.vue
index 76a39ed..1b1b188 100644
--- a/src/views/procurementManagement/priceManagement/index.vue
+++ b/src/views/procurementManagement/priceManagement/index.vue
@@ -34,15 +34,15 @@
         <el-table-column label="瑙勬牸鍨嬪彿" prop="specification" />
         <el-table-column label="渚涘簲鍟嗗悕绉�" prop="supplierName" />
         <el-table-column label="鍘熶环鏍�" prop="oldPrice" width="120">
-          <template #default="{ row }">楼{{ row.oldPrice.toFixed(2) }}</template>
+          <template #default="{ row }">楼{{ row.oldPrice.toFixed(3) }}</template>
         </el-table-column>
         <el-table-column label="鏂颁环鏍�" prop="newPrice" width="120">
-          <template #default="{ row }">楼{{ row.newPrice.toFixed(2) }}</template>
+          <template #default="{ row }">楼{{ row.newPrice.toFixed(3) }}</template>
         </el-table-column>
         <el-table-column label="璋冧环骞呭害" prop="priceChange" width="120">
           <template #default="{ row }">
             <span :style="{ color: row.priceChange >= 0 ? '#f56c6c' : '#67c23a' }">
-              {{ row.priceChange >= 0 ? '+' : '' }}{{ row.priceChange.toFixed(2) }}%
+              {{ row.priceChange >= 0 ? '+' : '' }}{{ row.priceChange.toFixed(3) }}%
             </span>
           </template>
         </el-table-column>
diff --git a/src/views/procurementManagement/procurementInvoiceLedger/Modal/EditModal.vue b/src/views/procurementManagement/procurementInvoiceLedger/Modal/EditModal.vue
index 4e461dc..29334a6 100644
--- a/src/views/procurementManagement/procurementInvoiceLedger/Modal/EditModal.vue
+++ b/src/views/procurementManagement/procurementInvoiceLedger/Modal/EditModal.vue
@@ -129,7 +129,7 @@
     form.createdAt = data.createdAt;
     form.invoiceNumber = data.invoiceNumber;
     form.ticketsNum = data.ticketsNum;
-    form.ticketsAmount = data.ticketsAmount.toFixed(2);
+    form.ticketsAmount = data.ticketsAmount.toFixed(3);
     form.taxInclusiveUnitPrice = data.taxInclusiveUnitPrice;
     form.futureTickets = data.futureTickets;
     temFutureTickets.value = data.futureTickets;
@@ -168,8 +168,8 @@
     Number(form.ticketsNum) * Number(form.taxInclusiveUnitPrice);
   const futureTickets =
     Number(temFutureTickets.value) - newTicketsNum;
-  form.futureTickets = Number(futureTickets.toFixed(2));
-  form.ticketsAmount = Number(ticketsAmount.toFixed(2));
+  form.futureTickets = Number(futureTickets.toFixed(3));
+  form.ticketsAmount = Number(ticketsAmount.toFixed(3));
 };
 
 const inputTicketsAmount = val => {
@@ -183,8 +183,8 @@
   const maxAmount = maxTicketsNum.value * Number(form.taxInclusiveUnitPrice);
   
   if (Number(val) > maxAmount) {
-    proxy.$modal.msgWarning(`鏈鏉ョエ閲戦涓嶅緱澶т簬${maxAmount.toFixed(2)}鍏僠);
-    form.ticketsAmount = maxAmount.toFixed(2);
+    proxy.$modal.msgWarning(`鏈鏉ョエ閲戦涓嶅緱澶т簬${maxAmount.toFixed(3)}鍏僠);
+    form.ticketsAmount = maxAmount.toFixed(3);
     form.ticketsNum = maxTicketsNum.value;
     return;
   }
@@ -196,16 +196,16 @@
   if (ticketsNum > maxTicketsNum.value) {
     proxy.$modal.msgWarning(`鏉ョエ鏁颁笉鑳藉ぇ浜�${maxTicketsNum.value}`);
     form.ticketsNum = maxTicketsNum.value;
-    form.ticketsAmount = maxAmount.toFixed(2);
+    form.ticketsAmount = maxAmount.toFixed(3);
     return;
   }
   
-  form.ticketsNum = Number(ticketsNum.toFixed(2));
+  form.ticketsNum = Number(ticketsNum.toFixed(3));
   
   // 璁$畻鏈潵绁ㄦ暟
   const newTicketsNum = form.ticketsNum - originalTicketsNum.value;
   const futureTickets = Number(temFutureTickets.value) - newTicketsNum;
-  form.futureTickets = Number(futureTickets.toFixed(2));
+  form.futureTickets = Number(futureTickets.toFixed(3));
 };
 
 const open = async row => {
diff --git a/src/views/procurementManagement/procurementInvoiceLedger/index.vue b/src/views/procurementManagement/procurementInvoiceLedger/index.vue
index d82e3e7..9b88bbf 100644
--- a/src/views/procurementManagement/procurementInvoiceLedger/index.vue
+++ b/src/views/procurementManagement/procurementInvoiceLedger/index.vue
@@ -185,7 +185,7 @@
       prop: "taxInclusiveTotalPrice",
       width: 200,
       formatData: (cell) => {
-        return cell ? parseFloat(cell).toFixed(2) : 0;
+        return cell ? parseFloat(cell).toFixed(3) : 0;
       },
     },
     {
@@ -198,7 +198,7 @@
       prop: "ticketsAmount",
       width: 200,
       formatData: (cell) => {
-        return cell ? parseFloat(cell).toFixed(2) : 0;
+        return cell ? parseFloat(cell).toFixed(3) : 0;
       },
     },
     {
@@ -206,7 +206,7 @@
       prop: "unTicketsPrice",
       width: 200,
       formatData: (cell) => {
-        return cell ? parseFloat(cell).toFixed(2) : 0;
+        return cell ? parseFloat(cell).toFixed(3) : 0;
       },
     },
     {
@@ -242,6 +242,9 @@
     param,
     ["ticketsAmount", "unTicketsPrice", "invoiceAmount"],
     {
+      ticketsAmount: { decimalPlaces: 3 },
+      unTicketsPrice: { decimalPlaces: 3 },
+      invoiceAmount: { decimalPlaces: 3 },
       ticketsNum: { noDecimal: true },
       futureTickets: { noDecimal: true },
     }
@@ -260,7 +263,7 @@
     (c) => c.property === "taxInclusiveTotalPrice"
   );
   if (taxInclusiveIndex !== -1) {
-    sums[taxInclusiveIndex] = taxInclusiveSum.toFixed(2);
+    sums[taxInclusiveIndex] = taxInclusiveSum.toFixed(3);
   }
   return sums;
 };
diff --git a/src/views/procurementManagement/procurementLedger/index.vue b/src/views/procurementManagement/procurementLedger/index.vue
index 8543b26..74394d5 100644
--- a/src/views/procurementManagement/procurementLedger/index.vue
+++ b/src/views/procurementManagement/procurementLedger/index.vue
@@ -584,12 +584,14 @@
                          placeholder="璇烽�夋嫨"
                          clearable
                          @change="mathNum">
+                <el-option label="0"
+                           :value="0" />
                 <el-option label="1"
-                           value="1" />
+                           :value="1" />
                 <el-option label="6"
-                           value="6" />
+                           :value="6" />
                 <el-option label="13"
-                           value="13" />
+                           :value="13" />
               </el-select>
             </el-form-item>
           </el-col>
@@ -955,7 +957,7 @@
       unit: "",
       quantity: "",
       taxInclusiveUnitPrice: "",
-      taxRate: "",
+      taxRate: 0,
       taxInclusiveTotalPrice: "",
       taxExclusiveTotalPrice: "",
       invoiceType: "",
@@ -1470,7 +1472,10 @@
   const openProductForm = async (type, row, index) => {
     productOperationType.value = type;
     productOperationIndex.value = index;
-    productForm.value = {};
+    productForm.value = {
+      taxRate: 0,
+      invoiceType: "澧炴櫘绁�"
+    };
     proxy.resetForm("productFormRef");
     productFormVisible.value = true;
     
diff --git a/src/views/procurementManagement/procurementReport/index.vue b/src/views/procurementManagement/procurementReport/index.vue
index adf554d..8b8f97d 100644
--- a/src/views/procurementManagement/procurementReport/index.vue
+++ b/src/views/procurementManagement/procurementReport/index.vue
@@ -122,7 +122,7 @@
     label: '閲囪喘閲戦',
     prop: 'purchaseAmount',
     formatData: (val) => {
-      return val ? `楼${parseFloat(val).toLocaleString('zh-CN', { minimumFractionDigits: 2, maximumFractionDigits: 2 })}` : '楼0.00'
+      return val ? `楼${parseFloat(val).toLocaleString('zh-CN', { minimumFractionDigits: 3, maximumFractionDigits: 3 })}` : '楼0.000'
     }
   },
   {
@@ -135,7 +135,7 @@
     prop: 'averagePrice',
     width: 120,
     formatData: (val) => {
-      return val ? `楼${parseFloat(val).toFixed(2)}` : '楼0.00'
+      return val ? `楼${parseFloat(val).toFixed(3)}` : '楼0.000'
     }
   },
   {
diff --git a/src/views/procurementManagement/purchaseOrder/index.vue b/src/views/procurementManagement/purchaseOrder/index.vue
index 7e56cb4..cfaf4c6 100644
--- a/src/views/procurementManagement/purchaseOrder/index.vue
+++ b/src/views/procurementManagement/purchaseOrder/index.vue
@@ -35,7 +35,7 @@
           </template>
         </el-table-column>
         <el-table-column label="鎬婚噾棰�" prop="totalAmount" width="120">
-          <template #default="{ row }">楼{{ row.totalAmount.toFixed(2) }}</template>
+          <template #default="{ row }">楼{{ row.totalAmount.toFixed(3) }}</template>
         </el-table-column>
         <el-table-column label="鍒涘缓鏃堕棿" prop="createTime" width="180" />
         <el-table-column label="鎿嶄綔" width="200" align="center">
diff --git a/src/views/procurementManagement/purchaseReturnOrder/New.vue b/src/views/procurementManagement/purchaseReturnOrder/New.vue
index d2fe2a9..c8790f1 100644
--- a/src/views/procurementManagement/purchaseReturnOrder/New.vue
+++ b/src/views/procurementManagement/purchaseReturnOrder/New.vue
@@ -462,7 +462,7 @@
 });
 
 const formattedNumber = (row, column, cellValue) => {
-  return parseFloat(cellValue).toFixed(2);
+  return parseFloat(cellValue).toFixed(3);
 };
 
 const closeModal = () => {
diff --git a/src/views/procurementManagement/purchaseReturnOrder/ProductList.vue b/src/views/procurementManagement/purchaseReturnOrder/ProductList.vue
index 3eeb167..247dc0b 100644
--- a/src/views/procurementManagement/purchaseReturnOrder/ProductList.vue
+++ b/src/views/procurementManagement/purchaseReturnOrder/ProductList.vue
@@ -107,7 +107,7 @@
 })
 const total = ref(0)
 const formattedNumber = (row, column, cellValue) => {
-  return parseFloat(cellValue).toFixed(2);
+  return parseFloat(cellValue).toFixed(3);
 };
 
 const paginationChange = (obj) => {
diff --git a/src/views/productionManagement/productionReporting/components/formDia.vue b/src/views/productionManagement/productionReporting/components/formDia.vue
index 15958e6..774777e 100644
--- a/src/views/productionManagement/productionReporting/components/formDia.vue
+++ b/src/views/productionManagement/productionReporting/components/formDia.vue
@@ -144,7 +144,7 @@
 	const unitPrice = Number(form.value.unitPrice ?? 0);
 	
 	if (quantity > 0 && unitPrice > 0) {
-		form.value.totalPrice = (quantity * unitPrice).toFixed(2);
+		form.value.totalPrice = (quantity * unitPrice).toFixed(3);
 	} else {
 		form.value.totalPrice = '0.00';
 	}
diff --git a/src/views/productionManagement/safetyMonitoring/index.vue b/src/views/productionManagement/safetyMonitoring/index.vue
index 12922e7..5272814 100644
--- a/src/views/productionManagement/safetyMonitoring/index.vue
+++ b/src/views/productionManagement/safetyMonitoring/index.vue
@@ -24,7 +24,7 @@
 								</div>
 								<div class="sensor-data">
 									<div class="data-item">
-										<span>鐢茬兎: {{ sensor.methane.toFixed(2) }}%</span>
+										<span>鐢茬兎: {{ sensor.methane.toFixed(3) }}%</span>
 										<el-progress
 											:percentage="Math.min(Math.round(sensor.methane * 40 * 100) / 100, 100)"
 											:color="getProgressColor(Math.min(Math.round(sensor.methane * 40 * 100) / 100, 100), 80)"
@@ -33,7 +33,7 @@
 										/>
 									</div>
 									<div class="data-item">
-										<span>纭寲姘�: {{ sensor.h2s.toFixed(2) }}ppm</span>
+										<span>纭寲姘�: {{ sensor.h2s.toFixed(3) }}ppm</span>
 										<el-progress
 											:percentage="Math.min(Math.round((sensor.h2s / 20) * 100 * 100) / 100, 100)"
 											:color="getProgressColor(Math.min(Math.round((sensor.h2s / 20) * 100 * 100) / 100, 100), 80)"
@@ -59,7 +59,7 @@
 								</div>
 								<div class="sensor-data">
 									<div class="data-item">
-										<span>鐢茬兎: {{ sensor.methane.toFixed(2) }}%</span>
+										<span>鐢茬兎: {{ sensor.methane.toFixed(3) }}%</span>
 										<el-progress
 											:percentage="Math.min(Math.round(sensor.methane * 40 * 100) / 100, 100)"
 											:color="getProgressColor(sensor.methane, 2.5)"
@@ -68,7 +68,7 @@
 										/>
 									</div>
 									<div class="data-item">
-										<span>纭寲姘�: {{ sensor.h2s.toFixed(2) }}ppm</span>
+										<span>纭寲姘�: {{ sensor.h2s.toFixed(3) }}ppm</span>
 										<el-progress
 											:percentage="Math.min(Math.round((sensor.h2s / 20) * 100 * 100) / 100, 100)"
 											:color="getProgressColor(sensor.h2s, 10)"
@@ -339,7 +339,7 @@
 		formatProgress(percentage) {
 			if (percentage == null || isNaN(percentage)) return '0.00%'
 			const val = Math.round(Number(percentage) * 100) / 100
-			return `${val.toFixed(2)}%`
+			return `${val.toFixed(3)}%`
 		},
 		// 鍒濆鍖栧浘琛�
 		initChart() {
diff --git a/src/views/projectManagement/Management/components/formDia.vue b/src/views/projectManagement/Management/components/formDia.vue
index f29512b..d98f9a8 100644
--- a/src/views/projectManagement/Management/components/formDia.vue
+++ b/src/views/projectManagement/Management/components/formDia.vue
@@ -571,9 +571,10 @@
         <el-col :span="12">
           <el-form-item label="绋庣巼(%)锛�" prop="taxRate">
             <el-select v-model="productForm.taxRate" placeholder="璇烽�夋嫨" clearable @change="calculateFromTaxRate">
-              <el-option label="1" value="1" />
-              <el-option label="6" value="6" />
-              <el-option label="13" value="13" />
+              <el-option label="0" :value="0" />
+              <el-option label="1" :value="1" />
+              <el-option label="6" :value="6" />
+              <el-option label="13" :value="13" />
             </el-select>
           </el-form-item>
         </el-col>
@@ -684,10 +685,10 @@
     unit: '',
     quantity: '',
     taxInclusiveUnitPrice: '',
-    taxRate: '',
+    taxRate: 0,
     taxInclusiveTotalPrice: '',
     taxExclusiveTotalPrice: '',
-    invoiceType: ''
+    invoiceType: '澧炴櫘绁�'
   },
   productRules: {
     productCategoryId: [{ required: true, message: '璇烽�夋嫨', trigger: 'change' }],
@@ -974,10 +975,10 @@
       unit: '',
       quantity: '',
       taxInclusiveUnitPrice: '',
-      taxRate: '',
+      taxRate: 0,
       taxInclusiveTotalPrice: '',
       taxExclusiveTotalPrice: '',
-      invoiceType: ''
+      invoiceType: '澧炴櫘绁�'
     }
   }
 
diff --git a/src/views/reportAnalysis/PSIDataAnalysis/components/center-top.vue b/src/views/reportAnalysis/PSIDataAnalysis/components/center-top.vue
index 0937b32..29e5860 100644
--- a/src/views/reportAnalysis/PSIDataAnalysis/components/center-top.vue
+++ b/src/views/reportAnalysis/PSIDataAnalysis/components/center-top.vue
@@ -31,7 +31,7 @@
 
 const formatPercent = (val) => {
   const num = Number(val) || 0
-  return `${num.toFixed(2)}%`
+  return `${num.toFixed(3)}%`
 }
 
 const compareClass = (val) => (val >= 0 ? 'compare-up' : 'compare-down')
diff --git a/src/views/reportAnalysis/dataDashboard/components/basic/center-top.vue b/src/views/reportAnalysis/dataDashboard/components/basic/center-top.vue
index 950038e..d2cf18e 100644
--- a/src/views/reportAnalysis/dataDashboard/components/basic/center-top.vue
+++ b/src/views/reportAnalysis/dataDashboard/components/basic/center-top.vue
@@ -136,7 +136,7 @@
 
 const formatPercent = (val) => {
   const num = Number(val) || 0
-  return `${Math.abs(num).toFixed(2)}%`
+  return `${Math.abs(num).toFixed(3)}%`
 }
 
 const compareClass = (val) => (val >= 0 ? 'compare-up' : 'compare-down')
diff --git a/src/views/reportAnalysis/financialAnalysis/components/center-top.vue b/src/views/reportAnalysis/financialAnalysis/components/center-top.vue
index 85f4928..741778e 100644
--- a/src/views/reportAnalysis/financialAnalysis/components/center-top.vue
+++ b/src/views/reportAnalysis/financialAnalysis/components/center-top.vue
@@ -157,15 +157,15 @@
 const formatAmountWanNumber = (val) => {
   const num = Number(val) || 0
   if (Math.abs(num) >= 10000) {
-    return (num / 10000).toFixed(2)
+    return (num / 10000).toFixed(3)
   }
-  return num.toFixed(2)
+  return num.toFixed(3)
 }
 
 const formatPercent = (val) => {
   const num = Number(val) || 0
   // 鐧惧垎姣斿睍绀哄缁堢敤缁濆鍊硷紝灏忔暟淇濈暀涓や綅
-  return `${Math.abs(num).toFixed(2)}%`
+  return `${Math.abs(num).toFixed(3)}%`
 }
 
 const metricClass = (metric) => {
diff --git a/src/views/reportAnalysis/productionAnalysis/components/center-top.vue b/src/views/reportAnalysis/productionAnalysis/components/center-top.vue
index e56f715..200fc5c 100644
--- a/src/views/reportAnalysis/productionAnalysis/components/center-top.vue
+++ b/src/views/reportAnalysis/productionAnalysis/components/center-top.vue
@@ -60,7 +60,7 @@
   // 鐐瑰嚮璺宠浆椤甸潰
   console.log('鐐瑰嚮浜�', item)
   router.push({
-    path: '/productionManagement/productionOrder',
+    path: '/productionManagement/productionManagement/workOrder/index',
     query: {
       name: item.name,
     }
diff --git a/src/views/reportAnalysis/qualityAnalysis/components/center-top.vue b/src/views/reportAnalysis/qualityAnalysis/components/center-top.vue
index 8e46770..7d69ddb 100644
--- a/src/views/reportAnalysis/qualityAnalysis/components/center-top.vue
+++ b/src/views/reportAnalysis/qualityAnalysis/components/center-top.vue
@@ -27,7 +27,7 @@
 
 const formatPercent = (val) => {
   const num = Number(val) || 0
-  return `${num.toFixed(2)}%`
+  return `${num.toFixed(3)}%`
 }
 
 const compareClass = (val) => (val >= 0 ? 'compare-up' : 'compare-down')
diff --git a/src/views/reportAnalysis/qualityAnalysis/components/right-top.vue b/src/views/reportAnalysis/qualityAnalysis/components/right-top.vue
index 890e99a..457a127 100644
--- a/src/views/reportAnalysis/qualityAnalysis/components/right-top.vue
+++ b/src/views/reportAnalysis/qualityAnalysis/components/right-top.vue
@@ -47,9 +47,9 @@
           return {
             rank: `Top${index + 1}`,
             productName: item.productName || `浜у搧${index + 1}`,
-            total: total.toFixed(2),
-            finished: finished.toFixed(2),
-            qualifiedRate: passRate.toFixed(2),
+            total: total.toFixed(3),
+            finished: finished.toFixed(3),
+            qualifiedRate: passRate.toFixed(3),
             percentage: Math.min(100, Math.max(0, passRate)), // 纭繚鐧惧垎姣斿湪0-100涔嬮棿
           }
         })
diff --git a/src/views/safeProduction/safetyTrainingAssessment/detail.vue b/src/views/safeProduction/safetyTrainingAssessment/detail.vue
index 9796980..b20209e 100644
--- a/src/views/safeProduction/safetyTrainingAssessment/detail.vue
+++ b/src/views/safeProduction/safetyTrainingAssessment/detail.vue
@@ -200,7 +200,7 @@
       });
   };
   const formattedNumber = (row, column, cellValue) => {
-    return parseFloat(cellValue).toFixed(2);
+    return parseFloat(cellValue).toFixed(3);
   };
   // 涓昏〃鍚堣鏂规硶
   const summarizeMainTable = param => {
@@ -229,7 +229,7 @@
         item => item.id == customerId.value
       );
       summarizeTable[summarizeTable.length - 1] =
-        tableData.value[index].unReceiptPaymentAmount.toFixed(2);
+        tableData.value[index].unReceiptPaymentAmount.toFixed(3);
     } else {
       summarizeTable[summarizeTable.length - 1] = 0.0;
     }
diff --git a/src/views/salesManagement/invoiceLedger/index.vue b/src/views/salesManagement/invoiceLedger/index.vue
index b35023f..16a2032 100644
--- a/src/views/salesManagement/invoiceLedger/index.vue
+++ b/src/views/salesManagement/invoiceLedger/index.vue
@@ -76,7 +76,7 @@
             <el-form-item :label="`鍙戠エ閲戦(鍏�)锛� `" prop="invoiceTotal">
               <el-input-number :step="0.01" :min="0" :max="maxInvoiceAmount || form.taxInclusiveTotalPrice" style="width: 100%" v-model="form.invoiceTotal" placeholder="璇疯緭鍏�" clearable :precision="2"/>
               <div v-if="maxInvoiceAmount > 0" style="color: #909399; font-size: 12px; margin-top: 5px;">
-                鍙~鏈�澶ч噾棰濅负锛毬{ maxInvoiceAmount.toFixed(2) }}鍏�
+                鍙~鏈�澶ч噾棰濅负锛毬{ maxInvoiceAmount.toFixed(3) }}鍏�
               </div>
             </el-form-item>
           </el-col>
diff --git a/src/views/salesManagement/invoiceRegistration/index.vue b/src/views/salesManagement/invoiceRegistration/index.vue
index 2f6e60c..faa52d4 100644
--- a/src/views/salesManagement/invoiceRegistration/index.vue
+++ b/src/views/salesManagement/invoiceRegistration/index.vue
@@ -452,17 +452,17 @@
 
 const formattedNumber = (row, column, cellValue) => {
 	if (cellValue == 0) {
-		return parseFloat(cellValue).toFixed(2);
+		return parseFloat(cellValue).toFixed(3);
 	}
 	if (cellValue) {
-		return parseFloat(cellValue).toFixed(2);
+		return parseFloat(cellValue).toFixed(3);
 	} else {
 		return cellValue;
 	}
 };
 
 const formattedInputNumber = (value) => {
-	return value ? parseFloat(value).toFixed(2) : 0;
+	return value ? parseFloat(value).toFixed(3) : 0;
 };
 
 // 鍒ゆ柇鏄惁鍙互寮�绁紙鍩轰簬閫変腑鐨勫彴璐︽暟鎹級
@@ -539,7 +539,11 @@
 		"contractAmount",
 		"invoiceTotal",
 		"noInvoiceAmountTotal",
-	]);
+	], {
+		contractAmount: { decimalPlaces: 3 },
+		invoiceTotal: { decimalPlaces: 3 },
+		noInvoiceAmountTotal: { decimalPlaces: 3 },
+	});
 };
 // 瀛愯〃鍚堣鏂规硶
 const summarizeChildrenTable = (param) => {
@@ -553,7 +557,17 @@
 		"noInvoiceNum",
 		"noInvoiceAmount",
 		"currentInvoiceNum",
-	]);
+	], {
+		taxInclusiveUnitPrice: { decimalPlaces: 3 },
+		taxInclusiveTotalPrice: { decimalPlaces: 3 },
+		taxExclusiveTotalPrice: { decimalPlaces: 3 },
+		invoiceNum: { decimalPlaces: 3 },
+		invoiceAmount: { decimalPlaces: 3 },
+		currentInvoiceAmount: { decimalPlaces: 3 },
+		noInvoiceNum: { decimalPlaces: 3 },
+		noInvoiceAmount: { decimalPlaces: 3 },
+		currentInvoiceNum: { decimalPlaces: 3 },
+	});
 };
 // 鎵撳紑寮规
 const openForm = () => {
@@ -752,7 +766,7 @@
 	// 璁$畻鏈寮�绁ㄩ噾棰�
 	row.currentInvoiceAmount = (
 		row.currentInvoiceNum * row.taxInclusiveUnitPrice
-	).toFixed(2);
+	).toFixed(3);
 	// 璁$畻鏈紑绁ㄦ暟
 	row.noInvoiceNum = (row.originalNoInvoiceNum - row.currentInvoiceNum).toFixed(
 		2
@@ -760,7 +774,7 @@
 	// 璁$畻鏈紑绁ㄩ噾棰�
 	row.noInvoiceAmount = (
 		row.tempnoInvoiceAmount - row.currentInvoiceAmount
-	).toFixed(2);
+	).toFixed(3);
 };
 // 鏈寮�绁ㄩ噾棰濆け鐒︽搷浣�
 const invoiceAmountBlur = (row) => {
@@ -775,7 +789,7 @@
 	// 璁$畻鏈寮�绁ㄦ暟
 	row.currentInvoiceNum = (
 		row.currentInvoiceAmount / row.taxInclusiveUnitPrice
-	).toFixed(2);
+	).toFixed(3);
 	console.log("row.currentInvoiceNum ", row.currentInvoiceNum);
 	console.log(" row.originalNoInvoiceNum  ", row.originalNoInvoiceNum);
 	// 璁$畻鏈紑绁ㄦ暟
@@ -785,7 +799,7 @@
 	// 璁$畻鏈紑绁ㄩ噾棰�
 	row.noInvoiceAmount = (
 		row.tempnoInvoiceAmount - row.currentInvoiceAmount
-	).toFixed(2);
+	).toFixed(3);
 };
 
 onMounted(() => {
diff --git a/src/views/salesManagement/receiptPayment/index.vue b/src/views/salesManagement/receiptPayment/index.vue
index 83cf942..0d7066c 100644
--- a/src/views/salesManagement/receiptPayment/index.vue
+++ b/src/views/salesManagement/receiptPayment/index.vue
@@ -408,6 +408,8 @@
     param,
     ["receiptPaymentAmountTotal", "noReceiptAmount"],
     {
+      receiptPaymentAmountTotal: { decimalPlaces: 3 },
+      noReceiptAmount: { decimalPlaces: 3 },
       ticketsNum: { noDecimal: true }, // 涓嶄繚鐣欏皬鏁�
       futureTickets: { noDecimal: true }, // 涓嶄繚鐣欏皬鏁�
     }
@@ -415,7 +417,9 @@
 };
 // 瀛愯〃鍚堣鏂规硶
 const summarizeChildrenTable = (param) => {
-  return proxy.summarizeTable(param, ["receiptPaymentAmount"]);
+  return proxy.summarizeTable(param, ["receiptPaymentAmount"], {
+    receiptPaymentAmount: { decimalPlaces: 3 },
+  });
 };
 // 鎵撳紑寮规
 const openForm = () => {
diff --git a/src/views/salesManagement/receiptPaymentLedger/index.vue b/src/views/salesManagement/receiptPaymentLedger/index.vue
index 7029cfc..393d9a9 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(3);
 };
 // 涓昏〃鍚堣鏂规硶
 const summarizeMainTable = (param) => {
@@ -196,6 +196,9 @@
     param,
     ["invoiceTotal", "receiptPaymentAmount", "unReceiptPaymentAmount"],
     {
+      invoiceTotal: { decimalPlaces: 3 },
+      receiptPaymentAmount: { decimalPlaces: 3 },
+      unReceiptPaymentAmount: { decimalPlaces: 3 },
       ticketsNum: { noDecimal: true }, // 涓嶄繚鐣欏皬鏁�
       futureTickets: { noDecimal: true }, // 涓嶄繚鐣欏皬鏁�
     }
@@ -207,6 +210,9 @@
     param,
     ["invoiceAmount", "receiptAmount", "unReceiptAmount"],
     {
+      invoiceAmount: { decimalPlaces: 3 },
+      receiptAmount: { decimalPlaces: 3 },
+      unReceiptAmount: { decimalPlaces: 3 },
       ticketsNum: { noDecimal: true }, // 涓嶄繚鐣欏皬鏁�
       futureTickets: { noDecimal: true }, // 涓嶄繚鐣欏皬鏁�
     }
@@ -217,9 +223,9 @@
       (item) => item.id == customerId.value
     );
     summarizeTable[summarizeTable.length - 1] =
-      tableData.value[index].unReceiptPaymentAmount.toFixed(2);
+      tableData.value[index].unReceiptPaymentAmount.toFixed(3);
   } else {
-    summarizeTable[summarizeTable.length - 1] = 0.0;
+    summarizeTable[summarizeTable.length - 1] = "0.000";
   }
   return summarizeTable;
 };
diff --git a/src/views/salesManagement/salesLedger/index.vue b/src/views/salesManagement/salesLedger/index.vue
index d3daec6..5537bb9 100644
--- a/src/views/salesManagement/salesLedger/index.vue
+++ b/src/views/salesManagement/salesLedger/index.vue
@@ -375,9 +375,10 @@
 					<el-col :span="12">
 						<el-form-item label="绋庣巼(%)锛�" prop="taxRate">
 							<el-select v-model="productForm.taxRate" placeholder="璇烽�夋嫨" clearable @change="calculateFromTaxRate">
-								<el-option label="1" value="1" />
-								<el-option label="6" value="6" />
-								<el-option label="13" value="13" />
+								<el-option label="0" :value="0" />
+								<el-option label="1" :value="1" />
+								<el-option label="6" :value="6" />
+								<el-option label="13" :value="13" />
 							</el-select>
 						</el-form-item>
 					</el-col>
@@ -751,7 +752,7 @@
 		unit: "",
 		quantity: "",
 		taxInclusiveUnitPrice: "",
-		taxRate: "",
+		taxRate: 0,
 		taxInclusiveTotalPrice: "",
 		taxExclusiveTotalPrice: "",
 		invoiceType: "",
@@ -1200,7 +1201,7 @@
 	productData.value = products.map((p) => {
 		const quantity = Number(p.quantity ?? 0) || 0;
 		const unitPrice = Number(p.unitPrice ?? 0) || 0;
-		const taxRate = "0"; // 榛樿 13%锛屼究浜庣洿鎺ユ彁浜わ紙濡傞渶鍙湪浜у搧涓嚜琛屼慨鏀癸級
+		const taxRate = Number(p.taxRate ?? 0) || 0; // 榛樿 13%锛屼究浜庣洿鎺ユ彁浜わ紙濡傞渶鍙湪浜у搧涓嚜琛屼慨鏀癸級
 		const taxInclusiveTotalPrice = (unitPrice * quantity).toFixed(3);
 		const taxExclusiveTotalPrice = proxy.calculateTaxExclusiveTotalPrice(taxInclusiveTotalPrice, taxRate, 3);
 		return {
@@ -1300,7 +1301,10 @@
 	}
 	
 	productOperationType.value = type;
-	productForm.value = {};
+	productForm.value = {
+		taxRate: 0,
+		invoiceType: "澧炴櫘绁�"
+	};
 	proxy.resetForm("productFormRef");
 	if (type === "edit") {
 		productForm.value = { ...row };
@@ -1335,6 +1339,7 @@
 const submitProduct = () => {
 	proxy.$refs["productFormRef"].validate((valid) => {
 		if (valid) {
+			productForm.value.taxRate = productForm.value.taxRate?productForm.value.taxRate:0;
 			if (operationType.value === "edit") {
 				submitProductEdit();
 			} else {
diff --git a/src/views/salesManagement/salesQuotation/index.vue b/src/views/salesManagement/salesQuotation/index.vue
index bf13ec6..e25f111 100644
--- a/src/views/salesManagement/salesQuotation/index.vue
+++ b/src/views/salesManagement/salesQuotation/index.vue
@@ -65,7 +65,7 @@
         </el-table-column>
         <el-table-column prop="totalAmount" label="鎶ヤ环閲戦" width="120">
           <template #default="scope">
-            楼{{ scope.row.totalAmount.toFixed(2) }}
+            楼{{ scope.row.totalAmount.toFixed(3) }}
           </template>
         </el-table-column>
         <el-table-column label="鎿嶄綔" width="200" fixed="right" align="center">
@@ -272,7 +272,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="3" style="width: 100%" />
                 </el-form-item>
               </template>
             </el-table-column>
@@ -370,7 +370,7 @@
 <!--          <el-tag :type="getStatusType(currentQuotation.status)">{{ currentQuotation.status }}</el-tag>-->
 <!--        </el-descriptions-item>-->
         <el-descriptions-item label="鎶ヤ环鎬婚" :span="2">
-          <span style="font-size: 18px; color: #e6a23c; font-weight: bold;">楼{{ currentQuotation.totalAmount?.toFixed(2) }}</span>
+          <span style="font-size: 18px; color: #e6a23c; font-weight: bold;">楼{{ currentQuotation.totalAmount?.toFixed(3) }}</span>
         </el-descriptions-item>
       </el-descriptions>
       
@@ -382,7 +382,7 @@
           <el-table-column prop="unit" label="鍗曚綅" />
           <el-table-column prop="unitPrice" label="鍗曚环">
             <template #default="scope">
-              楼{{ scope.row.unitPrice.toFixed(2) }}
+              楼{{ scope.row.unitPrice.toFixed(3) }}
             </template>
           </el-table-column>
         </el-table>

--
Gitblit v1.9.3