From 470e26ab528fe252cc472405992b8d17378f12c4 Mon Sep 17 00:00:00 2001 From: Hooray Hu <304327508@qq.com> Date: Sun, 10 Dec 2023 03:31:31 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AF=BC=E8=88=AA=E6=A0=8F=E8=AE=BE=E7=BD=AE?= =?UTF-8?q?=E6=BF=80=E6=B4=BB=E7=8A=B6=E6=80=81=E9=80=BB=E8=BE=91=E4=BC=98?= =?UTF-8?q?=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/layouts/components/Menu/index.vue | 11 +++++++---- src/layouts/components/Menu/item.vue | 4 ++-- src/layouts/components/Menu/sub.vue | 2 +- 3 files changed, 10 insertions(+), 7 deletions(-) diff --git a/src/layouts/components/Menu/index.vue b/src/layouts/components/Menu/index.vue index a76ea942..01f38b99 100644 --- a/src/layouts/components/Menu/index.vue +++ b/src/layouts/components/Menu/index.vue @@ -77,11 +77,14 @@ const closeMenu: MenuInjection['closeMenu'] = (index) => { } function setSubMenusActive(index: string) { - Object.keys(subMenus.value).forEach((index) => { - subMenus.value[index].active = false + for (const key in subMenus.value) { + subMenus.value[key].active = false + } + subMenus.value[index]?.indexPath.forEach((idx) => { + subMenus.value[idx].active = true }) - items.value[index]?.indexPath.forEach((index) => { - subMenus.value[index].active = true + items.value[index]?.indexPath.forEach((idx) => { + subMenus.value[idx].active = true }) } diff --git a/src/layouts/components/Menu/item.vue b/src/layouts/components/Menu/item.vue index 6f66eb6f..c25f46a9 100644 --- a/src/layouts/components/Menu/item.vue +++ b/src/layouts/components/Menu/item.vue @@ -17,8 +17,8 @@ const itemRef = ref() const isActived = computed(() => { return props.subMenu - ? rootMenu.subMenus[props.uniqueKey[props.uniqueKey.length - 1]]?.active - : rootMenu.activeIndex === props.uniqueKey[props.uniqueKey.length - 1] + ? rootMenu.subMenus[props.uniqueKey.at(-1)!].active + : rootMenu.activeIndex === props.uniqueKey.at(-1)! }) const isItemActive = computed(() => { diff --git a/src/layouts/components/Menu/sub.vue b/src/layouts/components/Menu/sub.vue index 35f6a62d..65cc4b4c 100644 --- a/src/layouts/components/Menu/sub.vue +++ b/src/layouts/components/Menu/sub.vue @@ -23,7 +23,7 @@ const subMenuRef = shallowRef() const rootMenu = inject(rootMenuInjectionKey)! const opened = computed(() => { - return rootMenu.openedMenus.includes(props.uniqueKey[props.uniqueKey.length - 1]) + return rootMenu.openedMenus.includes(props.uniqueKey.at(-1)!) }) const transitionEvent = computed(() => {