• echarts在miniUI和ajax下动态渲染数据


        <script src="echarts.js"></script>
        <script src="jquery-3.3.1.min.js"></script>
    </head>
    <body>
    
        <div id="traceProvinceOrder" style=" 100%;height:400px;"></div>
        
        <script>
    function loadOneColumn() {
    
    
        var myChart = echarts.init(document.getElementById('traceProvinceOrder'));
        // 显示标题,图例和空的坐标轴
        myChart.setOption({
            title: {
                text: '月销售分析'
            },
            tooltip: {},
            legend: {
                data: ['销售分析']
            },
            xAxis: {
                data: []
            },
            yAxis: {
                splitLine: { show: false },//去除网格线
                name: ''
            },
            series: [{
                barWidth: "30px",
                name: '销售分析',
                type: 'bar',
                itemStyle: {
                    normal: {
                        label: {
                            show: true,
                            position: 'top',
                            textStyle: {
                                color: '#333'
                            }
                        }
                    }
                },
                //data: []
            }]
        });
    
    
        myChart.showLoading();    //数据加载完之前先显示一段简单的loading动画
    
    
        var names = [];    //类别数组(实际用来盛放X轴坐标值)
        var nums = [];    //销量数组(实际用来盛放Y坐标值)
            
         $.ajax({
            type: 'get',
            url: '${base}/scripts/json.txt',//请求数据的地址
            //url: '${base}/bd/bd_branch_info!getAllBranch.action',//请求数据的地址
            dataType: "json",        //返回数据形式为json
            success: function (result) {
                //请求成功时执行该函数内容,result即为服务器返回的json对象
                $.each(result.list, function (index, item) {
                    names.push(item.department);    //挨个取出类别并填入类别数组                    
                    nums.push(item.num);    //挨个取出销量并填入销量数组
                });
    
    
                myChart.hideLoading();    //隐藏加载动画
                myChart.setOption({        //加载数据图表
                    xAxis: {
                        data: names
                    },
                    series: [{
                        // 根据名字对应到相应的系列
                        name: '发布排行',  //显示在上部的标题
                        data: nums
                    }]
                });
            },
            error: function (errorMsg) {
                //请求失败时执行该函数
                alert("图表请求数据失败!");
                myChart.hideLoading();
            }
        });
    };
    loadOneColumn();    
    
    
        </script>

    以上是用ajax请求数据进行动态渲染,数据返回格式为json:

    {
        "list":[
            {
                "department":"和平区",
                "num":480
            },
            {
                "department":"河西区",
                "num":380
            },
            {
                "department":"河东区",
                "num":366
            },
    {
                "department":"河北区",
                "num":320
            },
    {
                "department":"南开区",
                "num":300
            }
        ]
    }

    ——————————————————分割线—————————————————分割线——————————————————————————————-————

    miniUI下的echarts

    因为这个项目里,所有引入文件都被写在header文件里了,在ftl文件引入无效,所有要找到控制header的文件,在里面改动,然后引入

      html.append("
    <script type="text/javascript" src="").append(base).append("/scripts/echarts.js"></script>");
        function search(){
                var data;
                var year = date.getText()
                if (year==""){
                    mini.alert("请选择时间")
                    return
                }
                grid.load({ //这里用miniUI提供的查询方法直接就可以查到值, 可以省去发送ajax的步骤,所以直接从官网搜来echarts的基本使用样例
                    year:year,
                    branch:mini.get("branchNo").getValue(),
                branchArea:mini.get("branchArea").getValue()
                },function(){ //要取到后台返回来的值 只能用这个写法, 且上一歌{}内是发送过去的,这里的是返回来的
    
                    data = grid.getData(); //取到data    
                    console.log(data[0].sumSaleAmt9);        
                    
                    //引入echarts
                    var myChart = echarts.init(document.getElementById('traceProvinceOrder'));
                    //console.log(myChart)
                    
            var option = {
                title: {
                    text: '月销售报表'
                },
                tooltip: {},
                legend: {
                    data:['销量']
                },
                xAxis: { //这里是写死了x轴的数量
                    data: ["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"]
                },
                yAxis: {}, 
                series: [{  //从返回来的数据中取到sumSaleAmt这个值,代表了从1-12个月的销售额
                    name: '销量',
                    type: 'bar',
                    data: [data[0].sumSaleAmt1,data[0].sumSaleAmt2,data[0].sumSaleAmt3,data[0].sumSaleAmt4,data[0].sumSaleAmt5,data[0].sumSaleAmt6,data[0].sumSaleAmt7,data[0].sumSaleAmt8,data[0].sumSaleAmt9,data[0].sumSaleAmt10,data[0].sumSaleAmt11,data[0].sumSaleAmt12]
                }]
            };
    
            // 使用刚指定的配置项和数据显示图表。
            myChart.setOption(option);
                    
                })
            }
  • 相关阅读:
    108. Convert Sorted Array to Binary Search Tree
    107. Binary Tree Level Order Traversal II
    106. Construct Binary Tree from Inorder and Postorder Traversal
    105. Construct Binary Tree from Preorder and Inorder Traversal
    104. Maximum Depth of Binary Tree
    103. Binary Tree Zigzag Level Order Traversal
    102. Binary Tree Level Order Traversal
    系统和进程相关信息
    文件I/0缓冲
    系统编程概念(文件系统mount等函数的使用)
  • 原文地址:https://www.cnblogs.com/code-klaus/p/8566339.html
Copyright © 2020-2023  润新知