将 web-admin 从子模块改为仓库内普通目录,便于单仓克隆与维护。
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
1 parent
2e9d020d50
commit
c87732fcd5
515 files changed
+74372
-1
No files matched your search
@@ -0,0 +1,36 @@
|
||||
import type { AppRouteRecord } from '@/types/router'
|
||||
|
||||
/**
|
||||
* 与侧栏渲染(SidebarSubmenu)一致的菜单过滤,用于收集展开 index 等逻辑,
|
||||
* 避免「原始树」与「实际渲染的 ElSubMenu」不一致导致 open(index) 无效。
|
||||
*/
|
||||
export function isSidebarNavigableRoute(item: AppRouteRecord): boolean {
|
||||
return !!(
|
||||
!item.meta.isHide &&
|
||||
((item.path && item.path.trim()) || item.meta.link || item.meta.isIframe === true) &&
|
||||
(item.component || item.meta.link || item.meta.isIframe === true)
|
||||
)
|
||||
}
|
||||
|
||||
/**
|
||||
* 递归过滤侧栏菜单路由(与 SidebarSubmenu.filterRoutes 行为一致)
|
||||
*/
|
||||
export function filterSidebarRoutes(items: AppRouteRecord[]): AppRouteRecord[] {
|
||||
return items
|
||||
.filter((item) => {
|
||||
if (item.meta.isHide) {
|
||||
return false
|
||||
}
|
||||
|
||||
if (item.children && item.children.length > 0) {
|
||||
const filteredChildren = filterSidebarRoutes(item.children)
|
||||
return filteredChildren.length > 0 || isSidebarNavigableRoute(item)
|
||||
}
|
||||
|
||||
return isSidebarNavigableRoute(item)
|
||||
})
|
||||
.map((item) => ({
|
||||
...item,
|
||||
children: item.children ? filterSidebarRoutes(item.children) : undefined
|
||||
}))
|
||||
}
|
||||
Reference in new issue
Block a user