| | |
| | | <template> |
| | | <div class="border-r-small"> |
| | | <div class="font-large">巡查量</div> |
| | | <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> --> |
| | | <BaseCard title="任务监控"> |
| | | <!-- <template #expand> |
| | | <SupervisionVisual></SupervisionVisual> |
| | | </template> --> |
| | | <el-scrollbar ref="scrollbarRef"> |
| | | <!-- <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" :value="item"></TaskItem> |
| | | <!-- <TaskSummary></TaskSummary> --> |
| | | <!-- </el-row> --> |
| | | |
| | | <!-- <el-row> |
| | | <!-- <el-row> |
| | | <el-col :span="12"> |
| | | <SelfInspection></SelfInspection> |
| | | </el-col> |
| | |
| | | <JointEnforcement></JointEnforcement> |
| | | </el-col> |
| | | </el-row> --> |
| | | </div> |
| | | </el-scrollbar> |
| | | </BaseCard> |
| | | </template> |
| | | |
| | | <script> |
| | | <script setup> |
| | | /** |
| | | * 1. 按照场景类型进行统计展示 |
| | | */ |
| | | 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 SupervisionVisual from '@/views/visualization/SupervisionVisual.vue' |
| | | import TaskSummary from '@/views/management/TaskSummary.vue' |
| | | |
| | | import { useSubtaskStore } from '@/stores/subtask.js' |
| | | |
| | | /** |
| | | * 任务完成情况 |
| | | */ |
| | | export default { |
| | | components: { SelfInspection, JointEnforcement }, |
| | | data() { |
| | | return { |
| | | tasks: [] |
| | | const excludeMapHeight = inject('excludeMapHeight') |
| | | const height = ref(`calc(${unCalc(excludeMapHeight)} - 36px)`) |
| | | |
| | | const subtaskStore = useSubtaskStore() |
| | | const tasks = ref([]) |
| | | const sceneTaskMap = ref(new Map()) |
| | | |
| | | function onGetTaskInfo(tInfoList) { |
| | | const resList = [] |
| | | |
| | | tInfoList.forEach((tInfo) => { |
| | | const _sceneTaskMap = new Map() |
| | | // 有巡查进度的场景类型的总完成量(针对某些场景类型不做巡查但依旧在计划中的情况) |
| | | let _totaltask = 0, |
| | | _completetask = 0 |
| | | |
| | | // 将各场景类型的巡查量 |
| | | for (const key in tInfo.totaltaskByScene) { |
| | | const e = tInfo.totaltaskByScene[key] |
| | | const v = { |
| | | sceneType: key, |
| | | total: e, |
| | | finish: tInfo.completetaskByScene[key] ? tInfo.completetaskByScene[key] : 0 |
| | | } |
| | | _sceneTaskMap.set(key, v) |
| | | if (v.finish > 0) { |
| | | _totaltask += v.total |
| | | _completetask += v.finish |
| | | } |
| | | } |
| | | }, |
| | | watch: {}, |
| | | methods: {}, |
| | | mounted() { |
| | | let i = 0 |
| | | while (i < 1) { |
| | | this.tasks.push({ |
| | | guid: 'SMuheEkjswioSn7A', |
| | | name: '2024年6月上海市静安区巡查任务', |
| | | district: '静安区', |
| | | planTime: '2024-06', |
| | | startTime: '2024-06-01 00:00:00', |
| | | endTime: '2024-06-30 23:59:59', |
| | | userName: '朱正强#邢子琦', |
| | | status: '正在执行', |
| | | count: [ |
| | | { |
| | | sceneType: '工地', |
| | | total: 90, |
| | | finish: 45 |
| | | }, |
| | | { |
| | | sceneType: '餐饮', |
| | | total: 90, |
| | | finish: 45 |
| | | }, |
| | | { |
| | | sceneType: '汽修', |
| | | total: 90, |
| | | finish: 45 |
| | | } |
| | | ] |
| | | }) |
| | | i++ |
| | | |
| | | const task = { |
| | | // name: tInfo.name, |
| | | // province: tInfo.provinceName, |
| | | // district: tInfo.districtName, |
| | | // totaltask: tInfo.totaltask, |
| | | // completetask: tInfo.completetask, |
| | | ...tInfo, |
| | | _totaltask, |
| | | _completetask, |
| | | count: [] |
| | | } |
| | | } |
| | | |
| | | for (const key of _sceneTaskMap.keys()) { |
| | | const value = _sceneTaskMap.get(key) |
| | | task.count.push(value) |
| | | } |
| | | resList.push(task) |
| | | }) |
| | | |
| | | tasks.value = resList |
| | | } |
| | | |
| | | function cal() { |
| | | subtaskStore.onAllTaskRefreshed(onGetTaskInfo) |
| | | } |
| | | |
| | | onMounted(() => { |
| | | cal() |
| | | }) |
| | | </script> |
| | | |
| | | <style scoped> |