diff --git a/packages/effects/layouts/src/basic/menu/use-navigation.ts b/packages/effects/layouts/src/basic/menu/use-navigation.ts index 5efb3969..95a4ef6e 100644 --- a/packages/effects/layouts/src/basic/menu/use-navigation.ts +++ b/packages/effects/layouts/src/basic/menu/use-navigation.ts @@ -5,11 +5,22 @@ import { isHttpUrl, openWindow } from '@vben/utils'; function useNavigation() { const router = useRouter(); + // Helper function to clean up optional parameters + const cleanPath = (path: string) => { + // 正则匹配类似 :param? 的可选参数 + return path.replace(/\/:\w+\?/g, ''); + }; + const navigation = async (path: string) => { + // 如果是HTTP URL,则在新窗口打开 if (isHttpUrl(path)) { openWindow(path, { target: '_blank' }); } else { - await router.push(path); + // 去除未赋值的可选参数 + const cleanedPath = cleanPath(path); + + // 路由跳转 + await router.push(cleanedPath); } };