From 985befd1aacce206d49925399aba85a51c50ea6e Mon Sep 17 00:00:00 2001
From: songshankun <songshankun@foxmail.com>
Date: 星期二, 28 十一月 2023 17:20:03 +0800
Subject: [PATCH] feat: 下发后重连plc

---
 src/stores/tasks.ts |   17 +++++++++++++----
 1 files changed, 13 insertions(+), 4 deletions(-)

diff --git a/src/stores/tasks.ts b/src/stores/tasks.ts
index 6ebd205..33df9a7 100644
--- a/src/stores/tasks.ts
+++ b/src/stores/tasks.ts
@@ -3,6 +3,7 @@
 import type { Task, TasksGroupByChannel, TasksResponse } from '@/api/task'
 import type { TaskListParams } from '@/api'
 import { getTaskList } from '@/api'
+import { isNumber } from 'lodash-es'
 
 export interface ChannelMoreBtnStatus {
   /** true 浠诲姟鏈姞杞藉畬  false 鎵�鏈変换鍔″凡缁忓姞杞藉畬鎴�*/
@@ -17,8 +18,9 @@
   /**
    * 鑾峰彇浠诲姟鏁版嵁
    * @param type 1鏈畬鎴�2浠婂ぉ鏈畬鎴�3宸插畬鎴�
+   * @param init 鏄惁鏄娆¤幏鍙�,棣栨闇�瑕侀�変腑绗竴椤逛换鍔�
    */
-  function getChannels(type: 1 | 2 | 3) {
+  function getChannels(type: 1 | 2 | 3, init = false) {
     currentType.value = type
     const params: TaskListParams = {
       type,
@@ -34,8 +36,10 @@
         channels.value = []
       })
       .finally(() => {
-        // 棣栨鑾峰彇閫氶亾鏁版嵁鏃惰嚜鍔ㄩ�変腑绗竴涓换鍔�
-        selectFirstTask(channels.value)
+        if (init) {
+          // 棣栨鑾峰彇閫氶亾鏁版嵁鏃惰嚜鍔ㄩ�変腑绗竴涓换鍔�
+          selectFirstTask(channels.value)
+        }
       })
   }
 
@@ -66,6 +70,7 @@
     const currentChannelTaskList = channels.value[channel].Tasks
     if (currentChannelTaskList?.length) {
       activeTask.value = currentChannelTaskList[0]
+      setActiveChannel(channel)
     } else {
       const firstNotEmptyChannel = Object.entries(channels.value).find((ele) => {
         const taskList = (ele[1] as TasksResponse)?.Tasks
@@ -76,6 +81,7 @@
       if (firstNotEmptyChannel) {
         const channelNumber = +firstNotEmptyChannel[0]
         activeTask.value = channels.value[channelNumber].Tasks[0]
+        setActiveChannel(channel)
       }
     }
   }
@@ -84,7 +90,7 @@
    * 鍒锋柊鎵�鏈夋暟鎹�
    */
   function reloadChannel(channel: number) {
-    getChannels(currentType.value).then(() => {
+    return getChannels(currentType.value).then(() => {
       autoSelectTask(channel)
     })
   }
@@ -131,6 +137,9 @@
   const activeTask = ref<Task>()
   function setActiveTask(task: Task | undefined) {
     activeTask.value = task
+    if (isNumber(task?.Channel)) {
+      setActiveChannel(task?.Channel as number)
+    }
   }
 
   const activeChannel = ref<number>(0)

--
Gitblit v1.8.0