extjs-扩大:百度echarts引入

本节引见如何将百度的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>

 
以下无正文

    原文作者:差点笨死
    原文地址: https://segmentfault.com/a/1190000012944696
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞