zoukankan      html  css  js  c++  java
  • ext整合highcharts实现饼图

    extjs自身有图表的功能,但是与highcharts和echarts相比,ext不如它们功能强大、样式美观。

    公司项目的前端框架使用的是ext,所以就有了ext整合第三方图表插件的需求。

    笔者会一点ext,会一点highcharts,但是把两个整合起来对我有难度,好在公司大佬Groot写了一个整合的样板可以参考,我对源代码进行了一部分修改放到博客上,方便我以后的回顾以及供大家参考。

    效果图:

    公司的项目中有多个地方会用到饼图,因此大佬把生成饼图抽成了一个js脚本rendererHelper.js,大大方便了公司其他开发人员的调用,这一点很值得学习。

    以下是生成这个饼图的方法的源代码:

    // Ext.Loader.setConfig({enabled: true}); 可开启Ext.Loader
    // 此方法中用到了第三方插件,要加载它,就必须开启Ext.Loader
    Ext.Loader.setConfig({ enabled: true });
    // 定义命名空间
    Ext.Loader.setPath('Chart.ux', 'highcharts插件所在的文件夹');
    // 引用类
    Ext.require([
        'Chart.ux.Highcharts',
        'Chart.ux.Highcharts.Serie',
        'Chart.ux.Highcharts.PieSerie'
    ]);
    
    function createPie(store, colors) {
        var pieChart = Ext.create('Chart.ux.Highcharts', {
            height: 320,
            series: [
                {
                    type: 'pie',
                    dataField: 'num',
                    categorieField: 'typeName',
                    name: '数量'
                }
            ],
            store: store,
            chartConfig: {
                chart: { type: 'pie' },
                plotOptions: {
                    pie: {
                        allowPointSelect: true,
                        cursor: "pointer",
                        colors: colors,
                        donut: false,
                        tooltip: {
                        },
                        showInLegend: true,
                        dataLabels: {
                            formatter: function () {
                                return Highcharts.numberFormat(this.percentage, 2) + '%';
                            }
                        }
                    }
                },
                credits: false,
                title: {
                    text: null,
                    align: 'left'
                }
            }
        });
        return pieChart;
    }

     使用这个脚本的方法:

    1、在对应页面的jsp页面引入rendererHelper.js

    <script src="rendererHelper.js""></script>

     2、在对应页面的js文件中调用脚本中的createPie方法:

    // store是数据存储,colors是饼图颜色
    var
    typePie = createPie(store, colors);
  • 相关阅读:
    jQuery Mobile 总结
    妙味,结构化模块化 整站开发my100du
    详解使用icomoon生成字体图标的方法并应用
    Vue.js搭建路由报错 router.map is not a function,Cannot read property ‘component’ of undefined
    jquery 最全知识点图示
    图解Js event对象offsetX, clientX, pageX, screenX, layerX, x区别
    Oracle存储过程及函数的练习题
    SQL中IS NOT NULL与!=NULL的区别
    mysql字符集和排序规则
    一个web项目web.xml的配置中<context-param>配置作用
  • 原文地址:https://www.cnblogs.com/daihu/p/10178258.html
Copyright © 2011-2022 走看看