improve define menu

main
FrozenArcher 2024-03-14 02:33:39 +08:00
parent ec711daa0c
commit c24a82d177
1 changed files with 12 additions and 15 deletions

View File

@ -22,13 +22,9 @@ const keyRouterMap: KeyRouterMap = new Map();
function getItem(
label: React.ReactNode,
key: React.Key,
route?: { path: string; map: KeyRouterMap },
icon?: React.ReactNode,
children?: MenuItem[],
): MenuItem {
if (route !== undefined) {
route.map.set(key, route.path);
}
return {
key,
icon,
@ -42,9 +38,9 @@ function defMenu(
key: React.Key,
icon: React.ReactNode,
path: string,
map: KeyRouterMap,
): MenuItem {
return getItem(label, key, { path: path, map: map }, icon);
keyRouterMap.set(key, path);
return getItem(label, key, icon);
}
function defRootMenu(
@ -53,29 +49,30 @@ function defRootMenu(
icon: React.ReactNode,
children: MenuItem[],
): MenuItem {
return getItem(label, key, undefined, icon, children);
return getItem(label, key, icon, children);
}
function defSubMenu(
label: React.ReactNode,
key: React.Key,
path: string,
map: KeyRouterMap,
): MenuItem {
return getItem(label, key, { path, map });
keyRouterMap.set(key, path);
return getItem(label, key);
}
const items: MenuItem[] = [
defMenu('主页', '0', <DesktopOutlined />, '/', keyRouterMap),
defMenu('主页', 'mainpage', <DesktopOutlined />, '/'),
defRootMenu('展示信息管理', 'sub1', <UserOutlined />, [
defSubMenu('选项1', '1', '/admin/hello1', keyRouterMap),
defSubMenu('选项2', '2', '/admin/hello2', keyRouterMap),
defSubMenu('选项3', '3', '/admin/hello3', keyRouterMap),
defSubMenu('选项1', '1', '/admin/hello1'),
defSubMenu('选项2', '2', '/admin/hello2'),
defSubMenu('选项3', '3', '/admin/hello3'),
]),
defRootMenu('值班组长', 'sub2', <TeamOutlined />, [
defSubMenu('选项1', '4', '/duty/hi1', keyRouterMap),
defSubMenu('选项2', '5', '/duty/hi2', keyRouterMap),
defSubMenu('选项1', '4', '/duty/hi1'),
defSubMenu('选项2', '5', '/duty/hi2'),
]),
defMenu('关于我们', 'aboutpage', <UserOutlined />, '/about'),
];
interface BreadcrumbItem {