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 | 329 +++++++++++++++++++++++++++++++++++++++++++++++------- 1 files changed, 286 insertions(+), 43 deletions(-) diff --git a/src/views/fysp/check/components/CompSubTaskStatistic.vue b/src/views/fysp/check/components/CompSubTaskStatistic.vue index 7709ba4..7f8d3e9 100644 --- a/src/views/fysp/check/components/CompSubTaskStatistic.vue +++ b/src/views/fysp/check/components/CompSubTaskStatistic.vue @@ -1,83 +1,326 @@ <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-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 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" + > + <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 + 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-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, 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.noProblem++; } 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++ + else if (s.data.proNum == 0) { + // _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; + }, + // 宸℃煡浠诲姟鎵ц杩涘害 + 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: { + formatPercent(value) { + return Math.round(value * 1000) / 10 + '%'; } } -} +}; </script> +<style scoped> +:deep(.el-descriptions__cell) { + 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