From 592164b38f12dd2a605c20f6d1c84ec6b28b4f56 Mon Sep 17 00:00:00 2001 From: haoxuan <haoxuan> Date: 星期六, 09 十二月 2023 16:46:01 +0800 Subject: [PATCH] 报工报错的问题修改 --- src/views/dashboard/components/DeviceStatusInfo.vue | 37 ++++++++++++++++++++++++++++++++++--- 1 files changed, 34 insertions(+), 3 deletions(-) diff --git a/src/views/dashboard/components/DeviceStatusInfo.vue b/src/views/dashboard/components/DeviceStatusInfo.vue index 0730135..6e8461d 100644 --- a/src/views/dashboard/components/DeviceStatusInfo.vue +++ b/src/views/dashboard/components/DeviceStatusInfo.vue @@ -34,7 +34,6 @@ </span> </span> </span> - <!-- TODO: 搴旇鏀规垚 plc閲屽彇,缂烘帴鍙� --> <div class="device-b">宸ュ簭杩愯鏃堕棿锛歿{ runningTime }}</div> </div> <div v-if="type == 2" class="color-two"> @@ -73,6 +72,9 @@ import type { PLCResponse } from '@/api/plc' import { useTasksStore } from '@/stores/tasks' import { storeToRefs } from 'pinia' +import type { TasksGroupByChannel } from '@/api/task' +import { isNumber } from 'lodash-es' +import { useInterval } from '@vueuse/core' export interface DeviceStatusInfoProps { plc?: PLCResponse @@ -143,11 +145,40 @@ return `${days}澶�${hours}鏃�${m}鍒哷 } +/** + * 鑾峰彇鏌愪换鍔℃墍鍦ㄩ�氶亾鐨勮繍琛屼腑鐨勪换鍔� + * @param channelMap + * @param channelNumber + */ +function getChannelRunningTask(channelMap?: TasksGroupByChannel, channelNumber?: number) { + if (!channelMap || !isNumber(channelNumber)) { + return + } + + const channel = channelMap[channelNumber] + if (channel) { + const taskList = channel?.Tasks ?? [] + + return taskList.find((ele) => ele.Procedure.Status === 2) + } +} + // 宸ュ簭杩愯鏃堕棿 const taskStore = useTasksStore() -const { activeTask } = storeToRefs(taskStore) +const { activeTask, channels } = storeToRefs(taskStore) +const { counter, reset } = useInterval(1000, { controls: true }) const runningTime = computed(() => { - return getTaskRunningTime(activeTask?.value?.Procedure?.realStartTime, activeTask?.value?.Procedure?.realEndTime) + if (counter.value > 1000) { + // 鎷夸竴涓� counter 瀹氭椂瑙﹀彂宸ュ簭杩愯鏃堕棿鐨勯噸鏂拌绠楀拰娓叉煋, 闃叉婧㈠嚭闇�瑕侀噸缃� + reset() + } + // 濡傛灉褰撳墠閫変腑鐨勬槸宸插畬鎴愮殑浠诲姟, 浣跨敤褰撳墠閫変腑浠诲姟鏉ュ睍绀� + if (activeTask?.value?.Procedure?.Status === 3) { + return getTaskRunningTime(activeTask.value.Procedure?.realStartTime, activeTask.value.Procedure?.realEndTime) + } + // 濡傛灉褰撳墠閫変腑鐨勬槸杩愯涓垨鑰呮湭寮�濮嬬殑浠诲姟, 浣跨敤褰撳墠閫変腑浠诲姟鎵�鍦ㄩ�氶亾鐨勬澶勪簬杩愯涓殑浠诲姟鏉ュ睍绀� + const runningTask = getChannelRunningTask(channels?.value, activeTask?.value?.Channel) + return getTaskRunningTime(runningTask?.Procedure?.realStartTime, runningTask?.Procedure?.realEndTime) }) </script> -- Gitblit v1.8.0