ECharts前后台交互获取数据

<!DOCTYPE HTML>
<html lang="zh" xmlns:th="http://www.thymeleaf.org">
<meta charset="utf-8">
<head th:include="include :: header"></head>
<script th:src="@{/ajax/libs/echarts/echarts.js}"></script>
<body class="gray-bg">
<div class="container-div">
    <div class="row">
        <div class="col-sm-12 search-collapse">
            <form id="formId">
                <div class="select-list">
                    <ul>
                        <li class="select-time">
                            <label>选择日期:</label>
                            <input type="text" class="time-input" id="dataTransferDate"
                                   name="date"/>
                        </li>

                        <li>
                            <a class="btn btn-primary btn-rounded btn-sm"
                               onclick="buildData()"><i class="fa fa-search"></i>&nbsp;搜索</a>
                            <a class="btn btn-warning btn-rounded btn-sm" onclick="$.form.reset()"><i
                                    class="fa fa-refresh"></i>&nbsp;重置</a>
                        </li>
                    </ul>
                </div>
            </form>
        </div>

        <div class="col-sm-12 search-collapse">
            <div id="airportDataPerDay4System" style="width: 100%; height: 500px;"
                 align="center"></div>
        </div>
    </div>
</div>
<div th:include="include :: footer"></div>
<script th:inline="javascript">
    var prefix = ctx + "sjzxmonitor/datastatisticalanalysis";
    var echart;

    $(function () {
        buildData();
    });

    //生成数据
    function buildData() {
        var data = $("#dataTransferDate").serialize();
        $.ajax({
            async: false,
            url: prefix + "/querydataperday4system",
            type: 'post',
            dataType: 'json',
            data: data,
            success: function (echartDatas) {
                if (isNotEmpty(echartDatas)) {
                    var columLabel = new Array();
                    var columName = new Array();
                    var columnValue = new Array();
                    var arrData;
                    var i = 0;
                    for (var echartData in echartDatas) {
                        columLabel.push(echartData);
                        if (i == 0) {
                            for (var dataCount in echartDatas[echartData]) {
                                columName.push(dataCount);
                            }
                        }
                        arrData = new Array();
                        for (var dataCount in echartDatas[echartData]) {
                            arrData.push(echartDatas[echartData][dataCount]);
                        }
                        columnValue.push(eval('(' + ("{'name':'" + echartData + "','type':'bar','data':[" + arrData + "]}") + ')'));
                        i = i + 1;
                    }

                    buildChart(columLabel, columName, columnValue);
                } else {
                    $("#airportDataPerDay4System").html("暂无数据");
                }
            },
            error: function (errorMsg) {
                alert("加载数据失败");
            }
        });

        // var columLabel = ['咸阳机场', '银川机场', '西宁机场'];
        // var columName = ['ACDM', '地调', '安检', '航班'];
        // var columnValue = new Array();
        // var arrData;
        //
        // for (var i = 0; i < columLabel.length; i++) {
        //     arrData = new Array();
        //     for (var j = 0; j < columName.length; j++) {
        //         arrData.push(Math.floor(Math.random() * 1000 + 1000 * j - 1000 * i));
        //     }
        //     columnValue.push(eval('(' + ("{'name':'" + columLabel[i] + "','type':'bar','data':[" + arrData + "]}") + ')'));
        // }

        // buildChart(columLabel, columName, columnValue);
    }

    //生成图形
    function buildChart(columLabel, columName, columnValue) {
        if (null != echart && "" != echart && undefined != echart) {
            echart.dispose();
        }
        echart = echarts.init(document.getElementById('airportDataPerDay4System'));
        var option = {
            tooltip: {
                trigger: 'axis',
                axisPointer: {
                    type: 'shadow'
                }
            },
            toolbox: {
                show: true,
                right: '1%',
                feature: {
                    dataView: {show: true, readOnly: true},
                    saveAsImage: {show: true}
                }
            },
            legend: {
                data: columLabel
            },
            grid: {
                left: '3%',
                right: '4%',
                bottom: '3%',
                containLabel: true
            },
            xAxis: [
                {
                    min: 0,
                    type: 'category',
                    data: columName
                }
            ],
            yAxis: [
                {
                    min: 0,
                    type: 'value'
                }
            ],
            series: columnValue
        };

        echart.setOption(option);

    }

    function isNotEmpty(obj) {
        for (var i in obj) { // 如果不为空,则会执行到这一步,返回true
            return true
        }
        return false // 如果为空,返回false
    }
</script>
</body>
</html>

这边后台返回的数据为map,Map<String,Map<String,Integer>>

  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值