From ce7916c09799ced5a85d4b915e5f81dfeff497f7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E6=88=90?= Date: Wed, 19 Nov 2025 22:26:36 +0800 Subject: [PATCH] 1 --- src/store/user.js | 11 +++++++---- src/views/system/sys_menu.vue | 11 ++++++++++- 2 files changed, 17 insertions(+), 5 deletions(-) diff --git a/src/store/user.js b/src/store/user.js index ad480df..2bbdd42 100644 --- a/src/store/user.js +++ b/src/store/user.js @@ -44,7 +44,7 @@ export default { menuList: state => state.menuList }, actions: { - async setAuthorityMenus({ state, commit }, { Main, ParentView, Page404, authorityMenus, menuIds }) { + async setAuthorityMenus({ state, commit }, { Main, ParentView, Page404, HomePage, authorityMenus, menuIds }) { // 如果传入了 authorityMenus,直接使用;否则从接口获取 let menus = authorityMenus @@ -95,9 +95,9 @@ export default { commit('setAuthorityMenus', JSON.stringify(menus)) // 生成路由菜单(传递 HomePage 组件) - // 从框架实例中获取 HomePage - const HomePage = (window.framework && window.framework.HomePage) || null - let mainMenu = uiTool.getRoutes(Main, ParentView, Page404, HomePage) + // 优先使用传入的 HomePage,如果没有则从框架实例中获取 + const homePageComponent = HomePage || (window.framework && window.framework.HomePage) || null + let mainMenu = uiTool.getRoutes(Main, ParentView, Page404, homePageComponent) console.log('生成的主菜单:', mainMenu) if (mainMenu && mainMenu.children) { @@ -182,10 +182,13 @@ export default { // 调用 authorityMenus 接口获取完整菜单数据 // 如果接口失败,会使用默认菜单配置和 menuIds 进行过滤 + // 从框架实例获取 HomePage + const HomePage = (window.framework && window.framework.HomePage) || null await dispatch('setAuthorityMenus', { Main, ParentView, Page404, + HomePage, menuIds }) diff --git a/src/views/system/sys_menu.vue b/src/views/system/sys_menu.vue index 6a058e3..16ed73a 100644 --- a/src/views/system/sys_menu.vue +++ b/src/views/system/sys_menu.vue @@ -251,7 +251,16 @@ export default { let menuTree = uiTool.transformTree(menuRows) this.gridOption.menuData = this.mapTree(menuTree) - this.$store.dispatch('setAuthorityMenus') + // 菜单更新后重新加载权限菜单 + const framework = this.$framework || window.framework + if (framework) { + this.$store.dispatch('user/setAuthorityMenus', { + Main: framework.components.Main, + ParentView: framework.components.ParentView, + Page404: framework.pages.Page404, + HomePage: framework.HomePage + }) + } }, async initCol() {