diff --git a/src/utils/menu.ts b/src/utils/menu.ts index 1d11aabd..eadfbb02 100644 --- a/src/utils/menu.ts +++ b/src/utils/menu.ts @@ -179,13 +179,13 @@ const handleMeta = (item: MenuItem, isApp: boolean) => { } } -const findComponents = (code: string, level: number, isApp: boolean, components: any) => { +const findComponents = (code: string, level: number, isApp: boolean, components: any, mate: any, hasChildren: boolean) => { const myComponents = components[code] if (level === 1) { // BasicLayoutPage - if (myComponents) { - return h(BasicLayoutPage, {}, () => [h(defineAsyncComponent(() => myComponents()), {})]) + if (myComponents && !hasChildren) { + return mate?.hasLayout === false ? () => myComponents() : h(BasicLayoutPage, {}, () => [h(defineAsyncComponent(() => myComponents()), {})]) } - if (isApp) { + if (isApp && !hasChildren) { return h(BasicLayoutPage, {}, () => [h(Iframe, {})]) } return myComponents ? () => myComponents() : BasicLayoutPage @@ -266,7 +266,7 @@ export const handleMenus = (menuData: any[], components: any, level: number = 1) children: item.children } - route.component = findComponents(item.code, level, isApp, components) + route.component = findComponents(item.code, level, isApp, components, item.meta, !!item.chidlren?.length) const extraRoute = hasExtraChildren(item, extraRouteObj) const detail_components = findDetailRouteItem(item, components)