From 3c010168dfde0e7df7f297c495c5c14de2dace80 Mon Sep 17 00:00:00 2001 From: theo <971366405@qq.com> Date: Tue, 12 Aug 2025 10:54:02 +0800 Subject: [PATCH] =?UTF-8?q?refactor:=20:recycle:=20=E4=BC=98=E5=8C=96?= =?UTF-8?q?=E9=80=BB=E8=BE=91=EF=BC=8C=E5=88=A0=E9=99=A4=E6=97=A5=E5=BF=97?= =?UTF-8?q?=E8=BE=93=E5=87=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 优化逻辑,删除日志输出 --- src/layouts/components/Menu/BasicMenu.vue | 23 +++++++++++++++-------- 1 file changed, 15 insertions(+), 8 deletions(-) diff --git a/src/layouts/components/Menu/BasicMenu.vue b/src/layouts/components/Menu/BasicMenu.vue index c98458f7..1f9be972 100644 --- a/src/layouts/components/Menu/BasicMenu.vue +++ b/src/layouts/components/Menu/BasicMenu.vue @@ -121,7 +121,6 @@ function resolveFullPath(routePath: string) { */ const onMenuOpen = (index: string) => { expandedMenuIndexes.value.push(index); - updateParentMenuStyles(); }; /** @@ -131,9 +130,18 @@ const onMenuOpen = (index: string) => { */ const onMenuClose = (index: string) => { expandedMenuIndexes.value = expandedMenuIndexes.value.filter((item) => item !== index); - updateParentMenuStyles(); }; +/** + * 监听展开的菜单项变化,更新父菜单样式 + */ +watch( + () => expandedMenuIndexes.value, + () => { + updateParentMenuStyles(); + } +); + /** * 监听菜单模式变化:当菜单模式切换为水平模式时,关闭所有展开的菜单项, * 避免在水平模式下菜单项显示错位。 @@ -166,9 +174,9 @@ watch( watch( () => currentRoute.path, () => { - // nextTick(() => { - // updateParentMenuStyles(); - // }); + nextTick(() => { + updateParentMenuStyles(); + }); } ); @@ -191,13 +199,12 @@ function updateParentMenuStyles() { // 查找当前激活的菜单项 const activeMenuItem = menuEl.querySelector(".el-menu-item.is-active"); - console.log("activeMenuItem", activeMenuItem); + if (activeMenuItem) { // 向上查找父级 el-sub-menu 元素 let parent = activeMenuItem.parentElement; while (parent && parent !== menuEl) { - if (parent.classList.contains("el-sub-menu") && parent.classList.contains("is-active")) { - console.log("parent", parent); + if (parent.classList.contains("el-sub-menu")) { parent.classList.add("has-active-child"); } parent = parent.parentElement;