|
|
|
@ -13,7 +13,7 @@ interface PageProps {
|
|
|
|
|
isTree?: boolean;
|
|
|
|
|
// 菜单列表 : name: 名称; url: 路由; img: 图标;
|
|
|
|
|
data: Array<{ name: string; url: string; img: any; }>
|
|
|
|
|
}>
|
|
|
|
|
}>;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
const LeftMenuCom: FC<PageProps> = ({ data }) => {
|
|
|
|
@ -26,7 +26,11 @@ const LeftMenuCom: FC<PageProps> = ({ data }) => {
|
|
|
|
|
const [showContextMenu, setShowContextMenu] = useState(false);
|
|
|
|
|
const treeRef = useRef(null);
|
|
|
|
|
|
|
|
|
|
const [menuItems, setMenuItems] = useState<any>([]);
|
|
|
|
|
|
|
|
|
|
useEffect(() => {
|
|
|
|
|
menuItemsConfig();
|
|
|
|
|
|
|
|
|
|
data.forEach((item, index) => {
|
|
|
|
|
// 默认展开第一个
|
|
|
|
|
// item.check = (index == 0 ? true : false);
|
|
|
|
@ -49,18 +53,43 @@ const LeftMenuCom: FC<PageProps> = ({ data }) => {
|
|
|
|
|
};
|
|
|
|
|
}, [])
|
|
|
|
|
|
|
|
|
|
const menuItemsConfig = () => {
|
|
|
|
|
if (`/registerManage/deviceRegister/${urlParams?.id}` == route?.pathname) {
|
|
|
|
|
setMenuItems([
|
|
|
|
|
{key: '1', label: '删除'},
|
|
|
|
|
{key: '2', label: '刷新'},
|
|
|
|
|
])
|
|
|
|
|
}else if (`/registerManage/unitLocation/${urlParams?.id}` == route?.pathname) {
|
|
|
|
|
setMenuItems([
|
|
|
|
|
{key: '1', label: '修改'},
|
|
|
|
|
{key: '2', label: '刷新'},
|
|
|
|
|
{key: '3', label: '新建'},
|
|
|
|
|
{key: '4', label: '删除'}
|
|
|
|
|
])
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
const handleRightClick = (e: any, node: any) => {
|
|
|
|
|
if (node?.isFolder) return
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
e.preventDefault();
|
|
|
|
|
setContextMenuPosition({ x: e.clientX, y: e.clientY }); // 记录右键菜单位置
|
|
|
|
|
setSelectedKeys([node.key]); // 根据节点设置选中的 keys
|
|
|
|
|
setShowContextMenu(true); // 显示右键菜单
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
const handleSelect = (selectedKeys: any) => {
|
|
|
|
|
const handleSelect = (selectedKeys: any, name: any) => {
|
|
|
|
|
if (selectedKeys.length == 0) return;
|
|
|
|
|
|
|
|
|
|
setSelectedKeys(selectedKeys);
|
|
|
|
|
history.push(`/registerManage/deviceRegister/${selectedKeys[0]}`)
|
|
|
|
|
switch (name) {
|
|
|
|
|
case '设备注册':
|
|
|
|
|
history.push(`/registerManage/deviceRegister/${selectedKeys[0]}`)
|
|
|
|
|
break;
|
|
|
|
|
case '单位位置管理':
|
|
|
|
|
history.push(`/registerManage/unitLocation/${selectedKeys[0]}`)
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
const handleContextMenuClick = (e: any) => {
|
|
|
|
@ -78,33 +107,28 @@ const LeftMenuCom: FC<PageProps> = ({ data }) => {
|
|
|
|
|
title: 'Child 1',
|
|
|
|
|
key: '0-1-1',
|
|
|
|
|
},
|
|
|
|
|
// {
|
|
|
|
|
// title: 'Child 2',
|
|
|
|
|
// key: '0-1-2',
|
|
|
|
|
// },
|
|
|
|
|
{
|
|
|
|
|
title: 'Child 2',
|
|
|
|
|
key: '0-1-2',
|
|
|
|
|
},
|
|
|
|
|
],
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
title: 'Parent 2',
|
|
|
|
|
key: '0-2',
|
|
|
|
|
selectable: false,
|
|
|
|
|
isFolder: true,
|
|
|
|
|
children: [
|
|
|
|
|
{
|
|
|
|
|
title: 'Child 3',
|
|
|
|
|
key: '0-2-1',
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
title: 'Child 4',
|
|
|
|
|
key: '0-2-2',
|
|
|
|
|
},
|
|
|
|
|
],
|
|
|
|
|
},
|
|
|
|
|
// {
|
|
|
|
|
// title: 'Parent 2',
|
|
|
|
|
// key: '0-2',
|
|
|
|
|
// selectable: false,
|
|
|
|
|
// isFolder: true,
|
|
|
|
|
// children: [
|
|
|
|
|
// {
|
|
|
|
|
// title: 'Child 3',
|
|
|
|
|
// key: '0-2-1',
|
|
|
|
|
// },
|
|
|
|
|
// {
|
|
|
|
|
// title: 'Child 4',
|
|
|
|
|
// key: '0-2-2',
|
|
|
|
|
// },
|
|
|
|
|
// ],
|
|
|
|
|
// },
|
|
|
|
|
];
|
|
|
|
|
|
|
|
|
|
const menuItems = [
|
|
|
|
|
{ key: '1', label: '删除' },
|
|
|
|
|
{ key: '2', label: '刷新' }
|
|
|
|
|
];
|
|
|
|
|
|
|
|
|
|
return (
|
|
|
|
@ -131,7 +155,7 @@ const LeftMenuCom: FC<PageProps> = ({ data }) => {
|
|
|
|
|
style={{ padding: 20 }}
|
|
|
|
|
onContextMenu={(e) => e.preventDefault()}
|
|
|
|
|
onRightClick={({ event, node }) => handleRightClick(event, node)}
|
|
|
|
|
onSelect={handleSelect}
|
|
|
|
|
onSelect={(e) => { handleSelect(e, item.name) }}
|
|
|
|
|
selectedKeys={selectedKeys}
|
|
|
|
|
treeData={treeData}
|
|
|
|
|
blockNode={true}
|
|
|
|
|