节点组(Group)

  1. const Group = require('butterfly-dag').Group;
  2. class AGroup extends Group {
  3. draw(obj) {
  4. // 这里可以根据业务需要,自己生成dom
  5. }
  6. }
  7. canvas.draw({
  8. groups: [{
  9. id: 'xxxx',
  10. top: 100,
  11. left: 100,
  12. Class: AGroup //设置基类之后,画布会根据自定义的类来渲染
  13. }],
  14. nodes: ...
  15. edges: ...
  16. })

属性

key 说明 类型 默认值
id 节点唯一标识 string (Require) -
top y轴坐标 number (Require) -
left x轴坐标 number (Require) -
width 宽度 number (Option) -
height 高度 number (Option) -
endpoints 锚点信息 array (Option) -
Class 拓展类 Class (Option) 当传入拓展类的时候,该节点组则会按拓展类的draw方法进行渲染,拓展类的相关方法也会覆盖父类的方法
scope 作用域 boolean (Option) 当node的scope和group的scope一致才能加入到节点组。默认不设置即可随意加入

* 节点的返回的dom必须设置position: absolute;

方法

  1. /**
  2. * group的渲染方法
  3. * @param {obj} data - 节点基本信息
  4. * @return {dom} - 返回渲染dom的根节点
  5. */
  6. draw = (obj) => {}
  7. /**
  8. * 节点组挂载后的回调
  9. */
  10. mounted = () => {}
  11. /**
  12. * group添加节点
  13. * @param {obj} node - 节点数据
  14. */
  15. addNode = (node) => {}
  16. /**
  17. * group批量添加节点
  18. * @param {array} nodes - 节点数组
  19. */
  20. addNodes = (nodes) => {}
  21. /**
  22. * group删除节点
  23. * @param {obj} node - 节点数据
  24. */
  25. removeNode = (node) => {}
  26. /**
  27. * @param {obj} data - 锚点基本信息(此方法必须在节点挂载后执行才有效)
  28. */
  29. addEndpoint = (obj) => {}
  30. /**
  31. * @param {string} pointId - 锚点的信息
  32. * @return {Endpoint} - Endpoint的对象
  33. */
  34. getEndpoint = (id) => {}
  35. /**
  36. * group删除节点
  37. * @param {array} nodes - 节点数组
  38. */
  39. removeNodes = (nodes) => {}
  40. /**
  41. * @return {number} - 节点组宽度
  42. */
  43. getWidth = () => {}
  44. /**
  45. * @return {number} - 节点组高度
  46. */
  47. getHeight = () => {}
  48. /**
  49. * 发送事件
  50. */
  51. emit = (string, obj) => {}
  52. /**
  53. * 接受事件
  54. */
  55. on = (string, callback) => {}

详细说明