spring boot + vue 前后端分离 集成echarts

1.npm 拉取 echarts

npm install echarts

2.main.js 挂载 echarts

import * as echarts from'echarts'

Vue.prototype.$echarts=echarts;

3.vue页面的使用  初始化echarts方法

创建div生成echats容器

 

showChartByType(type,title,data){ //type是自定义div id名
            
            var myChart=this.$echarts.init(document.getElementById(type));
            var option={
                title:{
                    text:title
                },
               
                xAxis:{
                  data:data.xData //x轴的数据
                    },
                yAxis:{},
                series:[{
                        name:"数据",
                        type:'line',
                        data:data.yData //y轴的数据
                    }]       
            }
            myChart.setOption(option);
        }   

在请求中调用初始化方法 并且填充相关数据

show(){
          Statics.showEcharts(this.searchObject.begin,this.searchObject.end).then(res=>{  //这是axios请求
            this.chartData=res.data.items;  //封装数据
            console.log(this.chartData)
            //echats的真正初始化
            this.showChartByType("register_num","学员注册统计",this.chartData.register_num);
            this.showChartByType("login_num","学员登录统计",this.chartData.login_num);
            this.showChartByType("view_num","课程播放数统计",this.chartData.video_view_num);
            this.showChartByType("course_add_num","课程新增数统计",this.chartData.course_add_num);
          })
        },

4.下面我给出我都后端封装的数据集合 大家可以自行参考

//生成echarts数据
    @Override
    public Map<String, Map<String, Object>> showEchartsBytime(String begin, String end) {
        Map<String, Object> register_num = this.getEchartsDataByType(begin, end, "register_num");
        Map<String, Object> login_num = this.getEchartsDataByType(begin, end, "login_num");
        Map<String, Object> video_view_num = this.getEchartsDataByType(begin, end, "video_view_num");
        Map<String, Object> course_add_num = this.getEchartsDataByType(begin, end, "course_add_num");
        Map<String, Map<String, Object>> mapHashMap = new HashMap<>();
        mapHashMap.put("register_num",register_num);
        mapHashMap.put("login_num",login_num);
        mapHashMap.put("video_view_num",video_view_num);
        mapHashMap.put("course_add_num",course_add_num);
        return mapHashMap;
    }
    //组装数据工具
    private Map<String,Object> getEchartsDataByType(String begin,String end,String type){
        Map<String,Object> map=new HashMap<>();
        List<String> xList=new ArrayList<>();
        List<Integer> yList=new ArrayList<>();
        QueryWrapper<Daily> dailyQueryWrapper = new QueryWrapper<>();
        dailyQueryWrapper.select("date_calculated",type);
        dailyQueryWrapper.between("date_calculated",begin,end);
        List<Map<String, Object>> maps = dailyMapper.selectMaps(dailyQueryWrapper);
        for (Map<String, Object> stringObjectMap : maps) {
            String date_calculated = (String)stringObjectMap.get("date_calculated");
            xList.add(date_calculated);
            Integer num = (Integer)stringObjectMap.get(type);
            yList.add(num);
        }
        map.put("xData",xList);
        map.put("yData",yList);
        return map;
    }

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值