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