charles
2024-04-29 c7f3fd5215399b37d0511b3bd555150ff1b13507
src/stores/tasks.ts
@@ -1,15 +1,17 @@
import { computed, ref } from 'vue'
import { defineStore } from 'pinia'
import type { Task, TasksGroupByChannel, TasksResponse } from '@/api/task'
import type { TaskListParams } from '@/api'
import { getTaskList } from '@/api'
import type { TaskListParams, TaskInfoParams } from '@/api'
import { getTaskList, getTaskInfo } from '@/api'
import { isNumber } from 'lodash-es'
import { getToken } from '@/common/utils/index'
export interface ChannelMoreBtnStatus {
  /** true 任务未加载完  false 所有任务已经加载完成*/
  [channel: number]: boolean
}
const token = getToken()
export const useTasksStore = defineStore('tasks', () => {
  const channels = ref<TasksGroupByChannel>({})
@@ -25,8 +27,10 @@
    const params: TaskListParams = {
      type,
      offset: 0,
      limit: 3
      limit: 3,
      deviceID: localStorage.getItem('currentDeviceID') || ''
    }
    return getTaskList(params)
      .then((res) => {
        channels.value = res.data
@@ -50,10 +54,22 @@
      return !!taskList?.length
    })
    if (firstNotEmptyChannel) {
    if (firstNotEmptyChannel && (token !== null || token !== '' || token !== 'undefined')) {
      const channelNumber = +firstNotEmptyChannel[0]
      activeTask.value = channels[channelNumber].Tasks[0]
      setActiveChannel(channelNumber)
      // activeTask.value = channels[channelNumber].Tasks[0]
      console.log(channels[channelNumber].Tasks[0].Procedure.ID, '1111')
      const params: TaskInfoParams = {
        deviceID: localStorage.getItem('currentDeviceID') || '',
        procedureID: channels[channelNumber].Tasks[0].Procedure.ID
      }
      return getTaskInfo(params)
        .then((res) => {
          activeTask.value = res.data
        })
        .catch((err) => {
          console.error(err)
        })
        .finally(() => {})
    } else {
      // 如果没有任务就清空当前选中的任务
      activeTask.value = undefined
@@ -68,9 +84,20 @@
   */
  function autoSelectTask(channel: number) {
    const currentChannelTaskList = channels.value[channel].Tasks
    if (currentChannelTaskList?.length) {
      activeTask.value = currentChannelTaskList[0]
      setActiveChannel(channel)
    if (currentChannelTaskList?.length && (token !== null || token !== '' || token !== 'undefined')) {
      // activeTask.value = currentChannelTaskList[0].Procedure.ID
      const params: TaskInfoParams = {
        deviceID: localStorage.getItem('currentDeviceID') || '',
        procedureID: currentChannelTaskList[0].Procedure.ID
      }
      return getTaskInfo(params)
        .then((res) => {
          activeTask.value = res.data
        })
        .catch((err) => {
          console.error(err)
        })
        .finally(() => {})
    } else {
      const firstNotEmptyChannel = Object.entries(channels.value).find((ele) => {
        const taskList = (ele[1] as TasksResponse)?.Tasks
@@ -90,9 +117,13 @@
   * 刷新所有数据
   */
  function reloadChannel(channel: number) {
    return getChannels(currentType.value).then(() => {
      autoSelectTask(channel)
    })
    if (token !== null || token !== '' || token !== 'undefined') {
      return getChannels(currentType.value).then(() => {
        autoSelectTask(channel)
      })
    } else {
      return
    }
  }
  function reloadAllData() {
@@ -105,18 +136,22 @@
      type: currentType.value,
      channel: channelNumber,
      offset: taskLength,
      limit: 10
      limit: 10,
      deviceID: localStorage.getItem('currentDeviceID') || ''
    }
    getTaskList(params)
      .then((res) => {
        const existTasks = channels.value![channelNumber].Tasks ?? []
        channels.value[channelNumber] = res.data[channelNumber] ?? {}
        channels.value[channelNumber].Tasks = channels.value[channelNumber].Tasks ?? []
        channels.value[channelNumber].Tasks = [...existTasks, ...channels.value[channelNumber].Tasks]
      })
      .catch((err) => {
        console.error(err)
      })
    if (token !== null || token !== '' || token !== 'undefined') {
      getTaskList(params)
        .then((res) => {
          const existTasks = channels.value![channelNumber].Tasks ?? []
          channels.value[channelNumber] = res.data[channelNumber] ?? {}
          channels.value[channelNumber].Tasks = channels.value[channelNumber].Tasks ?? []
          channels.value[channelNumber].Tasks = [...existTasks, ...channels.value[channelNumber].Tasks]
        })
        .catch((err) => {
          console.error(err)
        })
    }
  }
  function foldChannelTasksBtn(channelNumber: number) {