From ddbe28886d33194f3aef4a2dbd7ca43ebb4e5341 Mon Sep 17 00:00:00 2001 From: WindowBird <13870814+windows-bird@user.noreply.gitee.com> Date: Sat, 22 Nov 2025 11:57:31 +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.3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pages/project/list/index.vue | 416 ++++++++------ pages/project/search/index.vue | 966 +++++++++++++++++++++++++++++++++ 2 files changed, 1218 insertions(+), 164 deletions(-) create mode 100644 pages/project/search/index.vue diff --git a/pages/project/list/index.vue b/pages/project/list/index.vue index b55beb0..3b51259 100644 --- a/pages/project/list/index.vue +++ b/pages/project/list/index.vue @@ -1,111 +1,99 @@ @@ -253,6 +244,7 @@ import { usePagination } from '@/composables'; import { useDictStore } from '@/store/dict'; import { useUserStore } from '@/store/user'; import { getDictLabel } from '@/utils/dict'; +import FabPlus from '@/components/FabPlus.vue'; const dictStore = useDictStore(); const userStore = useUserStore(); @@ -305,6 +297,18 @@ const statusTabs = computed(() => { }); const activeStatusTab = ref('IN_PROGRESS'); // 默认选中"开发中" +const showFilter = ref(false); + +// 主要状态标签(开发中、维护中、全部) +const mainStatusTabs = computed(() => { + const allTabs = statusTabs.value; + const mainTabs = [ + allTabs.find(tab => tab.value === 'IN_PROGRESS'), + allTabs.find(tab => tab.value === 'MAINTENANCE'), + { label: '全部', value: 'ALL' } + ].filter(Boolean); + return mainTabs; +}); // 当字典加载完成后确保当前选中状态仍然存在 watch(statusTabs, (tabs) => { @@ -343,18 +347,11 @@ const { }; // 添加状态筛选 - if (activeStatusTab.value) { + if (activeStatusTab.value && activeStatusTab.value !== 'ALL') { // 根据选中的状态标签设置statusList(使用字典键值) - // if (activeStatusTab.value === 'DEVELOPMENT_OVERDUE') { - // // 开发超期需要特殊处理:状态是IN_PROGRESS,但需要overdue=true - // requestParams.statusList = ['IN_PROGRESS']; - // requestParams.overdue = true; - // } else - { - // 其他状态直接使用字典键值 - requestParams.statusList = [activeStatusTab.value]; - } + requestParams.statusList = [activeStatusTab.value]; } + // 如果选择"全部",则不设置statusList,显示所有状态 // 添加其他筛选条件 if (filterParams.value.customerName) { @@ -771,6 +768,13 @@ const handleStatusTabClick = (value) => { handleSearch(); }; +// 跳转到项目搜索页面 +const goToProjectSearch = () => { + uni.navigateTo({ + url: '/pages/project/search/index' + }); +}; + // 处理成员选择 const handleMemberChange = (e) => { const index = e.detail.value; @@ -800,9 +804,7 @@ const handleReset = () => { overdue: '' }; selectedMemberName.value = ''; - activeStatusTab.value = 'IN_PROGRESS'; - // 使用 updateParams 更新查询参数,会自动重置页码并重新加载数据 - updateParams({}); + handleSearch(); }; // 上拉加载更多 - 使用 uniapp 的 onReachBottom @@ -878,22 +880,114 @@ onLoad(() => { +