index.vue 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161
  1. <template>
  2. <div>
  3. <div class="title">驱动电机2</div>
  4. <ul class="flex-ul">
  5. <li>
  6. 电机功率:<span class="content">{{ data.dianjigonglü_after }}KW</span>
  7. </li>
  8. <li>
  9. 电压:<span class="content">{{ data.dianya_after }}V</span>
  10. </li>
  11. <li>
  12. 转速:<span class="content">{{ data.zhuansu_after }}r/min</span>
  13. </li>
  14. <li>
  15. 扭矩:<span class="content">{{ data.niuju_after }}Nm</span>
  16. </li>
  17. <li>
  18. 前/后轴温:<span class="content"
  19. >{{ data.qianzhouwen_after }}/{{ data.houzhouwen_after }}℃</span
  20. >
  21. </li>
  22. <li>
  23. 油压:<span class="content">{{ data.youya_after }} Pa</span>
  24. </li>
  25. <li>
  26. ABC相温度:<span class="content"
  27. >{{ data.axiangraozuwen_after }}/{{ data.bxiangraozuwen_after }}/{{
  28. data.cxiangraozuwen_after
  29. }}℃</span
  30. >
  31. </li>
  32. <li>
  33. 振动:<span class="content1">{{ data.zhendong_after }} mm</span>
  34. </li>
  35. </ul>
  36. </div>
  37. </template>
  38. <script>
  39. import { mapState } from "vuex";
  40. export default {
  41. data() {
  42. return {
  43. data: {
  44. dianjigonglü_after: "435",
  45. dianya_after: "220",
  46. zhuansu_after: "453",
  47. niuju_after: "34",
  48. qianzhouwen_after: "45",
  49. houzhouwen_after: "50",
  50. axiangraozuwen_after: "100",
  51. bxiangraozuwen_after: "120",
  52. cxiangraozuwen_after: "110",
  53. youya_after: "20",
  54. zhendong_after: "89",
  55. },
  56. };
  57. },
  58. // 这里的id为测点id
  59. mounted() {
  60. this.websocket = new WebSocket(
  61. `ws://${this.websocketIP}/hbase/ws/belt/261`
  62. );
  63. this.initWebSocket();
  64. },
  65. methods: {
  66. initWebSocket() {
  67. // 连接错误
  68. this.websocket.onerror = () => {
  69. console.log(
  70. "WebSocket连接发生错误 状态码:" + this.websocket.readyState
  71. );
  72. };
  73. // 连接成功
  74. this.websocket.onopen = () => {
  75. console.log(
  76. "WebSocket连接成功 状态码:" + this.websocket.readyState
  77. );
  78. };
  79. // 收到消息的回调
  80. this.websocket.onmessage = (event) => {
  81. if (JSON.parse(event.data).length) {
  82. this.changeState(JSON.parse(event.data));
  83. }
  84. };
  85. // 连接关闭的回调
  86. this.websocket.onclose = () => {
  87. console.log(
  88. "WebSocket连接关闭 状态码:" + this.websocket.readyState
  89. );
  90. };
  91. // 通过$once来监听定时器,在beforeDestroy钩子可以被清除。
  92. this.$once("hook:beforeDestroy", () => {
  93. this.websocket.close();
  94. console.log("关闭websocket连接");
  95. });
  96. },
  97. changeState(data) {
  98. this.data = data[0];
  99. console.log("数据展示为:", this.data);
  100. },
  101. close() {
  102. this.websocket.close();
  103. console.log("关闭websocket连接");
  104. },
  105. },
  106. computed: {
  107. ...mapState(["websocketIP"]),
  108. },
  109. };
  110. </script>
  111. <style scoped lang="less">
  112. .title {
  113. color: #4adefe;
  114. font-size: 20px;
  115. // font-weight: bolder;
  116. text-align: center;
  117. margin-top: 10px;
  118. }
  119. .flex-ul {
  120. display: flex;
  121. justify-content: space-around;
  122. align-items: center;
  123. list-style: none;
  124. flex-flow: row wrap;
  125. li:nth-child(odd) {
  126. flex: 0 0 69%;
  127. }
  128. li:nth-child(even) {
  129. flex: 0 0 31%;
  130. }
  131. .content {
  132. color: #f3db5c;
  133. right: 10px;
  134. position: absolute;
  135. }
  136. .content1 {
  137. color: #f3db5c;
  138. right: 10px;
  139. position: absolute;
  140. margin-right:-5px ;
  141. }
  142. li {
  143. // width: 100%;
  144. height: 100%;
  145. position: relative;
  146. // font-size: 17px;
  147. font-size: 16px;
  148. width: -webkit-fit-content;
  149. margin-top: -5px;
  150. margin-left: -50px;
  151. margin-right: -20px;
  152. line-height: 50px;
  153. // padding-left: 0px;
  154. color: #4adefe;
  155. }
  156. }
  157. </style>