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