fix(app-search): exclude items by `hideChildrenInMenu`
修复菜单搜索组件可能会显示被隐藏的子菜单的问题
| | |
| | | function handlerSearchResult(filterMenu: Menu[], reg: RegExp, parent?: Menu) { |
| | | const ret: SearchResult[] = []; |
| | | filterMenu.forEach((item) => { |
| | | const { name, path, icon, children, hideMenu } = item; |
| | | if (!hideMenu && reg.test(name) && !children?.length) { |
| | | const { name, path, icon, children, hideMenu, meta } = item; |
| | | if (!hideMenu && reg.test(name) && (!children?.length || meta?.hideChildrenInMenu)) { |
| | | ret.push({ |
| | | name: parent?.name ? `${parent.name} > ${name}` : name, |
| | | path, |
| | | icon, |
| | | }); |
| | | } |
| | | if (Array.isArray(children) && children.length) { |
| | | if (!meta?.hideChildrenInMenu && Array.isArray(children) && children.length) { |
| | | ret.push(...handlerSearchResult(children, reg, item)); |
| | | } |
| | | }); |
| | |
| | | meta: { |
| | | title: t('routes.dashboard.about'), |
| | | icon: 'simple-icons:about-dot-me', |
| | | // hideMenu: true, |
| | | }, |
| | | }, |
| | | ], |