Vue中动态渲染echarts数据

15 篇文章 0 订阅
1 篇文章 0 订阅

1、安装指定版本echarts

npm install echarts@5.3.1 --save

2、main.js中全局引入

import * as echarts from "echarts"
window.echarts = echarts;

3、vue页面中引用

 <div id="main" class="main_container"></div>

4、引入数据接口

import { bloodPressureList } from '../../api/healthMonitor/index'

5、data中存入echarts假数据

data() {
    return {
        //echarts数据
        option:{
         title: {
            text: '数据监测'
        },
        tooltip: {
            trigger: 'axis'
        },
        legend: {
            data: ['高数', '低数', '平数']
        },
        grid: {
            left: '3%',
            right: '4%',
            bottom: '3%',
            containLabel: false
        },
        toolbox: {
            feature: {
            saveAsImage: {}
            }
        },
        xAxis: {
            type: 'category',
            data: ['周一', '周二', '周三', '周四', '周五', '周六', '周日']
        },
        yAxis: {
            type: 'value'
        },
        series: [
            {
            data: [100, 120, 100, 120, 90, 80, 110],
            type: 'line',
            smooth: true,
            name: '高数',
            },
            {
            data: [75, 76, 59, 59, 60, 66, 69],
            type: 'line',
            smooth: true,
            name: '低数',
            },
            {
            data: [60, 60, 60,60, 60, 60,60],
            type: 'line',
            smooth: true,
            name: '平数',
            }
          ]
      }
    }
  },

6、在method中调用数据接口方法

initCharts() {
       //获取数据
       bloodPressureList().then(res => {
          //将json对象的所有数据组成一个数组
          var highPressureArr = [];
          res.data.sbpData.map(val => {
              highPressureArr.push(val);
          });
          var lowPressureArr = [];
          res.data.dbpData.map(val => {
              lowPressureArr.push(val);
          });
          //将json对象中的所有数据组成一个数组
          var monitoringTimeArr=[]
          res.data.date.map(val => {
              monitoringTimeArr.push(val);
          });
          setTimeout(()=>{ 
              myChart.setOption({
                  xAxis: {
                      data: monitoringTimeArr
                  },
                  series: [
                    {
                        data: highPressureArr
                    },
                    {
                        data: lowPressureArr
                    }
                  ]
              })
          }, 300 )
      })
      // 基于准备好的dom,初始化echarts实例
      var myChart = this.$echarts.init(document.getElementById('main'));
      // 绘制基本图表
      myChart.setOption(this.option);
     },

7、在mounted方法中调用渲染数据方法

mounted() {
    this.initCharts()
  },

8、处理echarts宽高

#main{
    margin-top: 15px;
    width: 80%;
    height: 60vh;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

时间的情敌

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

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

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

打赏作者

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

抵扣说明:

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

余额充值