diff --git a/CHANGELOG.zh_CN.md b/CHANGELOG.zh_CN.md index 024d5426..e80a4c00 100644 --- a/CHANGELOG.zh_CN.md +++ b/CHANGELOG.zh_CN.md @@ -8,6 +8,7 @@ - 修复 `TableAction`图标问题 - 修复菜单折叠按钮丢失问题 +- 修复菜单相关问题 ## 2.0.0-rc.16 (2020-01-12) diff --git a/src/components/SimpleMenu/src/SimpleSubMenu.vue b/src/components/SimpleMenu/src/SimpleSubMenu.vue index 44b03a91..d998acb4 100644 --- a/src/components/SimpleMenu/src/SimpleSubMenu.vue +++ b/src/components/SimpleMenu/src/SimpleSubMenu.vue @@ -76,7 +76,7 @@ const { prefixCls } = useDesign('simple-menu'); const getShowMenu = computed(() => { - return !props.item.meta?.hideMenu; + return !props.item?.hideMenu; }); const getIcon = computed(() => props.item?.icon); diff --git a/src/router/helper/menuHelper.ts b/src/router/helper/menuHelper.ts index 2481a732..81520188 100644 --- a/src/router/helper/menuHelper.ts +++ b/src/router/helper/menuHelper.ts @@ -45,6 +45,13 @@ export function transformMenuModule(menuModule: MenuModule): Menu { export function transformRouteToMenu(routeModList: AppRouteModule[]) { const cloneRouteModList = cloneDeep(routeModList); const routeList: AppRouteRecordRaw[] = []; + + // cloneRouteModList = filter(cloneRouteModList, (node) => { + // if (Reflect.has(node?.meta ?? {}, 'hideMenu')) { + // return !node?.meta.hideMenu; + // } + // return true; + // }); cloneRouteModList.forEach((item) => { if (item.meta?.single) { const realItem = item?.children?.[0]; @@ -55,13 +62,14 @@ export function transformRouteToMenu(routeModList: AppRouteModule[]) { }); return treeMap(routeList, { conversion: (node: AppRouteRecordRaw) => { - const { meta: { title, icon } = {} } = node; + const { meta: { title, icon, hideMenu = false } = {} } = node; !isUrl(node.path) && joinParentPath(routeList, node); return { name: title, icon, path: node.path, + hideMenu, }; }, }); diff --git a/src/router/types.ts b/src/router/types.ts index 2bb58026..f893a11e 100644 --- a/src/router/types.ts +++ b/src/router/types.ts @@ -75,6 +75,8 @@ export interface Menu { meta?: Partial; tag?: MenuTag; + + hideMenu?: boolean; } export interface MenuModule {