LogicFlow
LogicFlow copied to clipboard
[Feature Request]希望增加edgeGenerator、addEdge等API中对锚点的支持;
问题背景
如果同一个节点有多个锚点,并且不同锚点用于连接不同类型边时,目前的API无法支持; 比如在一种路线图中,节点上黑色锚点拖出默认类型的边(没有属性),橙色锚点拖出故障类型的边,故障类型的边在连接完成后需要维护故障类型、故障原因等。
提案
希望可以在edgeGenerator、addEdge等API的入参中增加锚点信息;
相关信息
我尝试过写了一个代理边,能用但是有点别扭。 现在是在edge:add回调里调用changeEdgeType,也很别扭。
可以监听anchor:drop事件(会透传开始节点的model、锚点信息、生成边的model),在回调中处理边相关的内容
@wumail 你好,这样跟我现在用edge:add事件的思路类似,还是要在edge创建完成后,通过changeEdgeType去切换类型,省掉了中间获取锚点信息的步骤;这是我现在的写法:
// edge:add事件中,将默认边类型根据锚点类型切换为对应的边类型
logicFlowInst.on('edge:add', ({data}) => {
// 将临时连接改为目标连接
if (data.type !== EDGE_TYPE.TEMPORARY) {
return;
}
const tempEdge = logicFlowInst.graphModel.getEdgeModelById(data.id);
const actualEdgeType = tempEdge.targetAnchorId.split('@')[1];
logicFlowInst.graphModel.changeEdgeType(data.id, actualEdgeType);
});
希望增加的对锚点的支持不仅于此,还有比如说在多锚点的节点上通过addEdge添加边的时候也没办法指定锚点,部分情况回显的时候会出现问题。导致我在遇到这种情况的时候,只能导出整个json保存。 所以还是希望能在api上进行调整。