1
This commit is contained in:
parent
a89f4773ab
commit
13b20224f0
@ -354,6 +354,69 @@ const WorkflowDesign: React.FC = () => {
|
||||
};
|
||||
document.addEventListener('click', handleClickOutside);
|
||||
});
|
||||
|
||||
// 添加边的右键菜单
|
||||
graph.on('edge:contextmenu', ({cell, view, e}) => {
|
||||
e.preventDefault();
|
||||
graph.cleanSelection();
|
||||
graph.select(cell);
|
||||
|
||||
const dropdownContainer = document.createElement('div');
|
||||
dropdownContainer.style.position = 'absolute';
|
||||
dropdownContainer.style.left = `${e.clientX}px`;
|
||||
dropdownContainer.style.top = `${e.clientY}px`;
|
||||
document.body.appendChild(dropdownContainer);
|
||||
|
||||
const root = createRoot(dropdownContainer);
|
||||
let isOpen = true;
|
||||
|
||||
const closeMenu = () => {
|
||||
isOpen = false;
|
||||
root.render(
|
||||
<Dropdown menu={{ items }} open={false} onOpenChange={(open) => {
|
||||
if (!open) {
|
||||
setTimeout(() => {
|
||||
root.unmount();
|
||||
document.body.removeChild(dropdownContainer);
|
||||
}, 100);
|
||||
}
|
||||
}}>
|
||||
<div />
|
||||
</Dropdown>
|
||||
);
|
||||
};
|
||||
|
||||
const items = [
|
||||
{
|
||||
key: '1',
|
||||
label: '删除',
|
||||
onClick: () => {
|
||||
closeMenu();
|
||||
Modal.confirm({
|
||||
title: '确认删除',
|
||||
content: '确定要删除该连接线吗?',
|
||||
onOk: () => {
|
||||
cell.remove();
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
];
|
||||
|
||||
root.render(
|
||||
<Dropdown menu={{ items }} open={isOpen}>
|
||||
<div />
|
||||
</Dropdown>
|
||||
);
|
||||
|
||||
const handleClickOutside = (e: MouseEvent) => {
|
||||
if (!dropdownContainer.contains(e.target as Node)) {
|
||||
closeMenu();
|
||||
document.removeEventListener('click', handleClickOutside);
|
||||
}
|
||||
};
|
||||
document.addEventListener('click', handleClickOutside);
|
||||
});
|
||||
};
|
||||
|
||||
// 处理复制操作
|
||||
|
||||
Loading…
Reference in New Issue
Block a user