From 54cdbd70fb672fd3ef4622fda1ce8179f8ac0798 Mon Sep 17 00:00:00 2001
From: gongchunyi <deslre0381@gmail.com>
Date: 星期三, 23 九月 2026 18:08:04 +0800
Subject: [PATCH] fix: 供应商往来金额计算修改
---
src/views/procurementManagement/paymentLedger/index.vue | 64 ++++++++++++-------------------
1 files changed, 25 insertions(+), 39 deletions(-)
diff --git a/src/views/procurementManagement/paymentLedger/index.vue b/src/views/procurementManagement/paymentLedger/index.vue
index 19816a4..c6df372 100644
--- a/src/views/procurementManagement/paymentLedger/index.vue
+++ b/src/views/procurementManagement/paymentLedger/index.vue
@@ -79,7 +79,7 @@
@pagination="sonPaginationSearch">
<template #payableAmountSlot="{ row }">
<el-text type="danger">
- {{ formatDecimal(row.unshippedAmount) }}
+ {{ formatAmount(row.unshippedAmount) }}
</el-text>
</template>
</PIMTable>
@@ -97,7 +97,12 @@
paymentRecordList,
} from "@/api/procurementManagement/paymentLedger.js";
import Pagination from "../../../components/PIMTable/Pagination.vue";
- import { tableAmountFormatter, formatDecimal, buildAmountSummaryFormat } from "@/utils/numberFormat";
+
+ const AMOUNT_SCALE = 2;
+ const formatAmount = value => {
+ const num = Number(value);
+ return Number.isNaN(num) ? "0.00" : num.toFixed(AMOUNT_SCALE);
+ };
const tableData = ref([]);
const tableLoading = ref(false);
@@ -141,13 +146,13 @@
label: "鍚堝悓閲戦(鍏�)",
prop: "contractAmount",
width: 200,
- formatData: params => formatDecimal(params),
+ formatData: params => formatAmount(params),
},
{
label: "宸插叆搴撻噾棰�(鍏�)",
prop: "shippedAmount",
width: 200,
- formatData: params => formatDecimal(params),
+ formatData: params => formatAmount(params),
},
{
label: "鏈叆搴撻噾棰�(鍏�)",
@@ -163,34 +168,23 @@
const isShowSummarySon = ref(true);
const { proxy } = getCurrentInstance();
+ // 鍚堣琛屾寜涓や綅灏忔暟鍥哄畾灞曠ず
+ const summarizeAmounts = (param, amountProps) => {
+ const sums = proxy.summarizeTable(param, amountProps);
+ param.columns.forEach((column, index) => {
+ if (amountProps.includes(column.property) && sums[index] !== "") {
+ sums[index] = formatAmount(sums[index]);
+ }
+ });
+ return sums;
+ };
// 涓昏〃鍚堣鏂规硶
const summarizeMainTable = param => {
- return proxy.summarizeTable(
- param,
- ["contractAmounts", "shippedAmount", "unshippedAmount"],
- buildAmountSummaryFormat(
- ["contractAmounts", "shippedAmount", "unshippedAmount"],
- {
- ticketsNum: { noDecimal: true },
- futureTickets: { noDecimal: true },
- }
- )
- );
+ return summarizeAmounts(param, ["contractAmounts", "shippedAmount", "unshippedAmount"]);
};
// 瀛愯〃鍚堣鏂规硶
const summarizeMainTable1 = param => {
- let summarizeTable = proxy.summarizeTable(
- param,
- ["contractAmount", "shippedAmount", "unshippedAmount"],
- buildAmountSummaryFormat(
- ["contractAmount", "shippedAmount", "unshippedAmount"],
- {
- ticketsNum: { noDecimal: true },
- futureTickets: { noDecimal: true },
- }
- )
- );
- return summarizeTable;
+ return summarizeAmounts(param, ["contractAmount", "shippedAmount", "unshippedAmount"]);
};
/** 鎼滅储鎸夐挳鎿嶄綔 */
const handleQuery = () => {
@@ -202,14 +196,6 @@
page.size = obj.limit;
getList();
};
- // 灏嗘湭鍏ュ簱閲戦骞跺叆宸插叆搴撻噾棰濓紝鏈叆搴撻噾棰濈疆0
- const mergeUnshippedAmount = row => {
- if (row && row.unshippedAmount) {
- row.shippedAmount = (Number(row.shippedAmount) || 0) + (Number(row.unshippedAmount) || 0);
- row.unshippedAmount = 0;
- }
- return row;
- };
const getList = () => {
tableLoading.value = true;
paymentLedgerList({
@@ -218,7 +204,7 @@
}).then(res => {
let result = res.data;
tableLoading.value = false;
- tableData.value = (result.records || []).map(mergeUnshippedAmount);
+ tableData.value = result.records || [];
total.value = result.total || 0;
if (tableData.value.length > 0) {
currentSupplierId.value = tableData.value[0].supplierId;
@@ -239,11 +225,11 @@
tableLoadingSon.value = false;
let result = res.data;
if (Array.isArray(result)) {
- tableDataSon.value = result.map(mergeUnshippedAmount);
+ tableDataSon.value = result;
sonPage.total = result.length;
handlePagination({ page: sonPage.current, limit: sonPage.size });
} else {
- originalTableDataSon.value = (result.records || []).map(mergeUnshippedAmount);
+ originalTableDataSon.value = result.records || [];
sonPage.total = result.total || 0;
}
})
@@ -268,7 +254,7 @@
sonPage.size = pagination.limit;
getPaymenRecordtList(currentSupplierId.value);
};
- const formattedNumber = tableAmountFormatter;
+ const formattedNumber = (row, column, cellValue) => formatAmount(cellValue);
getList();
</script>
--
Gitblit v1.9.3