This commit is contained in:
dengqichen 2024-12-20 16:45:42 +08:00
parent ddcd2ea11b
commit 070e6b1c94
2 changed files with 17 additions and 24 deletions

View File

@ -928,16 +928,16 @@ const WorkflowDesign: React.FC = () => {
const nodeMap = new Map();
// 创建节点
response.graph?.nodes?.forEach((workflowDefinitionNode: any) => {
const node = addNodeToGraph(false, graphInstance, workflowDefinitionNode, nodeDefinitions);
response.graph?.nodes?.forEach((existingNode: any) => {
const node = addNodeToGraph(false, graphInstance, existingNode, nodeDefinitions);
// 只设置 graph 属性
node.setProp('graph', {
uiVariables: workflowDefinitionNode.uiVariables,
panelVariables: workflowDefinitionNode.panelVariables,
localVariables: workflowDefinitionNode.localVariables,
formVariablesSchema: workflowDefinitionNode.formVariablesSchema
uiVariables: existingNode.uiVariables,
panelVariables: existingNode.panelVariables,
localVariables: existingNode.localVariables,
formVariablesSchema: existingNode.formVariablesSchema
});
nodeMap.set(workflowDefinitionNode.id, node);
nodeMap.set(existingNode.id, node);
});
// 创建边
@ -990,7 +990,7 @@ const WorkflowDesign: React.FC = () => {
});
// 传入节点数据,只在没有位置信息时应用自动布局
applyAutoLayout(graphInstance, response.graph?.nodes || []);
// applyAutoLayout(graphInstance, response.graph?.nodes || []);
} catch (error) {
console.error('加载工作流定义失败:', error);
message.error('加载工作流定义失败');
@ -1078,6 +1078,7 @@ const WorkflowDesign: React.FC = () => {
const nodes = graph.getNodes().map(node => {
const nodeType = node.getProp('nodeType');
const graphData = node.getProp('graph') || {};
const position = node.getPosition();
const {
uiVariables,
panelVariables,
@ -1090,7 +1091,10 @@ const WorkflowDesign: React.FC = () => {
nodeCode: nodeType,
nodeType: nodeType,
nodeName: node.attr('label/text'),
uiVariables,
uiVariables: {
...uiVariables,
position: position
},
panelVariables,
localVariables,
formVariablesSchema

View File

@ -46,23 +46,12 @@ export const addNodeToGraph = (
shape,
nodeType: isNew ? nodeDefinition.nodeType : currentNodeDefinition.nodeType,
nodeCode: nodeDefinition.nodeCode,
ports: convertPortConfig(uiVariables.ports),
nodeDefinition: nodeDefinition
ports: convertPortConfig(uiVariables.ports)
};
// 设置节点位置
if (isNew && position) {
// 新节点使用传入的position
Object.assign(nodeConfig, { x: position.x, y: position.y });
} else if (!isNew && currentNodeDefinition.graph?.position) {
// 已有节点使用后端返回的position
Object.assign(nodeConfig, { position: currentNodeDefinition.graph.position });
const nodePosition = isNew ? position : currentNodeDefinition.uiVariables?.position;
if (nodePosition) {
Object.assign(nodeConfig, nodePosition);
}
// 设置节点ID如果有
if (uiVariables.id) {
Object.assign(nodeConfig, { id: uiVariables.id });
}
return graph.addNode(nodeConfig);
};