diff --git a/orion-ops-ui/src/components/menu/selector/menu-selector-tree.vue b/orion-ops-ui/src/components/menu/selector/menu-selector-tree.vue index 34e68972..8887eb02 100644 --- a/orion-ops-ui/src/components/menu/selector/menu-selector-tree.vue +++ b/orion-ops-ui/src/components/menu/selector/menu-selector-tree.vue @@ -104,7 +104,7 @@ // 加载所有展开的key eachAllExpandKeys(treeData.value); }; - init(); + init([]); // 获取值 const getValue = () => { diff --git a/orion-ops-ui/src/store/modules/cache/index.ts b/orion-ops-ui/src/store/modules/cache/index.ts index d16fcd04..2e4ec18e 100644 --- a/orion-ops-ui/src/store/modules/cache/index.ts +++ b/orion-ops-ui/src/store/modules/cache/index.ts @@ -1,44 +1,24 @@ import { defineStore } from 'pinia'; import { CacheState } from './types'; -import { MenuQueryResponse } from '@/api/system/menu'; -import { RoleQueryResponse } from '@/api/user/role'; + +export type CacheType = 'menus' | 'roles' | 'tags' const useCacheStore = defineStore('cache', { state: (): CacheState => ({ menus: [], roles: [], + tags: [] }), getters: {}, actions: { /** - * 更新菜单 + * 设置 */ - updateMenus(menus: MenuQueryResponse[]) { - this.menus = menus; - }, - - /** - * 清空菜单 - */ - resetMenus() { - this.menus = []; - }, - - /** - * 更新角色 - */ - updateRoles(roles: RoleQueryResponse[]) { - this.roles = roles; - }, - - /** - * 清空角色 - */ - resetRoles() { - this.roles = []; - }, + set(name: CacheType, value: any) { + this[name] = value; + } }, }); diff --git a/orion-ops-ui/src/store/modules/cache/types.ts b/orion-ops-ui/src/store/modules/cache/types.ts index 7b14e402..9cb4e509 100644 --- a/orion-ops-ui/src/store/modules/cache/types.ts +++ b/orion-ops-ui/src/store/modules/cache/types.ts @@ -1,9 +1,9 @@ import { MenuQueryResponse } from '@/api/system/menu'; import { RoleQueryResponse } from '@/api/user/role'; +import { TagResponse } from '@/api/meta/tag'; export interface CacheState { - menus: MenuQueryResponse[], - roles: RoleQueryResponse[], - - [key: string]: unknown; + menus: MenuQueryResponse[]; + roles: RoleQueryResponse[]; + tags: TagResponse[]; } diff --git a/orion-ops-ui/src/views/system/menu/components/menu-table.vue b/orion-ops-ui/src/views/system/menu/components/menu-table.vue index 54e702ce..5f1ba5d3 100644 --- a/orion-ops-ui/src/views/system/menu/components/menu-table.vue +++ b/orion-ops-ui/src/views/system/menu/components/menu-table.vue @@ -260,7 +260,7 @@ setFetchLoading(true); const { data } = await getMenuList(formModel); tableRenderData.value = data as MenuQueryResponse[]; - cacheStore.updateMenus(tableRenderData.value); + cacheStore.set('menus', tableRenderData.value); } finally { setFetchLoading(false); } @@ -301,11 +301,6 @@ await loadMenuData(); }; - // 卸载时清除 menu cache - onUnmounted(() => { - cacheStore.resetMenus(); - }); -