简介

Tree 是绘制树形关系数据的图类,继承于 Graph ,享有 Graph 上的所有接口,本文档只介绍差异的接口,其它接口请参考 Graph API 文档

获取方式: G6.Tree``,创建 Tree 的方式如下:

  1. new G6.Tree(cfg);

创建一个 graph 实例,返回一个 Graph 对象,建议在单个容器上只初始化一个 Graph 实例。 cfg 详见下列配置项。

配置项

layout

布局参数 {object|function|object}

type`` {object}

  1. {
  2. auto: {boolean}, // 是否在画布数据变更后自动布局 默认 是true
  3. processer: {object|function}, // 布局处理器
  4. }

type`` {function}

  1. (roots)=>{
  2. // roots 根节点数据集
  3. // 在此处进行布局
  4. }

type`` {object}

  1. {
  2. excute() {
  3. this.roots; // 根节点数据集
  4. this.tree; // 当前图类
  5. }
  6. }

方法

read

读取并渲染图数据。

  1. tree.read(data);

参数

data`` {object} 数据模型

导入的数据模型,以下健名在 G6 中有特定含义,是保留字段,用户在设置自有数据时应 避免使用

数据模型:

  1. {
  2. roots: [
  3. {
  4. id: 'root', // 根节点 id
  5. color: '#333', // 颜色
  6. size: 10 || [10, 10], // 尺寸 || [宽, 高]
  7. shape: 'circle', // 图形
  8. style: { // 样式 (优先级高于 color)
  9. fill: 'red',
  10. stroke: 'blue'
  11. },
  12. label: '文本标签' || { // 文本标签 || 文本图形配置
  13. text: '文本标签',
  14. fill: 'green'
  15. },
  16. parent: 'parentId', // 父节点 id
  17. collapsed: false, // 是否折叠
  18. index: 1, // 渲染层级
  19. children: [{ // 子元素集 (子元素数据模型和根节点同构)
  20. id: 'leaf',
  21. }],
  22. }
  23. ]
  24. }

示例
Tree - 图1

  1. const data = {
  2. roots: [{
  3. label: 'root',
  4. children: [{
  5. label: 'child1',
  6. children: [
  7. {
  8. label: 'child\n1.1'
  9. }
  10. ]
  11. }, {
  12. label: 'child2'
  13. }]
  14. }]
  15. };
  16. const tree = new G6.Tree({
  17. container: 'mountNode',
  18. width: 500,
  19. height: 500,
  20. fitView: 'cc'
  21. });
  22. tree.read(data);

add

添加节点,基本使用方式同 Graphadd(),不同之处在于,Tree 的只能添加节点(node)和导引(guide),并且添加 node必须指定 parent 字段

示例

  1. // 在 id 为 parentNode 的节点下添加一个 id 为 node1 的节点
  2. tree.add('node', {
  3. id: 'node1',
  4. parent: 'parentNode'
  5. })