1
This commit is contained in:
parent
ddcd2ea11b
commit
070e6b1c94
@ -928,16 +928,16 @@ const WorkflowDesign: React.FC = () => {
|
|||||||
const nodeMap = new Map();
|
const nodeMap = new Map();
|
||||||
|
|
||||||
// 创建节点
|
// 创建节点
|
||||||
response.graph?.nodes?.forEach((workflowDefinitionNode: any) => {
|
response.graph?.nodes?.forEach((existingNode: any) => {
|
||||||
const node = addNodeToGraph(false, graphInstance, workflowDefinitionNode, nodeDefinitions);
|
const node = addNodeToGraph(false, graphInstance, existingNode, nodeDefinitions);
|
||||||
// 只设置 graph 属性
|
// 只设置 graph 属性
|
||||||
node.setProp('graph', {
|
node.setProp('graph', {
|
||||||
uiVariables: workflowDefinitionNode.uiVariables,
|
uiVariables: existingNode.uiVariables,
|
||||||
panelVariables: workflowDefinitionNode.panelVariables,
|
panelVariables: existingNode.panelVariables,
|
||||||
localVariables: workflowDefinitionNode.localVariables,
|
localVariables: existingNode.localVariables,
|
||||||
formVariablesSchema: workflowDefinitionNode.formVariablesSchema
|
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) {
|
} catch (error) {
|
||||||
console.error('加载工作流定义失败:', error);
|
console.error('加载工作流定义失败:', error);
|
||||||
message.error('加载工作流定义失败');
|
message.error('加载工作流定义失败');
|
||||||
@ -1078,6 +1078,7 @@ const WorkflowDesign: React.FC = () => {
|
|||||||
const nodes = graph.getNodes().map(node => {
|
const nodes = graph.getNodes().map(node => {
|
||||||
const nodeType = node.getProp('nodeType');
|
const nodeType = node.getProp('nodeType');
|
||||||
const graphData = node.getProp('graph') || {};
|
const graphData = node.getProp('graph') || {};
|
||||||
|
const position = node.getPosition();
|
||||||
const {
|
const {
|
||||||
uiVariables,
|
uiVariables,
|
||||||
panelVariables,
|
panelVariables,
|
||||||
@ -1090,7 +1091,10 @@ const WorkflowDesign: React.FC = () => {
|
|||||||
nodeCode: nodeType,
|
nodeCode: nodeType,
|
||||||
nodeType: nodeType,
|
nodeType: nodeType,
|
||||||
nodeName: node.attr('label/text'),
|
nodeName: node.attr('label/text'),
|
||||||
uiVariables,
|
uiVariables: {
|
||||||
|
...uiVariables,
|
||||||
|
position: position
|
||||||
|
},
|
||||||
panelVariables,
|
panelVariables,
|
||||||
localVariables,
|
localVariables,
|
||||||
formVariablesSchema
|
formVariablesSchema
|
||||||
|
|||||||
@ -46,23 +46,12 @@ export const addNodeToGraph = (
|
|||||||
shape,
|
shape,
|
||||||
nodeType: isNew ? nodeDefinition.nodeType : currentNodeDefinition.nodeType,
|
nodeType: isNew ? nodeDefinition.nodeType : currentNodeDefinition.nodeType,
|
||||||
nodeCode: nodeDefinition.nodeCode,
|
nodeCode: nodeDefinition.nodeCode,
|
||||||
ports: convertPortConfig(uiVariables.ports),
|
ports: convertPortConfig(uiVariables.ports)
|
||||||
nodeDefinition: nodeDefinition
|
|
||||||
};
|
};
|
||||||
|
|
||||||
// 设置节点位置
|
const nodePosition = isNew ? position : currentNodeDefinition.uiVariables?.position;
|
||||||
if (isNew && position) {
|
if (nodePosition) {
|
||||||
// 新节点:使用传入的position
|
Object.assign(nodeConfig, nodePosition);
|
||||||
Object.assign(nodeConfig, { x: position.x, y: position.y });
|
|
||||||
} else if (!isNew && currentNodeDefinition.graph?.position) {
|
|
||||||
// 已有节点:使用后端返回的position
|
|
||||||
Object.assign(nodeConfig, { position: currentNodeDefinition.graph.position });
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// 设置节点ID(如果有)
|
|
||||||
if (uiVariables.id) {
|
|
||||||
Object.assign(nodeConfig, { id: uiVariables.id });
|
|
||||||
}
|
|
||||||
|
|
||||||
return graph.addNode(nodeConfig);
|
return graph.addNode(nodeConfig);
|
||||||
};
|
};
|
||||||
Loading…
Reference in New Issue
Block a user