diff --git a/src/views/screen/mainScreen.vue b/src/views/screen/mainScreen.vue index a6d7cce..dc696ad 100644 --- a/src/views/screen/mainScreen.vue +++ b/src/views/screen/mainScreen.vue @@ -246,7 +246,7 @@ const getCachedRegionOption = (): CacheData | null => { return null } -const setCachedRegionOption = (regionOption: RegionItem[], campus_id: string) => { +const setCachedRegionOption = (regionOption: RegionItem[], campus_id: string, cacheKey: string) => { try { const cacheData: CacheData = { regionOption, @@ -256,7 +256,7 @@ const setCachedRegionOption = (regionOption: RegionItem[], campus_id: string) => data: cacheData, timestamp: Date.now() } - sessionStorage.setItem(CACHE_KEY, JSON.stringify(cache)) + sessionStorage.setItem(cacheKey, JSON.stringify(cache)) console.log('regionOption 数据已缓存') } catch (error) { console.error('保存缓存失败:', error) @@ -318,6 +318,7 @@ onMounted(async () => { // 将园区信息去重 const parkMap = new Map(); + const globalRegionMap = new Map(); records.forEach(el => { if (!parkMap.has(el.park_code)) { parkMap.set(el.park_code, { @@ -325,12 +326,24 @@ onMounted(async () => { code: el.park_code }) } + if (globalRegionMap.has(el.region_id)) { + globalRegionMap.get(el.region_id).push({name: el.park_name, code: el.park_code}) + }else { + let regionValues = [{name: el.park_name, code: el.park_code}] + globalRegionMap.set(el.region_id, regionValues) + } }) + for(let [region_id, regionValues] of globalRegionMap) { + let campus_ids = regionValues.map(e1 => e1.code).join(); + setCachedRegionOption(regionValues, campus_ids, region_id) + } + // 将parkMap转换为数组 query.campus_id = Array.from(parkMap.values()).map(e1 => e1.code).join(); // 保存到缓存 - setCachedRegionOption(regionOption.value, query.campus_id) + setCachedRegionOption(regionOption.value, query.campus_id, CACHE_KEY) + } } catch (error) {