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

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

项目演示

项目教学视频链接

https://www.bilibili.com/video/BV1dY411T71E?t=1.2

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. 591fc62576bb4db18aee62512cc8b147.png
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);
       }
  }

4610430a6637489fa07d624d66e02a96.png

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); 


4d70a6ee0374405687c90684b5d8eb66.png

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); //绘图

31822e54a6cd47539a9954e5fe6759c8.png

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

相关文章
|
5天前
|
JavaScript 前端开发
如何优雅的只在当前页面中覆盖ui库中组件的样式(vue的问题)
如何优雅的只在当前页面中覆盖ui库中组件的样式(vue的问题)
20 0
如何优雅的只在当前页面中覆盖ui库中组件的样式(vue的问题)
|
5天前
|
JavaScript 前端开发
vue element-ui分页插件 始终保持在页面底部样式
vue element-ui分页插件 始终保持在页面底部样式
38 0
|
5天前
|
JavaScript
Vue给Element UI的el-popconfirm绑定按钮事件
Vue给Element UI的el-popconfirm绑定按钮事件
|
5天前
|
JavaScript
vue element-ui中有关表格中的数据整条显示红色/绿色等等颜色的问题
vue element-ui中有关表格中的数据整条显示红色/绿色等等颜色的问题
31 1
|
5天前
|
JavaScript
vue中有关表格中的表格头中添加悬浮提示的ui问题
vue中有关表格中的表格头中添加悬浮提示的ui问题
20 1
|
5天前
|
资源调度 JavaScript
Vue + Element-ui组件上传图片报错问题解决方案
Vue + Element-ui组件上传图片报错问题解决方案
|
5天前
|
存储 JavaScript 前端开发
从入门到项目实战 - Vue 列表渲染
从入门到项目实战 - Vue 列表渲染
58 0
|
5天前
|
JavaScript
VUE里修改element-ui的显示层次与上下间隔
VUE里修改element-ui的显示层次与上下间隔
14 1
|
5天前
|
JavaScript 前端开发 开发者
前端框架(Vue.js&&vue-cli项目框架&&element-ui使用)
前端框架(Vue.js&&vue-cli项目框架&&element-ui使用)
|
5天前
|
JavaScript
vue element ui 打开弹窗出现黑框问题
vue element ui 打开弹窗出现黑框问题
22 1