From 2ac9cf7de8438aef5c6b6656df9adf7afd76e071 Mon Sep 17 00:00:00 2001
From: yyb <995253665@qq.com>
Date: 星期六, 09 五月 2026 13:31:10 +0800
Subject: [PATCH] 销售台账单价和总价保留3位小数

---
 src/views/salesManagement/salesLedger/index.vue |   91 +++++++++++++++++++++++----------------------
 1 files changed, 47 insertions(+), 44 deletions(-)

diff --git a/src/views/salesManagement/salesLedger/index.vue b/src/views/salesManagement/salesLedger/index.vue
index e8e6179..271adeb 100644
--- a/src/views/salesManagement/salesLedger/index.vue
+++ b/src/views/salesManagement/salesLedger/index.vue
@@ -306,7 +306,7 @@
 				<el-table-column prop="status" label="瀹℃壒鐘舵��" width="120" align="center" />
 				<el-table-column prop="totalAmount" label="鎶ヤ环閲戦(鍏�)" width="160" align="right">
 					<template #default="scope">
-						{{ Number(scope.row.totalAmount ?? 0).toFixed(2) }}
+						{{ Number(scope.row.totalAmount ?? 0).toFixed(3) }}
 					</template>
 				</el-table-column>
 				<el-table-column fixed="right" label="鎿嶄綔" width="120" align="center">
@@ -377,8 +377,8 @@
 				<el-row :gutter="30">
 					<el-col :span="12">
 						<el-form-item label="鍚◣鍗曚环(鍏�)锛�" prop="taxInclusiveUnitPrice">
-							<el-input-number :step="0.01" :min="0" v-model="productForm.taxInclusiveUnitPrice" style="width: 100%"
-															 :precision="2"
+							<el-input-number :step="0.001" :min="0" v-model="productForm.taxInclusiveUnitPrice" style="width: 100%"
+															 :precision="3"
 															 placeholder="璇疯緭鍏�" clearable @change="calculateFromUnitPrice" />
 						</el-form-item>
 					</el-col>
@@ -923,7 +923,16 @@
 	});
 };
 const formattedNumber = (row, column, cellValue) => {
-	return parseFloat(cellValue).toFixed(2);
+	return parseFloat(cellValue).toFixed(3);
+};
+/** 閿�鍞彴璐﹀崟浠�/鎬讳环缁熶竴淇濈暀 3 浣嶅皬鏁帮紙涓庡叏灞� calculateTax* 鐨� 2 浣嶅尯鍒嗭級 */
+const calculateSalesTaxIncludeTotalPrice = (taxInclusiveUnitPrice, quantity) => {
+	return (Number(taxInclusiveUnitPrice) * Number(quantity)).toFixed(3);
+};
+const calculateSalesTaxExclusiveTotalPrice = (taxInclusiveTotalPrice, taxRate) => {
+	const taxRateDecimal = Number(taxRate) / 100;
+	const t = Number(taxInclusiveTotalPrice);
+	return (t / (1 + taxRateDecimal)).toFixed(3);
 };
 // 鑾峰彇tree瀛愭暟鎹�
 const getModels = (value) => {
@@ -1158,8 +1167,8 @@
 		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(taxInclusiveTotalPrice, taxRate);
+		const taxInclusiveTotalPrice = (unitPrice * quantity).toFixed(3);
+		const taxExclusiveTotalPrice = calculateSalesTaxExclusiveTotalPrice(taxInclusiveTotalPrice, taxRate);
 		return {
 			// 鍙拌处瀛楁
 			productCategory: p.product || p.productName || "",
@@ -1167,7 +1176,7 @@
 			unit: p.unit || "",
 			quantity: quantity,
 			taxRate: taxRate,
-			taxInclusiveUnitPrice: unitPrice.toFixed(2),
+			taxInclusiveUnitPrice: unitPrice.toFixed(3),
 			taxInclusiveTotalPrice: taxInclusiveTotalPrice,
 			taxExclusiveTotalPrice: taxExclusiveTotalPrice,
 			invoiceType: "澧炴櫘绁�",
@@ -1815,7 +1824,7 @@
 	const total = products.reduce((sum, product) => {
 		return sum + (parseFloat(product.taxInclusiveTotalPrice) || 0);
 	}, 0);
-	return total.toFixed(2);
+	return total.toFixed(3);
 };
 
 // 鐢ㄤ簬鎵撳嵃鐨勮绠楀嚱鏁�
@@ -1832,7 +1841,7 @@
 	const total = products.reduce((sum, product) => {
 		return sum + (parseFloat(product.taxInclusiveTotalPrice) || 0);
 	}, 0);
-	return total.toFixed(2);
+	return total.toFixed(3);
 };
 
 const mathNum = () => {
@@ -1844,18 +1853,16 @@
 		return;
 	}
 	// 鍚◣鎬讳环璁$畻
-	productForm.value.taxInclusiveTotalPrice =
-		proxy.calculateTaxIncludeTotalPrice(
-			productForm.value.taxInclusiveUnitPrice,
-			productForm.value.quantity
-		);
+	productForm.value.taxInclusiveTotalPrice = calculateSalesTaxIncludeTotalPrice(
+		productForm.value.taxInclusiveUnitPrice,
+		productForm.value.quantity
+	);
 	if (productForm.value.taxRate) {
 		// 涓嶅惈绋庢�讳环璁$畻
-		productForm.value.taxExclusiveTotalPrice =
-			proxy.calculateTaxExclusiveTotalPrice(
-				productForm.value.taxInclusiveTotalPrice,
-				productForm.value.taxRate
-			);
+		productForm.value.taxExclusiveTotalPrice = calculateSalesTaxExclusiveTotalPrice(
+			productForm.value.taxInclusiveTotalPrice,
+			productForm.value.taxRate
+		);
 	}
 };
 
@@ -1873,15 +1880,14 @@
 	isCalculating.value = true;
 	
 	// 璁$畻鍚◣鍗曚环 = 鍚◣鎬讳环 / 鏁伴噺
-	productForm.value.taxInclusiveUnitPrice = (totalPrice / quantity).toFixed(2);
+	productForm.value.taxInclusiveUnitPrice = (totalPrice / quantity).toFixed(3);
 	
 	// 濡傛灉鏈夌◣鐜囷紝璁$畻涓嶅惈绋庢�讳环
 	if (productForm.value.taxRate) {
-		productForm.value.taxExclusiveTotalPrice =
-			proxy.calculateTaxExclusiveTotalPrice(
-				totalPrice,
-				productForm.value.taxRate
-			);
+		productForm.value.taxExclusiveTotalPrice = calculateSalesTaxExclusiveTotalPrice(
+			totalPrice,
+			productForm.value.taxRate
+		);
 	}
 	
 	isCalculating.value = false;
@@ -1908,10 +1914,10 @@
 	// 鍏堣绠楀惈绋庢�讳环 = 涓嶅惈绋庢�讳环 / (1 - 绋庣巼/100)
 	const taxRateDecimal = taxRate / 100;
 	const inclusiveTotalPrice = exclusiveTotalPrice / (1 - taxRateDecimal);
-	productForm.value.taxInclusiveTotalPrice = inclusiveTotalPrice.toFixed(2);
+	productForm.value.taxInclusiveTotalPrice = inclusiveTotalPrice.toFixed(3);
 	
 	// 璁$畻鍚◣鍗曚环 = 鍚◣鎬讳环 / 鏁伴噺
-	productForm.value.taxInclusiveUnitPrice = (inclusiveTotalPrice / quantity).toFixed(2);
+	productForm.value.taxInclusiveUnitPrice = (inclusiveTotalPrice / quantity).toFixed(3);
 	
 	isCalculating.value = false;
 };
@@ -1934,15 +1940,14 @@
 	isCalculating.value = true;
 	
 	// 璁$畻鍚◣鎬讳环
-	productForm.value.taxInclusiveTotalPrice = (unitPrice * quantity).toFixed(2);
+	productForm.value.taxInclusiveTotalPrice = (unitPrice * quantity).toFixed(3);
 	
 	// 濡傛灉鏈夌◣鐜囷紝璁$畻涓嶅惈绋庢�讳环
 	if (productForm.value.taxRate) {
-		productForm.value.taxExclusiveTotalPrice =
-			proxy.calculateTaxExclusiveTotalPrice(
-				productForm.value.taxInclusiveTotalPrice,
-				productForm.value.taxRate
-			);
+		productForm.value.taxExclusiveTotalPrice = calculateSalesTaxExclusiveTotalPrice(
+			productForm.value.taxInclusiveTotalPrice,
+			productForm.value.taxRate
+		);
 	}
 	
 	isCalculating.value = false;
@@ -1966,15 +1971,14 @@
 	isCalculating.value = true;
 	
 	// 璁$畻鍚◣鎬讳环
-	productForm.value.taxInclusiveTotalPrice = (unitPrice * quantity).toFixed(2);
+	productForm.value.taxInclusiveTotalPrice = (unitPrice * quantity).toFixed(3);
 	
 	// 濡傛灉鏈夌◣鐜囷紝璁$畻涓嶅惈绋庢�讳环
 	if (productForm.value.taxRate) {
-		productForm.value.taxExclusiveTotalPrice =
-			proxy.calculateTaxExclusiveTotalPrice(
-				productForm.value.taxInclusiveTotalPrice,
-				productForm.value.taxRate
-			);
+		productForm.value.taxExclusiveTotalPrice = calculateSalesTaxExclusiveTotalPrice(
+			productForm.value.taxInclusiveTotalPrice,
+			productForm.value.taxRate
+		);
 	}
 	
 	isCalculating.value = false;
@@ -1998,11 +2002,10 @@
 	isCalculating.value = true;
 	
 	// 璁$畻涓嶅惈绋庢�讳环
-	productForm.value.taxExclusiveTotalPrice =
-		proxy.calculateTaxExclusiveTotalPrice(
-			inclusiveTotalPrice,
-			taxRate
-		);
+	productForm.value.taxExclusiveTotalPrice = calculateSalesTaxExclusiveTotalPrice(
+		inclusiveTotalPrice,
+		taxRate
+	);
 	
 	isCalculating.value = false;
 };

--
Gitblit v1.9.3