本节引见如何将百度的echarts引入extjs项目,echarts官网
先上个图,看一下结果
图片形貌
思绪
echarts一般情况下是以一个div作为衬着容器的,而且这个div必需指定高度初始化。在extjs里,合适干这件事的组件,就是panel面板了。能够在面板boxready事宜中将echarts衬着到对应dom节点。
封装一个echart扩大:app/luter/ux/EchartsPanel.js
Ext.define('luter.ux.EchartsPanel', {
extend: 'Ext.panel.Panel',
alias: 'widget.echartspanel',
liquidLayout: true,
cls: 'chart-body',
initComponent: function () {
var me = this;
if (!me.height) {
showFailMesg({
msg: '请准确设置图表参数:height'
})
}
if (!me.option) {
showFailMesg({
msg: '请准确设置图表参数:option'
})
}
me.on("boxready", function () {//boxready后,获取到panel的dom元素,把echarts衬着上去。
me.echarts = echarts.init(me.getEl().dom);
if (me.option) {
me.echarts.setOption(me.option);
}
});
me.callParent();
//同时绑定panel的resize事宜,对charts图举行大小适配
me.on("resize", function (ta, width, height, ow, oh, e) {
me.echarts.resize(ow - 10, oh - 5);
});
}
});
例子:
{
xtype: 'echartspanel',
height: 300,//初始化高度
option: {//charts的设置,来自百度echarts官网例子,详细参考百度官方的申明,
title: {
x: 'right',
text: '用户泉源范例',
subtext: '纯属虚构'
},
tooltip: {
trigger: 'item',
formatter: "{a} <br/>{b}: {c} ({d}%)"
},
legend: {
orient: 'vertical',
x: 'left',
data: ['直接接见', '邮件营销', '同盟广告', '视频广告', '搜索引擎']
},
series: [
{
name: '接见泉源',
type: 'pie',
radius: ['50%', '70%'],
avoidLabelOverlap: false,
label: {
normal: {
show: false,
position: 'center'
},
emphasis: {
show: true,
textStyle: {
fontSize: '30',
fontWeight: 'bold'
}
}
},
labelLine: {
normal: {
show: false
}
},
data: [
{value: 335, name: '直接接见'},
{value: 310, name: '邮件营销'},
{value: 234, name: '同盟广告'},
{value: 135, name: '视频广告'},
{value: 1548, name: '搜索引擎'}
]
}
]
}
}```
末了,记得在app.html内里引入echarts的js文件,以下:
<script src=”https://cdn.bootcss.com/echar…;></script>
以下无正文