From 7b60f24e07f54634503e5b37e6ca5f85d4ad743f Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期五, 07 八月 2026 15:41:39 +0800
Subject: [PATCH] 天津_建诚恒商贸 1.备件管理-新增独立备件出库功能入口,支持直接完成备件领用出库操作。 2.设备保养-支持按日期分组折叠展示,分组条目可展开查看明细;单条明细行末尾增加【保养完成】操作按钮,可单独办结单条保养任务;折叠汇总状态下,新增【一键保养完成】批量操作按钮,快速办结当前分组全部保养项。 3.设备巡检-按日期分组折叠展示,分组支持展开查看明细;每条巡检明细后增设【巡检完成】按钮,支持单独办结单条巡检记录;分组折叠未展开状态下,提供【一键巡检完成】批量操作,统一办结该分组下所有巡检任务。 4.增值税对比-优化数据展示逻辑,列表展示各订单增值税明细;页面右侧新增柱状可视化图表,直观对比进销项增值税数据。 5.管理驾驶舱-指标修改:将顶部「销售产品数」调整为「销售订单数」;时间筛选:页面左上角新增日期范围下拉筛选控件,所有统计指标标注当前筛选时段;

---
 src/utils/summarizeTable.js |   75 +++++++++++++++++++++----------------
 1 files changed, 42 insertions(+), 33 deletions(-)

diff --git a/src/utils/summarizeTable.js b/src/utils/summarizeTable.js
index e24d99f..1ad480d 100644
--- a/src/utils/summarizeTable.js
+++ b/src/utils/summarizeTable.js
@@ -6,43 +6,52 @@
  * @returns {Array} 鍚堣琛屾暟鎹�
  */
 const summarizeTable = (param, summaryProps, specialFormat = {}) => {
-    const { columns, data } = param;
-    const sums = [];
-    columns.forEach((column, index) => {
-        if (index === 0) {
-            sums[index] = '鍚堣';
-            return;
-        }
-        const prop = column.property;
-        if (summaryProps.includes(prop)) {
-            const values = data.map(item => Number(item[prop]));
-            // 鍙鏈夋晥鏁板瓧杩涜姹傚拰
-            if (!values.every(isNaN)) {
-                const sum = values.reduce((acc, val) => (!isNaN(val) ? acc + val : acc), 0);
-                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] = '';
-            }
+  const { columns, data } = param;
+  const sums = [];
+  columns.forEach((column, index) => {
+    if (index === 0) {
+      sums[index] = "鍚堣";
+      return;
+    }
+    const prop = column.property;
+    if (summaryProps.includes(prop)) {
+      const values = data.map((item) => Number(item[prop]));
+      // 鍙鏈夋晥鏁板瓧杩涜姹傚拰
+      if (!values.every(isNaN)) {
+        const sum = values.reduce(
+          (acc, val) => (!isNaN(val) ? acc + val : acc),
+          0
+        );
+        if (specialFormat[prop] && specialFormat[prop].noDecimal) {
+          // 濡傛灉鎸囧畾浜嗕笉闇�瑕佷繚鐣欏皬鏁帮紝鍒欑洿鎺ヨ浆鎹负鏁存暟
+          sums[index] = Math.round(sum).toString();
         } else {
-            sums[index] = '';
+          // 榛樿淇濈暀涓や綅灏忔暟
+          sums[index] = parseFloat(sum).toFixed(
+            specialFormat[prop]?.decimalPlaces ?? 2
+          );
         }
-    });
-    return sums;
-}
+      } else {
+        sums[index] = "";
+      }
+    } else {
+      sums[index] = "";
+    }
+  });
+  return sums;
+};
 // 涓嶅惈绋庢�讳环璁$畻
 const calculateTaxExclusiveTotalPrice = (taxInclusiveTotalPrice, taxRate) => {
-    const taxRateDecimal = taxRate / 100;
-    return (taxInclusiveTotalPrice / (1 + taxRateDecimal)).toFixed(2);
-}
+  const taxRateDecimal = taxRate / 100;
+  return (taxInclusiveTotalPrice / (1 + taxRateDecimal)).toFixed(2);
+};
 // 鍚◣鎬讳环璁$畻
 const calculateTaxIncludeTotalPrice = (taxInclusiveUnitPrice, quantity) => {
-    return (taxInclusiveUnitPrice * quantity).toFixed(2);
-}
+  return (taxInclusiveUnitPrice * quantity).toFixed(2);
+};
 // 瀵煎嚭鍑芥暟渚涘叾浠栨枃浠朵娇鐢�
-export { summarizeTable, calculateTaxExclusiveTotalPrice ,calculateTaxIncludeTotalPrice};
+export {
+  summarizeTable,
+  calculateTaxExclusiveTotalPrice,
+  calculateTaxIncludeTotalPrice,
+};

--
Gitblit v1.9.3