From d90ccb248cd0818c1d99affa124b7a4b6b1bcec5 Mon Sep 17 00:00:00 2001 From: zimo493 <2081182432@qq.com> Date: Thu, 14 Aug 2025 09:40:48 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20:sparkles:=20(keep-alive)=E4=BC=98?= =?UTF-8?q?=E5=8C=96=E9=A1=B5=E9=9D=A2=E7=BC=93=E5=AD=98=E6=9C=BA=E5=88=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 重构 AppMain 组件,引入 KeepCache 组件实现统一缓存 - 新增 DemoDetail 组件作为缓存测试页面 - 更新 TagsView 组件,优化缓存路由逻辑 - 修改 permission.store.ts,增加 allCacheRoutes 状态管理 - 更新 tags-view.store.ts,实现缓存路由的动态设置 - 调整多级菜单示例,支持缓存功能 --- src/layouts/components/AppMain/index.vue | 15 ++---- src/layouts/components/TagsView/index.vue | 12 ++++- src/router/index.ts | 6 +++ src/store/modules/permission.store.ts | 49 +++++++++++++++++++ src/store/modules/tags-view.store.ts | 34 ++++++++++++- src/views/demo/detail.vue | 17 +++++++ .../multi-level/children/children/detail.ts | 34 +++++++++++++ .../children/children/level3-1.vue | 11 ++++- .../children/children/level3-2.vue | 11 ++++- .../demo/multi-level/children/level2.vue | 11 +++-- src/views/demo/multi-level/level1.vue | 13 +++-- 11 files changed, 189 insertions(+), 24 deletions(-) create mode 100644 src/views/demo/detail.vue create mode 100644 src/views/demo/multi-level/children/children/detail.ts diff --git a/src/layouts/components/AppMain/index.vue b/src/layouts/components/AppMain/index.vue index 8510dc64..4a2ae912 100644 --- a/src/layouts/components/AppMain/index.vue +++ b/src/layouts/components/AppMain/index.vue @@ -1,23 +1,14 @@ diff --git a/src/views/demo/multi-level/children/children/detail.ts b/src/views/demo/multi-level/children/children/detail.ts new file mode 100644 index 00000000..aee29298 --- /dev/null +++ b/src/views/demo/multi-level/children/children/detail.ts @@ -0,0 +1,34 @@ +import router from "@/router"; +import { ElButton } from "element-plus"; + +export default defineComponent({ + name: "ToDetail", + setup() { + // 跳转详情 + const navigateToDetail = async (id: number) => { + await router.push({ + path: "/detail/" + id, + query: { mes: `msg${id}` }, + }); + }; + return () => + h("div", null, [ + h( + ElButton, + { + type: "primary", + onClick: () => navigateToDetail(1), + }, + "跳转详情1" + ), + h( + ElButton, + { + type: "success", + onClick: () => navigateToDetail(2), + }, + "跳转详情2" + ), + ]); + }, +}); diff --git a/src/views/demo/multi-level/children/children/level3-1.vue b/src/views/demo/multi-level/children/children/level3-1.vue index 888f58e9..246ace76 100644 --- a/src/views/demo/multi-level/children/children/level3-1.vue +++ b/src/views/demo/multi-level/children/children/level3-1.vue @@ -1,5 +1,14 @@ + diff --git a/src/views/demo/multi-level/children/children/level3-2.vue b/src/views/demo/multi-level/children/children/level3-2.vue index a99c98e9..5e1beae4 100644 --- a/src/views/demo/multi-level/children/children/level3-2.vue +++ b/src/views/demo/multi-level/children/children/level3-2.vue @@ -1,5 +1,14 @@ + + diff --git a/src/views/demo/multi-level/children/level2.vue b/src/views/demo/multi-level/children/level2.vue index abcc3a7e..f3de974f 100644 --- a/src/views/demo/multi-level/children/level2.vue +++ b/src/views/demo/multi-level/children/level2.vue @@ -1,7 +1,10 @@ + diff --git a/src/views/demo/multi-level/level1.vue b/src/views/demo/multi-level/level1.vue index 6264f9f2..dc451f0d 100644 --- a/src/views/demo/multi-level/level1.vue +++ b/src/views/demo/multi-level/level1.vue @@ -1,5 +1,5 @@ +