From 456d6ed3fb5412575cb7541d3a0a601466d97038 Mon Sep 17 00:00:00 2001
From: songshankun <songshankun@foxmail.com>
Date: 星期一, 13 十一月 2023 16:56:11 +0800
Subject: [PATCH] feat: step组件适配工序过多情况;修复任务少于3条时展示收起按钮的问题
---
src/stores/tasks.ts | 79 +++++++++++++++++++++++++++++----------
1 files changed, 58 insertions(+), 21 deletions(-)
diff --git a/src/stores/tasks.ts b/src/stores/tasks.ts
index 8f8599d..971a627 100644
--- a/src/stores/tasks.ts
+++ b/src/stores/tasks.ts
@@ -25,7 +25,7 @@
offset: 0,
limit: 3
}
- getTaskList(params)
+ return getTaskList(params)
.then((res) => {
channels.value = res.data
})
@@ -33,6 +33,60 @@
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]
+ } else {
+ // 濡傛灉娌℃湁浠诲姟灏辨竻绌哄綋鍓嶉�変腑鐨勪换鍔�
+ activeTask.value = undefined
+ }
+ }
+
+ /**
+ * 鏁版嵁鍔犺浇瀹屾垚鍚庤嚜鍔ㄩ�変腑涓�涓换鍔�
+ */
+ 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 reloadChannel(channel: number) {
+ getChannels(currentType.value).then(() => {
+ autoSelectTask(channel)
+ })
+ }
+
+ function reloadAllData() {
+ getChannels(currentType.value)
}
function moreChannelTasksBtn(channelNumber: number) {
@@ -75,32 +129,15 @@
activeTask.value = task
}
- const requestParamsMap = ref<{
- [channel: number]: TaskListParams
- }>({})
- function getParamsByChannel(channel: number) {
- return (
- requestParamsMap.value[channel] ?? {
- type: 1,
- offset: 0,
- limit: 3
- }
- )
- }
-
- function setParamsByChannel(channel: number, params: TaskListParams) {
- requestParamsMap.value[channel] = params
- }
return {
channels,
getChannels,
moreBtnStatus,
activeTask,
+ reloadChannel,
setActiveTask,
- requestParamsMap,
- getParamsByChannel,
- setParamsByChannel,
moreChannelTasksBtn,
- foldChannelTasksBtn
+ foldChannelTasksBtn,
+ reloadAllData
}
})
--
Gitblit v1.8.0