From 872f92fa9b4451035682dfb5e117ebc701631fe3 Mon Sep 17 00:00:00 2001 From: wangxiang <1827945911@qq.com> Date: Thu, 6 Jul 2023 14:30:34 +0800 Subject: [PATCH] =?UTF-8?q?chore:=20=E6=94=AF=E6=8C=81=E8=A7=A3=E6=9E=90?= =?UTF-8?q?=E8=B7=AF=E7=94=B1=E5=8D=A0=E4=BD=8D=E7=AC=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/SimpleMenu/src/SimpleMenu.vue | 15 ++------------- src/layouts/default/menu/index.vue | 3 ++- src/router/index.ts | 14 ++++++++++++++ 3 files changed, 18 insertions(+), 14 deletions(-) diff --git a/src/components/SimpleMenu/src/SimpleMenu.vue b/src/components/SimpleMenu/src/SimpleMenu.vue index cc5be57..4397a4d 100644 --- a/src/components/SimpleMenu/src/SimpleMenu.vue +++ b/src/components/SimpleMenu/src/SimpleMenu.vue @@ -32,9 +32,7 @@ import { isFunction, isUrl } from '/@/utils/is'; import { openWindow } from '/@/utils'; import { useOpenKeys } from './useOpenKeys'; - import { formatUrlParamsMenu } from '/@/router/helper/menuHelper'; - import { useUserStore } from '/@/store/modules/user'; - import { User } from '/@/api/platform/core/entity/user' + import { formatRouterPlaceholder } from '/@/router'; export default defineComponent({ name: 'SimpleMenu', @@ -62,7 +60,6 @@ setup(props, { attrs, emit }) { const currentActiveMenu = ref(''); const isClickGo = ref(false); - const userStore = useUserStore(); const menuState = reactive({ activeName: '', @@ -133,15 +130,7 @@ async function handleSelect(key: string) { if (isUrl(key)) { - // 替换表达式真实值 - formatUrlParamsMenu(key, { - user: userStore.getUserInfo, - accessToken: userStore.getAccessToken, - refreshToken: userStore.getRefreshToken, - roleIds: userStore.getRoleIds, - permissions: userStore.getPermissions - }); - openWindow(key); + openWindow(formatRouterPlaceholder(key)); return; } const { beforeClickFn } = props; diff --git a/src/layouts/default/menu/index.vue b/src/layouts/default/menu/index.vue index 3381262..58ec6f8 100644 --- a/src/layouts/default/menu/index.vue +++ b/src/layouts/default/menu/index.vue @@ -15,6 +15,7 @@ import { useRootSetting } from '/@/hooks/setting/useRootSetting'; import { useAppInject } from '/@/hooks/web/useAppInject'; import { useDesign } from '/@/hooks/web/useDesign'; + import { formatRouterPlaceholder } from '/@/router'; export default defineComponent({ name: 'LayoutMenu', @@ -118,7 +119,7 @@ if (!isUrl(path)) { return true; } - openWindow(path); + openWindow(formatRouterPlaceholder(path)); return false; } diff --git a/src/router/index.ts b/src/router/index.ts index 2643763..eb7b16b 100644 --- a/src/router/index.ts +++ b/src/router/index.ts @@ -9,6 +9,9 @@ import type { RouteRecordRaw } from 'vue-router'; import type { App } from 'vue'; import { createRouter, createWebHashHistory } from 'vue-router'; import { basicRoutes } from './routes'; +import { formatUrlParamsMenu } from '/@/router/helper/menuHelper'; +import { useUserStore } from '/@/store/modules/user'; +const userStore = useUserStore(); /** 固定路由,设置基础路由不需要被重置掉 */ const WHITE_NAME_LIST: string[] = []; @@ -39,3 +42,14 @@ export function resetRouter() { export function setupRouter(app: App) { app.use(router); } + +/** 解析格式化路由占位符 */ +export function formatRouterPlaceholder(path: string) { + return formatUrlParamsMenu(path, { + user: userStore.getUserInfo, + accessToken: userStore.getAccessToken, + refreshToken: userStore.getRefreshToken, + roleIds: userStore.getRoleIds, + permissions: userStore.getPermissions + }); +}