上一篇文章中介绍了echarts中柱状图的使用,从demo中我们可以看到不管是柱状图还是饼状图或者是折线图,都是导入js,准备option参数。为了使用方便我们下一步要做的就是封装了。
我们把图形类型和图形数据与图形显示分离开来,封装独立的js文件,只要传给他图形类型参数和图形数据参数就能显示出对应的图形,这样就不会出现太多的冗余代码。接下来我们说封装js文件。
是柱状图封装柱状图的js饼状图封装饼状图的js呢,还是所有的图形封装成一个js呢?如果我们单独封装,就把option内容中变化的图形数据抽出来,如果我们封装一个js,不同种的图形option格式不同,封装的js就相当于单独封装的集合。具体哪种封装还需要根据项目实际需求,以方便使用为目的。
单独封装js介绍:以柱状图为例。
1,初始化js
//jsonArray图形数据数组 reportName图形显示标题
function initEchartsBar(json, reportName) {
require.config({
paths : {
echarts : 'js/echarts',// 这里是你引用的echarts文件的路径
'echarts/chart/bar' : 'js/echarts',// 这里需要注意的是除了mapchart使用的配置文件为echarts-map之外,其他的图形引用的配置文件都为echarts,这也是一般的图形跟地图的区别
'echarts/chart/line' : 'js/echarts',
'echarts/chart/pie' : 'js/echarts'
}
});
require([ 'echarts',// 这里定义项目中需要的类
'echarts/chart/bar', ], function(ec) {
var myChart = ec.init(document.getElementById('main'));// 图表初始化的地方,在页面中要有一个地方来显示图表,他的ID是main
option = getOptionByArray(json, reportDesign);//得到option图形
myChart.setOption(option); //显示图形
});
}
2,获取option数据
function getOptionByArray(json, reportName) {
var option = {
title : {
text: reportName,
x:'center'
},
tooltip : {
trigger: 'item',
formatter: "{a} <br/>{b} : {c} ({d}%)"
},
legend: {
orient : 'vertical',
x : 'left',
data:json.getText
},
toolbox: {
show : true,
feature : {
mark : {show: true},
dataView : {show: true, readOnly: false},
restore : {show: true},
saveAsImage : {show: true}
}
},
calculable : true,
series : [
{
name:json.getText,
type:'pie',
radius : '55%',
center: ['50%', '60%'],
data:json.getValue
}
]
};
return option;
}
3,在界面引用js
一个界面只显示一种图形的话,只需要在文件head标签中引用即可。如下:
如果界面中显示多种图形,需要在确定选中哪种图形后动态导入所需的封装好的js文件,如下:
$.getScript():远程调用js,在程序运行时根据程序给出的js路径动态的将路径下的js文件加载进程序中,以便程序使用。
手动写一个html文件,测试远程调用js方法,在火狐和谷歌浏览器下面无法通过,在ie浏览器下通过。所以如果测试不通过,请更换浏览器试试,或者在eclipse工具中创建一个web项目测试。