diff --git a/packages/effects/layouts/src/basic/menu/use-navigation.ts b/packages/effects/layouts/src/basic/menu/use-navigation.ts index 6ba484a47..daa6dc71a 100644 --- a/packages/effects/layouts/src/basic/menu/use-navigation.ts +++ b/packages/effects/layouts/src/basic/menu/use-navigation.ts @@ -29,7 +29,8 @@ function useNavigation() { return true; } const route = routeMetaMap.get(path); - return route?.meta?.openInNewWindow ?? false; + // 如果有外链或者设置了在新窗口打开,返回 true + return !!(route?.meta?.link || route?.meta?.openInNewWindow); }; const resolveHref = (path: string): string => { @@ -39,7 +40,13 @@ function useNavigation() { const navigation = async (path: string) => { try { const route = routeMetaMap.get(path); - const { openInNewWindow = false, query = {} } = route?.meta ?? {}; + const { openInNewWindow = false, query = {}, link } = route?.meta ?? {}; + + // 检查是否有外链 + if (link && typeof link === 'string') { + openWindow(link, { target: '_blank' }); + return; + } if (isHttpUrl(path)) { openWindow(path, { target: '_blank' });