Эх сурвалжийг харах

fix: meta.link invalid issue

Elm1992 1 сар өмнө
parent
commit
a441dcebae

+ 9 - 2
packages/effects/layouts/src/basic/menu/use-navigation.ts

@@ -29,7 +29,8 @@ function useNavigation() {
       return true;
       return true;
     }
     }
     const route = routeMetaMap.get(path);
     const route = routeMetaMap.get(path);
-    return route?.meta?.openInNewWindow ?? false;
+    // 如果有外链或者设置了在新窗口打开,返回 true
+    return !!(route?.meta?.link || route?.meta?.openInNewWindow);
   };
   };
 
 
   const resolveHref = (path: string): string => {
   const resolveHref = (path: string): string => {
@@ -39,7 +40,13 @@ function useNavigation() {
   const navigation = async (path: string) => {
   const navigation = async (path: string) => {
     try {
     try {
       const route = routeMetaMap.get(path);
       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)) {
       if (isHttpUrl(path)) {
         openWindow(path, { target: '_blank' });
         openWindow(path, { target: '_blank' });