From ff82e86becbd200adabd2ce56fba1f6b3c6c37e1 Mon Sep 17 00:00:00 2001 From: Riku <risaku@163.com> Date: 星期一, 23 六月 2025 23:10:49 +0800 Subject: [PATCH] 2025.6.23 --- src/views/management/TaskStats.vue | 135 ++++++++++++++++++++++++++++---------------- 1 files changed, 86 insertions(+), 49 deletions(-) diff --git a/src/views/management/TaskStats.vue b/src/views/management/TaskStats.vue index 019e240..271414c 100644 --- a/src/views/management/TaskStats.vue +++ b/src/views/management/TaskStats.vue @@ -1,70 +1,107 @@ <template> - <div class="border-r-small"> - <div class="f-l">鍚勭洃绠″尯鍘跨殑宸℃煡瀹屾垚鎯呭喌</div> - <el-row> - <TaskItem v-for="item in tasks" :key="item.guid" v-bind="item"></TaskItem> - </el-row> - <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-col :span="12"> <SelfInspection></SelfInspection> </el-col> <el-col :span="12"> <JointEnforcement></JointEnforcement> </el-col> - </el-row> - </div> + </el-row> --> + </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 < 3) { - 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: '姝e湪鎵ц', - 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> -- Gitblit v1.9.3