import { defineStore } from 'pinia' import type { MenuGroupItem } from '@/types/user' import { session } from '@/utils/session' /** 预留:后端 user.display 驱动菜单;当前侧栏使用 `router/localMenu` 静态配置。 */ export const usePermissionStore = defineStore('permission', { state: () => ({ menus: [] as MenuGroupItem[], }), actions: { initFromUserDisplay(display: MenuGroupItem[] | undefined | null): void { this.menus = display ?? [] if (this.menus.length) { session.Set('menus', JSON.stringify(this.menus), true) } }, hydrateFromSession(): void { const raw = session.Get('menus', true) if (raw) { try { this.menus = JSON.parse(raw) as MenuGroupItem[] } catch { this.menus = [] } } }, clear(): void { this.menus = [] session.Del('menus') }, }, })