From 15f938d1756a9da8bd1323edda92bd0f52537bb4 Mon Sep 17 00:00:00 2001
From: songshankun <songshankun@foxmail.com>
Date: 星期四, 02 十一月 2023 16:55:47 +0800
Subject: [PATCH] feat: 调整设备信息取值

---
 src/stores/tasks.ts |   51 ++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 50 insertions(+), 1 deletions(-)

diff --git a/src/stores/tasks.ts b/src/stores/tasks.ts
index 8f8599d..92035a0 100644
--- a/src/stores/tasks.ts
+++ b/src/stores/tasks.ts
@@ -25,14 +25,62 @@
       offset: 0,
       limit: 3
     }
-    getTaskList(params)
+    return getTaskList(params)
       .then((res) => {
         channels.value = res.data
+
+        // 棣栨鑾峰彇閫氶亾鏁版嵁鏃惰嚜鍔ㄩ�変腑绗竴涓换鍔�
+        if (!activeTask?.value) {
+          selectFirstTask(channels.value)
+        }
       })
       .catch((err) => {
         console.error(err)
         channels.value = []
       })
+  }
+
+  function selectFirstTask(channels: TasksGroupByChannel) {
+    const firstNotEmptyChannel = Object.entries(channels).find((ele) => {
+      const taskList = (ele[1] as TasksResponse)?.Tasks
+
+      return !!taskList.length
+    })
+
+    if (firstNotEmptyChannel) {
+      const channelNumber = +firstNotEmptyChannel[0]
+      activeTask.value = channels[channelNumber].Tasks[0]
+    }
+  }
+
+  /**
+   * 鏁版嵁鍔犺浇瀹屾垚鍚庤嚜鍔ㄩ�変腑涓�涓换鍔�
+   */
+  function autoSelectTask(channel: number) {
+    const currentChannelTaskList = channels.value[channel].Tasks
+    if (currentChannelTaskList?.length) {
+      activeTask.value = currentChannelTaskList[0]
+    } else {
+      const firstNotEmptyChannel = Object.entries(channels.value).find((ele) => {
+        const taskList = (ele[1] as TasksResponse)?.Tasks
+
+        return !!taskList.length
+      })
+
+      if (firstNotEmptyChannel) {
+        const channelNumber = +firstNotEmptyChannel[0]
+        activeTask.value = channels.value[channelNumber].Tasks[0]
+      }
+    }
+  }
+
+  /**
+   * 鍒锋柊鎵�鏈夋暟鎹�
+   */
+  function reload(channel: number) {
+    getChannels(currentType.value).then(() => {
+      autoSelectTask(channel)
+    })
   }
 
   function moreChannelTasksBtn(channelNumber: number) {
@@ -96,6 +144,7 @@
     getChannels,
     moreBtnStatus,
     activeTask,
+    reload,
     setActiveTask,
     requestParamsMap,
     getParamsByChannel,

--
Gitblit v1.8.0