From ff82e86becbd200adabd2ce56fba1f6b3c6c37e1 Mon Sep 17 00:00:00 2001
From: Riku <risaku@163.com>
Date: 星期一, 23 六月 2025 23:10:49 +0800
Subject: [PATCH] 2025.6.23

---
 src/views/management/TaskStats.vue |   85 +++++++++++++++++++++++++++---------------
 1 files changed, 54 insertions(+), 31 deletions(-)

diff --git a/src/views/management/TaskStats.vue b/src/views/management/TaskStats.vue
index bcea3c5..271414c 100644
--- a/src/views/management/TaskStats.vue
+++ b/src/views/management/TaskStats.vue
@@ -1,13 +1,16 @@
 <template>
-  <BaseCard>
-    <div>浠诲姟鐩戞帶</div>
-    <el-scrollbar ref="scrollbarRef" :height="height">
+  <BaseCard title="浠诲姟鐩戞帶">
+    <!-- <template #expand>
+      <SupervisionVisual></SupervisionVisual>
+    </template> -->
+    <el-scrollbar ref="scrollbarRef">
       <!-- <el-row justify="space-evenly">
         <el-statistic title="浠婃棩瀹屾垚" :value="10"> </el-statistic>
         <el-statistic title="鏈懆瀹屾垚" :value="10"> </el-statistic>
       </el-row> -->
       <!-- <el-row> -->
-      <TaskItem v-for="item in tasks" :key="item.guid" v-bind="item"></TaskItem>
+      <TaskItem v-for="item in tasks" :key="item.guid" :value="item"></TaskItem>
+      <!-- <TaskSummary></TaskSummary> -->
       <!-- </el-row> -->
 
       <!-- <el-row>
@@ -23,10 +26,17 @@
 </template>
 
 <script setup>
+/**
+ * 1. 鎸夌収鍦烘櫙绫诲瀷杩涜缁熻灞曠ず
+ */
 import { inject, ref, onMounted, computed } from 'vue'
 import { unCalc } from '@/utils/css-util'
+
 import SelfInspection from '@/views/inspection/SelfInspection.vue'
 import JointEnforcement from '@/views/inspection/JointEnforcement.vue'
+import SupervisionVisual from '@/views/visualization/SupervisionVisual.vue'
+import TaskSummary from '@/views/management/TaskSummary.vue'
+
 import { useSubtaskStore } from '@/stores/subtask.js'
 
 /**
@@ -39,41 +49,54 @@
 const tasks = ref([])
 const sceneTaskMap = ref(new Map())
 
-function onGetTaskInfo(tInfo) {
+function onGetTaskInfo(tInfoList) {
   const resList = []
-  sceneTaskMap.value.clear()
-  const total = tInfo.totaltask
-  tInfo.subTaskSummary.forEach((s) => {
-    if (!sceneTaskMap.value.has(s.scene.type)) {
-      sceneTaskMap.value.set(s.scene.type, {
-        sceneType: s.scene.type,
-        total: total,
-        finish: 0
-      })
+
+  tInfoList.forEach((tInfo) => {
+    const _sceneTaskMap = new Map()
+    // 鏈夊贰鏌ヨ繘搴︾殑鍦烘櫙绫诲瀷鐨勬�诲畬鎴愰噺锛堥拡瀵规煇浜涘満鏅被鍨嬩笉鍋氬贰鏌ヤ絾渚濇棫鍦ㄨ鍒掍腑鐨勬儏鍐碉級
+    let _totaltask = 0,
+      _completetask = 0
+
+    // 灏嗗悇鍦烘櫙绫诲瀷鐨勫贰鏌ラ噺
+    for (const key in tInfo.totaltaskByScene) {
+      const e = tInfo.totaltaskByScene[key]
+      const v = {
+        sceneType: key,
+        total: e,
+        finish: tInfo.completetaskByScene[key] ? tInfo.completetaskByScene[key] : 0
+      }
+      _sceneTaskMap.set(key, v)
+      if (v.finish > 0) {
+        _totaltask += v.total
+        _completetask += v.finish
+      }
     }
-    const st = sceneTaskMap.value.get(s.scene.type)
-    st.finish++
+
+    const task = {
+      // name: tInfo.name,
+      // province: tInfo.provinceName,
+      // district: tInfo.districtName,
+      // totaltask: tInfo.totaltask,
+      // completetask: tInfo.completetask,
+      ...tInfo,
+      _totaltask,
+      _completetask,
+      count: []
+    }
+
+    for (const key of _sceneTaskMap.keys()) {
+      const value = _sceneTaskMap.get(key)
+      task.count.push(value)
+    }
+    resList.push(task)
   })
 
-  const task = {
-    name: tInfo.name,
-    province: tInfo.provinceName,
-    district: tInfo.districtName,
-    totaltask: tInfo.totaltask,
-    completetask: tInfo.completetask,
-    count: []
-  }
-
-  for (const key of sceneTaskMap.value.keys()) {
-    const value = sceneTaskMap.value.get(key)
-    task.count.push(value)
-  }
-  resList.push(task)
   tasks.value = resList
 }
 
 function cal() {
-  subtaskStore.getTaskInfo(onGetTaskInfo)
+  subtaskStore.onAllTaskRefreshed(onGetTaskInfo)
 }
 
 onMounted(() => {

--
Gitblit v1.9.3