From 9a73e961fc807046b59ead69efdcc7286428eedd Mon Sep 17 00:00:00 2001 From: leo Date: Fri, 1 May 2026 06:49:05 +0800 Subject: [PATCH] fix(@vben/stores): respect base URL when opening route in new window (#7837) * fix(@vben/stores): respect base URL when opening route in new window * fix(@vben/stores): respect base URL when opening route in new window --- packages/effects/hooks/src/use-tabs.ts | 2 +- packages/stores/src/modules/tabbar.ts | 7 ++++--- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/packages/effects/hooks/src/use-tabs.ts b/packages/effects/hooks/src/use-tabs.ts index 526721127..978409ed1 100644 --- a/packages/effects/hooks/src/use-tabs.ts +++ b/packages/effects/hooks/src/use-tabs.ts @@ -47,7 +47,7 @@ export function useTabs() { } async function openTabInNewWindow(tab?: RouteLocationNormalized) { - await tabbarStore.openTabInNewWindow(tab || route); + await tabbarStore.openTabInNewWindow(tab || route, router); } async function closeTabByKey(key: string) { diff --git a/packages/stores/src/modules/tabbar.ts b/packages/stores/src/modules/tabbar.ts index 14af7be98..e94113869 100644 --- a/packages/stores/src/modules/tabbar.ts +++ b/packages/stores/src/modules/tabbar.ts @@ -14,7 +14,7 @@ import { markRaw, toRaw } from 'vue'; import { preferences } from '@vben-core/preferences'; import { createStack, - openRouteInNewWindow, + openWindow, Stack, startProgress, stopProgress, @@ -371,8 +371,9 @@ export const useTabbarStore = defineStore('core-tabbar', { * @zh_CN 新窗口打开标签页 * @param tab */ - async openTabInNewWindow(tab: TabDefinition) { - openRouteInNewWindow(tab.fullPath || tab.path); + async openTabInNewWindow(tab: TabDefinition, router: Router) { + const href = router.resolve(tab.fullPath || tab.path).href; + openWindow(new URL(href, location.href).href, { target: '_blank' }); }, /**