From 776ac4a5665d770cedd150ee7edaeff2b2e2e902 Mon Sep 17 00:00:00 2001 From: "X1627315083@163.com" <1627315083@qq.com> Date: Fri, 13 Mar 2026 14:42:30 +0800 Subject: [PATCH 01/18] fix --- src/views/home/index.vue | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/views/home/index.vue b/src/views/home/index.vue index c548851..4bcadee 100644 --- a/src/views/home/index.vue +++ b/src/views/home/index.vue @@ -35,7 +35,10 @@ const isAnimation = computed(() => globalStore.state.homeAnimation) const flowCanvasRef = ref(null) - const openFlowCanvas = (config) => flowCanvasRef.value.open(config) + const openFlowCanvas = (config) =>{ + console.log(config) + flowCanvasRef.value.open(config) + } myEvent.add('openFlowCanvas', openFlowCanvas) const depthCanvasRef = ref(null) From a773deb336eeb1f3f940069911bdd08fba913d56 Mon Sep 17 00:00:00 2001 From: "X1627315083@163.com" <1627315083@qq.com> Date: Fri, 13 Mar 2026 14:52:56 +0800 Subject: [PATCH 02/18] fix --- src/components/Canvas/FlowCanvas/flow-canvas.vue | 4 +++- src/components/Canvas/FlowCanvas/manager/NodeManager.ts | 2 ++ src/views/home/index.vue | 5 +---- 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/src/components/Canvas/FlowCanvas/flow-canvas.vue b/src/components/Canvas/FlowCanvas/flow-canvas.vue index 1a57788..e15b5b0 100644 --- a/src/components/Canvas/FlowCanvas/flow-canvas.vue +++ b/src/components/Canvas/FlowCanvas/flow-canvas.vue @@ -137,7 +137,7 @@ const edges = computed(() => stateManager.edges.value) const edges_ = computed(() => { console.log(123) - return edges.value.filter((v) => v.visible) + return edges.value.filter((v) => v?.visible) }) const nodesDraggable = computed(() => stateManager.nodesDraggable.value) const panOnDrag = computed(() => stateManager.panOnDrag.value) @@ -244,6 +244,7 @@ importFlow(json) }else{ const timestamp = Date.now() + console.log(1) nodeManager.createResultNode({ data: { disableDelete: true, @@ -262,6 +263,7 @@ } } }) + console.log(2) } }) diff --git a/src/components/Canvas/FlowCanvas/manager/NodeManager.ts b/src/components/Canvas/FlowCanvas/manager/NodeManager.ts index 43d8df5..6f05aaf 100644 --- a/src/components/Canvas/FlowCanvas/manager/NodeManager.ts +++ b/src/components/Canvas/FlowCanvas/manager/NodeManager.ts @@ -67,6 +67,7 @@ export class NodeManager { } /** 创建结果节点 */ createResultNode(options?: NodeOptions) { + console.log(3) const options_ = { ...(options ? options : {}), component: NODE_COMPONENT.RESULT_IMAGE, @@ -79,6 +80,7 @@ export class NodeManager { ...(options?.data || {}), }, } + console.log(4) return this.createNode(options_) } /** 创建卡片选择节点 */ diff --git a/src/views/home/index.vue b/src/views/home/index.vue index 4bcadee..c548851 100644 --- a/src/views/home/index.vue +++ b/src/views/home/index.vue @@ -35,10 +35,7 @@ const isAnimation = computed(() => globalStore.state.homeAnimation) const flowCanvasRef = ref(null) - const openFlowCanvas = (config) =>{ - console.log(config) - flowCanvasRef.value.open(config) - } + const openFlowCanvas = (config) => flowCanvasRef.value.open(config) myEvent.add('openFlowCanvas', openFlowCanvas) const depthCanvasRef = ref(null) From 85accaead56d458434de212541fe89f11eea2ff8 Mon Sep 17 00:00:00 2001 From: "X1627315083@163.com" <1627315083@qq.com> Date: Fri, 13 Mar 2026 14:56:28 +0800 Subject: [PATCH 03/18] fix --- src/components/Canvas/FlowCanvas/flow-canvas.vue | 2 -- src/components/Canvas/FlowCanvas/manager/NodeManager.ts | 6 ++++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/components/Canvas/FlowCanvas/flow-canvas.vue b/src/components/Canvas/FlowCanvas/flow-canvas.vue index e15b5b0..387f808 100644 --- a/src/components/Canvas/FlowCanvas/flow-canvas.vue +++ b/src/components/Canvas/FlowCanvas/flow-canvas.vue @@ -244,7 +244,6 @@ importFlow(json) }else{ const timestamp = Date.now() - console.log(1) nodeManager.createResultNode({ data: { disableDelete: true, @@ -263,7 +262,6 @@ } } }) - console.log(2) } }) diff --git a/src/components/Canvas/FlowCanvas/manager/NodeManager.ts b/src/components/Canvas/FlowCanvas/manager/NodeManager.ts index 6f05aaf..56e6f46 100644 --- a/src/components/Canvas/FlowCanvas/manager/NodeManager.ts +++ b/src/components/Canvas/FlowCanvas/manager/NodeManager.ts @@ -43,11 +43,13 @@ export class NodeManager { /** 创建节点 */ createNode(options: NodeOptions) { + console.log(1) const superiorID = options?.data?.superiorID const snode = superiorID ? this.stateManager.flowManager.getNodeById(superiorID) : this.stateManager.flowManager.getLastNode(); const id = options.id || createId() const positionX = options.positionX || 0 const positionY = options.positionY || 0 + console.log(2) const position = options.position || (!snode ? { x: positionX, y: positionY } : @@ -62,12 +64,13 @@ export class NodeManager { position, data } + console.log(3) this.addNode(options_) + console.log(4) return options_; } /** 创建结果节点 */ createResultNode(options?: NodeOptions) { - console.log(3) const options_ = { ...(options ? options : {}), component: NODE_COMPONENT.RESULT_IMAGE, @@ -80,7 +83,6 @@ export class NodeManager { ...(options?.data || {}), }, } - console.log(4) return this.createNode(options_) } /** 创建卡片选择节点 */ From 1333a885d1cce82bfca1cd978360f348a5274385 Mon Sep 17 00:00:00 2001 From: "X1627315083@163.com" <1627315083@qq.com> Date: Fri, 13 Mar 2026 15:06:33 +0800 Subject: [PATCH 04/18] fix --- .../Canvas/FlowCanvas/flow-canvas.vue | 30 +++------------ src/components/Canvas/FlowCanvas/index.vue | 38 ++++++++++++++++--- .../Canvas/FlowCanvas/manager/NodeManager.ts | 1 + 3 files changed, 40 insertions(+), 29 deletions(-) diff --git a/src/components/Canvas/FlowCanvas/flow-canvas.vue b/src/components/Canvas/FlowCanvas/flow-canvas.vue index 387f808..456db4d 100644 --- a/src/components/Canvas/FlowCanvas/flow-canvas.vue +++ b/src/components/Canvas/FlowCanvas/flow-canvas.vue @@ -78,8 +78,6 @@ import card from './components/nodes/cards/index.vue' import text from './components/nodes/text.vue' - // 接口 - import { getSketchFlowCanvas, putSketchFlowCanvas } from '@/api/flow-canvas' const components = { [NODE_COMPONENT.RESULT_IMAGE]: resultImage, [NODE_COMPONENT.CARD]: card, @@ -100,6 +98,7 @@ default: () => ({}) } }) + const emit = defineEmits(['exportFlow']) const vueFlow = ref() const nodeTypes = ref([NODE_TYPE.INPUT, NODE_TYPE.SECONDARY, NODE_TYPE.OUTPUT, NODE_TYPE.ALONE]) @@ -146,6 +145,7 @@ const { layout } = useLayout() const index = ref(0) async function layoutGraph(direction) { + if(props.config.json > 0)return if (index.value > 0) return index.value++ setTimeout(() => { @@ -190,15 +190,7 @@ // flowManager.exportFlow() const str = JSON.stringify(stateManager.nodes.value) - const json = JSON.parse(str) - putSketchFlowCanvas({ - id: props.config.imgId, - canvasData: str - }).then((res) => { - if (res) { - console.log(res) - } - }) + emit('exportFlow', str) // localStorage.setItem('flow_json', str) } // 导入流程 @@ -229,19 +221,9 @@ onMounted(async () => { // window['vueFlow'] = vueFlow // window['nodes'] = nodes - let json = [] - await new Promise((resolve) => { - getSketchFlowCanvas({ id: props.config.imgId }).then((res:any) => { - if (res) { - json = JSON.parse(res) - } - resolve(true) - }).catch(() => { - resolve(true) - }) - }) - if(json.length > 0){ - importFlow(json) + + if(props.config.json.length > 0){ + importFlow(props.config.json) }else{ const timestamp = Date.now() nodeManager.createResultNode({ diff --git a/src/components/Canvas/FlowCanvas/index.vue b/src/components/Canvas/FlowCanvas/index.vue index be86005..744fb80 100644 --- a/src/components/Canvas/FlowCanvas/index.vue +++ b/src/components/Canvas/FlowCanvas/index.vue @@ -1,6 +1,6 @@ @@ -8,18 +8,46 @@ import FullscreenDialog from '../components/fullscreen-dialog.vue' import flowCanvas from './flow-canvas.vue' import { ref } from 'vue' + import { getSketchFlowCanvas, putSketchFlowCanvas } from '@/api/flow-canvas' + const dialogVisible = ref(false) - const config = ref({}) - const open = (options) => { - dialogVisible.value = true + const config = ref({}) as any + const open = async (options) => { + let json = [] + await new Promise((resolve) => { + getSketchFlowCanvas({ id: options.imgId }).then((res:any) => { + if (res) { + json = JSON.parse(res) + } + resolve(true) + }).catch(() => { + resolve(true) + }) + }) config.value = options || {} + config.value.json = json + dialogVisible.value = true } + const exportFlow = async (str) => { + if(!config.value.imgId)return + await new Promise((resolve) => { + putSketchFlowCanvas({ + id: config.value.imgId, + canvasData: str }).then(() => { + resolve(true) + }).catch(() => { + resolve(true) + }) + }) + } + const close = () => { dialogVisible.value = false } defineExpose({ open, - close + close, + exportFlow })