效果预览: 设计思路: 首先在节点对象中添加两个新字段,用于判断输入点输出点个数: 根据输入点输出点个数在节点内绘制不同的样式的子节点,并给予唯一id(以输出点为例,重点在红框处): 初始化/回显/外部拖动添加新节点:这些情况下,可以根据输入点输出点个数将所有输入输出点都设置为源点,父节点只负责节点位置移动相关逻辑,不负责绘制相关逻辑。 连线前相关判定: 1.一个输入点仅对应一个输出点/禁止重复创建。遍历线数组判断即可 2.节点不能连接自己/禁止回环。用 节点id…split(’_’)[0] 把父节点id找到判断即可 感觉还有更好的办法,欢迎交流~