From 9a61e46d96536f3299e57f7259ae1c9972256ec6 Mon Sep 17 00:00:00 2001
From: riku <risaku@163.com>
Date: 星期二, 30 九月 2025 09:42:09 +0800
Subject: [PATCH] 1. 隐藏未完成的账户匹配页面 2. 根据第三方新的接口文档修改接口url地址
---
src/views/fysp/check/components/CompSubTaskStatistic.vue | 343 ++++++++++++++++++++++++++++++++++++++++++++++----------
1 files changed, 280 insertions(+), 63 deletions(-)
diff --git a/src/views/fysp/check/components/CompSubTaskStatistic.vue b/src/views/fysp/check/components/CompSubTaskStatistic.vue
index bdff289..7e30a44 100644
--- a/src/views/fysp/check/components/CompSubTaskStatistic.vue
+++ b/src/views/fysp/check/components/CompSubTaskStatistic.vue
@@ -1,64 +1,216 @@
<template>
- <el-space>
- <el-descriptions :column="3" size="small" border direction="vertical">
- <el-descriptions-item label="闂鏁�">{{
- summary.proCount
- }}</el-descriptions-item>
- <el-descriptions-item label="鏁存敼鏁�">{{
- summary.changeCount
- }}</el-descriptions-item>
- <el-descriptions-item label="鏁存敼鐜�">{{
- summary.changePer
- }}</el-descriptions-item>
+ <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 :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
+ class="m-l-4"
+ :column="3"
+ size="small"
+ border
+ direction="vertical"
+ >
+ <el-descriptions-item
+ label="闂鏁�"
+ label-class-name="problem-label"
+ class-name="secondary-content"
+ >
+ <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"
+ >
+ <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'
+ "
+ >
+ <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-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
+ class="m-l-4"
+ :column="8"
+ size="small"
+ border
+ direction="vertical"
+ >
+ <el-descriptions-item
+ label="鏃犻棶棰�"
+ label-class-name="pro-check-label"
+ class-name="secondary-content"
+ >
+ <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'
+ "
+ >
+ <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'
+ "
+ >
+ <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"
+ >
+ <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'
+ "
+ >
+ <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'
+ "
+ >
+ <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'
+ "
+ >
+ <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"
+ >
+ <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,
@@ -68,7 +220,7 @@
changeAllCheck: 0,
proCount: 0,
changeCount: 0,
- changePer: '0%'
+ changePer: 0
};
this.subtasks.forEach((s) => {
_summary.total++;
@@ -77,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) {
@@ -90,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++;
@@ -106,19 +257,57 @@
});
if (_summary.proCount != 0) {
- _summary.changePer =
- Math.round((_summary.changeCount / _summary.proCount) * 1000) / 10 +
- '%';
+ _summary.changePer = _summary.changeCount / _summary.proCount;
}
- // _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;
+ },
+ // 宸℃煡浠诲姟鎵ц杩涘害
+ progress() {
+ const _res = {
+ total: 0,
+ completedScenes: 0,
+ completedTimes: 0,
+ reviewTimes: 0
+ };
+
+ // Fixme 2025.5.30: 鐩墠姝ゅ鐨勭洃绠$増鏈俊鎭挓璁板綍鐨勪换鍔″畬鎴愭鏁版湁鍋忓樊锛屾墍浠ユ殏鏃跺厛鏀逛负閫氳繃宸℃煡浠诲姟鏈韩杩涜缁熻
+ /**************************************************************************************/
+ // 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;
+ // }
+ // }
+ // });
+ /**************************************************************************************/
+
+ /**************************************************************************************/
+ _res.total = this.monitorObjList.filter(
+ (m) => this.sceneType == undefined || m.sceneTypeId == this.sceneType
+ ).length;
+ _res.completedTimes = this.subtasks.length;
+ const map = new Map();
+ const uniqueArr = [];
+ for (let item of this.subtasks) {
+ if (!map.has(item.data.sceneId)) {
+ map.set(item.data.sceneId, true);
+ uniqueArr.push(item);
+ }
+ }
+ _res.completedScenes = uniqueArr.length;
+ _res.reviewTimes = _res.completedTimes - _res.completedScenes;
+
+ /**************************************************************************************/
+ return _res;
+ }
+ },
+ methods: {
+ formatPercent(value) {
+ return Math.round(value * 1000) / 10 + '%';
}
}
};
@@ -128,4 +317,32 @@
padding: 0px 4px !important;
/* 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(.pro-check-label) {
+ background: var(--el-color-warning-light-7) !important;
+}
+
+:deep(.change-check-label) {
+ background: var(--el-color-danger-light-7) !important;
+}
+
+: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