From 7735d200217d8726796634f0131a326e34eb7c27 Mon Sep 17 00:00:00 2001 From: dj <1042039504@qq.com> Date: Tue, 19 Aug 2025 16:07:29 +0800 Subject: [PATCH 1/6] =?UTF-8?q?feat(expense-management):=20=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0=E9=A1=B9=E7=9B=AE=E5=90=8D=E7=A7=B0=E6=90=9C=E7=B4=A2?= =?UTF-8?q?=E7=9A=84=E6=9C=AC=E5=9C=B0=E5=AD=98=E5=82=A8=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在成本明细、支出明细和共享明细页面中,为大师项目名称和子项目名称的搜索框添加本地存储功能 - 当用户输入搜索值时,从本地存储中获取已保存的项目名称选项 - 当用户清空搜索框时,将当前加载的项目名称选项保存到本地存储 - 优化了项目名称搜索的用户体验,减少了重复请求服务器的次数 --- src/views/expense-management/cost-detail/index.vue | 10 ++++++++++ src/views/expense-management/expend-detail/index.vue | 9 +++++++++ src/views/expense-management/share-detail/index.vue | 10 ++++++++++ 3 files changed, 29 insertions(+) diff --git a/src/views/expense-management/cost-detail/index.vue b/src/views/expense-management/cost-detail/index.vue index aa5ef68..83cffb1 100644 --- a/src/views/expense-management/cost-detail/index.vue +++ b/src/views/expense-management/cost-detail/index.vue @@ -37,6 +37,8 @@ const searchConfig = ref([ remote: true, remoteMethod:async (val)=>{ console.log('val',val) + searchConfig.value.find(item => item.prop == 'masterProjectName').props.options= JSON.parse(localStorage.getItem("masterProjectNameOption")) + if(val){ await getMasterProjectName( val) @@ -55,6 +57,8 @@ const searchConfig = ref([ options: [], remote: true, remoteMethod:async (val)=>{ + searchConfig.value.find(item => item.prop == 'subProjectName').props.options= JSON.parse(localStorage.getItem("subprojectNameOption")) + if(val){ await getSubprojectName(val) } @@ -235,6 +239,9 @@ const getMasterProjectName =async (val) => { } optionsMap.set(optionObj.value, optionObj); }) + if(!val){ + localStorage.setItem('masterProjectNameOption', JSON.stringify(Array.from(optionsMap.values()))) + } // 将 Map 转换为数组 searchConfig.value.find(item => item.prop == 'masterProjectName').props.options = Array.from(optionsMap.values()) } @@ -251,6 +258,9 @@ const getSubprojectName =async (val) => { } optionsMap.set(optionObj.value, optionObj); }) + if(!val){ + localStorage.setItem('subprojectNameOption', JSON.stringify(Array.from(optionsMap.values()))) + } // 将 Map 转换为数组 searchConfig.value.find(item => item.prop == 'subProjectName').props.options = Array.from(optionsMap.values()) } diff --git a/src/views/expense-management/expend-detail/index.vue b/src/views/expense-management/expend-detail/index.vue index 2d8005e..4da0b01 100644 --- a/src/views/expense-management/expend-detail/index.vue +++ b/src/views/expense-management/expend-detail/index.vue @@ -33,6 +33,8 @@ const searchConfig = ref( remote: true, remoteMethod:async (val)=>{ console.log('val',val) + searchConfig.value.find(item => item.prop == 'masterProjectName').props.options= JSON.parse(localStorage.getItem("masterProjectNameOption")) + if(val){ await getMasterProjectName( val) } @@ -50,6 +52,7 @@ const searchConfig = ref( options: [], remote: true, remoteMethod:async (val)=>{ + searchConfig.value.find(item => item.prop == 'subProjectName').props.options= JSON.parse(localStorage.getItem("subprojectNameOption")) if(val){ await getSubprojectName(val) } @@ -229,6 +232,9 @@ const getMasterProjectName =async (val) => { } optionsMap.set(optionObj.value, optionObj); }) + if(!val){ + localStorage.setItem('masterProjectNameOption', JSON.stringify(Array.from(optionsMap.values()))) + } // 将 Map 转换为数组 searchConfig.value.find(item => item.prop == 'masterProjectName').props.options = Array.from(optionsMap.values()) } @@ -245,6 +251,9 @@ const getSubprojectName =async (val) => { } optionsMap.set(optionObj.value, optionObj); }) + if(!val){ + localStorage.setItem('subprojectNameOption', JSON.stringify(Array.from(optionsMap.values()))) + } // 将 Map 转换为数组 searchConfig.value.find(item => item.prop == 'subProjectName').props.options = Array.from(optionsMap.values()) } diff --git a/src/views/expense-management/share-detail/index.vue b/src/views/expense-management/share-detail/index.vue index f3e8a84..9c0401c 100644 --- a/src/views/expense-management/share-detail/index.vue +++ b/src/views/expense-management/share-detail/index.vue @@ -37,6 +37,8 @@ const searchConfig = ref([ remote: true, remoteMethod:async (val)=>{ console.log('val',val) + searchConfig.value.find(item => item.prop == 'masterProjectName').props.options= JSON.parse(localStorage.getItem("masterProjectNameOption")) + if(val){ await getMasterProjectName( val) @@ -55,6 +57,8 @@ const searchConfig = ref([ options: [], remote: true, remoteMethod:async (val)=>{ + searchConfig.value.find(item => item.prop == 'subProjectName').props.options= JSON.parse(localStorage.getItem("subprojectNameOption")) + if(val){ await getSubprojectName(val) @@ -190,6 +194,9 @@ const getMasterProjectName =async (val) => { } optionsMap.set(optionObj.value, optionObj); }) + if(!val){ + localStorage.setItem('masterProjectNameOption', JSON.stringify(Array.from(optionsMap.values()))) + } // 将 Map 转换为数组 searchConfig.value.find(item => item.prop == 'masterProjectName').props.options = Array.from(optionsMap.values()) } @@ -206,6 +213,9 @@ const getSubprojectName =async (val) => { } optionsMap.set(optionObj.value, optionObj); }) + if(!val){ + localStorage.setItem('subprojectNameOption', JSON.stringify(Array.from(optionsMap.values()))) + } // 将 Map 转换为数组 searchConfig.value.find(item => item.prop == 'subProjectName').props.options = Array.from(optionsMap.values()) } From d20b96830742d9c9e268efffb7762a75dd69c570 Mon Sep 17 00:00:00 2001 From: dj <1042039504@qq.com> Date: Tue, 19 Aug 2025 16:14:23 +0800 Subject: [PATCH 2/6] =?UTF-8?q?feat(expense-management):=20=E4=B8=BA?= =?UTF-8?q?=E6=88=90=E6=9C=AC=E6=98=8E=E7=BB=86=E9=A1=B5=E9=9D=A2=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0=E5=B9=B4=E4=BB=BD=E5=92=8C=E6=9C=88=E4=BB=BD=E7=AD=9B?= =?UTF-8?q?=E9=80=89=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在成本明细、支出明细和分摊明细页面的搜索表单中添加了年份和月份选择器 - 优化了搜索表单的样式和布局- 注释掉了部分未使用的代码 --- .../expense-management/cost-detail/index.vue | 129 ++++++++++-------- .../expend-detail/index.vue | 27 +++- .../expense-management/share-detail/index.vue | 29 +++- 3 files changed, 126 insertions(+), 59 deletions(-) diff --git a/src/views/expense-management/cost-detail/index.vue b/src/views/expense-management/cost-detail/index.vue index 83cffb1..1c8373c 100644 --- a/src/views/expense-management/cost-detail/index.vue +++ b/src/views/expense-management/cost-detail/index.vue @@ -1,9 +1,10 @@