diff --git a/src/store/modules/route/shared.ts b/src/store/modules/route/shared.ts index 9ddb732..86e6c99 100644 --- a/src/store/modules/route/shared.ts +++ b/src/store/modules/route/shared.ts @@ -281,11 +281,9 @@ export function getBreadcrumbsByRoute( const key = route.name as string const activeKey = route.meta?.activeMenu - const menuKey = activeKey || key - for (const menu of menus) { - if (menu.key === menuKey) { - const breadcrumbMenu = menuKey !== activeKey ? menu : getGlobalMenuByBaseRoute(route) + if (menu.key === key) { + const breadcrumbMenu = menu return [transformMenuToBreadcrumb(breadcrumbMenu)] } @@ -296,6 +294,19 @@ export function getBreadcrumbsByRoute( return [transformMenuToBreadcrumb(menu), ...result] } } + + if (menu.key === activeKey) { + const ROUTE_DEGREE_SPLITTER = '_' + + const parentKey = key.split(ROUTE_DEGREE_SPLITTER).slice(0, -1).join(ROUTE_DEGREE_SPLITTER) + + const breadcrumbMenu = getGlobalMenuByBaseRoute(route) + if (parentKey !== activeKey) { + return [transformMenuToBreadcrumb(breadcrumbMenu)] + } + + return [transformMenuToBreadcrumb(menu), transformMenuToBreadcrumb(breadcrumbMenu)] + } } return []