فهرست منبع

fix: meta.link invalid issue

Elm1992 1 ماه پیش
والد
کامیت
a441dcebae
1فایلهای تغییر یافته به همراه9 افزوده شده و 2 حذف شده
  1. 9 2
      packages/effects/layouts/src/basic/menu/use-navigation.ts

+ 9 - 2
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' });