fix(微前端): 远端应用改为 Layout 子路由,不再覆盖 GERP 框架

此前 /remote-app/:code 经 router.addRoute 注册为顶层路由,会绕过 DefaultLayout 直接铺满整屏(盖住侧边栏/顶栏);现给布局父路由命名 Layout 并以 router.addRoute('Layout', ...) 注入子路由,远端页面渲染在 GERP 框架内(保留导航与标签页)。
This commit is contained in:
TermiNexus committed 2026-10-05 17:05:11 +08:00
1 parent 5ffadd3f8a
commit 7db725d9f4
2 files changed
+7 -2

No files matched your search

+4 -2
View File
@@ -29,12 +29,14 @@ const REMOTE_DEMO_APP: AppFrontendModule = {
* 安装远端应用路由(宿主启动时调用一次)
*
* 注入 `/remote-app/:code`:由 RemoteAppHost 按 AppCode 动态加载远端组件渲染。
* **作为 Layout 的子路由注入**,使远端页面渲染在 GERP 框架内(侧边栏/顶栏/标签页保留);
* 若注册为顶层路由,会绕过 DefaultLayout 直接覆盖整个外壳。
* 注意路由不带 menuGuarded —— 远端应用暂不参与后端菜单过滤,由清单/接口自行控权限。
*/
export function InstallRemoteAppRoutes(router: Router): void {
registerRemoteApp(REMOTE_DEMO_APP)
router.addRoute({
path: '/remote-app/:code',
router.addRoute('Layout', {
path: 'remote-app/:code',
name: 'RemoteApp',
component: () => import('@/views/RemoteAppHost.vue'),
meta: { title: '远端应用', requiresAuth: true },
+3
View File
@@ -15,6 +15,9 @@ export const staticRoutes: RouteRecordRaw[] = [
},
{
path: '/',
// 命名父路由:远端微前端应用经 router.addRoute('Layout', ...) 注入为子路由,
// 从而享有完整框架(侧边栏/顶栏/标签页),而不是盖住 GERP 外壳
name: 'Layout',
component: () => import('@/layouts/DefaultLayout.vue'),
redirect: '/dashboard',
children: [