From 621693acae8dad181eb8be6e60ffd73593e1177d Mon Sep 17 00:00:00 2001
From: songshankun <songshankun@foxmail.com>
Date: 星期二, 14 十一月 2023 16:50:45 +0800
Subject: [PATCH] fix: 修复设备状态组件工序运行时间未正确显示的问题

---
 src/views/dashboard/components/DeviceStatusInfo.vue |   27 ++++++++++++++++++++++++---
 1 files changed, 24 insertions(+), 3 deletions(-)

diff --git a/src/views/dashboard/components/DeviceStatusInfo.vue b/src/views/dashboard/components/DeviceStatusInfo.vue
index 0730135..8baea36 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,8 @@
 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'
 
 export interface DeviceStatusInfoProps {
   plc?: PLCResponse
@@ -143,11 +144,31 @@
   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 runningTime = computed(() => {
-  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