React+Echarts 实时数据监控刷新

import echarts from 'echarts/lib/echarts';
// 引入柱状图
import 'echarts/lib/chart/line';
// 引入提示框和标题组件
import 'echarts/lib/component/tooltip';
import 'echarts/lib/component/title';
// 使用样式
import 'echarts/theme/macarons'
import axios from 'axios'
class edg1 extends React.Component {

  componentDidMount() {
    var container = document.getElementById('charts');
    // 初始化echarts对象
    var myContainer = echarts.init(container);
    var base = + new Date();
    var oneDay = 1000;
    var date = [];

    var data = [100];
    var data1 = [10];
    var data2 = [30];
    var now = new Date(base);
    var day = 30;
    var a = 10;
    var b = 100;
    var c = 10;
    function addData(shift) {
      now = [now.getFullYear(), now.getMonth() + 1, now.getDate(), now.getHours()].join('/') + ":" + now.getMinutes() + ":" + now.getSeconds();
      console.log(now)
      date.push(now);
      a = a + 1;
      b = b - 1;
      data.push(b);
      data1.push(a);
      axios.get('/asd/getJiankongData',)
        .then(function (response) {
          console.log(response.data.height);
          c=response.data.height;
        });
      data2.push(c);
      if (shift) {
        date.shift();
        data.shift();
        data1.shift();
        data2.shift();
      }
      now = new Date();

    }

    for (var i = 0; i < day; i++) {
      addData();
    }
    //设置图标配置项
    myContainer.setOption({
      legend: {
        data: ['出油油位', '入油油位', '管道油位']
      },
      tooltip: {
        trigger: 'axis'
      },
      grid: {
        left: '0%',
        right: '5%',
        bottom: '2%',
        containLabel: true
      },
      title: {
        text: '油罐油位监控'
      },
      xAxis: {
        type: "category",
        boundaryGap: false,
        data: date,
        name: '时间',
        axisLabel: {
          interval: 0,
          rotate: 90
        }
      },
      yAxis: {
        boundaryGap: [0, '10%'],
        type: 'value',
        name:'油位/m'
      },
      series: [{
        name: '出油油位',
        type: 'line',
        smooth: true, //数据光滑过度
        symbol: 'none', //下一个数据点

        areaStyle: {
          normal: {
            color: 'pink'
          }
        },
        data: data
      },
      {
        name: '入油油位',
        type: 'line',
        smooth: true, //数据光滑过度
        symbol: 'none', //下一个数据点

        areaStyle: {
          normal: {
            color: 'pink'
          }
        },
        data: data1
      },
      {
        name: '管道油位',
        type: 'line',
        smooth: true, //数据光滑过度
        symbol: 'none', //下一个数据点

        areaStyle: {
          normal: {
            color: 'pink'
          }
        },
        data: data2
      }
      ]
    })

    setInterval(function () {
      addData(true);
      myContainer.setOption({
        xAxis: {
          data: date
        },
        series: [{
          name: '出油油位',
          data: data
        },
        {
          name: '入油油位',
          data: data1
        },
        {
          name: '管道油位',
          data: data2
        }]
      });
    }, 1000)

    // 绘制图表

  }
  render() {
    return (
      <div id="charts" style={{ width: '80%', height: '80%' }}></div>
    )
  }
}
export default edg1
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值