echarts如何修改數據視圖dataView中的樣式


原文鏈接:點我

做了一個現實折線圖的圖表,通過右上角icon可以自由切換成柱狀圖,表格。
在表格中遇到的一點小問題,解決方案如下:

1、場景重現


這是一個顯示兩個折線圖的圖表,一切看起來都很順利。
但是點擊紅色箭頭所指的圖標,這個作用就是以表格的形式展現。
展現如下。

很丑是吧,測試姐姐說一定要改掉。
附加一下右上角的實現代碼,在options配置項加下面的配置就OK。

 1 //右上角切換實現方法
 2 toolbox: {
 3     show: true,
 4         right: '5%',
 5         feature: {
 6         dataView: {
 7             readOnly: true              
 8         },
 9         magicType: {type: ['line', 'bar']}
10     }
11 },

2、解決方案

點擊文檔傳送

echarts給的解決的辦法就是自定義。
下面寫了一個小表格,opt包含了所有折線圖的數據,自己組裝下。
可以console看看都有什么。

 1 optionToContent: function (opt) {
 2     let axisData = opt.xAxis[0].data; //坐標數據
 3     let series = opt.series; //折線圖數據
 4     let tdHeads = '<td  style="padding: 0 10px">時間</td>'; //表頭
 5     let tdBodys = ''; //數據
 6     series.forEach(function (item) {
 7         //組裝表頭
 8         tdHeads += `<td style="padding: 0 10px">${item.name}</td>`;
 9     });
10     let table = `<table border="1" style="margin-left:20px;border-collapse:collapse;font-size:14px;text-align:center"><tbody><tr>${tdHeads} </tr>`;
11     for (let i = 0, l = axisData.length; i < l; i++) {
12         for (let j = 0; j < series.length; j++) {
13             //組裝表數據
14             tdBodys += `<td>${ series[j].data[i]}</td>`;
15         }
16         table += `<tr><td style="padding: 0 10px">${axisData[i]}</td>${tdBodys}</tr>`;
17         tdBodys = '';
18     }
19     table += '</tbody></table>';
20     return table;
21 }

 

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

3、總結

和數據視圖有關的都可以這樣改,不一定是我的那個場景。

如果項目中圖表很多,可以把這段代碼抽取出來,畢竟篇幅很長。
寫這篇文章,主要是自己剛學會,其次是搜了一會沒找到合適的答案。就分享下自己的小喜悅吧,嘻嘻。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM