| | |
| | | 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 所有任务已经加载完成*/ |
| | |
| | | /** |
| | | * 获取任务数据 |
| | | * @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, |
| | |
| | | channels.value = [] |
| | | }) |
| | | .finally(() => { |
| | | if (init) { |
| | | // 首次获取通道数据时自动选中第一个任务 |
| | | selectFirstTask(channels.value) |
| | | } |
| | | }) |
| | | } |
| | | |
| | |
| | | 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 |
| | |
| | | if (firstNotEmptyChannel) { |
| | | const channelNumber = +firstNotEmptyChannel[0] |
| | | activeTask.value = channels.value[channelNumber].Tasks[0] |
| | | setActiveChannel(channel) |
| | | } |
| | | } |
| | | } |
| | |
| | | * 刷新所有数据 |
| | | */ |
| | | function reloadChannel(channel: number) { |
| | | getChannels(currentType.value).then(() => { |
| | | return getChannels(currentType.value).then(() => { |
| | | autoSelectTask(channel) |
| | | }) |
| | | } |
| | |
| | | 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) |