feat(expense-management): 添加项目名称搜索的本地存储功能

- 在成本明细、支出明细和共享明细页面中,为大师项目名称和子项目名称的搜索框添加本地存储功能
- 当用户输入搜索值时,从本地存储中获取已保存的项目名称选项
- 当用户清空搜索框时,将当前加载的项目名称选项保存到本地存储
- 优化了项目名称搜索的用户体验,减少了重复请求服务器的次数
This commit is contained in:
dj
2025-08-19 16:07:29 +08:00
parent 831f017482
commit 7735d20021
3 changed files with 29 additions and 0 deletions

View File

@@ -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())
}

View File

@@ -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())
}

View File

@@ -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())
}