From 9f3bc47b98cbc51df7cfcea94d4aa0c35f40cbc5 Mon Sep 17 00:00:00 2001
From: yuan <123@>
Date: 星期二, 13 十月 2026 14:09:06 +0800
Subject: [PATCH] feat: 添加数字格式化工具,支持去掉小数末尾多余的 0 和四舍五入功能
---
src/views/procurementManagement/procurementLedger/index.vue | 82 ++++++++++++++++++++++++++++++-----------
1 files changed, 60 insertions(+), 22 deletions(-)
diff --git a/src/views/procurementManagement/procurementLedger/index.vue b/src/views/procurementManagement/procurementLedger/index.vue
index bbe8ef3..61852f4 100644
--- a/src/views/procurementManagement/procurementLedger/index.vue
+++ b/src/views/procurementManagement/procurementLedger/index.vue
@@ -68,6 +68,7 @@
<div style="display: flex;justify-content: flex-end;margin-bottom: 20px;">
<el-button type="success"
plain
+ v-if="false"
@click="handleBatchGenerate">鎵归噺鐢熸垚鏁版嵁</el-button>
<el-button type="primary"
@click="openForm('add')">鏂板鍙拌处</el-button>
@@ -124,7 +125,7 @@
<el-table-column label="鍙敤鏁伴噺"
prop="availableQuality" />
<el-table-column label="閫�璐ф暟閲�"
- prop="returnQuality" />
+ prop="returnQuantity" />
<el-table-column label="绋庣巼(%)"
prop="taxRate" />
<el-table-column label="鍚◣鍗曚环(鍏�)"
@@ -194,6 +195,11 @@
width="200"
show-overflow-tooltip
:formatter="formattedNumber" />
+<!-- <el-table-column label="瀹為檯鍚堝悓閲戦(鍏�)"-->
+<!-- prop="netContractAmount"-->
+<!-- width="200"-->
+<!-- show-overflow-tooltip-->
+<!-- :formatter="formattedNumber" />-->
<el-table-column label="褰曞叆浜�"
prop="recorderName"
width="120"
@@ -593,7 +599,7 @@
<el-form-item label="鍚◣鍗曚环(鍏�)锛�"
prop="taxInclusiveUnitPrice">
<el-input-number v-model="productForm.taxInclusiveUnitPrice"
- :precision="2"
+ :precision="6"
:step="0.1"
:min="0"
clearable
@@ -606,7 +612,7 @@
prop="quantity">
<el-input-number :step="0.1"
clearable
- :precision="2"
+ :precision="6"
:min="0"
style="width: 100%"
v-model="productForm.quantity"
@@ -620,7 +626,7 @@
<el-form-item label="鍚◣鎬讳环(鍏�)锛�"
prop="taxInclusiveTotalPrice">
<el-input-number v-model="productForm.taxInclusiveTotalPrice"
- :precision="2"
+ :precision="6"
:step="0.1"
:min="0"
clearable
@@ -632,7 +638,7 @@
<el-form-item label="涓嶅惈绋庢�讳环(鍏�)锛�"
prop="taxExclusiveTotalPrice">
<el-input-number v-model="productForm.taxExclusiveTotalPrice"
- :precision="2"
+ :precision="6"
:step="0.1"
:min="0"
clearable
@@ -659,7 +665,7 @@
<el-form-item label="搴撳瓨棰勮鏁伴噺锛�"
prop="warnNum">
<el-input-number v-model="productForm.warnNum"
- :precision="2"
+ :precision="6"
:step="0.1"
:min="0"
clearable
@@ -755,6 +761,7 @@
import { modelList, productTreeList } from "@/api/basicData/product.js";
import dayjs from "dayjs";
import FileUpload from "@/components/AttachmentUpload/file/index.vue";
+ import { trimZeros } from "@/utils/formatNumber.js";
const userStore = useUserStore();
@@ -938,7 +945,16 @@
},
});
const { form, rules } = toRefs(data);
- const { form: searchForm } = useFormData(data.searchForm);
+ const { form: searchForm } = useFormData({
+ ...data.searchForm,
+ // 璁剧疆褰曞叆鏃ユ湡鑼冨洿涓哄綋澶�
+ entryDate: [
+ dayjs().startOf("day").format("YYYY-MM-DD"),
+ dayjs().endOf("day").format("YYYY-MM-DD"),
+ ],
+ entryDateStart: dayjs().startOf("day").format("YYYY-MM-DD"),
+ entryDateEnd: dayjs().endOf("day").format("YYYY-MM-DD"),
+ });
// 浜у搧琛ㄥ崟寮规鏁版嵁
const productFormVisible = ref(false);
@@ -1070,7 +1086,7 @@
};
const formattedNumber = (row, column, cellValue) => {
- return parseFloat(cellValue).toFixed(2);
+ return trimZeros(cellValue, 6);
};
// 鏌ヨ鍒楄〃
/** 鎼滅储鎸夐挳鎿嶄綔 */
@@ -1190,6 +1206,11 @@
"futureTicketsAmount",
],
{
+ taxInclusiveUnitPrice: { decimalPlaces: 6, trimZeros: true },
+ taxInclusiveTotalPrice: { decimalPlaces: 6, trimZeros: true },
+ taxExclusiveTotalPrice: { decimalPlaces: 6, trimZeros: true },
+ ticketsAmount: { decimalPlaces: 6, trimZeros: true },
+ futureTicketsAmount: { decimalPlaces: 6, trimZeros: true },
ticketsNum: { noDecimal: true }, // 涓嶄繚鐣欏皬鏁�
futureTickets: { noDecimal: true }, // 涓嶄繚鐣欏皬鏁�
}
@@ -1255,15 +1276,30 @@
};
// 涓昏〃鍚堣鏂规硶
const summarizeMainTable = param => {
- return proxy.summarizeTable(param, ["contractAmount"]);
+ return proxy.summarizeTable(
+ param,
+ ["contractAmount", "netContractAmount"],
+ {
+ contractAmount: { decimalPlaces: 6, trimZeros: true },
+ netContractAmount: { decimalPlaces: 6, trimZeros: true },
+ }
+ );
};
// 瀛愯〃鍚堣鏂规硶
const summarizeProTable = param => {
- return proxy.summarizeTable(param, [
- "taxInclusiveUnitPrice",
- "taxInclusiveTotalPrice",
- "taxExclusiveTotalPrice",
- ]);
+ return proxy.summarizeTable(
+ param,
+ [
+ "taxInclusiveUnitPrice",
+ "taxInclusiveTotalPrice",
+ "taxExclusiveTotalPrice",
+ ],
+ {
+ taxInclusiveUnitPrice: { decimalPlaces: 6, trimZeros: true },
+ taxInclusiveTotalPrice: { decimalPlaces: 6, trimZeros: true },
+ taxExclusiveTotalPrice: { decimalPlaces: 6, trimZeros: true },
+ }
+ );
};
// 鎵撳紑寮规
const openForm = async (type, row) => {
@@ -1771,14 +1807,16 @@
productForm.value.taxInclusiveTotalPrice =
proxy.calculateTaxIncludeTotalPrice(
productForm.value.taxInclusiveUnitPrice,
- productForm.value.quantity
+ productForm.value.quantity,
+ 6
);
if (productForm.value.taxRate) {
// 涓嶅惈绋庢�讳环璁$畻
productForm.value.taxExclusiveTotalPrice =
proxy.calculateTaxExclusiveTotalPrice(
productForm.value.taxInclusiveTotalPrice,
- productForm.value.taxRate
+ productForm.value.taxRate,
+ 6
);
}
};
@@ -1809,7 +1847,7 @@
productForm.value.taxInclusiveUnitPrice = (
Number(productForm.value.taxInclusiveTotalPrice) /
Number(productForm.value.quantity)
- ).toFixed(2);
+ ).toFixed(6);
// 纭繚缁撴灉涓嶄负璐熸暟
if (Number(productForm.value.taxInclusiveUnitPrice) < 0) {
productForm.value.taxInclusiveUnitPrice = "0";
@@ -1820,7 +1858,7 @@
productForm.value.quantity = (
Number(productForm.value.taxInclusiveTotalPrice) /
Number(productForm.value.taxInclusiveUnitPrice)
- ).toFixed(2);
+ ).toFixed(6);
// 纭繚缁撴灉涓嶄负璐熸暟
if (Number(productForm.value.quantity) < 0) {
productForm.value.quantity = "0";
@@ -1830,7 +1868,7 @@
productForm.value.taxExclusiveTotalPrice = (
Number(productForm.value.taxInclusiveTotalPrice) /
(1 + taxRate / 100)
- ).toFixed(2);
+ ).toFixed(6);
// 纭繚缁撴灉涓嶄负璐熸暟
if (Number(productForm.value.taxExclusiveTotalPrice) < 0) {
productForm.value.taxExclusiveTotalPrice = "0";
@@ -1840,7 +1878,7 @@
productForm.value.taxInclusiveTotalPrice = (
Number(productForm.value.taxExclusiveTotalPrice) *
(1 + taxRate / 100)
- ).toFixed(2);
+ ).toFixed(6);
// 纭繚缁撴灉涓嶄负璐熸暟
if (Number(productForm.value.taxInclusiveTotalPrice) < 0) {
productForm.value.taxInclusiveTotalPrice = "0";
@@ -1850,7 +1888,7 @@
productForm.value.taxInclusiveUnitPrice = (
Number(productForm.value.taxInclusiveTotalPrice) /
Number(productForm.value.quantity)
- ).toFixed(2);
+ ).toFixed(6);
// 纭繚缁撴灉涓嶄负璐熸暟
if (Number(productForm.value.taxInclusiveUnitPrice) < 0) {
productForm.value.taxInclusiveUnitPrice = "0";
@@ -1861,7 +1899,7 @@
productForm.value.quantity = (
Number(productForm.value.taxInclusiveTotalPrice) /
Number(productForm.value.taxInclusiveUnitPrice)
- ).toFixed(2);
+ ).toFixed(6);
// 纭繚缁撴灉涓嶄负璐熸暟
if (Number(productForm.value.quantity) < 0) {
productForm.value.quantity = "0";
--
Gitblit v1.9.3