songshankun
2023-11-02 15f938d1756a9da8bd1323edda92bd0f52537bb4
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,