From e732f79fb39ca207464705308c9ee2deb3a79307 Mon Sep 17 00:00:00 2001
From: hcong <1050828145@qq.com>
Date: 星期二, 03 十二月 2024 11:21:41 +0800
Subject: [PATCH] 后台任务状态实时刷新同步后台更改 1. startTime和endTime对象结构修改 2. runTime根据后端逻辑生成runTime

---
 src/views/fysp/check/components/CompSubTaskStatistic.vue |  170 ++++++++++++++++++++++++++++++++++++++++++++++----------
 1 files changed, 138 insertions(+), 32 deletions(-)

diff --git a/src/views/fysp/check/components/CompSubTaskStatistic.vue b/src/views/fysp/check/components/CompSubTaskStatistic.vue
index 7709ba4..375ae5c 100644
--- a/src/views/fysp/check/components/CompSubTaskStatistic.vue
+++ b/src/views/fysp/check/components/CompSubTaskStatistic.vue
@@ -1,14 +1,78 @@
 <template>
-  <el-descriptions :column="8" size="small" border direction="vertical">
-    <el-descriptions-item label="浠诲姟鎬昏">{{ summary.total }}</el-descriptions-item>
-    <el-descriptions-item label="闂鏈鏍�">{{ summary.proUnCheck }}</el-descriptions-item>
-    <el-descriptions-item label="闂閮ㄥ垎瀹℃牳">{{ summary.proPartCheck }}</el-descriptions-item>
-    <el-descriptions-item label="闂鍏ㄩ儴瀹℃牳">{{ summary.proAllCheck }}</el-descriptions-item>
-    <el-descriptions-item label="鏈暣鏀�">{{ summary.UnChange }}</el-descriptions-item>
-    <el-descriptions-item label="鏁存敼鏈鏍�">{{ summary.changeUnCheck }}</el-descriptions-item>
-    <el-descriptions-item label="鏁存敼閮ㄥ垎瀹℃牳">{{ summary.changePartCheck }}</el-descriptions-item>
-    <el-descriptions-item label="鏁存敼鍏ㄩ儴瀹℃牳">{{ summary.changeAllCheck }}</el-descriptions-item>
-  </el-descriptions>
+  <el-space>
+    <el-descriptions :column="3" size="small" border direction="vertical">
+      <el-descriptions-item
+        label="闂鏁�"
+        label-class-name="problem-label"
+        class-name="secondary-content"
+        >{{ summary.proCount }}</el-descriptions-item
+      >
+      <el-descriptions-item
+        label="鏁存敼鏁�"
+        label-class-name="problem-label"
+        class-name="secondary-content"
+        >{{ summary.changeCount }}</el-descriptions-item
+      >
+      <el-descriptions-item
+        label="鏁存敼鐜�"
+        label-class-name="problem-label"
+        :class-name="summary.changePer < 1 ? 'danger-content' : 'secondary-content'"
+        >{{ formatPercent(summary.changePer) }}</el-descriptions-item
+      >
+    </el-descriptions>
+    <el-descriptions :column="8" size="small" border direction="vertical">
+      <el-descriptions-item
+        label="宸℃煡鐐规"
+        label-class-name="pro-check-label"
+        class-name="secondary-content"
+        >{{ summary.total }}</el-descriptions-item
+      >
+      <el-descriptions-item
+        label="闂鏈鏍�"
+        label-class-name="pro-check-label"
+        :class-name="summary.proUnCheck > 0 ? 'danger-content' : 'secondary-content'"
+        >{{ summary.proUnCheck }}</el-descriptions-item
+      >
+      <el-descriptions-item
+        label="閮ㄥ垎瀹℃牳"
+        label-class-name="pro-check-label"
+        :class-name="summary.proPartCheck > 0 ? 'danger-content' : 'secondary-content'"
+        >{{ summary.proPartCheck }}</el-descriptions-item
+      >
+      <el-descriptions-item
+        label="鍏ㄩ儴瀹℃牳"
+        label-class-name="pro-check-label"
+        class-name="secondary-content"
+        >{{ summary.proAllCheck }}</el-descriptions-item
+      >
+    </el-descriptions>
+    <el-descriptions :column="8" size="small" border direction="vertical">
+      <el-descriptions-item
+        label="鏈暣鏀�"
+        label-class-name="change-check-label"
+        :class-name="summary.UnChange > 0 ? 'danger-content' : 'secondary-content'"
+        >{{ summary.UnChange }}</el-descriptions-item
+      >
+      <el-descriptions-item
+        label="鏁存敼鏈鏍�"
+        label-class-name="change-check-label"
+        :class-name="summary.changeUnCheck > 0 ? 'danger-content' : 'secondary-content'"
+        >{{ summary.changeUnCheck }}</el-descriptions-item
+      >
+      <el-descriptions-item
+        label="閮ㄥ垎瀹℃牳"
+        label-class-name="change-check-label"
+        :class-name="summary.changePartCheck > 0 ? 'danger-content' : 'secondary-content'"
+        >{{ summary.changePartCheck }}</el-descriptions-item
+      >
+      <el-descriptions-item
+        label="鍏ㄩ儴瀹℃牳"
+        label-class-name="change-check-label"
+        class-name="secondary-content"
+        >{{ summary.changeAllCheck }}</el-descriptions-item
+      >
+    </el-descriptions>
+  </el-space>
   <!-- <el-space>
     <el-tag v-for="(s, i) in summary" :key="i" :type="s.type" size="small">
       <el-icon v-if="s.icon" color="">
@@ -34,50 +98,92 @@
         UnChange: 0,
         changeUnCheck: 0,
         changePartCheck: 0,
-        changeAllCheck: 0
-      }
+        changeAllCheck: 0,
+        proCount: 0,
+        changeCount: 0,
+        changePer: 0
+      };
       this.subtasks.forEach((s) => {
-        _summary.total++
+        _summary.total++;
+        _summary.proCount += s.data.proNum;
+        _summary.changeCount += s.data.changeNum;
 
         // 闂瀹℃牳鎯呭喌
         if (s.data.proNum == 0) {
-          _summary.proAllCheck++
+          _summary.proAllCheck++;
         } else if (s.data.proCheckedNum == 0) {
-          _summary.proUnCheck++
+          _summary.proUnCheck++;
         } else if (s.data.proCheckedNum < s.data.proNum) {
-          _summary.proPartCheck++
+          _summary.proPartCheck++;
         } else {
-          _summary.proAllCheck++
+          _summary.proAllCheck++;
         }
 
         // 鏄惁鏈夋湭鏁存敼
         if (s.data.changeNum < s.data.proNum) {
-          _summary.UnChange++
+          _summary.UnChange++;
         }
 
         // 鏁存敼瀹℃牳鎯呭喌
         if (s.data.proNum == 0) {
-          _summary.changeAllCheck++
+          _summary.changeAllCheck++;
         } else if (s.data.changeNum > 0) {
           if (s.data.changeCheckedNum == 0) {
-            _summary.changeUnCheck++
+            _summary.changeUnCheck++;
           } else if (s.data.changeCheckedNum < s.data.changeNum) {
-            _summary.changePartCheck++
+            _summary.changePartCheck++;
           } else {
-            _summary.changeAllCheck++
+            _summary.changeAllCheck++;
           }
         }
-      })
-      // _summary.forEach((s, i) => {
-      //   if (i > 0) {
-      //     let per = Math.round((s.value / _summary[0].value) * 1000) / 10
-      //     if (isNaN(per)) per = 0
-      //     s.value = `${s.value}(${per}%)`
-      //   }
-      // })
+      });
 
-      return _summary
+      if (_summary.proCount != 0) {
+        _summary.changePer = _summary.changeCount / _summary.proCount;
+      }
+      return _summary;
+    }
+  },
+  methods: {
+    formatPercent(value) {
+      return Math.round(value * 1000) / 10 + '%';
     }
   }
-}
+};
 </script>
+<style scoped>
+:deep(.el-descriptions__cell) {
+  padding: 0px 4px !important;
+  /* font-size: 13px !important; */
+}
+
+:deep(.problem-label) {
+  background: var(--el-color-primary-light-7) !important;
+}
+:deep(.problem-content) {
+  /* background: var(--el-color-danger-light-9); */
+}
+
+:deep(.pro-check-label) {
+  background: var(--el-color-success-light-7) !important;
+}
+:deep(.pro-check-content) {
+}
+
+:deep(.change-check-label) {
+  background: var(--el-color-warning-light-7) !important;
+}
+:deep(.change-check-content) {
+}
+
+:deep(.danger-content) {
+  color: var(--el-color-danger) !important;
+  font-weight: 600 !important;
+  font-size: 17px !important;
+}
+
+:deep(.secondary-content) {
+  color: var(--el-text-color-regular) !important;
+  font-size: 12px !important;
+}
+</style>

--
Gitblit v1.9.3