From 6a97837cd64feaa6552a951ef88392b57764704a Mon Sep 17 00:00:00 2001 From: hooray <304327508@qq.com> Date: Sun, 27 Nov 2022 23:39:54 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=20Menu.recordRaw=20=E5=92=8C?= =?UTF-8?q?=20Menu.recordMainRaw=20=E7=B1=BB=E5=9E=8B=E9=87=8C=E7=9A=84=20?= =?UTF-8?q?meta=20=E4=B8=BA=E5=8F=AF=E9=80=89=E5=8F=82=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/global.d.ts | 4 ++-- src/layouts/components/Header/index.vue | 6 +++--- src/layouts/components/MainSidebar/index.vue | 8 ++++---- src/layouts/components/Search/index.vue | 10 +++++----- src/layouts/components/SidebarItem/index.vue | 16 ++++++++-------- src/layouts/components/SubSidebar/index.vue | 2 +- src/store/modules/menu.ts | 14 +++++--------- 7 files changed, 28 insertions(+), 32 deletions(-) diff --git a/src/global.d.ts b/src/global.d.ts index 698ca25e..4a0193a9 100644 --- a/src/global.d.ts +++ b/src/global.d.ts @@ -244,7 +244,7 @@ declare namespace Menu { /** 原始 */ interface recordRaw { path?: string - meta: { + meta?: { title?: string icon?: string defaultOpened?: boolean @@ -255,7 +255,7 @@ declare namespace Menu { } /** 主导航 */ interface recordMainRaw { - meta: { + meta?: { title?: string icon?: string auth?: string | string[] diff --git a/src/layouts/components/Header/index.vue b/src/layouts/components/Header/index.vue index 6339ad0e..803ce1ee 100644 --- a/src/layouts/components/Header/index.vue +++ b/src/layouts/components/Header/index.vue @@ -30,10 +30,10 @@ function handlerMouserScroll(event: WheelEvent) { diff --git a/src/layouts/components/MainSidebar/index.vue b/src/layouts/components/MainSidebar/index.vue index 4914693d..fc0b4650 100644 --- a/src/layouts/components/MainSidebar/index.vue +++ b/src/layouts/components/MainSidebar/index.vue @@ -19,12 +19,12 @@ const { switchTo } = useMenu()
- - + + - {{ item.meta.title ?? '[ 无标题 ]' }} + {{ item.meta?.title ?? '[ 无标题 ]' }}
diff --git a/src/layouts/components/Search/index.vue b/src/layouts/components/Search/index.vue index d2488af4..1077250c 100644 --- a/src/layouts/components/Search/index.vue +++ b/src/layouts/components/Search/index.vue @@ -172,14 +172,14 @@ function getSourceListByMenus(arr: Menu.recordRaw[], icon?: string, breadcrumb?: arr.forEach((item) => { const breadcrumbTemp = cloneDeep(breadcrumb) || [] if (item.children && item.children.length > 0) { - breadcrumbTemp.push(item.meta.title) - getSourceListByMenus(item.children, item.meta.icon ?? icon, breadcrumbTemp) + breadcrumbTemp.push(item.meta?.title) + getSourceListByMenus(item.children, item.meta?.icon ?? icon, breadcrumbTemp) } else { - breadcrumbTemp.push(item.meta.title) + breadcrumbTemp.push(item.meta?.title) sourceList.value.push({ - icon: item.meta.icon ?? icon, - title: item.meta.title, + icon: item.meta?.icon ?? icon, + title: item.meta?.title, path: item.path as string, breadcrumb: breadcrumbTemp, }) diff --git a/src/layouts/components/SidebarItem/index.vue b/src/layouts/components/SidebarItem/index.vue index 824b8caf..d02bee09 100644 --- a/src/layouts/components/SidebarItem/index.vue +++ b/src/layouts/components/SidebarItem/index.vue @@ -20,7 +20,7 @@ const settingsStore = useSettingsStore() const hasChildren = computed(() => { let flag = true if (props.item.children) { - if (props.item.children.every(item => item.meta.sidebar === false)) { + if (props.item.children.every(item => item.meta?.sidebar === false)) { flag = false } } @@ -35,23 +35,23 @@ const hasChildren = computed(() => { diff --git a/src/layouts/components/SubSidebar/index.vue b/src/layouts/components/SubSidebar/index.vue index cf6833bf..0777fc2b 100644 --- a/src/layouts/components/SubSidebar/index.vue +++ b/src/layouts/components/SubSidebar/index.vue @@ -30,7 +30,7 @@ function onSidebarScroll(e: Event) { > diff --git a/src/store/modules/menu.ts b/src/store/modules/menu.ts index eed64f56..8a50e0ed 100644 --- a/src/store/modules/menu.ts +++ b/src/store/modules/menu.ts @@ -12,13 +12,9 @@ function getDeepestPath(menu: Menu.recordRaw, rootPath = '') { let retnPath = '' if (menu.path !== undefined) { if (menu.children) { - if ( - menu.children.some((item) => { - return item.meta.sidebar !== false - }) - ) { + if (menu.children.some(item => item.meta?.sidebar !== false)) { for (let i = 0; i < menu.children.length; i++) { - if (menu.children[i].meta.sidebar !== false) { + if (menu.children[i].meta?.sidebar !== false) { retnPath = getDeepestPath(menu.children[i], resolveRoutePath(rootPath, menu.path)) break } @@ -39,9 +35,9 @@ function hasPermission(permissions: string[], menu: Menu.recordMainRaw | Menu.re let isAuth = false if (menu.meta && menu.meta.auth) { isAuth = permissions.some((auth) => { - return typeof menu.meta.auth === 'string' + return typeof menu.meta?.auth === 'string' ? menu.meta.auth === auth - : typeof menu.meta.auth === 'object' + : typeof menu.meta?.auth === 'object' ? menu.meta.auth.includes(auth) : false }) @@ -72,7 +68,7 @@ function filterAsyncMenus(men function getDefaultOpenedPaths(menus: Menu.recordRaw[], rootPath = '') { const defaultOpenedPaths: string[] = [] menus.forEach((item) => { - if (item.path && item.meta.defaultOpened && item.children) { + if (item.path && item.meta?.defaultOpened && item.children) { defaultOpenedPaths.push(resolveRoutePath(rootPath, item.path)) const childrenDefaultOpenedPaths = getDefaultOpenedPaths(item.children, resolveRoutePath(rootPath, item.path)) if (childrenDefaultOpenedPaths.length > 0) {