From 4df396b3bf9005ac30748184503d62cef89a52d2 Mon Sep 17 00:00:00 2001 From: WindowBird <13870814+windows-bird@user.noreply.gitee.com> Date: Sat, 22 Nov 2025 13:42:54 +0800 Subject: [PATCH] =?UTF-8?q?=E9=A1=B9=E7=9B=AE=E7=AE=A1=E7=90=86=E9=A1=B5?= =?UTF-8?q?=E9=9D=A2=E9=87=8D=E6=9E=840.7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pages/project/list/index.vue | 28 ++++++++++++++++++++-------- 1 file changed, 20 insertions(+), 8 deletions(-) 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 更新查询参数,会自动重置页码并重新加载数据