您好,登錄后才能下訂單哦!
Echarts怎么在ExtJs中使用?相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。
ExtJs整合Echarts
從Echarts官網下載js文件通過import引用 新建一個頁面,通過豎直放置的兩個div排版,上方預留給Echarts,下方預留給table標簽
initPanel : function() { if (this.panel) { return } var panel = new Ext.Panel({ id : 'echart', html : '<div id="mainEchart" ></div>' + '<div id="mainTable" >' +'<label for="mainTable"><h2>檔案調用次數表</h2></label>' +'<table id="content-table" border="1" >' + '<tr><th>月份</th><th>調用次數</th></tr>', buttonAlign : 'center', autoScroll : true,//允許滾動 bodyStyle : 'overflow-x:hidden; overflow-y:scroll' //開啟豎直滾動條,關閉水平滾動條 }); this.panel = panel; return this.panel; }
Echarts初始化和數據加載
官方聲明一次性只能生成一個echarts,定義相關的樣式,并且從后臺查詢數據提供給echarts
initData : function(id, personName, year) { this.id = id; var div = document.getElementById("mainEchart"); var myChart = echarts.init(div); // myChart.showLoading({ // text: "圖表數據正在努力加載..." // }); this.myChart = myChart; // 初始化數據 var data = []; var yearStr = ""; var flag = false; var monthData = []; var res = QueryData();//調用數據查詢,涉及項目名,略 for (var i = 0; i < res.json.body.length; i++) { var map = res.json.body[i]; monthData.push(map.MM);//月份 data.push(map.DYCS);//調用次數 } var options = { arg : { id : this.id }, noDataLoadingOption : { text : '暫無數據', effect : 'bubble', effectOption : { effect : { n : 0 } } }, title : { text : personName + "的檔案調用情況", x : 'west' }, tooltip : { trigger : 'axis' }, legend : { data : ['調用次數'] }, toolbox : { show : true, feature : { mark : { show : true }, dataView : { //重寫dataView //在切換視圖的時候能夠以<table>的形式顯示 show : true, readOnly : true, optionToContent : function(opt) { var axisData = opt.xAxis[0].data; var series = opt.series; var table = '<table border="1"><tbody><tr>' + '<td>時間</td>' + '<td>' + series[0].name + '</td>' // + '<td>' // + series[1].name // + '</td>' + '</tr>'; for (var i = 0, l = axisData.length; i < l; i++) { table += '<tr>' + '<td>' + axisData[i] + '</td>' + '<td>' + series[0].data[i] + '</td>' // + '<td>' + series[1].data[i] // + '</td>' + '</tr>'; } table += '</tbody></table>'; return table; } }, magicType : { show : true, type : ['line', 'bar'] }, restore : { show : true }, saveAsImage : { show : true } } }, calculable : true, xAxis : [{ type : 'category', data : monthData }], yAxis : [{ type : 'value', splitArea : { show : true } }], series : [{ name : '調用次數', type : 'bar', barWidth : 35, data : data, itemStyle : {//修改柱狀圖的顏色并在頂部顯示數值 normal : { color : '#3575a8', label : { show : true, position : 'top', formatter : '{c}'//'{b}\n{c}' } } } }] }; myChart.setOption(options, true); myChart.on('click', function eConsole(param) { }); this.tableData(personName, monthData, data) //表格的加載 }
表格數據的賦值
表格部分就是簡單的html賦值,沒什么好多講的,注意拼接完后刷新一下html即可。 代碼如下:
tableData : function(personName, monthData, data) { // 表格部分 var html = '<div id="mainTable" >' +'<label for="mainTable"><h2>' + personName + '檔案調用情況表</h2></label>' +'<table id="content-table" border="1" >' + '<tr ><th>月份</th><th>調用次數</th></tr>'; // if(monthData.length != data.length) // throw new Error("數據條數不對,請檢查!"); for (var i = 0; i < data.length; i++) { html += '<tr >' +'<td id="data-month-'+i+'">' + monthData[i] + '</td><td id="data-value-'+i+'">' + data[i] + '</td></tr>' } html += '</table></div>'; document.getElementById('mainTable').innerHTML = html; }
看完上述內容,你們掌握Echarts怎么在ExtJs中使用的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。