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 更新查询参数,会自动重置页码并重新加载数据