update
Some checks failed
Deploy / deploy (push) Has been cancelled

This commit is contained in:
2025-10-13 14:58:21 +08:00
parent eda470cb78
commit 854b1f0769
7 changed files with 555 additions and 330 deletions

View File

@@ -3,6 +3,7 @@
<template v-if="nodeType === 'start'">
<Handle
type="source"
id="output"
:position="Position.Bottom"
:style="getHandleStyle('#10b981', { bottom: '-10px' })"
/>
@@ -12,6 +13,7 @@
<template v-else-if="nodeType === 'end'">
<Handle
type="target"
id="input"
:position="Position.Top"
:style="getHandleStyle('#ef4444', { top: '-10px' })"
/>
@@ -21,6 +23,7 @@
<template v-else-if="nodeType === 'decision'">
<Handle
type="target"
id="input"
:position="Position.Top"
:style="getHandleStyle('#f59e0b', { top: '-16px' })"
/>
@@ -122,11 +125,13 @@
<template v-else>
<Handle
type="target"
id="input"
:position="Position.Top"
:style="getHandleStyle(nodeConfig.color, { top: '-10px' })"
/>
<Handle
type="source"
id="output"
:position="Position.Bottom"
:style="getHandleStyle(nodeConfig.color, { bottom: '-10px' })"
/>

View File

@@ -122,6 +122,28 @@ onUnmounted(() => {
document.removeEventListener('keydown', handleKeyDown)
})
// 加载外部数据到编辑器
const setFlowchartData = (data: { nodes: Node[], edges: Edge[] }) => {
if (data && data.nodes && data.edges) {
// 确保节点数据包含必要的位置信息
const processedNodes = data.nodes.map(node => ({
...node,
position: node.position || { x: 0, y: 0 }
}))
// 确保边数据包含必要的 handle 信息
const processedEdges = data.edges.map(edge => ({
...edge,
sourceHandle: edge.sourceHandle || null,
targetHandle: edge.targetHandle || null
}))
nodes.value = processedNodes
edges.value = processedEdges
saveState(nodes.value, edges.value)
}
}
// 暴露节点和边数据给父组件
defineExpose({
nodes,
@@ -129,7 +151,8 @@ defineExpose({
getFlowchartData: () => ({
nodes: nodes.value,
edges: edges.value
})
}),
setFlowchartData
})
</script>