LogicFlow icon indicating copy to clipboard operation
LogicFlow copied to clipboard

[Feature] 在手动连接2个节点,在目标节点上释放时,需要能让业务代码有机会来决定连接到哪个锚点

Open wangzhengbo opened this issue 2 years ago • 1 comments

从A节点连线到B节点,在B节点内释放,目前会自动连接到B节点上最近的锚点(node.ts中getClosestAnchor方法计算出来的)。 希望能提供配置属性,让业务代码有能力决定连接哪个锚点,默认还是链接最近的锚点。

具体应用的场景: 画布上节点比较多,为了不让连线看起来很混乱,节点上只会显示1个锚点。前一个节点显示右侧锚点,后一个节点显示左侧锚点。 从前一个节点连到后一个节点时候,需要在后一个节点的左侧锚点或者左侧区域释放才能连上。如果在后一个节点右侧区域释放,连不到后续节点的左侧的锚点。想实现的效果的,不管是在节点的哪个区域释放,都能连接到左侧锚点。(节点本身是有左右2个锚点,不过在连接的时候,前序节点的左侧锚点和后续节点的右侧锚点通过css做了隐藏)。

const getClosestAnchor = (position: Point, node: BaseNode): AnchorInfo API改成 const getClosestAnchor = (position: Point, node: BaseNode, customGetAnchorFunction?: (point: Point, node: BaseNode) => Point | null): AnchorInfo 来支持,其中customGetAnchorFunction通过LogicFlow的全局option来传递

wangzhengbo avatar Sep 23 '22 03:09 wangzhengbo

嗯,最早开发的时候还没有自定义锚点,所以当时直接获取了最近的锚点。现在是有必要增加自定义控制可以连接那个锚点的功能。

towersxu avatar Sep 23 '22 03:09 towersxu