From 1ed11ff9b539891e92f73940772b680497bda98f Mon Sep 17 00:00:00 2001 From: chenrui <1187576398@qq.com> Date: 星期二, 20 五月 2025 15:36:23 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/dev' into dev --- src/utils/summarizeTable.js | 18 +++++++++++------- 1 files changed, 11 insertions(+), 7 deletions(-) diff --git a/src/utils/summarizeTable.js b/src/utils/summarizeTable.js index 6013def..3b3a178 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] = ''; } @@ -30,6 +35,5 @@ }); return sums; }; - // 瀵煎嚭鍑芥暟渚涘叾浠栨枃浠朵娇鐢� export { summarizeTable }; \ No newline at end of file -- Gitblit v1.9.3