angular echarts数据预加载模拟websocket加载数据实现3分钟重绘特效

9 篇文章 0 订阅
7 篇文章 0 订阅

angular echarts数据预加载模拟websocket加载数据实现3分钟重绘特效

export class DemoComponent implements OnInit {
  data = [];
  chartOption: any;
  chart: any;![在这里插入图片描述](https://img-blog.csdnimg.cn/20210331165421430.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80Mzk3MDE2Mg==,size_16,color_FFFFFF,t_70#pic_center)

  now = new Date();
  constructor(private datePipe: DatePipe) {}

  ngOnInit() {
    this.data = this.getInitData();
    this.getData();
  }
  getData() {
    let index = 1;
    setInterval(() => {
      const lastTime = this.datePipe.transform(this.data[this.data.length - 1][0], 'HH:mm:ss');
      const lastHour = -(-(lastTime.split(':')[0]));
      const lastMin = -(-(lastTime.split(':')[1]));
      const lastYear = this.now.getFullYear();
      const lastMonth = this.now.getMonth();
      const lastDay = this.now.getDate();
      if (new Date().getTime() >= new Date(lastYear, lastMonth, lastDay, lastHour, lastMin, 0).getTime()) {//如果最新数据超过当前数据源最后一条数据的时间,则重绘图表
        this.data = [];
        this.chart.clear();
        this.data = this.getInitData();
        index = 1;
        return;
      }
      this.data.splice(index, 0, [new Date(), (Math.random() * 100).toFixed(2)]);
        this.refresh();
      index++;
    }, 1000);
  }
  getInitData() {//获取初始状态值,预加载2分钟后
    return [
      [new Date(new Date().setSeconds(0)), null],
      [new Date(new Date(new Date(new Date().setSeconds(0))).getTime() + 60 * 1000), null],
      [new Date(new Date(new Date(new Date().setSeconds(0))).getTime() + 60 * 1000 * 2), null]
    ];
  }
  refresh() {//刷新图标
    this.chartOption = {
      xAxis: {
        type: 'time',
        boundaryGap: false,
        axisLabel: {
          color: '#fff'
        },
        formatter: (param) => {
          console.log(param)
          // return this.
        }
      },
      yAxis: {
        type: 'value',
        color: '#fff'
      },
      series: [{
        type: 'line',
        lineStyle: {
          color: '#5470C6',
          width: 1
        },
        data: this.data
      }]
    };
  }
  onChartInit(eve) {
    this.chart = eve;
  }
}

```![在这里插入图片描述](https://img-blog.csdnimg.cn/2021033116572658.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80Mzk3MDE2Mg==,size_16,color_FFFFFF,t_70#pic_center)数据实时加载,当数据刷新到16:55时,echarts重绘X轴时间刷新重新计算,效果比较简陋,如有需要自己稍稍修饰一下,另外我不知道怎么上传视频效果所以就只能这样了,希望可以帮到大家


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值