diff --git a/pages/project/list/index.vue b/pages/project/list/index.vue index 111cc18..6b85145 100644 --- a/pages/project/list/index.vue +++ b/pages/project/list/index.vue @@ -31,14 +31,14 @@ 全部 {{ tab.label }} @@ -347,15 +347,17 @@ const { }; // 添加状态筛选 - // 优先使用顶部标签的状态,如果顶部标签是"全部",则使用筛选面板中的状态 + // 导航栏的三个状态(开发中、维护中、全部)和筛选面板中的状态是独立的 if (activeStatusTab.value && activeStatusTab.value !== 'ALL') { - // 根据选中的状态标签设置statusList(使用字典键值) + // 如果导航栏选择的是"开发中"或"维护中",只使用导航栏的状态,忽略筛选面板中的状态 requestParams.statusList = [activeStatusTab.value]; - } else if (filterParams.value.status) { - // 如果顶部标签是"全部",且筛选面板中有选择状态,则使用筛选面板的状态 - requestParams.statusList = [filterParams.value.status]; + } else if (activeStatusTab.value === 'ALL') { + // 如果导航栏选择的是"全部",则使用筛选面板中的状态(如果有选择的话) + if (filterParams.value.status) { + requestParams.statusList = [filterParams.value.status]; + } + // 如果筛选面板中也没有选择状态,则不设置statusList,显示所有状态 } - // 如果都没有选择,则不设置statusList,显示所有状态 // 添加其他筛选条件 if (filterParams.value.joinUserId) { @@ -783,6 +785,16 @@ const handleMemberChange = (e) => { } }; +// 处理筛选面板中的状态选择 +const handleFilterStatusChange = (status) => { + filterParams.value.status = status; + // 当在筛选面板中选择具体状态(非"全部")时,自动将导航栏切换到"全部",使筛选面板中的状态选择生效 + // 这样导航栏的状态和筛选面板中的状态是独立的 + if (status) { + activeStatusTab.value = 'ALL'; + } +}; + // 搜索 const handleSearch = () => { // 使用 updateParams 更新查询参数,会自动重置页码并重新加载数据