From 161b133b9a89736e01ee84baec0e0ccb2ae08395 Mon Sep 17 00:00:00 2001 From: chuan_wuhao <443547225@qq.com> Date: Tue, 27 Dec 2022 16:08:45 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=20Menu=20TagMenu=20=E7=B1=BB?= =?UTF-8?q?=E5=9E=8B=E9=94=99=E8=AF=AF=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/layout/components/MenuTag/index.tsx | 2 +- src/store/modules/menu.ts | 8 ++++---- src/types/store.d.ts | 15 +++++++++++++++ 3 files changed, 20 insertions(+), 5 deletions(-) create mode 100644 src/types/store.d.ts diff --git a/src/layout/components/MenuTag/index.tsx b/src/layout/components/MenuTag/index.tsx index c88f8df5..e73bc329 100644 --- a/src/layout/components/MenuTag/index.tsx +++ b/src/layout/components/MenuTag/index.tsx @@ -61,7 +61,7 @@ const MenuTag = defineComponent({ return ( - {this.menuTagOptions.map((curr: MenuOption, idx) => ( + {this.menuTagOptions.map((curr, idx) => ( 1 diff --git a/src/store/modules/menu.ts b/src/store/modules/menu.ts index d877385a..45b6c204 100644 --- a/src/store/modules/menu.ts +++ b/src/store/modules/menu.ts @@ -15,12 +15,12 @@ export const useMenu = defineStore('menu', () => { const menuState = reactive({ menuKey: cacheMenuKey as string | null, // 当前菜单 `key` - options: [] as RouteRecordRaw[], // 菜单列表 + options: [] as IMenuOptions[], // 菜单列表 collapsed: false, // 是否折叠菜单 - menuTagOptions: [] as RouteRecordRaw[], + menuTagOptions: [] as TagMenuOptions[], }) - const handleMenuTagOptions = (item: RouteRecordRaw) => { + const handleMenuTagOptions = (item: IMenuOptions) => { if (item.path !== menuState.menuKey) { const tag = menuState.menuTagOptions.find( (curr) => curr.path === item.path, @@ -40,7 +40,7 @@ export const useMenu = defineStore('menu', () => { * 修改 `menu key` 后的回调函数 */ const menuModelValueChange = (key: string, item: MenuOption) => { - handleMenuTagOptions(item as unknown as RouteRecordRaw) + handleMenuTagOptions(item as unknown as TagMenuOptions) menuState.menuKey = key diff --git a/src/types/store.d.ts b/src/types/store.d.ts new file mode 100644 index 00000000..571bbb42 --- /dev/null +++ b/src/types/store.d.ts @@ -0,0 +1,15 @@ +export {} + +import type { RouteRecordRaw } from 'vue-router' +import type { MenuOption } from 'naive-ui' +import type { VNode } from 'vue' + +declare global { + declare interface IMenuOptions extends MenuOption, RouteRecordRaw { + key: string | number + path: string + label: string | Function + } + + declare interface TagMenuOptions extends IMenuOptions {} +}