diff --git a/src/hooks/web/usePage.ts b/src/hooks/web/usePage.ts index 1b43d59eb..9e7882051 100644 --- a/src/hooks/web/usePage.ts +++ b/src/hooks/web/usePage.ts @@ -5,6 +5,8 @@ import { unref } from 'vue'; import { useRouter } from 'vue-router'; import { REDIRECT_NAME } from '@/router/constant'; +import { isHttpUrl } from '@/utils/is'; +import { openWindow } from '@/utils'; export type PathAsPageEnum = T extends { path: string } ? T & { path: PageEnum } : T; export type RouteLocationRawEx = PathAsPageEnum; @@ -22,6 +24,13 @@ export function useGo(_router?: Router) { if (!opt) { return; } + let path = unref(opt) as string; + if (path[0] === '/') { + path = path.slice(1); + } + if (isHttpUrl(path)) { + return openWindow(path); + } isReplace ? replace(opt).catch(handleError) : push(opt).catch(handleError); } return go;