From 018f611bfccc93e5a279a2c7030d01384375c669 Mon Sep 17 00:00:00 2001 From: yang chen Date: Mon, 29 Dec 2025 17:33:14 +0800 Subject: [PATCH 1/2] =?UTF-8?q?refactor(screen):=20=E4=BC=98=E5=8C=96?= =?UTF-8?q?=E5=8C=BA=E5=9F=9F=E9=80=89=E9=A1=B9=E7=BC=93=E5=AD=98=E9=80=BB?= =?UTF-8?q?=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 修改 setCachedRegionOption 函数,添加 cacheKey 参数支持 - 将缓存键从固定值改为动态传入的 cacheKey - 添加 globalRegionMap 用于存储全局区域映射 - 实现区域数据按 region_id 分组并缓存到对应键值 - 更新函数调用传递 CACHE_KEY 作为缓存键参数 --- src/views/screen/mainScreen.vue | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) 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) { From 00a4c2d4fad018fd816fd55b77d4c1cc5b28fc8d Mon Sep 17 00:00:00 2001 From: yang chen Date: Mon, 29 Dec 2025 17:36:36 +0800 Subject: [PATCH 2/2] =?UTF-8?q?feat(region):=20=E6=9B=B4=E6=96=B0=E5=8C=BA?= =?UTF-8?q?=E5=9F=9F=E9=80=89=E9=A1=B9=E7=BC=93=E5=AD=98=E9=94=AE=E7=94=9F?= =?UTF-8?q?=E6=88=90=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 修改 setCachedRegionOption 函数调用,添加缓存键前缀 - 为区域ID添加 CACHE_KEY 前缀以确保缓存键的唯一性 - 保持原有区域数据处理逻辑不变 --- src/views/screen/mainScreen.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/views/screen/mainScreen.vue b/src/views/screen/mainScreen.vue index dc696ad..92ef31f 100644 --- a/src/views/screen/mainScreen.vue +++ b/src/views/screen/mainScreen.vue @@ -335,7 +335,7 @@ onMounted(async () => { }) for(let [region_id, regionValues] of globalRegionMap) { let campus_ids = regionValues.map(e1 => e1.code).join(); - setCachedRegionOption(regionValues, campus_ids, region_id) + setCachedRegionOption(regionValues, campus_ids, CACHE_KEY+'_'+region_id) } // 将parkMap转换为数组