Echarts中tree结构图痛点解析----- 解决(很多节点图被压缩的很小;roam开启后有个bug)

1. 正交向图:无法自动撑开容器,当节点很多时会无限的压缩节点间的空隙,导致图表很难看;

2. 开启roam选项后,拖动图表,之后再点击根节点的时候收缩时,图表会消失到容器外;(这个就很难受的bug,目前只是间接的重绘图表解决)

 

上图就是效果图。

下面附上主要代码:(具体代码在这里,需要的请下载)解决echarts-v4.x版本tree图相关问题的具体代码

draw_tree_chart() {
    this.tree_chart_cav = this.$echarts.init(document.getElementById('tree_chart'));
    this.generate_tree_chart();
    this.tree_chart_cav.on('click', {seriesIndex: 0}, (event_obj) => {
        console.log("event_obj =", event_obj);
        /*1、根据节点个数扩展所在图层的大小;可以解决动态改变图层的高度,不收缩原图(导致越来越小)*/
        /*var container = document.getElementById('tree_chart');
        var allNode = 0;
        var nodes = tree_chart_cav._chartsViews[0]._data._graphicEls;
        for (var i = 0, count = nodes.length; i < count; i++) {
            var node = nodes[i];
            if (node === undefined)
                continue;
            allNode++;
        }
        var height = 600;
        var currentHeight = 45 * allNode;
        var newWidth = Math.max(currentHeight, height);
        container.style.width = window.innerWidth + 'px';
        container.style.height = newWidth + 'px';
        tree_chart_cav.resize();*/
        /*2、解决roam打开时,移动图表,再收缩根节点之后,图表消失bug*/
        if(event_obj.data.level===0){//此时点击的节点为根节点
            this.generate_tree_chart();
        }

    });
    if($.inArray(this.tree_chart_cav,this.curr_charts)===-1){
        this.curr_charts.push(this.tree_chart_cav);
    }
    this.chart_resize_auto();//首次加载图表时主动触发一次resize事件,用于图表自适应
}
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值