From 0dd7b0ed03ee8a78733d2778a5af3ada524d7988 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=A1=97=E8=A7=92=E5=B0=8F=E6=9E=97?= <1013335014@qq.com> Date: Mon, 14 Oct 2024 17:41:35 +0800 Subject: [PATCH] =?UTF-8?q?Feat=EF=BC=9A=E6=96=B0=E5=A2=9E=E6=8B=A6?= =?UTF-8?q?=E6=88=AA=E5=85=B3=E8=81=94=E7=BA=BF=E5=88=9B=E5=BB=BA=E7=9A=84?= =?UTF-8?q?=E5=AE=9E=E4=BE=8B=E5=8C=96=E9=80=89=E9=A1=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- simple-mind-map/src/constants/defaultOptions.js | 2 ++ simple-mind-map/src/plugins/AssociativeLine.js | 6 ++++++ 2 files changed, 8 insertions(+) diff --git a/simple-mind-map/src/constants/defaultOptions.js b/simple-mind-map/src/constants/defaultOptions.js index cb45e926..782cb4c0 100644 --- a/simple-mind-map/src/constants/defaultOptions.js +++ b/simple-mind-map/src/constants/defaultOptions.js @@ -358,6 +358,8 @@ export const defaultOpt = { }, // 是否允许调整关联线两个端点的位置 enableAdjustAssociativeLinePoints: true, + // 关联线连接即将完成时执行,如果要阻止本次连接可以返回true,函数接收一个参数:node(目标节点实例) + beforeAssociativeLineConnection: null, // 【TouchEvent插件】 // 禁止双指缩放,你仍旧可以使用api进行缩放 diff --git a/simple-mind-map/src/plugins/AssociativeLine.js b/simple-mind-map/src/plugins/AssociativeLine.js index a65ec273..27694200 100644 --- a/simple-mind-map/src/plugins/AssociativeLine.js +++ b/simple-mind-map/src/plugins/AssociativeLine.js @@ -446,6 +446,12 @@ class AssociativeLine { // 完成创建连接线 completeCreateLine(node) { if (this.creatingStartNode.uid === node.uid) return + const { beforeAssociativeLineConnection } = this.mindMap.opt + let stop = false + if (typeof beforeAssociativeLineConnection === 'function') { + stop = beforeAssociativeLineConnection(node) + } + if (stop) return this.addLine(this.creatingStartNode, node) if (this.overlapNode && this.overlapNode.getData('isActive')) { this.mindMap.execCommand('SET_NODE_ACTIVE', this.overlapNode, false)