十九、数据统计

(1)通过路由加载数据列表

(2)安装echarts,并渲染Demo图表

点击“查看详情”,快速入门

1. 导入echarts

2. 为 ECharts 准备一个具备高宽的 DOM 容器。

3. 基于准备好的dom,初始化echarts实例

4. 指定图表的配置项和数据

5. 使用刚指定的配置项和数据显示图表

6. 报错:导入echarts时用:import echarts from 'echarts' 出现 “Cannot read property ‘init’ of undefined” 报错,

   解决: 改成 import * as echarts from 'echarts' 后解决。

  原因:包导出的格式问题,如果导出没有使用export default 的话,使用import echarts from 'echarts'是不行的,所以需要使用Import * as 来替代

(也可能是版本过高的原因,卸载后安装低版本npm install echarts@4.8.0 --save)

7. 效果图

(3)获取折线图数据,并渲染图表

1. 修改折线图的宽度

2. 请求折线图数据

3. 将合并数据options与获取的res.data合并,实现鼠标滑动显示数据的效果

4. 效果图:

Report.vue

<template>
  <div>
      <!-- 面包屑 导航区 -->
        <el-breadcrumb separator="/">
        <el-breadcrumb-item :to="{ path: '/home' }">首页</el-breadcrumb-item>
        <el-breadcrumb-item>数据统计</el-breadcrumb-item>
        <el-breadcrumb-item>数据报表</el-breadcrumb-item>
        </el-breadcrumb>

        <!-- 卡片视图区 -->
        <el-card>
            <!-- 2. 为 ECharts 准备一个具备高宽的 DOM 容器 -->
            <div id="main" style="width: 750px;height:400px;"></div>
        </el-card>
  </div>
</template>
<script>
// 1. 导入echarts
import * as echarts from 'echarts'
// 2. 导入lodash,使用其merge方法实现数据合并
import _ from 'lodash'

export default {
  data () {
    return {
      // 需要合并的数据(以实现鼠标滑动,显示数据的效果)
      options: {
        title: {
          text: '用户来源'
        },
        tooltip: {
          trigger: 'axis',
          axisPointer: {
            type: 'cross',
            label: {
              backgroundColor: '#E9EEF3'
            }
          }
        },
        grid: {
          left: '3%',
          right: '4%',
          bottom: '3%',
          containLabel: true
        },
        xAxis: [
          {
            boundaryGap: false
          }
        ],
        yAxis: [
          {
            type: 'value'
          }
        ]
      }
    }
  },
  created () {

  },
  // 在dom创建完毕后,才会执行
  async mounted () {
    // 3. 基于准备好的dom,初始化echarts实例
    var myChart = echarts.init(document.getElementById('main'))

    // 请求折线图数据
    const { data: res } = await this.$http.get('reports/type/1')
    if (res.meta.status !== 200) {
      this.$message.error('获取折线图数据失败!')
    }
    // 4.准备图表的配置项和数据
    const result = _.merge(res.data, this.options)
    // 5.使用刚指定的配置项和数据显示图表。
    myChart.setOption(result)
  }
}
</script>
<style lang="less" scoped>
</style>

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值