| | |
| | | console.error(err) |
| | | channels.value = [] |
| | | }) |
| | | .finally(() => { |
| | | // 首次获取通道数据时自动选中第一个任务 |
| | | selectFirstTask(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] |
| | | setActiveChannel(channelNumber) |
| | | } else { |
| | | // 如果没有任务就清空当前选中的任务 |
| | | activeTask.value = undefined |
| | | if (channels[0]) { |
| | | setActiveChannel(0) |
| | | } |
| | | } |
| | | } |
| | | |
| | | /** |
| | |
| | | /** |
| | | * 刷新所有数据 |
| | | */ |
| | | function reload(channel: number) { |
| | | function reloadChannel(channel: number) { |
| | | getChannels(currentType.value).then(() => { |
| | | autoSelectTask(channel) |
| | | }) |
| | | } |
| | | |
| | | function reloadAllData() { |
| | | getChannels(currentType.value) |
| | | } |
| | | |
| | | function moreChannelTasksBtn(channelNumber: number) { |
| | |
| | | |
| | | /** 当前高亮的任务 */ |
| | | const activeTask = ref<Task>() |
| | | function setActiveTask(task: Task) { |
| | | function setActiveTask(task: Task | undefined) { |
| | | activeTask.value = task |
| | | } |
| | | |
| | | const requestParamsMap = ref<{ |
| | | [channel: number]: TaskListParams |
| | | }>({}) |
| | | function getParamsByChannel(channel: number) { |
| | | return ( |
| | | requestParamsMap.value[channel] ?? { |
| | | type: 1, |
| | | offset: 0, |
| | | limit: 3 |
| | | } |
| | | ) |
| | | const activeChannel = ref<number>(0) |
| | | function setActiveChannel(channelNumber: number) { |
| | | activeChannel.value = channelNumber |
| | | } |
| | | |
| | | function setParamsByChannel(channel: number, params: TaskListParams) { |
| | | requestParamsMap.value[channel] = params |
| | | } |
| | | return { |
| | | channels, |
| | | getChannels, |
| | | moreBtnStatus, |
| | | activeTask, |
| | | reload, |
| | | reloadChannel, |
| | | setActiveTask, |
| | | requestParamsMap, |
| | | getParamsByChannel, |
| | | setParamsByChannel, |
| | | moreChannelTasksBtn, |
| | | foldChannelTasksBtn |
| | | foldChannelTasksBtn, |
| | | reloadAllData, |
| | | activeChannel, |
| | | setActiveChannel |
| | | } |
| | | }) |