vue2.0添加echarts 柱状图

<template>

  <el-row class="home" :gutter="20">
    <!--    左边布局-->
    <el-col :span="8" style="margin-top: 20px">

      <!--      管理员-->
      <el-card shadow="hover">
        <div class="user">
          <img :src="userImg" alt="">
          <div class="userinfo">
            <p class="name">Admin</p>
            <p class="access">超级管理员</p>
          </div>
        </div>
        <div class="login-info">
          <p>上次登录时间:<span>2021-12-26</span></p>
          <p>上次登录地点:<span>武汉</span></p>
        </div>
      </el-card>
      <!--      各种渠道-->
      <el-card style="max-height: 470px;margin-top: 20px">
        <el-table :data="tableData">
          <el-table-column show-overflow-tooltip v-for="(value,key) in tableLabel" :key="key" :prop="key"
                           :label="value">
          </el-table-column>
        </el-table>
      </el-card>
    </el-col>
    <!--      右边布局-->
    <el-col :span="16" style="margin-top: 20px">
      <!--    今日支付订单等等数据-->
      <div class="num">
        <el-card shadow="hover"
                 v-for="item in countData"
                 :key="item.name"
                 :body-style="{ display :'flex',padding:0 }"
        >
          <i class="icon"
             :class="`el-icon-${item.icon}`"
             :style="{ background:item.color }"
          ></i>
          <div class="detail">
            <p class="num">¥{{ item.value }}</p>
            <p class="txt">{{ item.name }}</p>
          </div>
        </el-card>
      </div>
      <!--    折线图-->
      <el-card shadow="hover" style="height: 280px">
        <div ref="echarts" style="height: 280px">

        </div>
      </el-card>
      <div class="graph">
        <!--        饼状图-->
        <el-card shadow="hover" style="height: 260px">
          <div style="height: 240px" ref="userEcharts"></div>
        </el-card>
        <el-card shadow="hover" style="height: 260px">
        </el-card>
      </div>
    </el-col>
  </el-row>
</template>

<script>

import {getHome} from '../../api/data'
import * as echarts from 'echarts'

export default {
  name: "Home",
  data() {
    return {
      userImg: require('../../assets/image/user.png'),
      tableData: [],
      tableLabel: {},
      countData: [
        {'name': "今日支付订单", 'value': 1234, icon: "success", color: "#2ec7c9"},
        {'name': "今日收藏订单", 'value': 1234, icon: "success", color: "#2ec7c9"},
        {'name': "今日未支付订单", 'value': 1234, icon: "success", color: "#2ec7c9"},
        {'name': "本月支付订单", 'value': 1234, icon: "success", color: "#2ec7c9"},
        {'name': "本月收藏订单", 'value': 1234, icon: "success", color: "#2ec7c9"},
        {'name': "本月未支付订单", 'value': 1234, icon: "success", color: "#2ec7c9"}
      ],
      echartsData: {
        //折线图
        order: {

          legend: {
            //图例文字颜色
            color: "#333",
          },
          grid: {
            left: "20%"
          },
          //提示框
          tooltip: {
            trigger: "axis",
          },
          xAxis: {
            type: "category",//类目轴
            data: [],
            axisLine: {
              lineStyle: {
                color: "#17b3a3"
              }
            },
            axisLabel: {
              interval: 0,
              color: "#333",
            }

          },
          yAxis: [
            {
              type: "value",
              axisLine: {
                lineStyle: {
                  color: "#17b3a3"
                }
              }
            }
          ],
          color: ['#2ec7c9', '#b6a2de', '#5ab1ef', '#ffb980', '#d87a80', '#8d98b3'],
          series: []
        },
        //用户图
        user: {
          legend: {
            //图例文字颜色
            textStyle: {
              color: "#333"
            },
          },
          grid: {
            left: "20%",
          },
          //提示框
          tooltip: {
            trigger: 'axis'
          },
          xAxis: {
            type: "category",//类目轴
            data: [],
            axisLine: {
              lineStyle: {
                color: "#17b3a3"
              }
            },
            axisLabel: {
              // interval: 0,
              color: "#333"
            }
          },
          yAxis: [
            {
              type: "value",
              axisLine: {
                lineStyle: {
                  color: "#17b3a3"
                }
              },
            }

          ],
          color: ['#2ec7c9', '#6ba2de'],
          series: []

        }
      }
    }
  },
  methods: {
    getTabData() {
      getHome().then((res) => {
        //表格数据
        this.tableData = res.data.tableData;
        this.tableLabel = res.data.tableLabel;
        //折线图数据
        const order = res.data.orderData;
        console.log(order)
        this.echartsData.order.xAxis.data = order.date;
        let keyArray = Object.keys(order.data[0]);
        keyArray.forEach((key) => {
          this.echartsData.order.series.push({
            name: key,
            data: order.data.map((item) => item[key]),
            type: 'line'
          })
        });

        const myEchartsOrder = echarts.init(this.$refs.echarts)
        myEchartsOrder.setOption(this.echartsData.order)
        //用户柱状图数据
        this.echartsData.user.xAxis.data = res.data.userData.map((item) => item.date)
        this.echartsData.user.series.push({
          "name": "新增用户",
          "data": res.data.userData.map((item) => item.new),
          //柱状图
          "type": 'bar',
        });

        this.echartsData.user.series.push({
          "name": "活跃用户",
          "data": res.data.userData.map((item) => item.active),
          //柱状图
          "type": 'bar',
        });
        const myEchartsUser = echarts.init(this.$refs.userEcharts)
        myEchartsUser.setOption(this.echartsData.user)

      });
    }
  },
  mounted() {
    this.getTabData();
  }
}
</script>

<style lang="scss" scoped>
@import "~@/assets/scss/home";
</style>

详细的讲解可以参考折线图。
vue2中使用echarts折线图_丿灬安之若死-CSDN博客

就换了数据而已非常的简单

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

安果移不动

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

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

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

打赏作者

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

抵扣说明:

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

余额充值