From 9169a74e1d7b2d24d20d708b4498d7ca17eda9d8 Mon Sep 17 00:00:00 2001
From: riku <risaku@163.com>
Date: 星期一, 28 四月 2025 13:42:52 +0800
Subject: [PATCH] 1. 新增自动评估监测数据统计导入功能 2. 修改问题审核界面巡查点次统计没有根据场景类型切换的问题

---
 src/views/fysp/check/components/CompSubTaskStatistic.vue |  229 +++++++++++++++++++++++++++++++++++++++++++++-----------
 1 files changed, 183 insertions(+), 46 deletions(-)

diff --git a/src/views/fysp/check/components/CompSubTaskStatistic.vue b/src/views/fysp/check/components/CompSubTaskStatistic.vue
index 375ae5c..7f8d3e9 100644
--- a/src/views/fysp/check/components/CompSubTaskStatistic.vue
+++ b/src/views/fysp/check/components/CompSubTaskStatistic.vue
@@ -1,97 +1,216 @@
 <template>
-  <el-space>
-    <el-descriptions :column="3" size="small" border direction="vertical">
+  <el-row justify="end" v-loading="loading">
+    <el-descriptions :column="4" size="small" border direction="vertical">
+      <el-descriptions-item
+        label="鍦烘櫙鎬昏"
+        label-class-name="inspection-label"
+        class-name="secondary-content"
+      >
+        <template #label>
+          <el-text size="small"> 鍦烘櫙鎬昏 </el-text>
+        </template>
+        {{ progress.total }}
+      </el-descriptions-item>
+      <el-descriptions-item
+        label="宸℃煡鍦烘櫙"
+        label-class-name="inspection-label"
+        class-name="secondary-content"
+      >
+        <template #label>
+          <el-text size="small"> 宸℃煡鍦烘櫙 </el-text>
+        </template>
+        {{ progress.completedScenes }}
+      </el-descriptions-item>
+      <el-descriptions-item
+        label="宸℃煡鐐规"
+        label-class-name="inspection-label"
+        class-name="secondary-content"
+      >
+        <template #label>
+          <el-text size="small"> 宸℃煡鐐规 </el-text>
+        </template>
+        {{ progress.completedTimes }}
+      </el-descriptions-item>
+      <el-descriptions-item
+        label="澶嶆煡鐐规"
+        label-class-name="inspection-label"
+        class-name="secondary-content"
+      >
+        <template #label>
+          <el-text size="small"> 澶嶆煡鐐规 </el-text>
+        </template>
+        {{ progress.reviewTimes }}
+      </el-descriptions-item>
+    </el-descriptions>
+
+    <el-descriptions
+      class="m-l-4"
+      :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
       >
+        <template #label>
+          <el-text size="small"> 闂鏁� </el-text>
+        </template>
+        {{ summary.proCount }}
+      </el-descriptions-item>
       <el-descriptions-item
         label="鏁存敼鏁�"
         label-class-name="problem-label"
         class-name="secondary-content"
-        >{{ summary.changeCount }}</el-descriptions-item
       >
+        <template #label>
+          <el-text size="small"> 鏁存敼鏁� </el-text>
+        </template>
+        {{ 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
+        :class-name="
+          summary.changePer < 1 ? 'danger-content' : 'secondary-content'
+        "
       >
+        <template #label>
+          <el-text size="small"> 鏁存敼鐜� </el-text>
+        </template>
+        {{ formatPercent(summary.changePer) }}
+      </el-descriptions-item>
     </el-descriptions>
-    <el-descriptions :column="8" size="small" border direction="vertical">
+
+    <el-descriptions
+      class="m-l-4"
+      :column="8"
+      size="small"
+      border
+      direction="vertical"
+    >
       <el-descriptions-item
-        label="宸℃煡鐐规"
+        label="鏃犻棶棰�"
         label-class-name="pro-check-label"
         class-name="secondary-content"
-        >{{ summary.total }}</el-descriptions-item
       >
+        <template #label>
+          <el-text size="small"> 鏃犻棶棰� </el-text>
+        </template>
+        {{ summary.noProblem }}
+      </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
+        :class-name="
+          summary.proUnCheck > 0 ? 'danger-content' : 'secondary-content'
+        "
       >
+        <template #label>
+          <el-text size="small"> 闂鏈鏍� </el-text>
+        </template>
+        {{ 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
+        :class-name="
+          summary.proPartCheck > 0 ? 'danger-content' : 'secondary-content'
+        "
       >
+        <template #label>
+          <el-text size="small"> 閮ㄥ垎瀹℃牳 </el-text>
+        </template>
+        {{ 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">
+        <template #label>
+          <el-text size="small"> 鍏ㄩ儴瀹℃牳 </el-text>
+        </template>
+        {{ summary.proAllCheck }}
+      </el-descriptions-item>
+      <!-- </el-descriptions>
+    <el-descriptions
+      :column="4"
+      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
+        :class-name="
+          summary.UnChange > 0 ? 'danger-content' : 'secondary-content'
+        "
       >
+        <template #label>
+          <el-text size="small"> 鏈暣鏀� </el-text>
+        </template>
+        {{ 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
+        :class-name="
+          summary.changeUnCheck > 0 ? 'danger-content' : 'secondary-content'
+        "
       >
+        <template #label>
+          <el-text size="small"> 鏁存敼鏈鏍� </el-text>
+        </template>
+        {{ 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
+        :class-name="
+          summary.changePartCheck > 0 ? 'danger-content' : 'secondary-content'
+        "
       >
+        <template #label>
+          <el-text size="small"> 閮ㄥ垎瀹℃牳 </el-text>
+        </template>
+        {{ summary.changePartCheck }}
+      </el-descriptions-item>
       <el-descriptions-item
         label="鍏ㄩ儴瀹℃牳"
         label-class-name="change-check-label"
         class-name="secondary-content"
-        >{{ summary.changeAllCheck }}</el-descriptions-item
       >
+        <template #label>
+          <el-text size="small"> 鍏ㄩ儴瀹℃牳 </el-text>
+        </template>
+        {{ 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="">
-        <component :is="s.icon"></component>
-      </el-icon>
-      {{ s.name + ': ' + s.value }}
-    </el-tag>
-  </el-space> -->
+  </el-row>
 </template>
 <script>
 export default {
   props: {
-    subtasks: Array
+    loading: Boolean,
+    sceneType: Number,
+    subtasks: {
+      type: Array,
+      default: () => []
+    },
+    monitorObjList: {
+      type: Array,
+      default: () => []
+    }
   },
   computed: {
     //浠诲姟闂瀹℃牳鎯呭喌缁熻淇℃伅
     summary() {
       const _summary = {
         total: 0,
+        noProblem: 0,
         proUnCheck: 0,
         proPartCheck: 0,
         proAllCheck: 0,
@@ -110,7 +229,7 @@
 
         // 闂瀹℃牳鎯呭喌
         if (s.data.proNum == 0) {
-          _summary.proAllCheck++;
+          _summary.noProblem++;
         } else if (s.data.proCheckedNum == 0) {
           _summary.proUnCheck++;
         } else if (s.data.proCheckedNum < s.data.proNum) {
@@ -123,10 +242,9 @@
         if (s.data.changeNum < s.data.proNum) {
           _summary.UnChange++;
         }
-
         // 鏁存敼瀹℃牳鎯呭喌
-        if (s.data.proNum == 0) {
-          _summary.changeAllCheck++;
+        else if (s.data.proNum == 0) {
+          // _summary.changeAllCheck++;
         } else if (s.data.changeNum > 0) {
           if (s.data.changeCheckedNum == 0) {
             _summary.changeUnCheck++;
@@ -142,6 +260,27 @@
         _summary.changePer = _summary.changeCount / _summary.proCount;
       }
       return _summary;
+    },
+    // 宸℃煡浠诲姟鎵ц杩涘害
+    progress() {
+      const _res = {
+        total: 0,
+        completedScenes: 0,
+        completedTimes: 0,
+        reviewTimes: 0
+      };
+      this.monitorObjList.forEach((m) => {
+        if (this.sceneType == undefined || m.sceneTypeId == this.sceneType) {
+          _res.total++;
+          const times = parseInt(m.extension1);
+          if (times) {
+            _res.completedScenes++;
+            _res.completedTimes += times;
+            _res.reviewTimes += times - 1;
+          }
+        }
+      });
+      return _res;
     }
   },
   methods: {
@@ -157,23 +296,21 @@
   /* font-size: 13px !important; */
 }
 
+:deep(.inspection-label) {
+  background: var(--el-color-success-light-5) !important;
+  /* color: white !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) {
+  background: var(--el-color-warning-light-7) !important;
 }
 
 :deep(.change-check-label) {
-  background: var(--el-color-warning-light-7) !important;
-}
-:deep(.change-check-content) {
+  background: var(--el-color-danger-light-7) !important;
 }
 
 :deep(.danger-content) {

--
Gitblit v1.9.3