若依项目制作饼状图和柱状图

本文详细介绍了如何在 Vue 项目中使用 Echarts 创建饼状图和柱状图。首先,通过创建实体类、Mapper 和 Controller 实现数据获取。接着,展示了前后端交互的实现,包括 Vue 组件的编写、数据的处理以及 Echarts 图表的配置。最后,提供了饼状图和柱状图的完整代码示例,以及页面跳转和接口设置。文章适合对 Vue 和 Echarts 有一定了解的开发者参考学习。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这里的是根据年两分段做一个饼状图,根据性别人数制作柱状图

echarts+vue

饼状图

先写一个实体类,将查到的数据放在实体类中,写一个mapper->mapper.xml->controller
这里为了方便测试没有写service

实体类

在这里插入图片描述

mapper

在这里插入图片描述

mapper.xml
这里的SQL查到的值一定要和实体类定义的相同,要不然会报错,
SQL里的where del_flag = 0这里我是判断是否删除,可以不写

在这里插入图片描述

controller
这里的AjaxResult是若依自带的,将查到的数据返回到前端

在这里插入图片描述

前端饼状图

这里是写了按钮跳转

在这里插入图片描述
在这里插入图片描述

上张图片的@click里的值要和下面定义的相同

在这里插入图片描述

写完按钮,写pie页面

<template>
  <div id="myChart" :style="{width: '800px', height: '600px'}"></div>
</template>
<script>
import * as echarts from 'echarts';
import {bing} from "@/api/system/member";
export default {
  name: "pie",
  //参数
  data(){
    return{
      pName:[],//name值
      pValue:[]//value值
    }
  },
  mounted() {
    this.$nextTick(()=>{
      this.getList();
    })
  },
  created() {
  },
  methods:{
    getList() {
      bing().then(res => {
        if (res.code == 200) {
          this.myEachars(res.data);
        }
      })
    },
    //饼图
    myEachars(datm){
      var datas = []
      for (let i = 0; i < datm.length; i++) {
        var item = {
          value: datm[i].value,
          name: datm[i].name,
        };
        datas.push(item);
      }
        console.log(datas);
      // 基于准备好的dom,初始化echarts实例
      var myChart = echarts.init(document.getElementById('myChart'));
      // 指定图表的配置项和数据
      var option = {
        legend: {
          top: 'bottom'
        },
        tooltip: {
          trigger: 'item'
        },
        toolbox: {
          show: true,
          feature: {
            mark: { show: true },
            dataView: { show: true, readOnly: false },
            restore: { show: true },
            saveAsImage: { show: true }
          }
        },
        series: [
          {
            name: "人数统计图",
            type: 'pie',
            radius: [50, 250],
            center: ['50%', '50%'],
            roseType: 'area',
            itemStyle: {
              borderRadius: 8
            },
            data:datas
          }
        ]
      };
      // 使用刚指定的配置项和数据显示图表。
      myChart.setOption(option);
    }
  }
}
</script>

写完pie页面要写跳转和接口
index.js要找对位置,里面放的是跳转的页面,name值要和上面index.vue里name值相同

在这里插入图片描述

member.js是index.vue页面对应的js,是若依项目代码生成的
在member.js里写对应的后端接口

在这里插入图片描述

这里饼状图就算完成了

柱状图

思路和饼状图一样,这里直接放我写的代码

实体类

在这里插入图片描述

mapper

在这里插入图片描述

mapper.xml

在这里插入图片描述

controller

在这里插入图片描述

上面的跳转按钮

在这里插入图片描述

在这里插入图片描述

写zhu.vue

<template>
  <div class="echart" id="mychart" :style="{width: '800px', height: '600px'}"></div>
</template>

<script>
import * as echarts from "echarts";
import {zhu} from "@/api/system/member";

export default {
  name: "zhu",
  data() {
    return {
      myChartStyle: { float: "left", width: "100%", height: "400px" } //图表样式
    };
  },
  mounted() {
    this.$nextTick(()=>{
      this.list();
    });
  },
  created() {
  },
  methods: {
    list() {
      zhu().then(res => {
        if (res.code==200){
          this.zhuzhuangtu(res.data);
        }else {
          //验证失败
          this.zhuzhuangtu(null);
        }
      })

    },
    zhuzhuangtu(datm) {
      //参数拼接
      var datas = []
      var xData=[]
      if (datm==null){
        datas.push(0,0);
        xData.push("男","女");
      }else {
        for (let i = 0; i < datm.length; i++) {
          var item = {
            value: datm[i].count,
          };
          var items = {
            value: datm[i].gender,
          };
          datas.push(item);
          xData.push(items);
        }
      }



      // 基本柱状图
      const option = {
        xAxis: {
          data: xData
        },
        yAxis: {},
        series: [
          {
            type: "bar", //形状为柱状图
            data: datas
          }
        ]
      };
      const myChart = echarts.init(document.getElementById("mychart"));
      myChart.setOption(option);
      //随着屏幕大小调节图表
      window.addEventListener("resize", () => {
        myChart.resize();
      });
    }
  }
};
</script>


在index.js写跳转页面

在这里插入图片描述

在member.js写后端接口

在这里插入图片描述

如果echarts不能使用,需要引入,这里就不写了,搜一下vue引入echarts就OK

下一篇讲一下若依点击菜单进入饼状图和柱状图

评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

拧螺丝的舒克

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

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

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

打赏作者

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

抵扣说明:

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

余额充值