Vue + Element-UI —— 项目实战(五)

系列文章目录

Vue + Element-UI —— 项目实战(零)(项目概述)

Vue + Element-UI —— 项目实战(一)

Vue + Element-UI —— 项目实战(二)

Vue + Element-UI —— 项目实战(三)

Vue + Element-UI —— 项目实战(四)



五、项目实战五

Ⅰ、Echarts 的使用

1. 安装与配置
  1. 安装 Echarts (此处安装的是固定版本 5.1.2)
	npm i echarts@5.1.2
  1. 在 ./home/index.vue 引入 echarts
	import Echart from "../../src/components/ECharts.vue";
	import * as echarts from 'echarts'
  1. 这是之前请求成功后 data 中的数据

在这里插入图片描述

2. 折线图
  1. 使用 el-card 用来显示折线图的卡片块
	<el-card shadow="hover" style="height: 280px">
      <!-- ref打标识,用于获取当前的dom节点 -->
      <div style="height: 280px" ref="echarts"></div>
    </el-card>
  1. 在 mounted 钩子中给折线图进行相关数据的配置
	mounted() {
    
    
      getData().then((res) => {
    
    
        // 将res下的code和data解构 data是数组List中的数据
        const {
    
     code, data } = res;
        // 正常接口返回的时候
        if (code === 20000) {
    
    
          //获取home.js中定义好的tableData数据
          this.tableData = data.tableData;
          const order = data.orderData; //获取数据
          const xData = order.date; //获取日期
          const keyArray = Object.keys(order.data[0]); //接收数组的第一项
          // 组装series数据
          const series = [];
          // 遍历key值
          keyArray.forEach((key) => {
    
    
            // 往series数组中添加元素
            series.push({
    
    
              name: key, //图例
              data: order.data.map((item) => item[key]), //对应图例的数据
              type: "line", //折线图
            });
          });
          // 组装option
          const option = {
    
    
            xAxis: {
    
    
              data: xData,  //接受x坐标的值
            },
            yAxis: {
    
    },  //y轴
            // 图例(小标志)
            legend: {
    
    
              data: keyArray,
            },
            series,  //组装好的数据
          };
          // 初始化echarts
          const E = echarts.init(this.$refs.echarts);
          //绘图
          E.setOption(option);
       }
	}

在这里插入图片描述

3. 柱状图
  1. 使用 el-card 用来显示柱状图的卡片块
	<el-card shadow="hover" style="height: 260px">
      <!-- ref打标识,用于获取当前的dom节点 -->
      <div style="height: 240px" ref="useEcharts"></div>
    </el-card>
  1. 在 if 条件中插入对柱状图的配置
	// 柱状图
    const userOption = {
    
    
      legend: {
    
    
        // 图例文字颜色
        textStyle: {
    
    
          color: "#333",
        },
      },
      grid: {
    
    
        left: "20%",
      },
      // 提示框
      tooltip: {
    
    
        trigger: "axis",
      },
      xAxis: {
    
    
        type: "category", // 类目轴
        data: data.userData.map((item) => item.date),
        axisLine: {
    
    
          lineStyle: {
    
    
            color: "#17b3a3",
          },
        },
        axisLabel: {
    
    
          interval: 0,
          color: "#333",
        },
      },
      yAxis: [
        {
    
    
          type: "value",
          axisLine: {
    
    
            lineStyle: {
    
    
              color: "#17b3a3",
            },
          },
        },
      ],
      color: ["#2ec7c9", "#b6a2de"],
      series: [
        {
    
    
          name: "新增用户",
          data: data.userData.map((item) => item.new),
          type: "bar", // 柱状图
        },
        {
    
    
          name: "活跃用户",
          data: data.userData.map((item) => item.active),
          type: "bar",
        },
      ],
    };
    // 初始化Echarts
    const U = echarts.init(this.$refs.useEcharts);
    // 绘图
    U.setOption(userOption); 

在这里插入图片描述

4. 饼图
  1. 使用 el-card 用来显示饼图的卡片块
	<!-- 饼状图 -->
    <el-card shadow="hover" style="height: 260px">
      <!-- ref打标识,用于获取当前的dom节点 -->
      <div style="height: 240px" ref="videoEcharts"></div>
    </el-card>
  1. 在 if 条件中插入对饼状图的配置
	// 饼图
    const videoOption = {
    
    
      tooltip: {
    
    
        trigger: "item",
      },
      color: [
        "#0f78f4",
        "#dd536b",
        "#9462e5",
        "#a6a6a6",
        "#e1bb22",
        "#39c362",
        "#3ed1cf",
      ],
      series: [
        {
    
    
          data: data.videoData,
          type: "pie",
        },
      ],
    };
    // 初始化Echarts
    const V = echarts.init(this.$refs.videoEcharts);
    V.setOption(videoOption); //绘图

在这里插入图片描述

不积跬步无以至千里 不积小流无以成江海

点个关注不迷路(持续更新中…)

猜你喜欢

转载自blog.csdn.net/qq_45902692/article/details/125174085