Forráskód Böngészése

fix(menu): ensure that the external link jumps correctly, fix #516

Vben 4 éve
szülő
commit
6b7f688eaf

+ 9 - 2
src/components/SimpleMenu/src/SimpleMenu.vue

@@ -20,6 +20,7 @@
 <script lang="ts">
   import type { MenuState } from './types';
   import type { Menu as MenuType } from '/@/router/types';
+  import type { RouteLocationNormalizedLoaded } from 'vue-router';
 
   import { defineComponent, computed, ref, unref, reactive, toRefs, watch } from 'vue';
   import { useDesign } from '/@/hooks/web/useDesign';
@@ -29,8 +30,9 @@
   import { listenerRouteChange } from '/@/logics/mitt/routeChange';
   import { propTypes } from '/@/utils/propTypes';
   import { REDIRECT_NAME } from '/@/router/constant';
-  import { RouteLocationNormalizedLoaded, useRouter } from 'vue-router';
-  import { isFunction } from '/@/utils/is';
+  import { useRouter } from 'vue-router';
+  import { isFunction, isUrl } from '/@/utils/is';
+  import { openWindow } from '/@/utils';
 
   import { useOpenKeys } from './useOpenKeys';
   export default defineComponent({
@@ -127,11 +129,16 @@
       }
 
       async function handleSelect(key: string) {
+        if (isUrl(key)) {
+          openWindow(key);
+          return;
+        }
         const { beforeClickFn } = props;
         if (beforeClickFn && isFunction(beforeClickFn)) {
           const flag = await beforeClickFn(key);
           if (!flag) return;
         }
+
         emit('menuClick', key);
 
         isClickGo.value = true;

+ 1 - 1
src/layouts/default/sider/MixSider.vue

@@ -86,7 +86,7 @@
 
   import { ScrollContainer } from '/@/components/Container';
   import { SimpleMenuTag } from '/@/components/SimpleMenu';
-  import Icon from '/@/components/Icon';
+  import { Icon } from '/@/components/Icon';
   import { AppLogo } from '/@/components/Application';
   import Trigger from '../trigger/HeaderTrigger.vue';