ExtJs整合Echarts的示例代碼
由于Echarts不提供表格功能,想要實(shí)現(xiàn)上圖下表,需要自己增加一個(gè)table標(biāo)簽。
ExtJs整合Echarts
從Echarts官網(wǎng)下載js文件通過import引用 新建一個(gè)頁面,通過豎直放置的兩個(gè)div排版,上方預(yù)留給Echarts,下方預(yù)留給table標(biāo)簽
initPanel : function() {
if (this.panel) {
return
}
var panel = new Ext.Panel({
id : 'echart',
html : '<div id="mainEchart" style="height:50%;border:1px solid #ccc;padding:10px;"></div>'
+ '<div id="mainTable" style="position:relative;text-align:center;padding:10px;">'
+'<label for="mainTable"><h1>檔案調(diào)用次數(shù)表</h1></label>'
+'<table id="content-table" border="1" style="width:100%;text-align:center;">'
+ '<tr><th>月份</th><th>調(diào)用次數(shù)</th></tr>',
buttonAlign : 'center',
autoScroll : true,//允許滾動(dòng)
bodyStyle : 'overflow-x:hidden; overflow-y:scroll'
//開啟豎直滾動(dòng)條,關(guān)閉水平滾動(dòng)條
});
this.panel = panel;
return this.panel;
}
Echarts初始化和數(shù)據(jù)加載
官方聲明一次性只能生成一個(gè)echarts,定義相關(guān)的樣式,并且從后臺(tái)查詢數(shù)據(jù)提供給echarts
initData : function(id, personName, year) {
this.id = id;
var div = document.getElementById("mainEchart");
var myChart = echarts.init(div);
// myChart.showLoading({
// text: "圖表數(shù)據(jù)正在努力加載..."
// });
this.myChart = myChart;
// 初始化數(shù)據(jù)
var data = [];
var yearStr = "";
var flag = false;
var monthData = [];
var res = QueryData();//調(diào)用數(shù)據(jù)查詢,涉及項(xiàng)目名,略
for (var i = 0; i < res.json.body.length; i++) {
var map = res.json.body[i];
monthData.push(map.MM);//月份
data.push(map.DYCS);//調(diào)用次數(shù)
}
var options = {
arg : {
id : this.id
},
noDataLoadingOption : {
text : '暫無數(shù)據(jù)',
effect : 'bubble',
effectOption : {
effect : {
n : 0
}
}
},
title : {
text : personName + "的檔案調(diào)用情況",
x : 'west'
},
tooltip : {
trigger : 'axis'
},
legend : {
data : ['調(diào)用次數(shù)']
},
toolbox : {
show : true,
feature : {
mark : {
show : true
},
dataView : {
//重寫dataView
//在切換視圖的時(shí)候能夠以<table>的形式顯示
show : true,
readOnly : true,
optionToContent : function(opt) {
var axisData = opt.xAxis[0].data;
var series = opt.series;
var table = '<table style="width:100%;text-align:center" border="1"><tbody><tr>'
+ '<td>時(shí)間</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 : '調(diào)用次數(shù)',
type : 'bar',
barWidth : 35,
data : data,
itemStyle : {//修改柱狀圖的顏色并在頂部顯示數(shù)值
normal : {
color : '#3575a8',
label : {
show : true,
position : 'top',
formatter : '{c}'//'\n{c}'
}
}
}
}]
};
myChart.setOption(options, true);
myChart.on('click', function eConsole(param) {
});
this.tableData(personName, monthData, data)
//表格的加載
}
表格數(shù)據(jù)的賦值
表格部分就是簡(jiǎn)單的html賦值,沒什么好多講的,注意拼接完后刷新一下html即可。 代碼如下:
tableData : function(personName, monthData, data) {
// 表格部分
var html = '<div id="mainTable" style="position:relative;text-align:center;padding:10px;">'
+'<label for="mainTable"><h1>'
+ personName
+ '檔案調(diào)用情況表</h1></label>'
+'<table id="content-table" border="1" style="width: 100%;text-align: center;">'
+ '<tr style="height: 30px;text-align:center;"><th>月份</th><th>調(diào)用次數(shù)</th></tr>';
// if(monthData.length != data.length)
// throw new Error("數(shù)據(jù)條數(shù)不對(duì),請(qǐng)檢查!");
for (var i = 0; i < data.length; i++) {
html += '<tr style="height: 30px;text-align: center;">'
+'<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;
}
以上就可完成數(shù)據(jù)的聯(lián)動(dòng),希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
js 頁面關(guān)閉前的出現(xiàn)提示的實(shí)現(xiàn)代碼
主流的瀏覽器都支持onbeforeunload事件(即頁面卸載前觸發(fā)的事件),而現(xiàn)在大多網(wǎng)站都用到了此功能2011-05-05
詳解使用mocha對(duì)webpack打包的項(xiàng)目進(jìn)行"冒煙測(cè)試"的大致流程
這篇文章主要介紹了詳解使用mocha對(duì)webpack打包的項(xiàng)目進(jìn)行"冒煙測(cè)試"的大致流程,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-04-04
Json對(duì)象和字符串互相轉(zhuǎn)換json數(shù)據(jù)拼接和JSON使用方式詳細(xì)介紹(小結(jié))
JSON(JavaScript Object Notation) 是一種輕量級(jí)的數(shù)據(jù)交換格式.這篇文章主要介紹了Json對(duì)象和字符串互相轉(zhuǎn)換json數(shù)據(jù)拼接和JSON使用方式詳細(xì)介紹(小結(jié))的相關(guān)資料,需要的朋友可以參考下2016-10-10
JavaScript實(shí)現(xiàn)復(fù)制圖片功能的方法示例
本文主要介紹了在JavaScript中實(shí)現(xiàn)復(fù)制圖片的方法,先介紹了實(shí)現(xiàn)復(fù)制的前置知識(shí),包括傳統(tǒng)的 execCommand 方法及其優(yōu)缺點(diǎn)和 Clipboard API,然后詳細(xì)闡述了如何將不同形式的圖片轉(zhuǎn)化為blob對(duì)象并通過Clipboard API實(shí)現(xiàn)復(fù)制,還提及了兼容性問題及預(yù)覽、下載圖片的實(shí)現(xiàn)思路2025-03-03
JavaScript變量作用域_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理
這篇文章主要介紹了JavaScript變量作用域,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-06-06
微信小程序配置服務(wù)器提示驗(yàn)證token失敗的解決方法
這篇文章主要介紹了微信小程序配置服務(wù)器提示驗(yàn)證token失敗的解決方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2019-04-04
JavaScript將一個(gè)數(shù)組插入到另一個(gè)數(shù)組的方法
這篇文章主要介紹了JavaScript將一個(gè)數(shù)組插入到另一個(gè)數(shù)組的方法,涉及javascript中Array.prototype.push.apply方法的使用技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2015-03-03
js動(dòng)態(tài)添加刪除,后臺(tái)取數(shù)據(jù)(示例代碼)
這篇文章主要是對(duì)js動(dòng)態(tài)添加刪除,后臺(tái)取數(shù)據(jù)(示例代碼)進(jìn)行了詳細(xì)的分析介紹,需要的朋友可以過來參考下,希望對(duì)大家有所幫助2013-11-11

