• 项目中统计报表用到echarts图表,备份一下


    首先引入js文件

    <script src="/assets/js/echarts.min.js" charset="utf-8"></script>

    触发事件

    <button onclick="javascript:query()"type="button" style="margin-bottom: 10px">查询</button>

    存放图标的div容器

    <div  id="main" style=" 100%;height:400px;"></div>

    js代码

    //多柱状图
    function query() {
        var myChart = echarts.init(document.getElementById('main'));
            myChart.setOption({
                title: {
                    text: '研发工作量、测试工作量、Review工作量统计图'  //标题
                },
                toolbox: {   //工具箱可切换折线图,还有显示数据
                    show : true,
                    feature : {
                        mark : {show: true},
                        dataView : {show: true, readOnly: false},
                        magicType : {show: true, type: ['line', 'bar']}, 
                        restore : {show: true},
                        saveAsImage : {show: true}
                    }
                },
                calculable : true,
                tooltip: {
                       trigger: 'axis' //提示框组件 
                },
                legend: {
                    data: ['研发工作量','测试工作量','Review工作量']  //图例组件
                },
                xAxis: {  //x轴
                    type: 'category',
                    data: []
                },
                yAxis: {   //y轴
                    name: ''
                },
                series: [{  //系列列表
                    name: '研发工作量',
                    type: 'bar', //bar柱状图,line折线图,pie饼图
                    data: []
                },
                  {
                      name: '测试工作量',
                      type: 'bar',
                      data: []
                }
                ,
                  {
                      name: 'Review工作量',
                      type: 'bar',
                      data: []
                }]
            });
            myChart.showLoading();    //数据加载完之前先显示一段简单的loading动画
            var names = [];    //类别数组(实际用来盛放X轴坐标值)
            //显示数据数组
            var Research = [];
            var Test = [];
            var Review = [];
            var name =  $("#name").val();  //参数
            var type =  $("#status").val();
            $.ajax({
                type: 'post',
                url: 'project/workloadYear/query',//请求数据的地址
                data : {
                    name:name,
                    type:type
                    },
                dataType: "json",        //返回数据形式为json
                success: function (result) {
                    //请求成功时执行该函数内容,result即为服务器返回的json对象
                    $.each(result, function (index, item) {
                        names.push(item.date);    //挨个取出类别并填入类别数组
                        Research.push(item.research);
                        Test.push(item.test);
                        Review.push(item.review);
                    });
    
                    myChart.hideLoading();    //隐藏加载动画
                    myChart.setOption({        //加载数据图表
                        xAxis: {    //x轴
                            data: names
                        },
                        series: [{                 //系列列表     
                            data: Research  //上面赋值的数组
                        },
                         {                    
                             data: Test
                         }
                        ,
                         {                    
                             data: Review
                         }
                        ]
    
                    });      
                },
                error: function (errorMsg) {
                    //请求失败时执行该函数
                    alert("图表请求数据失败!");
                    myChart.hideLoading();
                }
            });
    }

    后台交互代码

        @ResponseBody
        @PostMapping("/query")
        @RequiresPermissions("project:workloadYear:list")
        public void save( HttpServletResponse response,String name,String type){
            List<ReportDO>  report = getReport(name, type); //根据姓名和周期类别返回数据
            String json = JSON.toJSONString(report);
            try {
                response.setCharacterEncoding("utf-8");
                response.setContentType("text/JavaScript; charset=utf-8");// json数据 
                response.getWriter().println(json);
            } catch (IOException e) {
                e.printStackTrace();
            }
        }

    实体类

    public class ReportDO {
        private String date ; // 日期
        private float percentage; //比例
        private float Research; //研发
        private float Test; //测试
        private float Review; //审查
    //set,get...
    }

    效果图
    这里写图片描述
    这里写图片描述
    切换为折线图
    这里写图片描述

    勿忘初心 得过且过
  • 相关阅读:
    k8s各个组件使用过程中的纪要
    lynis安装与使用
    在docker容器中使用sudo命令
    CAD文字双击后移位
    Centos 7 上 源码安装和配置 ATS 9.1.2
    《编程之美》2.2 不要被阶乘吓倒
    《编程之美》2.1 求无符号整数N的二进制表示中1的个数
    达梦数据库体系学习分享
    使用grabit分析mysql数据库中的数据血缘关系
    C++ 赋值运算符和拷贝构造函数
  • 原文地址:https://www.cnblogs.com/xpf1009/p/9227285.html
Copyright © 2020-2023  润新知