From 3ab45f295fb26c7794b4829976f3fb20c68a012e Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期四, 22 一月 2026 10:33:41 +0800
Subject: [PATCH] 新疆海川开心 1.采购模块的计算都改为保留三位小数并且不四舍五入
---
src/views/procurementManagement/invoiceEntry/components/Modal.vue | 128 ++++++++++++++++++++++++------------------
1 files changed, 74 insertions(+), 54 deletions(-)
diff --git a/src/views/procurementManagement/invoiceEntry/components/Modal.vue b/src/views/procurementManagement/invoiceEntry/components/Modal.vue
index 6e9346c..ba31332 100644
--- a/src/views/procurementManagement/invoiceEntry/components/Modal.vue
+++ b/src/views/procurementManagement/invoiceEntry/components/Modal.vue
@@ -1,5 +1,5 @@
<template>
- <el-dialog :title="modalOptions.title" v-model="visible" width="70%">
+ <el-dialog :title="modalOptions.title" v-model="visible" width="70%" draggable>
<el-form
ref="formRef"
:model="form"
@@ -149,7 +149,7 @@
<el-table-column label="鏈寮�绁ㄦ暟" prop="ticketsNum" width="180">
<template #default="scope">
<el-input-number :step="0.1" :min="0" style="width: 100%"
- :precision="2"
+ :precision="3"
v-model="scope.row.ticketsNum"
@change="invoiceNumBlur(scope.row)"
/>
@@ -162,7 +162,7 @@
>
<template #default="scope">
<el-input-number :step="0.01" :min="0" style="width: 100%"
- :precision="2"
+ :precision="3"
v-model="scope.row.ticketsAmount"
@change="invoiceAmountBlur(scope.row)"
/>
@@ -214,6 +214,7 @@
import { getToken } from "@/utils/auth";
import useUserStore from "@/store/modules/user";
import dayjs from "dayjs";
+import { truncate } from "@/utils/index.js";
defineOptions({
name: "鏉ョエ鐧昏妯℃�佹",
@@ -303,7 +304,7 @@
prop: "taxInclusiveUnitPrice",
width: 150,
formatData: (val) => {
- return val ? parseFloat(val).toFixed(2) : 0;
+ return val ? truncate(parseFloat(val), 3) : 0;
},
},
{
@@ -311,7 +312,7 @@
prop: "taxInclusiveTotalPrice",
width: 150,
formatData: (val) => {
- return parseFloat(val).toFixed(2) ?? 0;
+ return val ? truncate(parseFloat(val), 3) : 0;
},
},
{
@@ -319,7 +320,7 @@
prop: "taxExclusiveTotalPrice",
width: 150,
formatData: (val) => {
- return parseFloat(val).toFixed(2) ?? 0;
+ return val ? truncate(parseFloat(val), 3) : 0;
},
},
{
@@ -351,10 +352,10 @@
];
const formattedNumber = (row, column, cellValue) => {
if (cellValue == 0) {
- return parseFloat(cellValue).toFixed(2);
+ return truncate(parseFloat(cellValue), 3);
}
if (cellValue) {
- return parseFloat(cellValue).toFixed(2);
+ return truncate(parseFloat(cellValue), 3);
} else {
return cellValue;
}
@@ -408,7 +409,6 @@
// 璁剧疆琛ㄥ崟鏁版嵁锛堜娇鐢ㄧ涓�涓悎鍚岀殑鍩烘湰淇℃伅锛岄噰璐悎鍚屽彿鐣欑┖锛�
form.purchaseLedgerNo = ""; // 閲囪喘鍚堝悓鍙风暀绌猴紝鍥犱负浼氬湪浜у搧琛ㄦ牸涓垎鍒樉绀�
- form.invoiceAmount = 0;
form.invoiceNumber = "";
form.entryDate = dayjs().format("YYYY-MM-DD");
form.enterDate = dayjs().format("YYYY-MM-DD");
@@ -419,7 +419,27 @@
form.issUerId = userStore.id;
form.issUer = userStore.nickName;
+ // 璁剧疆浜у搧鏁版嵁锛屽苟鍒濆鍖栧紑绁ㄦ暟閲忓拰閲戦
+ allProductData.forEach(item => {
+ // 鏈寮�绁ㄦ暟榛樿涓烘�绘暟閲�
+ item.ticketsNum = Number(item.quantity || 0);
+ // 鏈寮�绁ㄩ噾棰濋粯璁や负鍚◣鎬讳环
+ item.ticketsAmount = Number(item.taxInclusiveTotalPrice || 0);
+ // 淇濆瓨鍘熷鏈潵绁ㄦ暟鍜岄噾棰濓紙鐢ㄤ簬璁$畻锛�
+ item.tempFutureTickets = Number(item.quantity || 0);
+ item.tempFutureTicketsAmount = Number(item.taxInclusiveTotalPrice || 0);
+ // 鏈潵绁ㄦ暟鍜岄噾棰濆垵濮嬩负0锛堝洜涓哄叏閮ㄥ紑绁級
+ item.futureTickets = 0;
+ item.futureTicketsAmount = 0;
+ });
+
form.productData = allProductData;
+
+ // 璁$畻鍙戠エ閲戦锛氭墍鏈変骇鍝佺殑鍚◣鎬讳环涔嬪拰
+ const totalAmount = allProductData.reduce((sum, item) => {
+ return sum + (Number(item.taxInclusiveTotalPrice) || 0);
+ }, 0);
+ form.invoiceAmount = truncate(totalAmount, 3);
// 瀛樺偍閫変腑鐨勫悎鍚屾暟鎹�
selectedContracts.value = selectedRows;
@@ -461,11 +481,11 @@
return;
}
// 璁$畻鏈鏉ョエ閲戦
- row.ticketsAmount = (row.ticketsNum * row.taxInclusiveUnitPrice).toFixed(2)
+ row.ticketsAmount = truncate(row.ticketsNum * row.taxInclusiveUnitPrice, 3)
// 璁$畻鏈潵绁ㄦ暟
- row.futureTickets = (row.tempFutureTickets - row.ticketsNum).toFixed(2)
+ row.futureTickets = truncate(row.tempFutureTickets - row.ticketsNum, 3)
// 璁$畻鏈潵绁ㄩ噾棰�
- row.futureTicketsAmount = (row.tempFutureTicketsAmount - row.ticketsAmount).toFixed(2)
+ row.futureTicketsAmount = truncate(row.tempFutureTicketsAmount - row.ticketsAmount, 3)
calculateinvoiceAmount();
};
@@ -481,12 +501,12 @@
}
// 璁$畻鏈鏉ョエ鏁�
row.ticketsNum = Number(
- (row.ticketsAmount / row.taxInclusiveUnitPrice).toFixed(2)
+ truncate(row.ticketsAmount / row.taxInclusiveUnitPrice, 3)
);
// 璁$畻鏈潵绁ㄦ暟
- row.futureTickets = (row.tempFutureTickets - row.ticketsNum).toFixed(2)
+ row.futureTickets = truncate(row.tempFutureTickets - row.ticketsNum, 3)
// 璁$畻鏈潵绁ㄩ噾棰�
- row.futureTicketsAmount = (row.tempFutureTicketsAmount - row.ticketsAmount).toFixed(2)
+ row.futureTicketsAmount = truncate(row.tempFutureTicketsAmount - row.ticketsAmount, 3)
calculateinvoiceAmount();
};
@@ -497,7 +517,7 @@
invoiceAmountTotal += Number(item.ticketsAmount);
}
});
- form.invoiceAmount = invoiceAmountTotal.toFixed(2);
+ form.invoiceAmount = truncate(invoiceAmountTotal, 3);
};
const open = async (type, selectedRows) => {
@@ -586,45 +606,45 @@
proxy.$modal.msgError("鎵归噺鐧昏澶辫触");
});
} else {
- // 鍗曚釜鍚堝悓鎻愪氦閫昏緫
- const singleContract = selectedContracts.value[0];
- const singleForm = {
- // 鍩虹琛ㄥ崟鏁版嵁
- invoiceNumber: form.invoiceNumber,
- invoiceAmount: form.invoiceAmount,
- entryDate: form.entryDate,
- enterDate: form.enterDate,
- issUerId: form.issUerId, // 褰曞叆浜篿d
- issUer: form.issUer, // 褰曞叆浜�
- tempFileIds: form.tempFileIds,
+ // 鍗曚釜鍚堝悓鎻愪氦閫昏緫 - 浠ユ暟缁勬牸寮忎紶閫�
+ const singleContract = selectedContracts.value[0];
+ const singleFormArray = [{
+ // 鍩虹琛ㄥ崟鏁版嵁
+ invoiceNumber: form.invoiceNumber,
+ invoiceAmount: form.invoiceAmount,
+ entryDate: form.entryDate,
+ enterDate: form.enterDate,
+ issUerId: form.issUerId, // 褰曞叆浜篿d
+ issUer: form.issUer, // 褰曞叆浜�
+ tempFileIds: form.tempFileIds,
+
+ // 鍚堝悓瀹為檯淇℃伅
+ purchaseLedgerId: singleContract.id, // 浣跨敤id浣滀负瀛楁鍚嶏紝鍊间负purchaseLedgerId
+ purchaseContractNumber: singleContract.purchaseContractNumber, // 浣跨敤瀹為檯鐨勯噰璐悎鍚屽彿
+ salesContractNo: singleContract.salesContractNo, // 浣跨敤瀹為檯鐨勯攢鍞悎鍚屽彿
+ supplierName: singleContract.supplierName, // 浣跨敤瀹為檯鐨勪緵搴斿晢鍚嶇О
+ projectName: singleContract.projectName, // 浣跨敤瀹為檯鐨勯」鐩悕绉�
+
+ // 浜у搧鏁版嵁
+ productData: proxy.HaveJson(form.productData),
+
+ // 鎵归噺鏍囪瘑
+ isBatch: false,
+ type: 4
+ }];
- // 鍚堝悓瀹為檯淇℃伅
- purchaseLedgerId: singleContract.id, // 浣跨敤id浣滀负瀛楁鍚嶏紝鍊间负purchaseLedgerId
- purchaseContractNumber: singleContract.purchaseContractNumber, // 浣跨敤瀹為檯鐨勯噰璐悎鍚屽彿
- salesContractNo: singleContract.salesContractNo, // 浣跨敤瀹為檯鐨勯攢鍞悎鍚屽彿
- supplierName: singleContract.supplierName, // 浣跨敤瀹為檯鐨勪緵搴斿晢鍚嶇О
- projectName: singleContract.projectName, // 浣跨敤瀹為檯鐨勯」鐩悕绉�
-
- // 浜у搧鏁版嵁
- productData: proxy.HaveJson(form.productData),
-
- // 鎵归噺鏍囪瘑
- isBatch: false,
- type: 4
- };
-
- modalLoading.value = true;
- addOrUpdateRegistration(singleForm).then((res) => {
- modalLoading.value = false;
- if (res.code === 200) {
- proxy.$modal.msgSuccess("鐧昏鎴愬姛");
- closeAndRefresh();
- }
- }).catch(() => {
- modalLoading.value = false;
- proxy.$modal.msgError("鐧昏澶辫触");
- });
- }
+ modalLoading.value = true;
+ addOrUpdateRegistration(singleFormArray).then((res) => {
+ modalLoading.value = false;
+ if (res.code === 200) {
+ proxy.$modal.msgSuccess("鐧昏鎴愬姛");
+ closeAndRefresh();
+ }
+ }).catch(() => {
+ modalLoading.value = false;
+ proxy.$modal.msgError("鐧昏澶辫触");
+ });
+ }
}
});
};
--
Gitblit v1.9.3