You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
30 lines
864 B
TypeScript
30 lines
864 B
TypeScript
/*
|
|
* 组件编排处理
|
|
* */
|
|
// 组件编排画布数据处理(组件编排)
|
|
import { convertFlowData } from '@/utils/convertFlowData';
|
|
import { Edge } from '@xyflow/react';
|
|
import { updateCanvasDataMap } from '@/store/ideContainer';
|
|
|
|
export const projectFlowHandle = (initialData, useDefault, setNodes, setEdges, dispatch, canvasDataMap) => {
|
|
const {
|
|
nodes: convertedNodes,
|
|
edges: convertedEdges
|
|
} = convertFlowData(initialData?.main?.components || initialData?.components, useDefault);
|
|
|
|
// 为所有边添加类型
|
|
const initialEdges: Edge[] = convertedEdges.map(edge => ({
|
|
...edge,
|
|
type: 'custom'
|
|
}));
|
|
|
|
setNodes(convertedNodes);
|
|
setEdges(initialEdges);
|
|
|
|
if (initialData?.appId) {
|
|
dispatch(updateCanvasDataMap({
|
|
...canvasDataMap,
|
|
[initialData.appId]: { nodes: convertedNodes, edges: initialEdges }
|
|
}));
|
|
}
|
|
}; |