diff --git a/src/router/router-guards.ts b/src/router/router-guards.ts index aedb0667..7d2a885d 100644 --- a/src/router/router-guards.ts +++ b/src/router/router-guards.ts @@ -5,6 +5,13 @@ import { loginCheck } from '@/utils' export function createRouterGuards(router: Router) { // 前置 router.beforeEach(async (to, from, next) => { + // http://localhost:3000/#/chart/preview/792622755697790976?t=123 + // 把外部动态参数放入window.route.params,后续API动态接口可以用window.route?.params?.t来拼接参数 + // @ts-ignore + if (!window.route) window.route = {params: {}} + // @ts-ignore + Object.assign(window.route.params, to.query) + const Loading = window['$loading']; Loading && Loading.start(); const isErrorPage = router.getRoutes().findIndex((item) => item.name === to.name); diff --git a/src/utils/router.ts b/src/utils/router.ts index f2a9c696..ea17d78a 100644 --- a/src/utils/router.ts +++ b/src/utils/router.ts @@ -159,7 +159,8 @@ export const fetchRouteParams = () => { */ export const fetchRouteParamsLocation = () => { try { - return document.location.hash.split('/').pop() || '' + // 防止添加query参数的时候,解析ID异常 + return document.location.hash.split('?')[0].split('/').pop() || '' } catch (error) { window['$message'].warning('查询路由信息失败,请联系管理员!') return '' @@ -190,4 +191,4 @@ export const loginCheck = () => { } catch (error) { return false } -} \ No newline at end of file +} \ No newline at end of file