echarts在vue中使用,并从后台获取数据(后台数组对象的相同属性合并为数组)

后台数据

[
  {  
    'time': '01:00',
    'power': '0'                        
  },
  {  
    'time': '02:00',
    'power': '0'                        
  },
  {  
    'time': '03:00',
    'power': '0'                        
  },
  {  
    'time': '04:00',
    'power': '0'                        
  },
  {  
    'time': '05:00',
    'power': '0'                        
  },
  {  
    'time': '06:00',
    'power': '4'                        
  }
]

目标数据

{
  'time': ['01:00','02:00','03:00','04:00','05:00','06:00'],
  'power': [2,7,8,3,13,18]
}

实现代码

<template>
    <div id="main"></div>
</template>
<script>
import { getList } from '@/api/product'
var echarts = require('echarts');

export default {
  data() {
    return {
      timeData: [],
      xData: []
    }
  },
  mounted() {
     getList().then(res => {
        var itemsData = res.data.items
        var timeStr = itemsData.map(function(obj,index){
          return obj.time;
        }).join(",");
        this.timeData = timeStr.split(",")   //['01:00','02:00','03:00','04:00','05:00','06:00']
        var powerStr = itemsData.map(function(obj,index){
          return obj.power;
        }).join(",");
        this.xData = powerStr.split(",").map(Number)   //[2,7,8,3,13,18]
        let seriesList = [{
          name: '销量',
          type: 'line',
          data: [],
          smooth: true
        }]
        seriesList[0].data = this.xData
        this.drawLine(seriesList,this.timeData);
     })
  }
  methods: {
    drawLine(seriesList,xData){
      // 基于准备好的dom,初始化echarts实例
      var myChart = echarts.init(document.getElementById('main'));
      // 绘制图表
      myChart.setOption({
          title: {
            left: 'center',
            text: '日销量曲线'
          },
          backgroundColor: '#F5F7FA',
          tooltip: {},
          color: '#1488F5',
          legend:{
            data:['销量'],
            bottom: 10
          },
          xAxis: {
              data: xData
          },
          yAxis: {},
          series: seriesList
      })
    }
  }
}
</script>
<style scoped>
  #main{
    width: 80%;
    height: 400px;
    /* border: 1px solid red; */
    margin: 0 auto;
    margin-top: 40px;
  }
</style>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值