html5 动态加载数据,动态加载数据

源码复制成功复制失败全屏 复制 运行

动态加载数据

/**

* 该案例演示,当点击叶子节点时,如何向树图中动态添加数据。

* 主要演示addChild和refreshLayout的用法。

*/

var graph = new G6.TreeGraph({

container: 'mountNode',

width: 500,

height: 500,

pixelRatio: 2,

renderer: 'svg',

modes: {

default: ['collapse-expand', 'drag-canvas']

},

fitView: true,

layout: {

type: 'compactBox',

direction: 'LR',

defalutPosition: [],

getId: function getId(d) {

return d.id;

},

getHeight: function getHeight() {

return 16;

},

getWidth: function getWidth() {

return 16;

},

getVGap: function getVGap() {

return 50;

},

getHGap: function getHGap() {

return 100;

}

}

});

graph.node(function(node) {

return {

size: 16,

anchorPoints: [[0, 0.5], [1, 0.5]],

style: {

fill: '#40a9ff',

stroke: '#096dd9'

},

label: node.id,

labelCfg: {

position: node.children && node.children.length > 0 ? 'left' : 'right'

}

};

});

graph.edge(function() {

return {

shape: 'cubic-horizontal',

color: '#A3B1BF'

};

});

var data = {

isRoot: true,

id: 'Root',

style: {

fill: 'red'

},

children: [{

id: 'SubTreeNode1',

raw: {},

children: [{

id: 'SubTreeNode1.1'

}, {

id: 'SubTreeNode1.2',

children: [{

id: 'SubTreeNode1.2.1'

}, {

id: 'SubTreeNode1.2.2'

}, {

id: 'SubTreeNode1.2.3'

}]

}]

}, {

id: 'SubTreeNode2',

children: [{

id: 'SubTreeNode2.1'

}]

}, {

id: 'SubTreeNode3',

children: [{

id: 'SubTreeNode3.1'

}, {

id: 'SubTreeNode3.2'

}, {

id: 'SubTreeNode3.3'

}]

}, {

id: 'SubTreeNode4'

}, {

id: 'SubTreeNode5'

}, {

id: 'SubTreeNode6'

}]

};

graph.data(data);

graph.render();

var count = 0;

graph.on('node:click', function(evt) {

var item = evt.item;

var nodeId = item.get('id');

var model = item.getModel();

var children = model.children;

if (!children || children.length === 0) {

var childData = {

id: 'child-data-' + count,

shape: 'rect',

children: [{

id: 'x-' + count

}, {

id: 'y-' + count

}]

};

graph.addChild(childData, nodeId);

count++;

graph.refreshLayout();

}

});

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值