Sfoglia il codice sorgente

传感器实时数据

王通 2 anni fa
parent
commit
083979ed46
2 ha cambiato i file con 557 aggiunte e 4 eliminazioni
  1. 7 0
      src/api/monitor.js
  2. 550 4
      src/views/monitor.vue

+ 7 - 0
src/api/monitor.js

@@ -51,4 +51,11 @@ export function getDlblistBydeptId(deptId) {
     method: 'get',
   })
 }
+//根据部门id查询部门及部门以下的数据,没有则默认查询所有
+export function getMonitorDeviceAndDataList(deptId) {
+  return request({
+    url: '/center-monitor/device/getMonitorDeviceAndDataList?deptId='+ deptId,
+    method: 'get',
+  })
+}
 

+ 550 - 4
src/views/monitor.vue

@@ -149,7 +149,8 @@
     getDlblistBydeptId,
     selectKeyAreaList,
     getRegionalFlag,
-    getCamerasByDeptId
+    getCamerasByDeptId,
+    getMonitorDeviceAndDataList
   } from '@/api/monitor'
   import {
     treeselect
@@ -201,7 +202,9 @@
       this.bottomMenuList() //获取底部公共组件消息和任务
       this.getTreeselect()
       this.deptId = Cookies.get("deptId")
-       this.getSensorListByDeptIds()
+       //this.getSensorListByDeptIds()
+      this.chuanSet()
+       this.getMonitorDeviceAndDataList()
        this.getDlblistBydeptIds()
       this.selectDeviceType(-1)
       // this.showTVWall();
@@ -395,7 +398,8 @@
             });
           })
         } else if (that.localMark == 'chuan') {
-          that.getSensorListByDeptId()
+          //that.getSensorListByDeptId()
+          that.getMonitorDeviceAndDataList()
         } else if (that.localMark == 'la') {
           that.getDlblistBydeptId()
         }
@@ -420,7 +424,8 @@
 
         this.localMark = 'chuan'
         this.placeholderMsg = "请输入传感器名称"
-        this.getSensorListByDeptId()
+        //this.getSensorListByDeptId()
+        this.getMonitorDeviceAndDataList()
 
       },
       // 大喇叭
@@ -483,6 +488,547 @@
             console.error(error);
           });
       },
+      chuanSet()
+      {
+        let that =this
+        setInterval(function() {
+
+          that.getMonitorDeviceAndDataList()
+
+        }, 300000)
+      },
+      //传感器2
+      getMonitorDeviceAndDataList()
+      {
+        let list=[]
+        let markersList = [];
+        getMonitorDeviceAndDataList(this.deptId).then((res)=> {
+          this.visuForestCloudCameraBOListSearch = []
+          list = res.data
+          this.sensorNum=list.length
+          list.forEach(item => {
+            let dat = {
+              cameraName: item.deviceName,
+              longitude: item.longitude,
+              latitude: item.latitude,
+            }
+            this.visuForestCloudCameraBOListSearch.push(dat)
+            let markersMap = {
+              lng: 124.59,
+              lat: 43.02,
+              icon: "marker",
+              bindPopupHtml: '<div class="map-tip">' +
+                "<span>" +
+                '                  <div class="d-l-con">' +
+                '                  <div class="d-l-l-text">' +
+                "                  <h4>名称:" +
+                (item.deviceName ? item.deviceName : "") +
+                "</h4>" +
+                "                </div>" +
+                "                </div>" +
+                "                </span>" +
+                "<span>" +
+                '                  <div class="d-l-con">' +
+                '                  <div class="d-l-l-text">' +
+                "                  <h4>厂家:" +
+                (item.brand ? item.brand : "") +
+                "</h4>" +
+                "                </div>" +
+                "                </div>" +
+                "                </span>" +
+                "<span>" +
+                '                  <div class="d-l-con">' +
+                '                  <div class="d-l-l-text">' +
+                "                  <h4>经纬度:" +
+                item.longitude + "," + item.latitude +
+                "</h4>" +
+                "                </div>" +
+                "                </div>" +
+                "                </span>" +
+                "</div>",
+
+              click: "",
+              parameter: "",
+              name: "",
+              keepBindPopup: false,
+              isAggregation: false,
+            };
+            if (item.deviceType == 1) { // 水质传感器
+              markersMap.icon = "sj-icon-map-centerdata_water_quality_sensor";
+              markersMap.bindPopupHtml += '<div class="map-tip">' +
+                "<span>" +
+                '                  <div class="d-l-con">' +
+                '                  <div class="d-l-l-text">' +
+                "                  <h4>水中PH:" +
+                (item.data.waterPh ? item.data.waterPh : "") +
+                "</h4>" +
+                "                </div>" +
+                "                </div>" +
+                "                </span>" +
+                "<span>" +
+                '                  <div class="d-l-con">' +
+                '                  <div class="d-l-l-text">' +
+                "                  <h4>生化需氧量:" +
+                (item.data.bod ? item.data.bod : "") +
+                "</h4>" +
+                "                </div>" +
+                "                </div>" +
+                "                </span>" +
+                "<span>" +
+                '                  <div class="d-l-con">' +
+                '                  <div class="d-l-l-text">' +
+                "                  <h4>信号强度:" +
+                (item.data.signalStrength ? item.data.signalStrength : "") +
+                "</h4>" +
+                "                </div>" +
+                "                </div>" +
+                "                </span>" +
+                "<span>" +
+                '                  <div class="d-l-con">' +
+                '                  <div class="d-l-l-text">' +
+                "                  <h4>化学需氧量:" +
+                (item.data.cod ? item.data.cod : "") +
+                "</h4>" +
+                "                </div>" +
+                "                </div>" +
+                "                </span>" +
+                "<span>" +
+                '                  <div class="d-l-con">' +
+                '                  <div class="d-l-l-text">' +
+                "                  <h4>氨氮:" +
+                (item.data.ammoniaNitrogen ? item.data.ammoniaNitrogen : "") +
+                "</h4>" +
+                "                </div>" +
+                "                </div>" +
+                "                </span>" +
+                "<span>" +
+                '                  <div class="d-l-con">' +
+                '                  <div class="d-l-l-text">' +
+                "                  <h4>水温:" +
+                (item.data.waterTemperature ? item.data.waterTemperature : "") +
+                "</h4>" +
+                "                </div>" +
+                "                </div>" +
+                "                </span>" +
+                "<span>" +
+                '                  <div class="d-l-con">' +
+                '                  <div class="d-l-l-text">' +
+                "                  <h4>版本号:" +
+                (item.data.version ? item.data.version : "") +
+                "</h4>" +
+                "                </div>" +
+                "                </div>" +
+                "                </span>" +
+                "<span>" +
+                '                  <div class="d-l-con">' +
+                '                  <div class="d-l-l-text">' +
+                "                  <h4>水质悬浮物:" +
+                (item.data.waterQualitySuspension ? item.data.waterQualitySuspension : "") +
+                "</h4>" +
+                "                </div>" +
+                "                </div>" +
+                "                </span>" +
+
+                "</div>";
+
+            } else if (item.deviceType == '002') { // 水尺
+              markersMap.icon = "sj-icon-map-centerdata_water_gauge";
+            } else if (item.deviceType == '003') { // 水文监测设备
+              markersMap.icon = "sj-icon-map-centerdata_hydrological_monitoring_equipment";
+            } else if (item.deviceType == 2) { // 土壤监测设备
+              markersMap.icon = "sj-icon-map-centerdata_soil_monitoring_equipment";
+              markersMap.bindPopupHtml += '<div class="map-tip">' +
+                "<span>" +
+                '                  <div class="d-l-con">' +
+                '                  <div class="d-l-l-text">' +
+                "                  <h4>钾含量:" +
+                (item.data.potassium ? item.data.potassium : "") +
+                "</h4>" +
+                "                </div>" +
+                "                </div>" +
+                "                </span>" +
+                "<span>" +
+                '                  <div class="d-l-con">' +
+                '                  <div class="d-l-l-text">' +
+                "                  <h4>导电率:" +
+                (item.data.conductivity ? item.data.conductivity : "") +
+                "</h4>" +
+                "                </div>" +
+                "                </div>" +
+                "                </span>" +
+                "<span>" +
+                '                  <div class="d-l-con">' +
+                '                  <div class="d-l-l-text">' +
+                "                  <h4>氮含量:" +
+                (item.data.nitrogen ? item.data.nitrogen : "") +
+                "</h4>" +
+                "                </div>" +
+                "                </div>" +
+                "                </span>" +
+                "<span>" +
+                '                  <div class="d-l-con">' +
+                '                  <div class="d-l-l-text">' +
+                "                  <h4>信号强度:" +
+                (item.data.signalStrength ? item.data.signalStrength : "") +
+                "</h4>" +
+                "                </div>" +
+                "                </div>" +
+                "                </span>" +
+                "<span>" +
+                '                  <div class="d-l-con">' +
+                '                  <div class="d-l-l-text">' +
+                "                  <h4>温度:" +
+                (item.data.temperature ? item.data.temperature : "") +
+                "</h4>" +
+                "                </div>" +
+                "                </div>" +
+                "                </span>" +
+                "<span>" +
+                '                  <div class="d-l-con">' +
+                '                  <div class="d-l-l-text">' +
+                "                  <h4>ph值:" +
+                (item.data.ph ? item.data.ph : "") +
+                "</h4>" +
+                "                </div>" +
+                "                </div>" +
+                "                </span>" +
+                "<span>" +
+                '                  <div class="d-l-con">' +
+                '                  <div class="d-l-l-text">' +
+                "                  <h4>湿度:" +
+                (item.data.humidity ? item.data.humidity : "") +
+                "</h4>" +
+                "                </div>" +
+                "                </div>" +
+                "                </span>" +
+                "<span>" +
+                '                  <div class="d-l-con">' +
+                '                  <div class="d-l-l-text">' +
+                "                  <h4>错误码:" +
+                (item.data.errorCode ? item.data.errorCode : "") +
+                "</h4>" +
+                "                </div>" +
+                "                </div>" +
+                "                </span>" +
+                "<span>" +
+                '                  <div class="d-l-con">' +
+                '                  <div class="d-l-l-text">' +
+                "                  <h4>版本号:" +
+                (item.data.version ? item.data.version : "") +
+                "</h4>" +
+                "                </div>" +
+                "                </div>" +
+                "                </span>" +
+                "<span>" +
+                '                  <div class="d-l-con">' +
+                '                  <div class="d-l-l-text">' +
+                "                  <h4>磷含量:" +
+                (item.data.phosphorus ? item.data.phosphorus : "") +
+                "</h4>" +
+                "                </div>" +
+                "                </div>" +
+                "                </span>" +
+                "<span>" +
+                '                  <div class="d-l-con">' +
+                '                  <div class="d-l-l-text">' +
+                "                  <h4>电压:" +
+                (item.data.voltage ? item.data.voltage : "") +
+                "</h4>" +
+                "                </div>" +
+                "                </div>" +
+                "                </span>" +
+                "</div>";
+            } else if (item.deviceType == 4) { // 病虫害监测站
+              markersMap.icon = "sj-icon-map-centerdata_pest_and_disease_monitoring_station";
+            } else if (item.deviceType == 5) { // 大气传感器
+              markersMap.icon = "sj-icon-map-centerdata_atmospheric_sensor";
+              markersMap.bindPopupHtml += '<div class="map-tip">' +
+                "<span>" +
+                '                  <div class="d-l-con">' +
+                '                  <div class="d-l-l-text">' +
+                "                  <h4>总挥发性有机物:" +
+                (item.data.tvoc ? item.data.tvoc : "") +
+                "</h4>" +
+                "                </div>" +
+                "                </div>" +
+                "                </span>" +
+                "<span>" +
+                '                  <div class="d-l-con">' +
+                '                  <div class="d-l-l-text">' +
+                "                  <h4>二氧化硫:" +
+                (item.data.sulfurDioxide ? item.data.sulfurDioxide : "") +
+                "</h4>" +
+                "                </div>" +
+                "                </div>" +
+                "                </span>" +
+                "<span>" +
+                '                  <div class="d-l-con">' +
+                '                  <div class="d-l-l-text">' +
+                "                  <h4>电池电压:" +
+                (item.data.batteryVoltage ? item.data.batteryVoltage : "") +
+                "</h4>" +
+                "                </div>" +
+                "                </div>" +
+                "                </span>" +
+                "<span>" +
+                '                  <div class="d-l-con">' +
+                '                  <div class="d-l-l-text">' +
+                "                  <h4>信号强度:" +
+                (item.data.signalStrength ? item.data.signalStrength : "") +
+                "</h4>" +
+                "                </div>" +
+                "                </div>" +
+                "                </span>" +
+                "<span>" +
+                '                  <div class="d-l-con">' +
+                '                  <div class="d-l-l-text">' +
+                "                  <h4>可吸入颗粒物:" +
+                (item.data.suctionParticle ? item.data.suctionParticle : "") +
+                "</h4>" +
+                "                </div>" +
+                "                </div>" +
+                "                </span>" +
+                "<span>" +
+                '                  <div class="d-l-con">' +
+                '                  <div class="d-l-l-text">' +
+                "                  <h4>一氧化碳:" +
+                (item.data.carbonMonoxide ? item.data.carbonMonoxide : "") +
+                "</h4>" +
+                "                </div>" +
+                "                </div>" +
+                "                </span>" +
+                "<span>" +
+                '                  <div class="d-l-con">' +
+                '                  <div class="d-l-l-text">' +
+                "                  <h4>臭氧:" +
+                (item.data.ozone ? item.data.ozone : "") +
+                "</h4>" +
+                "                </div>" +
+                "                </div>" +
+                "                </span>" +
+                "<span>" +
+                '                  <div class="d-l-con">' +
+                '                  <div class="d-l-l-text">' +
+                "                  <h4>总悬浮颗粒物:" +
+                (item.data.tsp ? item.data.tsp : "") +
+                "</h4>" +
+                "                </div>" +
+                "                </div>" +
+                "                </span>" +
+                "<span>" +
+                '                  <div class="d-l-con">' +
+                '                  <div class="d-l-l-text">' +
+                "                  <h4>温度:" +
+                (item.data.temperature ? item.data.temperature : "") +
+                "</h4>" +
+                "                </div>" +
+                "                </div>" +
+                "                </span>" +
+                "<span>" +
+                '                  <div class="d-l-con">' +
+                '                  <div class="d-l-l-text">' +
+                "                  <h4>湿度:" +
+                (item.data.humidity ? item.data.humidity : "") +
+                "</h4>" +
+                "                </div>" +
+                "                </div>" +
+                "                </span>" +
+                "<span>" +
+                '                  <div class="d-l-con">' +
+                '                  <div class="d-l-l-text">' +
+                "                  <h4>细颗粒:" +
+                (item.data.fineParticle ? item.data.fineParticle : "") +
+                "</h4>" +
+                "                </div>" +
+                "                </div>" +
+                "                </span>" +
+                "<span>" +
+                '                  <div class="d-l-con">' +
+                '                  <div class="d-l-l-text">' +
+                "                  <h4>二氧化氮:" +
+                (item.data.nitrogenDioxide ? item.data.nitrogenDioxide : "") +
+                "</h4>" +
+                "                </div>" +
+                "                </div>" +
+                "                </span>" +
+                "<span>" +
+                '                  <div class="d-l-con">' +
+                '                  <div class="d-l-l-text">' +
+                "                  <h4>风向:" +
+                (item.data.windDirection ? item.data.windDirection : "") +
+                "</h4>" +
+                "                </div>" +
+                "                </div>" +
+                "                </span>" +
+                "<span>" +
+                '                  <div class="d-l-con">' +
+                '                  <div class="d-l-l-text">' +
+                "                  <h4>风速:" +
+                (item.data.windSpeed ? item.data.windSpeed : "") +
+                "</h4>" +
+                "                </div>" +
+                "                </div>" +
+                "                </span>" +
+                "</div>";
+            } else if (item.deviceType == 6) { // 水压传感器
+              markersMap.icon = "sj-icon-map-centerdata_water_pressure_sensor";
+              markersMap.bindPopupHtml += '<div class="map-tip">' +
+                "<span>" +
+                '                  <div class="d-l-con">' +
+                '                  <div class="d-l-l-text">' +
+                "                  <h4>设备编码:" +
+                (item.data.IMEI ? item.data.IMEI : "") +
+                "</h4>" +
+                "                </div>" +
+                "                </div>" +
+                "                </span>" +
+                "<span>" +
+                '                  <div class="d-l-con">' +
+                '                  <div class="d-l-l-text">' +
+                "                  <h4>下限警报使能:" +
+                (item.data.thresholdLowEnable ? item.data.thresholdLowEnable : "") +
+                "</h4>" +
+                "                </div>" +
+                "                </div>" +
+                "                </span>" +
+                "<span>" +
+                '                  <div class="d-l-con">' +
+                '                  <div class="d-l-l-text">' +
+                "                  <h4>上限警报使能:" +
+                (item.data.thresholdHighEnable ? item.data.thresholdHighEnable : "") +
+                "</h4>" +
+                "                </div>" +
+                "                </div>" +
+                "                </span>" +
+                "<span>" +
+                '                  <div class="d-l-con">' +
+                '                  <div class="d-l-l-text">' +
+                "                  <h4>信号强度:" +
+                (item.data.signalPower ? item.data.signalPower : "") +
+                "</h4>" +
+                "                </div>" +
+                "                </div>" +
+                "                </span>" +
+                "<span>" +
+                '                  <div class="d-l-con">' +
+                '                  <div class="d-l-l-text">' +
+                "                  <h4>水压力值:" +
+                (item.data.hydraulicValue ? item.data.hydraulicValue : "") +
+                "</h4>" +
+                "                </div>" +
+                "                </div>" +
+                "                </span>" +
+                "<span>" +
+                '                  <div class="d-l-con">' +
+                '                  <div class="d-l-l-text">' +
+                "                  <h4>水压下限阈值:" +
+                (item.data.hydraulicThresholdMin ? item.data.hydraulicThresholdMin : "") +
+                "</h4>" +
+                "                </div>" +
+                "                </div>" +
+                "                </span>" +
+
+                "<span>" +
+                '                  <div class="d-l-con">' +
+                '                  <div class="d-l-l-text">' +
+                "                  <h4>水压上限阈值:" +
+                (item.data.hydraulicThresholdMax ? item.data.hydraulicThresholdMax : "") +
+                "</h4>" +
+                "                </div>" +
+                "                </div>" +
+                "                </span>" +
+                "<span>" +
+                '                  <div class="d-l-con">' +
+                '                  <div class="d-l-l-text">' +
+                "                  <h4>水压力值:" +
+                (item.data.hydraulicValue ? item.data.hydraulicValue : "") +
+                "</h4>" +
+                "                </div>" +
+                "                </div>" +
+                "                </span>" +
+                "<span>" +
+                '                  <div class="d-l-con">' +
+                '                  <div class="d-l-l-text">' +
+                "                  <h4>心跳周期:" +
+                (item.data.heartbeatTime ? item.data.heartbeatTime : "") +
+                "</h4>" +
+                "                </div>" +
+                "                </div>" +
+                "                </span>" +
+                "<span>" +
+                '                  <div class="d-l-con">' +
+                '                  <div class="d-l-l-text">' +
+                "                  <h4>电池电压:" +
+                (item.data.batteryVoltage ? item.data.batteryVoltage : "") +
+                "</h4>" +
+                "                </div>" +
+                "                </div>" +
+                "                </span>" +
+                "<span>" +
+                '                  <div class="d-l-con">' +
+                '                  <div class="d-l-l-text">' +
+                "                  <h4>电池电量:" +
+                (item.data.batteryValue ? item.data.batteryValue : "") +
+                "</h4>" +
+                "                </div>" +
+                "                </div>" +
+                "                </span>" +
+
+                "</div>";
+            } else if (item.deviceType == 7)//水流速传感器
+            {
+              markersMap.icon = "sj-icon-map-centerdata_water_pressure_sensor";
+              markersMap.bindPopupHtml += '<div class="map-tip">' +
+                "<span>" +
+                '                  <div class="d-l-con">' +
+                '                  <div class="d-l-l-text">' +
+                "                  <h4>两流量累计之和:" +
+                (item.data.Q ? item.data.Q : "") +
+                "</h4>" +
+                "                </div>" +
+                "                </div>" +
+                "                </span>" +
+                "<span>" +
+                '                  <div class="d-l-con">' +
+                '                  <div class="d-l-l-text">' +
+                "                  <h4>流量Q1:" +
+                (item.data.Q1 ? item.data.Q1 : "") +
+                "</h4>" +
+                "                </div>" +
+                "                </div>" +
+                "                </span>" +
+                "<span>" +
+                '                  <div class="d-l-con">' +
+                '                  <div class="d-l-l-text">' +
+                "                  <h4>流量Q2:" +
+                (item.data.Q2 ? item.data.Q2 : "") +
+                "</h4>" +
+                "                </div>" +
+                "                </div>" +
+                "                </span>" +
+                "<span>" +
+                '                  <div class="d-l-con">' +
+                '                  <div class="d-l-l-text">' +
+                "                  <h4>Q1累计流量:" +
+                (item.data.CQ1 ? item.data.CQ1 : "") +
+                "</h4>" +
+                "                </div>" +
+                "                </div>" +
+                "                </span></div>";
+            }
+            markersMap.lng = item.longitude;
+            markersMap.lat = item.latitude;
+            markersList.push(markersMap);
+          })
+          console.log(markersList)
+        })
+        setTimeout(() => {
+          this.$refs.supermap.clearM();
+          this.$refs.supermap.clearMRadius()
+          this.$refs.supermap.setMarkers(markersList);
+        }, 2000);
+      },
+
       // 传感器
       getSensorListByDeptId() {
         let that = this;