| | |
| | | <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, |
| | | subtasks: { |
| | | type: Array, |
| | | default: () => [] |
| | | }, |
| | | monitorObjList: { |
| | | type: Array, |
| | | default: () => [] |
| | | } |
| | | }, |
| | | computed: { |
| | | //任务问题审核情况统计信息 |
| | | summary() { |
| | | const _summary = { |
| | | total: 0, |
| | | noProblem: 0, |
| | | proUnCheck: 0, |
| | | proPartCheck: 0, |
| | | proAllCheck: 0, |
| | |
| | | changeAllCheck: 0, |
| | | proCount: 0, |
| | | changeCount: 0, |
| | | changePer: '0%' |
| | | changePer: 0 |
| | | }; |
| | | this.subtasks.forEach((s) => { |
| | | _summary.total++; |
| | |
| | | |
| | | // 问题审核情况 |
| | | 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) { |
| | |
| | | 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++; |
| | |
| | | }); |
| | | |
| | | 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 |
| | | }; |
| | | this.monitorObjList.forEach((m) => { |
| | | _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 + '%'; |
| | | } |
| | | } |
| | | }; |
| | |
| | | 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> |