节点(Node)

用法

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

属性

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

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

方法

  1. /**
  2. * 节点的渲染方法
  3. * @param {obj} data - 节点基本信息
  4. * @return {dom} - 返回渲染dom的根节点
  5. */
  6. draw = (obj) => {}
  7. /**
  8. * 节点挂载后的回调
  9. */
  10. mounted = () => {}
  11. /**
  12. * 节点更新后的回调
  13. */
  14. updated = () => {}
  15. /**
  16. * 删除节点
  17. */
  18. remove = () => {}
  19. /**
  20. * 聚焦回调
  21. */
  22. focus = () => {}
  23. /**
  24. * 失去聚焦回调
  25. */
  26. unFocus = () => {}
  27. /**
  28. * @param {obj} data - 锚点基本信息(此方法必须在节点挂载后执行才有效)
  29. */
  30. addEndpoint = (obj) => {}
  31. /**
  32. * @param {string} pointId - 锚点的Id(此方法必须在节点挂载后执行才有效)
  33. * @return {Endpoint} - Endpoint的对象
  34. */
  35. removeEndpoint = (obj) => {}
  36. /**
  37. * @param {string(Require)} pointId - 锚点的信息
  38. * @param {string(Option)} type - 锚点的类型
  39. * @return {Endpoint} - Endpoint的对象
  40. */
  41. getEndpoint = (id, type) => {}
  42. /**
  43. * @param {number} x - 移动位置的x坐标
  44. * @param {number} y - 移动位置的y坐标
  45. */
  46. moveTo = (obj) => {}
  47. /**
  48. * @param {boolean} draggable - 设置节点是否可移动
  49. */
  50. setDraggable = (boolean) => {}
  51. /**
  52. * @return {number} - 节点宽度
  53. */
  54. getWidth = () => {}
  55. /**
  56. * @return {number} - 节点高度
  57. */
  58. getHeight = () => {}
  59. /**
  60. * 发送事件
  61. */
  62. emit = (string, obj) => {}
  63. /**
  64. * 接受事件
  65. */
  66. on = (string, callback) => {}