echart webstock vue实现实时心率图

echart webstock vue实现实时心率图

echart webstock vue实现实时心率图

最近收到一个需求,需要做一个实时的心率图,于是就上网收集了一些资料,基于webstock 和echart 实现了实时的心率图,具体动态效果如下:
在这里插入图片描述
图片效果如下:
在这里插入图片描述
好了,废话不多少,那我们就开始如何实现该功能吧!

1.下载echart

 下载echart ,vue-cli 中下载echart 使用npm 命令行:npm install echarts --save

–save 的作用 自动把模块和版本号添加到package.json 的dependencies部分,然后在需要用到的views 页面中 import echarts from ‘echarts’,或者在mian.js 引入。
楼主这里由于封装了echart 组件,所以就在组件中引入了echart。如图:
在这里插入图片描述

2.封装webstock

由于是实时心率图,所以这个时候就需要使用webstock 来和后端保持实时的数据双通讯连接,具体也不多讲了,看图:
在这里插入图片描述

3.开始画心率图,请参考echart 官网

在第一步和第二部结束以后,基本的准备工作已经准备我完毕,接下来就是画心率图,
首先引入我们封装的echart 组件,在传入对应的options 参数,实现静态的心率图:
options 参数如下:
`在这里插入图片描述

  因为需要模仿心率图,所以x 轴事先其实已经有值了,使用循环语句,这样当折线图动起来会更像心率图。在created 中调用initTime 方法。

在这里插入图片描述

4.连接webstock 实现心率动起来

调用事先封装好的webstock方法,如图
在这里插入图片描述
url 中是连接后端的地址。received 中的逻辑处理请根据项目的实际需要进行修改。

同时为了实现当超过一定的数量滚动的效果,采用了echart 的 dataZoom,本项目中是一个页面200条数据,当超过以后,进行向左滚动,实现心率图的滚动效果 ,代码如下:
data(){
return {
numCount: 0,
count: 1,
}
}

 if (this.numCount > 200 * this.count + 1) {
              this.heartOptions.dataZoom[0].endValue = 200 + 200 * this.count
              this.heartOptions.dataZoom[0].startValue = 0 + 200 * this.count
              this.count++
            }

5.实现tooptips 自动跟随,代码如下

this.autoTime = setInterval(() => {
    // 自动显示轮播
    if (this.$refs.heartCharts) {
      this.$refs.heartCharts.dispatchAction({
        type: 'showTip', // 根据 tooltip 的配置项显示提示框。
        seriesIndex: 0,
        dataIndex: this.heartOptions.series.data.length - 1
      })
    }
  }, 100)

6. 最后实现y轴随数值内容动态分布

在这里插入图片描述

6.联系我:

如需项目demo,微信扫下面的二维码,注册成功,到下面的我的-联系客服 问我要代码
请添加图片描述

  • 12
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
一个使用Java实现实时推送消息和保存消息的案例是基于Spring Boot和WebSocket技术的在线聊天应用程序。 下面是一个简单的示例代码,演示如何使用Java和Spring Boot创建实时聊天应用程序: 1. 创建WebSocket配置类 ```java @Configuration @EnableWebSocketMessageBroker public class WebSocketConfig implements WebSocketMessageBrokerConfigurer { @Override public void configureMessageBroker(MessageBrokerRegistry config) { config.enableSimpleBroker("/topic"); config.setApplicationDestinationPrefixes("/app"); } @Override public void registerStompEndpoints(StompEndpointRegistry registry) { registry.addEndpoint("/chat").withSockJS(); } } ``` 2. 创建控制器类 ```java @Controller public class ChatController { @MessageMapping("/chat.sendMessage") @SendTo("/topic/public") public ChatMessage sendMessage(@Payload ChatMessage chatMessage) { return chatMessage; } } ``` 3. 创建消息实体类 ```java public class ChatMessage { private MessageType type; private String content; private String sender; private String time; // getters and setters public enum MessageType { CHAT, JOIN, LEAVE } } ``` 4. 创建前端页面 ```html <!DOCTYPE html> <html> <head> <title>WebSocket Chat</title> <script src="/webjars/jquery/jquery.min.js"></script> <script src="/webjars/sockjs-client/sockjs.min.js"></script> <script src="/webjars/stomp-websocket/stomp.min.js"></script> </head> <body> <div id="chat"> <div id="messages"></div> <form id="messageForm"> <input type="text" id="messageInput" /> <button type="submit">Send</button> </form> </div> <script type="text/javascript"> var stompClient = null; function connect() { var socket = new SockJS('/chat'); stompClient = Stomp.over(socket); stompClient.connect({}, function(frame) { console.log('Connected: ' + frame); stompClient.subscribe('/topic/public', function(message) { showMessage(JSON.parse(message.body)); }); }); } function showMessage(message) { var html = '<div class="message">'; html += '<span class="sender">' + message.sender + '</span>'; html += '<span class="time">' + message.time + '</span>'; html += '<p class="content">' + message.content + '</p>'; html += '</div>'; $('#messages').append(html); } $(function() { connect(); $('#messageForm').on('submit', function(event) { event.preventDefault(); var message = { type: 'CHAT', content: $('#messageInput').val(), sender: 'User', time: new Date().toISOString() }; stompClient.send("/app/chat.sendMessage", {}, JSON.stringify(message)); $('#messageInput').val(''); }); }); </script> </body> </html> ``` 通过上述代码,我们可以实现基于Java和Spring Boot的在线聊天应用程序。用户可以在前端页面上发送消息,并立即在所有其他用户的页面上看到新消息。所有消息都将保存在后端数据库中,以便用户可以随时查看消息历史记录。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

搞不动的前端

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

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

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

打赏作者

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

抵扣说明:

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

余额充值