Vue使用Echarts(内容结合了Springboot后端)

目录

1、环境准备

2、全局引入

3、使用图表

3.1、前端

3.2、后端


前面两节都为Vue项目中操作

1、环境准备

安装Echarts,在项目路径打开终端,输入以下命令安装Echarts

npm install echarts -S

安装后注意看pack.json文件中echarts版本

版本不同,引入方法也会不同,具体可看我另一篇文章

不同版本的引入方法icon-default.png?t=N7T8http://t.csdn.cn/unxZC

2、全局引入

在main.js文件中进行全局引入

import * as echarts from 'echarts';

// 全局注册 echarts 变量
Vue.prototype.$echarts = echarts;

3、使用图表

3.1、前端

这里放入了1个示例,拆分讲解看下面

<template>
   <div>
       <el-card shadow="hover">
          <div ref="barChart" class="echart"></div>
       </el-card>
   </div>
</template>
<script>
import {getRequest, postRequest} from "../../utils/api";  //封装的请求api,每个人的不同

export default {
  name: 'home',
  data() {
    return{
      echartOptions: {
        title: { text: "近期每日用户注册数" },
        xAxis: {
          type: 'category',
          data: [], // 日期数据将在获取数据后填充
        },
        yAxis: {
          type: 'value',
        },
        series: [
          {
            name: "注册数",
            data: [], // 注册数据将在获取数据后填充
            type: 'bar',
          },
        ]
      }
    }

  },

  mounted() {
    this.fetchPurchaseData();    //放入钩子函数,使其可以进入页面就进行加载
  },


  methods: {
    fetchPurchaseData() {
      getRequest('/root/7dayuser')
          .then(resp => {
            const data = resp.data;
            const dates = data.map(item => item.register_date);
            const counts = data.map(item => item.register_count);

            this.echartOptions.xAxis.data = dates;
            this.echartOptions.series[0].data = counts;

            // 使用 ECharts 渲染图表
            this.renderEChart(this.$refs.barChart, this.echartOptions);
          })
          .catch(error => {
            console.error('Error fetching data:', error);
          });
    },
    renderEChart(dom, options) {
      const myChart = this.$echarts.init(dom);
      myChart.setOption(options);
    }
  }
};

<style scoped>
.echart {
  width: 100%;
  height: 300px;
}
</style>

简单讲解下(分为3步):

1、在组件中构建一个DOM用于放图表,CSS样式在上面示例的最下面

<template>
   <div>
       <el-card shadow="hover">
          <div ref="barChart" class="echart"></div>
       </el-card>
   </div>
</template>
<style scoped>
.echart {
  width: 100%;
  height: 300px;
}
</style>

2、设置数据对象(用于存储后端发送的数据信息)

  data() {
    return{
      echartOptions: {
        title: { text: "近期每日用户注册数" },
        xAxis: {
          type: 'category',
          data: [], // 日期数据将在获取数据后填充
        },
        yAxis: {
          type: 'value',
        },
        series: [
          {
            name: "注册数",
            data: [], // 注册数据将在获取数据后填充
            type: 'bar',
          },
        ]
      }
    }

  },

3、从后端获取到数据,再渲染到Echarts图表中(需要将函数方法放入到钩子函数中,以便打开页面就进行加载)

mounted() {
    this.fetchPurchaseData();    //放入钩子函数,使其可以进入页面就进行加载
  },


  methods: {
    fetchPurchaseData() {
      getRequest('/root/7dayuser')
          .then(resp => {
            const data = resp.data;
            const dates = data.map(item => item.register_date);
            const counts = data.map(item => item.register_count);

            this.echartOptions.xAxis.data = dates;
            this.echartOptions.series[0].data = counts;

            // 使用 ECharts 渲染图表
            this.renderEChart(this.$refs.barChart, this.echartOptions);
          })
          .catch(error => {
            console.error('Error fetching data:', error);
          });
    },
    renderEChart(dom, options) {
      const myChart = this.$echarts.init(dom);
      myChart.setOption(options);
    }
  }

示例中的封装API如下,每个人的不同,也可以使用原始的axios进行请求

import axios from 'axios';

// 创建 Axios 实例
const request = axios.create({
    baseURL: '',
    timeout: 5000
});


// 封装不同类型请求
export const postRequest = (url, params) => {
    return request({
        method: 'post',
        url: `${url}`,
        data: params
    });
};

export const getRequest = (url) => {
    return request({
        method: 'get',
        url: `${url}`
    });
};

export const deleteRequest = (url, params) => {
    return request({
        method: 'delete',
        url: `${url}`,
        data: params
    });
};

export const putRequest = (url, params) => {
    return request({
        method: 'put',
        url: `${url}`,
        data: params
    });
};

export default request;

3.2、后端

Controller层(这里的return也使用了工具类封装)

    //查看前7天的注册数量
    @GetMapping("/7dayuser")
    public R getUserCountsLast7Days() {
        return R.ok("success",userMapper.getUserCountsLast7Day());
    }

Mapper对应的XML映射文件

  <select id="getUserCountsLast7Day" resultType="java.util.Map">
    SELECT DATE(createtime) AS register_date, COUNT(*) AS register_count FROM user WHERE createtime >= DATE_SUB(CURDATE(), INTERVAL 7 DAY) GROUP BY register_date ORDER BY register_date;
  </select>

Mysql代码这里用了别名,聚合函数,分组,排序;看不懂的就直接使用吧

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
Spring Boot是一个开源的Java框架,用于快速创建独立的、生产级别的基于Spring的应用程序。它简化了Spring应用程序的开发过程,并提供了很多方便的功能和集成模块。Echarts是一个基于JavaScript的开源图表库,可以用于创建各种交互式图表。Vue是一个用于构建用户界面的JavaScript框架,能够更好地组织和管理应用程序的界面。 要在Spring Boot应用程序中使用EchartsVue创建柱状图,可以按照以下步骤进行: 1. 在Spring Boot项目中引入EchartsVue的相关依赖。可以在pom.xml文件中添加相应的依赖项,并使用Maven进行依赖管理。 2. 创建一个Controller类,用于处理柱状图的数据请求。可以使用Spring MVC注解来定义接口,并在方法中返回柱状图所需的数据。 3. 在前端使用Vue框架来渲染和展示柱状图。可以在Vue的组件中引入Echarts,并使用Echarts的API来生成柱状图。 4. 通过Ajax请求将从后端获取到的数据传递给Vue组件,并根据数据来渲染柱状图。 5. 根据需要对柱状图进行样式和交互的定制,比如设置柱状图的颜色、宽度、标签等。 通过以上步骤,就可以在Spring Boot应用程序中使用EchartsVue来创建柱状图。这样可以方便地展示数据,并提供交互式的图表功能,提高用户体验。 总结而言,利用Spring Boot后端能力,结合EchartsVue的前端技术,可以很方便地实现柱状图功能,使应用程序更具有可视化和交互性,提高用户的使用体验。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

星浩前进中

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值