mirror of
https://gitee.com/nicefold/seewis-soybean-plus.git
synced 2026-10-14 10:02:13 +08:00
fix(projects): 修复路由 name 与 path 不一致激活菜单异常问题
This commit is contained in:
@@ -30,9 +30,40 @@ function useMixMenu() {
|
||||
}
|
||||
|
||||
function getActiveFirstLevelMenuKey() {
|
||||
const [firstLevelRouteName] = selectedKey.value.split('_');
|
||||
const currentKey = selectedKey.value;
|
||||
|
||||
setActiveFirstLevelMenuKey(firstLevelRouteName);
|
||||
const firstLevelMenu = allMenus.value.find(menu => {
|
||||
if (menu.key === currentKey) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if (menu.children && menu.children.length > 0) {
|
||||
return findMenuByKey(menu.children, currentKey);
|
||||
}
|
||||
|
||||
return false;
|
||||
});
|
||||
|
||||
if (firstLevelMenu) {
|
||||
setActiveFirstLevelMenuKey(firstLevelMenu.key);
|
||||
} else {
|
||||
const [firstLevelRouteName] = currentKey.split('_');
|
||||
setActiveFirstLevelMenuKey(firstLevelRouteName);
|
||||
}
|
||||
}
|
||||
|
||||
function findMenuByKey(menus: App.Global.Menu[], key: string): boolean {
|
||||
return menus.some(menu => {
|
||||
if (menu.key === key) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if (menu.children && menu.children.length > 0) {
|
||||
return findMenuByKey(menu.children, key);
|
||||
}
|
||||
|
||||
return false;
|
||||
});
|
||||
}
|
||||
|
||||
const isActiveFirstLevelMenuHasChildren = computed(() => {
|
||||
|
||||
@@ -9,6 +9,7 @@ import { useAppStore } from '@/store/modules/app';
|
||||
import { useThemeStore } from '@/store/modules/theme';
|
||||
import { useRouteStore } from '@/store/modules/route';
|
||||
import { useRouterPush } from '@/hooks/common/router';
|
||||
import { $t } from '@/locales';
|
||||
import { useMenu, useMixMenuContext } from '../context';
|
||||
import FirstLevelMenu from '../components/first-level-menu.vue';
|
||||
import GlobalLogo from '../../global-logo/index.vue';
|
||||
|
||||
Reference in New Issue
Block a user