美文网首页一入前端坑似海Web前端之路让前端飞
echarts如何修改数据视图dataView中的样式

echarts如何修改数据视图dataView中的样式

作者: YukiYang | 来源:发表于2017-07-31 19:08 被阅读184次

    做了一个现实折线图的图表,通过右上角icon可以自由切换成柱状图,表格。
    在表格中遇到的一点小问题,解决方案如下:

    1、场景重现

    场景重现

    这是一个显示两个折线图的图表,一切看起来都很顺利。
    但是点击红色箭头所指的图标,这个作用就是以表格的形式展现。
    展现如下。

    场景重现

    很丑是吧,测试姐姐说一定要改掉。
    附加一下右上角的实现代码,在options配置项加下面的配置就OK。

    //右上角切换实现方法
    toolbox: {
        show: true,
            right: '5%',
            feature: {
            dataView: {
                readOnly: true              
            },
            magicType: {type: ['line', 'bar']}
        }
    },
    

    2、解决方案

    点击文档传送门

    文档地址

    echarts给的解决的办法就是自定义。
    下面写了一个小表格,opt包含了所有折线图的数据,自己组装下。
    可以console看看都有什么。

    optionToContent: function (opt) {
        let axisData = opt.xAxis[0].data; //坐标数据
        let series = opt.series; //折线图数据
        let tdHeads = '<td  style="padding: 0 10px">时间</td>'; //表头
        let tdBodys = ''; //数据
        series.forEach(function (item) {
            //组装表头
            tdHeads += `<td style="padding: 0 10px">${item.name}</td>`;
        });
        let table = `<table border="1" style="margin-left:20px;border-collapse:collapse;font-size:14px;text-align:center"><tbody><tr>${tdHeads} </tr>`;
        for (let i = 0, l = axisData.length; i < l; i++) {
            for (let j = 0; j < series.length; j++) {
                //组装表数据
                tdBodys += `<td>${ series[j].data[i]}</td>`;
            }
            table += `<tr><td style="padding: 0 10px">${axisData[i]}</td>${tdBodys}</tr>`;
            tdBodys = '';
        }
        table += '</tbody></table>';
        return table;
    }
    

    改完效果如下,大家可以自己试试看哦。可以改成自己想要的风格哦。

    更改后

    3、总结

    和数据视图有关的都可以这样改,不一定是我的那个场景。

    如果项目中图表很多,可以把这段代码抽取出来,毕竟篇幅很长。
    写这篇文章,主要是自己刚学会,其次是搜了一会没找到合适的答案。就分享下自己的小喜悦吧,嘻嘻。

    相关文章

      网友评论

        本文标题:echarts如何修改数据视图dataView中的样式

        本文链接:https://www.haomeiwen.com/subject/ouirlxtx.html