From 388e286dc8a5b3b8c4717cc74bf128c807eba6b7 Mon Sep 17 00:00:00 2001
From: 张诺 <zhang_12370@163.com>
Date: 星期一, 20 四月 2026 14:07:58 +0800
Subject: [PATCH] fix: 阳光彩印-修复总价计算中的数值处理并调整税率验证逻辑
---
src/views/procurementManagement/procurementLedger/index.vue | 80 ++++++++++++++++++++++++---------------
1 files changed, 49 insertions(+), 31 deletions(-)
diff --git a/src/views/procurementManagement/procurementLedger/index.vue b/src/views/procurementManagement/procurementLedger/index.vue
index 20c6b1c..8543b26 100644
--- a/src/views/procurementManagement/procurementLedger/index.vue
+++ b/src/views/procurementManagement/procurementLedger/index.vue
@@ -599,7 +599,7 @@
<el-form-item label="鍚◣鍗曚环(鍏�)锛�"
prop="taxInclusiveUnitPrice">
<el-input-number v-model="productForm.taxInclusiveUnitPrice"
- :precision="2"
+ :precision="3"
:step="0.1"
:min="0"
clearable
@@ -612,7 +612,7 @@
prop="quantity">
<el-input-number :step="0.1"
clearable
- :precision="2"
+ :precision="3"
:min="0"
style="width: 100%"
v-model="productForm.quantity"
@@ -626,7 +626,7 @@
<el-form-item label="鍚◣鎬讳环(鍏�)锛�"
prop="taxInclusiveTotalPrice">
<el-input-number v-model="productForm.taxInclusiveTotalPrice"
- :precision="2"
+ :precision="3"
:step="0.1"
:min="0"
clearable
@@ -638,7 +638,7 @@
<el-form-item label="涓嶅惈绋庢�讳环(鍏�)锛�"
prop="taxExclusiveTotalPrice">
<el-input-number v-model="productForm.taxExclusiveTotalPrice"
- :precision="2"
+ :precision="3"
:step="0.1"
:min="0"
clearable
@@ -665,7 +665,7 @@
<el-form-item label="搴撳瓨棰勮鏁伴噺锛�"
prop="warnNum">
<el-input-number v-model="productForm.warnNum"
- :precision="2"
+ :precision="3"
:step="0.1"
:min="0"
clearable
@@ -921,9 +921,9 @@
approverId: [
{ required: true, message: "璇烽�夋嫨瀹℃壒浜�", trigger: "change" },
],
- projectName: [
- { required: true, message: "璇疯緭鍏ラ」鐩悕绉�", trigger: "blur" },
- ],
+ // projectName: [
+ // { required: true, message: "璇疯緭鍏ラ」鐩悕绉�", trigger: "blur" },
+ // ],
supplierId: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
entryDate: [{ required: true, message: "璇烽�夋嫨", trigger: "change" }],
executionDate: [{ required: true, message: "璇烽�夋嫨", trigger: "change" }],
@@ -970,7 +970,7 @@
taxInclusiveUnitPrice: [
{ required: true, message: "璇疯緭鍏�", trigger: "blur" },
],
- taxRate: [{ required: true, message: "璇烽�夋嫨", trigger: "change" }],
+ // taxRate: [{ required: true, message: "璇烽�夋嫨", trigger: "change" }],
warnNum: [{ required: true, message: "璇烽�夋嫨", trigger: "change" }],
taxInclusiveTotalPrice: [
{ required: true, message: "璇疯緭鍏�", trigger: "blur" },
@@ -978,7 +978,7 @@
taxExclusiveTotalPrice: [
{ required: true, message: "璇疯緭鍏�", trigger: "blur" },
],
- invoiceType: [{ required: true, message: "璇烽�夋嫨", trigger: "change" }],
+ // invoiceType: [{ required: true, message: "璇烽�夋嫨", trigger: "change" }],
isChecked: [{ required: true, message: "璇烽�夋嫨", trigger: "change" }],
},
});
@@ -1067,7 +1067,7 @@
};
const formattedNumber = (row, column, cellValue) => {
- return parseFloat(cellValue).toFixed(2);
+ return parseFloat(cellValue).toFixed(3);
};
// 鏌ヨ鍒楄〃
/** 鎼滅储鎸夐挳鎿嶄綔 */
@@ -1191,6 +1191,9 @@
{
ticketsNum: { noDecimal: true }, // 涓嶄繚鐣欏皬鏁�
futureTickets: { noDecimal: true }, // 涓嶄繚鐣欏皬鏁�
+ taxInclusiveUnitPrice: { decimalPlaces: 3 },
+ taxInclusiveTotalPrice: { decimalPlaces: 3 },
+ taxExclusiveTotalPrice: { decimalPlaces: 3 },
}
);
};
@@ -1254,7 +1257,9 @@
};
// 涓昏〃鍚堣鏂规硶
const summarizeMainTable = param => {
- return proxy.summarizeTable(param, ["contractAmount"]);
+ return proxy.summarizeTable(param, ["contractAmount"], {
+ contractAmount: { decimalPlaces: 3 },
+ });
};
// 瀛愯〃鍚堣鏂规硶
const summarizeProTable = param => {
@@ -1262,7 +1267,11 @@
"taxInclusiveUnitPrice",
"taxInclusiveTotalPrice",
"taxExclusiveTotalPrice",
- ]);
+ ], {
+ taxInclusiveUnitPrice: { decimalPlaces: 3 },
+ taxInclusiveTotalPrice: { decimalPlaces: 3 },
+ taxExclusiveTotalPrice: { decimalPlaces: 3 },
+ });
};
// 鎵撳紑寮规
const openForm = async (type, row) => {
@@ -1683,12 +1692,12 @@
const handleDelete = () => {
let ids = [];
if (selectedRows.value.length > 0) {
- ids = selectedRows.value.map(item => item.id);
+ ids = selectedRows.value.filter(item => item.salesLedgerId === null).map(item => item.id);
} else {
proxy.$modal.msgWarning("璇烽�夋嫨鏁版嵁");
return;
}
- ElMessageBox.confirm("閫変腑鐨勫唴瀹瑰皢琚垹闄わ紝鏄惁纭鍒犻櫎锛�", "瀵煎嚭", {
+ ElMessageBox.confirm("閫変腑鐨勫唴瀹瑰皢琚垹闄わ紝鏄惁纭鍒犻櫎锛�", "鍒犻櫎", {
confirmButtonText: "纭",
cancelButtonText: "鍙栨秷",
type: "warning",
@@ -1712,10 +1721,10 @@
return `${year}-${month}-${day}`;
}
const mathNum = () => {
- if (!productForm.value.taxRate) {
- proxy.$modal.msgWarning("璇峰厛閫夋嫨绋庣巼");
- return;
- }
+ // if (!productForm.value.taxRate) {
+ // proxy.$modal.msgWarning("璇峰厛閫夋嫨绋庣巼");
+ // return;
+ // }
if (!productForm.value.taxInclusiveUnitPrice) {
return;
}
@@ -1726,22 +1735,31 @@
productForm.value.taxInclusiveTotalPrice =
proxy.calculateTaxIncludeTotalPrice(
productForm.value.taxInclusiveUnitPrice,
- productForm.value.quantity
+ productForm.value.quantity,
+ 3
);
if (productForm.value.taxRate) {
// 涓嶅惈绋庢�讳环璁$畻
productForm.value.taxExclusiveTotalPrice =
proxy.calculateTaxExclusiveTotalPrice(
productForm.value.taxInclusiveTotalPrice,
- productForm.value.taxRate
+ productForm.value.taxRate,
+ 3
);
+ }else{
+ productForm.value.taxExclusiveTotalPrice =
+ proxy.calculateTaxIncludeTotalPrice(
+ productForm.value.taxInclusiveUnitPrice,
+ productForm.value.quantity,
+ 3
+ );
}
};
const reverseMathNum = field => {
- if (!productForm.value.taxRate) {
- proxy.$modal.msgWarning("璇峰厛閫夋嫨绋庣巼");
- return;
- }
+ // if (!productForm.value.taxRate) {
+ // proxy.$modal.msgWarning("璇峰厛閫夋嫨绋庣巼");
+ // return;
+ // }
const taxRate = Number(productForm.value.taxRate);
if (!taxRate) return;
@@ -1764,7 +1782,7 @@
productForm.value.taxInclusiveUnitPrice = (
Number(productForm.value.taxInclusiveTotalPrice) /
Number(productForm.value.quantity)
- ).toFixed(2);
+ ).toFixed(3);
// 纭繚缁撴灉涓嶄负璐熸暟
if (Number(productForm.value.taxInclusiveUnitPrice) < 0) {
productForm.value.taxInclusiveUnitPrice = "0";
@@ -1775,7 +1793,7 @@
productForm.value.quantity = (
Number(productForm.value.taxInclusiveTotalPrice) /
Number(productForm.value.taxInclusiveUnitPrice)
- ).toFixed(2);
+ ).toFixed(3);
// 纭繚缁撴灉涓嶄负璐熸暟
if (Number(productForm.value.quantity) < 0) {
productForm.value.quantity = "0";
@@ -1785,7 +1803,7 @@
productForm.value.taxExclusiveTotalPrice = (
Number(productForm.value.taxInclusiveTotalPrice) /
(1 + taxRate / 100)
- ).toFixed(2);
+ ).toFixed(3);
// 纭繚缁撴灉涓嶄负璐熸暟
if (Number(productForm.value.taxExclusiveTotalPrice) < 0) {
productForm.value.taxExclusiveTotalPrice = "0";
@@ -1795,7 +1813,7 @@
productForm.value.taxInclusiveTotalPrice = (
Number(productForm.value.taxExclusiveTotalPrice) *
(1 + taxRate / 100)
- ).toFixed(2);
+ ).toFixed(3);
// 纭繚缁撴灉涓嶄负璐熸暟
if (Number(productForm.value.taxInclusiveTotalPrice) < 0) {
productForm.value.taxInclusiveTotalPrice = "0";
@@ -1805,7 +1823,7 @@
productForm.value.taxInclusiveUnitPrice = (
Number(productForm.value.taxInclusiveTotalPrice) /
Number(productForm.value.quantity)
- ).toFixed(2);
+ ).toFixed(3);
// 纭繚缁撴灉涓嶄负璐熸暟
if (Number(productForm.value.taxInclusiveUnitPrice) < 0) {
productForm.value.taxInclusiveUnitPrice = "0";
@@ -1816,7 +1834,7 @@
productForm.value.quantity = (
Number(productForm.value.taxInclusiveTotalPrice) /
Number(productForm.value.taxInclusiveUnitPrice)
- ).toFixed(2);
+ ).toFixed(3);
// 纭繚缁撴灉涓嶄负璐熸暟
if (Number(productForm.value.quantity) < 0) {
productForm.value.quantity = "0";
--
Gitblit v1.9.3