ソースを参照

websocket连接,站点及首页数据请求对接

Ming 4 年 前
コミット
a2fffedc1b

+ 4 - 4
src/assets/styles/index.css

@@ -196,7 +196,7 @@ header .showTime {
 .filterSec option {
     border: 1px solid #2399ed;
     border-radius: 7px;
-    width: 2.375rem;
+    width: 3.375rem;
     font-size: 0.2rem;
     height: 0.45rem;
     color: #2399ed;
@@ -354,15 +354,15 @@ header .showTime {
     height: 10rem;
 }
 
-.eleFire-data .column {
+.eleFire-data .column2 {
     flex: 1
 }
 
-.eleFire-data .column .panel {
+.eleFire-data .column2 .panel {
     height: calc(50% - .325rem);
     /* border: 1px solid pink; */
     /* margin-bottom: .55rem; */
-    margin: .3rem .5rem;
+    margin: .25rem .5rem;
     display: flex;
     align-items: center;
     justify-content: center;

+ 81 - 12
src/components/topHeader.vue

@@ -6,9 +6,15 @@
     <div class="filterSec">
       <span>站点:</span>
       <select name="" id="">
-        <option value="">请选择</option>
-        <option value="">站点一</option>
-        <option value="">站点一</option>
+        <option
+          :value="item.StationID"
+          v-for="item in siteList"
+          :key="item.StationID"
+        >
+          {{ item.StationName }}
+        </option>
+        <!-- <option value="">站点一</option>
+        <option value="">站点一</option> -->
       </select>
     </div>
 
@@ -34,24 +40,87 @@ export default {
   data() {
     return {
       title: "智慧安防数据分析看板",
+
+      siteList: [],
+      homeData: [],
+      flag: true,
+      // websocket,
     };
   },
-mounted(){
-  this.navs()
-},
-  computed: {
-    
+  mounted() {
+    // this.navs();
+  },
+  computed: {},
+
+  created() {
+    this.initWebSocket();
+  },
+  onload() {},
+  destroyed() {
+    this.websock.close(); //离开路由之后断开websocket连接
   },
+
   methods: {
     goRecordTime() {
       this.$router.push("/recordTime");
     },
-    navs() {
-      switch (this.$route.name) {
-        case "recordTime":
-          return [(this.title = '电子巡检记录列表')];
+    initWebSocket() {
+      //初始化weosocket
+      const wsuri = "ws://172.16.120.210:6001";
+      this.websock = new WebSocket(wsuri);
+      this.websock.onmessage = this.websocketonmessage;
+      this.websock.onopen = this.websocketonopen;
+      this.websock.onerror = this.websocketonerror;
+      this.websock.onclose = this.websocketclose;
+    },
+    websocketonopen() {
+      //连接建立之后执行send方法发送数据
+      let actions = { CMD: "getStationInfo" };
+      this.websocketsend(JSON.stringify(actions));
+    },
+    websocketonerror() {
+      //连接建立失败重连
+      this.initWebSocket();
+    },
+    websocketonmessage(e) {
+      //数据接收
+      if (e.data.search("{") != -1) {
+        const redata = JSON.parse(e.data);
+        console.log(redata);
+
+        // 初始化获取站点下拉数据
+        if (redata.CMD == "getStationInfo") {
+          this.siteList = redata.RESULT;
+          // console.log(this.siteList)
+        }
+
+        // 如果有站点选项,发送请求获取站点信息页数据
+        if (this.flag) {
+          if (this.siteList[0].StationID) {
+            this.websocketsend(
+              JSON.stringify({
+                CMD: "getStationDetail",
+                StationID: "7c9c30af-6132-43d1-98fb-020395183094",
+              })
+            );
+            this.flag = false;
+          }
+        }
+        if (redata.CMD == "getStationDetail") {
+          this.homeData = redata.RESULT.LIST;
+          console.log(this.homeData);
+        }
       }
     },
+    websocketsend(Data) {
+      //数据发送
+      this.websock.send(Data);
+    },
+
+    websocketclose(e) {
+      //关闭
+      console.log("断开连接", e);
+    },
   },
 };
 </script>

+ 3 - 3
src/pages/eleFireData/eleFireData.vue

@@ -1,7 +1,7 @@
 <template>
   <div>
     <top-header></top-header>
-    <div class="main-box">
+    <div class="mainbox">
       <div class="gas-container">
       <return-back></return-back>
       <h3>电气火灾监控实时信息</h3>
@@ -14,7 +14,7 @@
         </ul>
 
         <div class="tabBox eleFire-data">
-         <div class="column">
+         <div class="column2">
 
            <div class="panel sec1">
              <div class="inner-box">
@@ -36,7 +36,7 @@
 
            </div>
          </div>
-         <div class="column">
+         <div class="column2">
            <div class="panel">  <ele-current-chart></ele-current-chart></div>
            <div class="panel">
              <cable-tem-chart></cable-tem-chart>

+ 14 - 14
src/pages/gasCard/components/lineChart.vue

@@ -122,20 +122,20 @@ export default {
             data: yearData[0].data[0],
             symbolSize: 10, //拐点圆的大小
           },
-          {
-            name: "位置bbb",
-            type: "line",
-            smooth: false, // 曲线是否平滑显示
-            data: yearData[0].data[1],
-            symbolSize: 10, //拐点圆的大小
-          },
-          {
-            name: "位置CCC",
-            type: "line",
-            smooth: false, // 曲线是否平滑显示
-            data: yearData[0].data[2],
-            symbolSize: 10, //拐点圆的大小
-          },
+          // {
+          //   name: "位置bbb",
+          //   type: "line",
+          //   smooth: false, // 曲线是否平滑显示
+          //   data: yearData[0].data[1],
+          //   symbolSize: 10, //拐点圆的大小
+          // },
+          // {
+          //   name: "位置CCC",
+          //   type: "line",
+          //   smooth: false, // 曲线是否平滑显示
+          //   data: yearData[0].data[2],
+          //   symbolSize: 10, //拐点圆的大小
+          // },
         ],
       });
     },

+ 2 - 2
src/pages/gasCard/gasCard.vue

@@ -34,7 +34,7 @@
                 <td>0.00%LEL</td>
                 <td>正常</td>
               </tr>
-              <tr>
+              <!-- <tr>
                 <td>一氧化碳</td>
                 <td>位置CCCCC</td>
                 <td>0.00%LEL</td>
@@ -45,7 +45,7 @@
                 <td>位置AAAAAAA</td>
                 <td>0.00%LEL</td>
                 <td>正常</td>
-              </tr>
+              </tr> -->
             </table>
           </div>
         </div>

+ 22 - 0
vue.config.js

@@ -0,0 +1,22 @@
+// module.exports = {
+//     //configureWebpack: {},
+
+
+//     devServer: { // 所有 webpack-dev-server 的选项都支持
+//         host: '172.16.120.84', //target host
+//         port: 8080, // 开发服务器端口
+//         open: true, // 自动打开浏览器
+//         hot: true, // 是否热更新
+//         overlay: { // 浏览器 overlay 同时显示警告和错误(弹窗报错)
+//             warnings: true,
+//             errors: true
+//         },
+//         // proxy: proxy.table || 'localhost',
+//         // historyApiFallback: {
+//         //     index: '/' //与output的publicPath
+//         // },
+//     },
+
+
+
+// }