diff --git a/src/constants/app.ts b/src/constants/app.ts index ca4f9276..4948a157 100644 --- a/src/constants/app.ts +++ b/src/constants/app.ts @@ -1,5 +1,9 @@ import { transformRecordToOption } from '@/utils/common'; +export const GLOBAL_HEADER_MENU_ID = '__GLOBAL_HEADER_MENU__'; + +export const GLOBAL_SIDER_MENU_ID = '__GLOBAL_SIDER_MENU__'; + export const themeSchemaRecord: Record = { light: 'theme.themeSchema.light', dark: 'theme.themeSchema.dark', diff --git a/src/hooks/common/router.ts b/src/hooks/common/router.ts index 89374b7f..f95a25a5 100644 --- a/src/hooks/common/router.ts +++ b/src/hooks/common/router.ts @@ -30,17 +30,30 @@ export function useRouterPush(inSetup = true) { name: key }; - if (query) { + if (Object.keys(query || {}).length) { routeLocation.query = query; } - if (params) { + if (Object.keys(params || {}).length) { routeLocation.params = params; } return routerPush(routeLocation); } + function routerPushByKeyWithMetaQuery(key: RouteKey) { + const allRoutes = router.getRoutes(); + const meta = allRoutes.find(item => item.name === key)?.meta || null; + + const query: Record = {}; + + meta?.query?.forEach(item => { + query[item.key] = item.value; + }); + + return routerPushByKey(key, { query }); + } + async function toHome() { return routerPushByKey('root'); } @@ -95,6 +108,7 @@ export function useRouterPush(inSetup = true) { routerPush, routerBack, routerPushByKey, + routerPushByKeyWithMetaQuery, toLogin, toggleLoginModule, redirectFromLogin diff --git a/src/layouts/base-layout/index.vue b/src/layouts/base-layout/index.vue index 948638b0..7d00da22 100644 --- a/src/layouts/base-layout/index.vue +++ b/src/layouts/base-layout/index.vue @@ -1,5 +1,5 @@