<template>
|
<BaseCard>
|
<div>任务监控</div>
|
<el-scrollbar ref="scrollbarRef" :height="height">
|
<!-- <el-row justify="space-evenly">
|
<el-statistic title="今日完成" :value="10"> </el-statistic>
|
<el-statistic title="本周完成" :value="10"> </el-statistic>
|
</el-row> -->
|
<!-- <el-row> -->
|
<TaskItem v-for="item in tasks" :key="item.guid" v-bind="item"></TaskItem>
|
<!-- </el-row> -->
|
|
<!-- <el-row>
|
<el-col :span="12">
|
<SelfInspection></SelfInspection>
|
</el-col>
|
<el-col :span="12">
|
<JointEnforcement></JointEnforcement>
|
</el-col>
|
</el-row> -->
|
</el-scrollbar>
|
</BaseCard>
|
</template>
|
|
<script setup>
|
import { inject, ref, onMounted, computed } from 'vue'
|
import { unCalc } from '@/utils/css-util'
|
import SelfInspection from '@/views/inspection/SelfInspection.vue'
|
import JointEnforcement from '@/views/inspection/JointEnforcement.vue'
|
import { useSubtaskStore } from '@/stores/subtask.js'
|
|
/**
|
* 任务完成情况
|
*/
|
const excludeMapHeight = inject('excludeMapHeight')
|
const height = ref(`calc(${unCalc(excludeMapHeight)} - 36px)`)
|
|
const subtaskStore = useSubtaskStore()
|
const tasks = ref([])
|
const sceneTaskMap = ref(new Map())
|
|
function onGetTaskInfo(tInfo) {
|
const resList = []
|
sceneTaskMap.value.clear()
|
const total = tInfo.totaltask
|
tInfo.subTaskSummary.forEach((s) => {
|
if (!sceneTaskMap.value.has(s.scene.type)) {
|
sceneTaskMap.value.set(s.scene.type, {
|
sceneType: s.scene.type,
|
total: total,
|
finish: 0
|
})
|
}
|
const st = sceneTaskMap.value.get(s.scene.type)
|
st.finish++
|
})
|
|
const task = {
|
name: tInfo.name,
|
province: tInfo.provinceName,
|
district: tInfo.districtName,
|
totaltask: tInfo.totaltask,
|
completetask: tInfo.completetask,
|
count: []
|
}
|
|
for (const key of sceneTaskMap.value.keys()) {
|
const value = sceneTaskMap.value.get(key)
|
task.count.push(value)
|
}
|
resList.push(task)
|
tasks.value = resList
|
}
|
|
function cal() {
|
subtaskStore.getTaskInfo(onGetTaskInfo)
|
}
|
|
onMounted(() => {
|
cal()
|
})
|
</script>
|
|
<style scoped>
|
.text {
|
background-color: aliceblue;
|
}
|
</style>
|