LogicFlow icon indicating copy to clipboard operation
LogicFlow copied to clipboard

[Bug Report]: 锚点配置最大可连接边数量后,拖动链接边元锚点后无法修改

Open zjutlf opened this issue 2 years ago • 3 comments

发生了什么?

当前demo有一个需求,模型in/out锚点类型需要有最大建立链接点的限制如图所示 image 这里控制边的数量是通过edge:add方法触发对prototype中锚点数据的修改 image 我们对于锚点控制边的计算方法如图 image 当我们链接两个节点的锚点后,修改链接边out0->in0为out1->in0,如图所示 image 会提示in链接锚点已满 按照正常逻辑来说,同一条线修改为不同的out点连同一个in点,应该可以正常修改

通过console输出,可以看到,边rule的触发早于edge:delete,edge:add,edge:exchange-node的触发,这代表会优先计算当前锚点链接数量是否大于等于最大链接数量,这应该就是无法修改源锚点位置的原因。

请问这是否是bug,或者是否有较好的触发方案?

同时,还有一个问题,如果锚点拖拽因随机拖拽导致锚点未实际链接到锚点上,是否可以恢复到原先的链接上?如图所示 image 我看到这里仅会在console.log中进行错误打印,而不进行恢复处理,是否能够恢复源锚点 image

代码如下,因公司网络无法打开codepen等sandbox,故附压缩包代码如下,请谅解 iotFlowPlatform.zip

logicflow/core版本

1.2.18

logicflow/extension版本

1.2.19

logicflow/engine版本

No response

浏览器&环境

Chrome

zjutlf avatar Dec 05 '23 09:12 zjutlf

第二个问题我在最新的版本里没复现,「如果锚点拖拽因随机拖拽导致锚点未实际链接到锚点上」是会恢复到原锚点到。可以升级版本试试,不确定是不是demo代码写的有问题

wumail avatar Dec 06 '23 08:12 wumail

第二个问题我在最新的版本里没复现,「如果锚点拖拽因随机拖拽导致锚点未实际链接到锚点上」是会恢复到原锚点到。可以升级版本试试,不确定是不是demo代码写的有问题

您好,是这样的,我使用官方网站提供的示例中的https://github.com/chenweihan/logicflow-angular 以及其readme.md中的提供的vue和angular的demo测试过,发现在最新版本的core和extension下,angular是可以正常恢复的,但是在这个对应的vue3demo中是有问题的,我提供的这个demo也是基于这个vue3版本处理的,所以是否有可能和语言版本有关?

zjutlf avatar Dec 07 '23 03:12 zjutlf

我看了一下 第一个问题看起来更像是缺陷🤔?目前只有锚点信息的情况下,很难判断出是 同一条边修改起终点的情况 还是 新连接了一条边的情况,我觉得如果能用当前锚点关联边的集合和当前操作的锚点/边的id做比较,应该就能辨别出 该不该触发提示了。validate函数的第五个参数就是edgeId 可以直接获取(注意新建边的情况下会是undefined),获取当前锚点关联的边的能力后面会加上。 第二个问题确实是个bug😄,这个报错阻塞锚点恢复了,目前正在修复中。

DymoneLewis avatar Feb 04 '24 09:02 DymoneLewis

hi,这个问题已经在年前发布的版本里修复了,辛苦升版本试下还有没有问题

DymoneLewis avatar Mar 20 '24 05:03 DymoneLewis