Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

请教大佬。更新节点的size属性后,视图没有变化 #51

Closed
wrh4585 opened this issue Aug 3, 2020 · 12 comments
Closed

请教大佬。更新节点的size属性后,视图没有变化 #51

wrh4585 opened this issue Aug 3, 2020 · 12 comments

Comments

@wrh4585
Copy link

wrh4585 commented Aug 3, 2020

请教大佬。更新节点的size属性后,调用的是updataItem(),视图没有变化,可以从控制台上看到数据是变了的,但是节点的视图没有重新绘制,按您先前说的使用keyShape.attr()的方法,也不能解决!数据是变化的,但是视图就是不更新,就很尴尬!

@wrh4585
Copy link
Author

wrh4585 commented Aug 3, 2020

目前解决了rect类型节点的改变size,但是对于非rect类型如circle和path类型的,改变size的操作,视图不刷新,还有对于节点内部的svg图标,改变大小后,并没有改变大小,还需要继续实现这块。尝试了更新节点外层的group的大小,以期达到对circle及path类型节点的大小改变,并没有成功,存在报错。。。如果大佬有时间,想请教下这块具体的实现。
目前改变rect类型的几点,是通过keyShape.attr()实现的。
如有打扰,还望见谅~!

@guozhaolong
Copy link
Owner

circle大小是半径r控制的,path大小只能是重新绘制了吧,这俩应该都没有width和height参数

@wrh4585
Copy link
Author

wrh4585 commented Aug 4, 2020

circle大小是半径r控制的,path大小只能是重新绘制了吧,这俩应该都没有width和height参数
circle是r控制的,重新赋值r,但是没有效果,具体原因还不清楚,path类型的应该是只有重新绘制了,目前在解决rect类型改变大小后,内部的图标大小不变的问题。。。

@guozhaolong
Copy link
Owner

这个你要用trasform做了,就是放大缩小,下面是我触发节点动画时写的代码片段,效果是让节点放大缩小
import { mat3, transform } from '@antv/matrix-util';
const diff = ratio <= 0.5 ? ratio + 0.5 : (1 - ratio) + 0.5;
const matrix = mat3.create();
const toMatrix = transform(matrix, [['s', diff, diff]]);

@guozhaolong
Copy link
Owner

官方文档

@wrh4585
Copy link
Author

wrh4585 commented Aug 4, 2020

好的,我去看看,谢谢大佬

@wrh4585
Copy link
Author

wrh4585 commented Aug 4, 2020

请教下,这个transform具体应该怎么写呢?在节点中怎么调用?我现在是在更新节点的size的方法里,找到了那个image的节点,但是怎么让这个transform生效呢?

@wrh4585
Copy link
Author

wrh4585 commented Aug 4, 2020

基本上实现了,但是存在一些问题,例如缩放是的缩放比例,我是通过记录前一次次设置宽高时的width和height,与本次设置宽高的width和height做比值,作为缩放的比例,虽然可以达到随着宽高的增加放大,宽高减小时缩小,在缩小时,图片的缩小幅度小于节点的缩小幅度,最终图片会超出节点范围。。。
icon是否可以像上面通过keyShape.attr()来重新赋值宽高,如果可以节点注册时应该怎样修改配置?

@wrh4585
Copy link
Author

wrh4585 commented Aug 4, 2020

汗,功能实现了,属性attr写成了attrs,可以将节点的image的实例拿到,然后通过attr设置宽高就可以了,用transform应该也是可以的,可能是我写的不合适,缩放的比例设置后,有点问题。总之还是谢谢大佬的思路,谢谢啦!^_^

@guozhaolong
Copy link
Owner

哈哈实现了就好

@wrh4585
Copy link
Author

wrh4585 commented Aug 5, 2020

哈哈实现了就好

请教下,导出XML的bpmn.js文件里,是否每个节点类型都需要在json.nodes.froEach()中进行添加,节点的写法是否可以参照您原来的写法就行?目前定义了五大类,四十多种节点,是否每个节点都需要添加呢?

@guozhaolong
Copy link
Owner

如果你都用到了就要添加吧,我之前没用到flowable那么多节点

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants