From 6e30fb16e72db22a119285cb5b757b7a5e1b2206 Mon Sep 17 00:00:00 2001
From: 曹睿 <360930172@qq.com>
Date: 星期三, 18 六月 2025 16:35:14 +0800
Subject: [PATCH] fix: 修复之前剩下的要求
---
src/utils/summarizeTable.js | 31 ++++++++++++++++++++++---------
1 files changed, 22 insertions(+), 9 deletions(-)
diff --git a/src/utils/summarizeTable.js b/src/utils/summarizeTable.js
index 6013def..e24d99f 100644
--- a/src/utils/summarizeTable.js
+++ b/src/utils/summarizeTable.js
@@ -1,12 +1,11 @@
/**
* 閫氱敤鐨勮〃鏍煎悎璁℃柟娉�
- * @param {Object} param
- * @param {Array} param.columns 琛ㄦ牸鍒楅厤缃�
- * @param {Array} param.data 鏁版嵁婧�
- * @param {Array<string>} summaryProps 闇�瑕佹眹鎬荤殑瀛楁鍚嶆暟缁�
+ * @param {Object} param - 鍖呭惈琛ㄦ牸鍒楅厤缃拰鏁版嵁婧愮殑瀵硅薄
+ * @param {Array<string>} summaryProps - 闇�瑕佹眹鎬荤殑瀛楁鍚嶆暟缁�
+ * @param {Object} specialFormat - 鐗规畩鏍煎紡鍖栬鍒欙細瀛楁鍚� -> 鏍煎紡鍖栭�夐」锛堝鏄惁鍘绘帀灏忔暟锛�
* @returns {Array} 鍚堣琛屾暟鎹�
*/
-const summarizeTable = (param, summaryProps) => {
+const summarizeTable = (param, summaryProps, specialFormat = {}) => {
const { columns, data } = param;
const sums = [];
columns.forEach((column, index) => {
@@ -20,7 +19,13 @@
// 鍙鏈夋晥鏁板瓧杩涜姹傚拰
if (!values.every(isNaN)) {
const sum = values.reduce((acc, val) => (!isNaN(val) ? acc + val : acc), 0);
- sums[index] = parseFloat(sum).toFixed(2);
+ if (specialFormat[prop] && specialFormat[prop].noDecimal) {
+ // 濡傛灉鎸囧畾浜嗕笉闇�瑕佷繚鐣欏皬鏁帮紝鍒欑洿鎺ヨ浆鎹负鏁存暟
+ sums[index] = Math.round(sum).toString();
+ } else {
+ // 榛樿淇濈暀涓や綅灏忔暟
+ sums[index] = parseFloat(sum).toFixed(specialFormat[prop]?.decimalPlaces ?? 2);
+ }
} else {
sums[index] = '';
}
@@ -29,7 +34,15 @@
}
});
return sums;
-};
-
+}
+// 涓嶅惈绋庢�讳环璁$畻
+const calculateTaxExclusiveTotalPrice = (taxInclusiveTotalPrice, taxRate) => {
+ const taxRateDecimal = taxRate / 100;
+ return (taxInclusiveTotalPrice / (1 + taxRateDecimal)).toFixed(2);
+}
+// 鍚◣鎬讳环璁$畻
+const calculateTaxIncludeTotalPrice = (taxInclusiveUnitPrice, quantity) => {
+ return (taxInclusiveUnitPrice * quantity).toFixed(2);
+}
// 瀵煎嚭鍑芥暟渚涘叾浠栨枃浠朵娇鐢�
-export { summarizeTable };
\ No newline at end of file
+export { summarizeTable, calculateTaxExclusiveTotalPrice ,calculateTaxIncludeTotalPrice};
--
Gitblit v1.9.3