Răsfoiți Sursa

refactor(StatisticsView): 优化代码统计功能

- 重构 codeStatistics 函数,提高数据处理效率
- 使用 Map 存储余额数据,优化查找性能
-合并数量和余额数据时,处理数据类型转换和默认值设置
- 添加未在数量数据中出现的渠道,避免数据遗漏
wui 1 an în urmă
părinte
comite
dd845430af
1 a modificat fișierele cu 27 adăugiri și 9 ștergeri
  1. 27 9
      src/views/StatisticsView.vue

+ 27 - 9
src/views/StatisticsView.vue

@@ -70,15 +70,33 @@ async function refresh() {
 }
 
 async function codeStatistics() {
-    tableData.value = await http.get(`/task/codeStatistics`)
-    balanceData.value = await http.get(`/task/balanceStatistics`)
-    tableData.value.forEach((item) => {
-        if (balanceData.value.hasOwnProperty(item.channel)) {
-            item.balance = balanceData.value[item.channel]
-        } else {
-            item.balance = '-'
-        }
-    })
+    const quantityResponse = await http.get('/task/codeStatistics')
+    const balanceResponse = await http.get('/task/balanceStatistics')
+
+    // 将余额数据转为 Map,方便后续快速查找
+    const balanceMap = new Map(Object.entries(balanceResponse))
+
+    // 遍历数量数据,将数量和余额合并
+    quantityResponse.forEach((item) => {
+        const balance = balanceMap.get(item.channel)
+        tableData.value.push({
+            channel: item.channel,
+            todayData: parseInt(item.todayData, 10) || 0,
+            yesterdayData: parseInt(item.yesterdayData, 10) || 0,
+            balance: balance !== undefined ? parseInt(balance, 10) : '-',
+        });
+
+        balanceMap.delete(item.channel);
+    });
+
+    for (const [channel, balance] of balanceMap) {
+        tableData.value.push({
+            channel,
+            todayData: 0,
+            yesterdayData: 0,
+            balance: parseInt(balance, 10),
+        });
+    }
 }
 
 async function hourSentStatistics() {