From 5e23c7b17ff667845ed84a5633e5b452e75bed1b Mon Sep 17 00:00:00 2001 From: dengqichen Date: Fri, 14 Nov 2025 17:39:35 +0800 Subject: [PATCH] =?UTF-8?q?=E9=87=8D=E6=9E=84=E6=B6=88=E6=81=AF=E9=80=9A?= =?UTF-8?q?=E7=9F=A5=E5=BC=B9=E7=AA=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../pages/Workflow/Design/components/FlowCanvas.tsx | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/frontend/src/pages/Workflow/Design/components/FlowCanvas.tsx b/frontend/src/pages/Workflow/Design/components/FlowCanvas.tsx index 964fc46d..02320513 100644 --- a/frontend/src/pages/Workflow/Design/components/FlowCanvas.tsx +++ b/frontend/src/pages/Workflow/Design/components/FlowCanvas.tsx @@ -10,7 +10,8 @@ import { Connection, Edge, BackgroundVariant, - Panel + Panel, + reconnectEdge } from '@xyflow/react'; import '@xyflow/react/dist/style.css'; @@ -150,6 +151,11 @@ const FlowCanvas: React.FC = ({ }); }, [nodes, setEdges]); + // 处理边重连 + const onReconnect = useCallback((oldEdge: Edge, newConnection: Connection) => { + setEdges((els) => reconnectEdge(oldEdge, newConnection, els)); + }, [setEdges]); + // 处理连接 const onConnect = useCallback( (params: Connection | Edge) => { @@ -269,6 +275,7 @@ const FlowCanvas: React.FC = ({ onNodesChange={handleNodesChange} onEdgesChange={handleEdgesChange} onConnect={onConnect} + onReconnect={onReconnect} onNodeClick={onNodeClick} onEdgeClick={onEdgeClick} onDrop={handleDrop} @@ -283,6 +290,8 @@ const FlowCanvas: React.FC = ({ style: { stroke: '#94a3b8', strokeWidth: 2 }, markerEnd: { type: 'arrowclosed', color: '#94a3b8' }, }} + edgesReconnectable={true} + reconnectRadius={20} fitView fitViewOptions={{ padding: 0.1,