初始化

This commit is contained in:
2026-05-10 01:33:46 +08:00
parent 9e24153eac
commit 105ed4cbee
414 changed files with 87 additions and 53342 deletions

View File

@@ -0,0 +1,27 @@
import type { NavItem } from '@/config/nav'
import type { CmsNavigation } from '@/api/cms/cmsNavigation/model'
/**
* 获取菜单状态 (响应式)
* 与模板项目的 useMenu() 对齐,使用 useState 跨组件共享
*/
export const useMenu = () => {
return useState<NavItem[]>('menu', () => [])
}
/**
* 将 CmsNavigation 树映射为 NavItem 树
*/
export function mapNavItem(tree: CmsNavigation[]): NavItem[] {
return (tree || [])
.filter(item => !item.hide) // 过滤隐藏项
.sort((a, b) => (a.sortNumber ?? 0) - (b.sortNumber ?? 0))
.map(item => ({
key: item.code || String(item.navigationId),
label: item.title || '',
to: item.path || '/',
href: item.target === '_blank' ? item.path : undefined,
badge: undefined, // 后端暂无 badge 字段,按需扩展
children: item.children?.length ? mapNavItem(item.children) : undefined,
}))
}