zhaobao 1 年之前
父节点
当前提交
4397ea4770

+ 2 - 2
src/settings.js

@@ -36,8 +36,8 @@ module.exports = {
   /**
   * 服务API地址
   */
-  devServerUrl: 'http://113.141.93.143:1788', // 正式环境
-  // devServerUrl: 'http://192.168.3.5:1788', // 开发环境 qu
+  // devServerUrl: 'http://113.141.93.143:1788', // 正式环境
+  devServerUrl: 'http://192.168.3.5:1788', // 开发环境 qu
   serverUrl: 'http://113.141.93.143:1788', // 正式环境
   mqttUrl: 'ws://113.141.93.143:8894/mqtt', // mqtt地址
   /**

+ 267 - 267
src/views/bigScreen/home/components/Map/index.vue

@@ -1,291 +1,291 @@
 <template>
-    <div class="map-container">
-      <nav>
-        <map-selector :default-val="formData.mapId" @setMapInfo="handleSelectMap"  />
-      </nav>
-      <div class="layout-map">
-        <div id="vmap" />
-        <div id="marker-tip" :style="marker_tip_style">
-          <div class="head">基本信息</div>
-          <div class="item">
-            <p class="title">巡检任务统计(20)</p>
-            <p><span>未完成:8</span><span>已完成:8</span></p>          
-          </div>
-          <div class="item">
-            <p class="title">传感器统计(21)</p>
-            <p><span>在线:8</span><span>离线:8</span></p>
-            <p><span class="warn">预警:8</span></p>          
-          </div>
+  <div class="map-container">
+    <nav>
+      <map-selector :default-val="formData.mapId" @setMapInfo="handleSelectMap" />
+    </nav>
+    <div class="layout-map">
+      <div id="vmap" />
+      <div id="marker-tip" :style="marker_tip_style">
+        <div class="head">基本信息</div>
+        <div class="item">
+          <p class="title">巡检任务统计(20)</p>
+          <p><span>未完成:8</span><span>已完成:8</span></p>
+        </div>
+        <div class="item">
+          <p class="title">传感器统计(21)</p>
+          <p><span>在线:8</span><span>离线:8</span></p>
+          <p><span class="warn">预警:8</span></p>
         </div>
       </div>
     </div>
+  </div>
 </template>
-  
-  <script>
-  import * as L from 'leaflet'
-  import '@geoman-io/leaflet-geoman-free'
-  import MapSelector from '@/components/MapSelector'
-  import { getMapLayerById, getMapLayer } from '@/api/goaf/layer'
-  import { NumConvertLM } from '@/utils'
-  const iconSize=[110,110]
-  export default {
-    name: 'GoafVisualEditor',
-    components: {
-      MapSelector
-    },
-    data() {
-      return {
-        viewData: {},
-        formData: {
-          mapId: undefined,
-          layerId: undefined,
-          layerVector: ''
-        },
-        map: undefined,
-        geoLayer: undefined,
-        conditions: {
-          layerId: undefined
-        },
-        layer: {
-          containerPoint:{
-            x:"",
-            y:""
-          }
-        },
-        marker_tip_style:"",
-        layers: [],
-        layerGroup: [],
-        mapList:[],
-        imageOverlay: undefined
-      }
-    },
-    mounted() {
-      this.init()
-    },
-    methods: {
-      init() {
-        this.initMap()        
+
+<script>
+import * as L from 'leaflet'
+import '@geoman-io/leaflet-geoman-free'
+import MapSelector from '@/components/MapSelector'
+import { getMapLayerById, getMapLayer } from '@/api/goaf/layer'
+import { NumConvertLM } from '@/utils'
+const iconSize = [110, 110]
+export default {
+  name: 'GoafVisualEditor',
+  components: {
+    MapSelector
+  },
+  data() {
+    return {
+      viewData: {},
+      formData: {
+        mapId: undefined,
+        layerId: undefined,
+        layerVector: ''
       },
-      // 初始化
-      getData() {
-        getMapLayerById(this.conditions.layerId).then((resp) => {
-          const { data } = resp
-            this.viewData = data
-            this.setRasterLayer()
-        })
+      map: undefined,
+      geoLayer: undefined,
+      conditions: {
+        layerId: undefined
       },
-  
-      // 初始化地图
-      initMap() {
-        var yx = L.latLng
-        var xy = function xy(x, y) {
-          if (L.Util.isArray(x)) {
-            return yx(x[1], x[0])
-          }
-          return yx(y, x)
+      layer: {
+        containerPoint: {
+          x: '',
+          y: ''
         }
-        var bounds = [xy(-600, -600), xy(300, 300)]
-        this.map = L.map('vmap', {
-          crs: L.CRS.Simple, // 一个简单的CRS,可将经度和纬度直接映射到x其中y。可用于平面地图(例如游戏地图)
-          minZoom: 0,
-          maxZoom: 1,
-          zoom: 1,
-          maxBounds: bounds, // 地图拖动到边界后自动弹回
-          maxBoundsViscosity: 0.2,
-          attributionControl: true,
-          zoomControl: true // zoomControl(缩放控制):确定缩放控制是否默认加载在地图上。
-        })
-        this.layerGroup = L.layerGroup().addTo(this.map)
-        this.geoLayer = L.geoJson(null, { pmIgnore: false })
-        this.geoLayer.addTo(this.map)
-        if (!this.viewData.layerVector) return
-        this.geoLayer.addData(this.viewData.layerVector)
       },
-  
-      // 设置地图背景图
-      setRasterLayer() {
-        var yx = L.latLng
-        var xy = function xy(x, y) {
-          if (L.Util.isArray(x)) {
-            return yx(x[1], x[0])
-          }
-          return yx(y, x)
+      marker_tip_style: '',
+      layers: [],
+      layerGroup: [],
+      mapList: [],
+      imageOverlay: undefined
+    }
+  },
+  mounted() {
+    this.init()
+  },
+  methods: {
+    init() {
+      this.initMap()
+    },
+    // 初始化
+    getData() {
+      getMapLayerById(this.conditions.layerId).then((resp) => {
+        const { data } = resp
+        this.viewData = data
+        this.setRasterLayer()
+      })
+    },
+
+    // 初始化地图
+    initMap() {
+      var yx = L.latLng
+      var xy = function xy(x, y) {
+        if (L.Util.isArray(x)) {
+          return yx(x[1], x[0])
         }
-        var bounds = [xy(-600, -600), xy(300, 300)]
-        if (this.imageOverlay) {
-          this.imageOverlay.setUrl(this.viewData.mapRasterLayer)
-        } else {
-          this.imageOverlay = L.imageOverlay(this.viewData.mapRasterLayer, bounds).addTo(this.map)
+        return yx(y, x)
+      }
+      var bounds = [xy(-600, -600), xy(300, 300)]
+      this.map = L.map('vmap', {
+        crs: L.CRS.Simple, // 一个简单的CRS,可将经度和纬度直接映射到x其中y。可用于平面地图(例如游戏地图)
+        minZoom: 0,
+        maxZoom: 1,
+        zoom: 1,
+        maxBounds: bounds, // 地图拖动到边界后自动弹回
+        maxBoundsViscosity: 0.2,
+        attributionControl: true,
+        zoomControl: true // zoomControl(缩放控制):确定缩放控制是否默认加载在地图上。
+      })
+      this.layerGroup = L.layerGroup().addTo(this.map)
+      this.geoLayer = L.geoJson(null, { pmIgnore: false })
+      this.geoLayer.addTo(this.map)
+      if (!this.viewData.layerVector) return
+      this.geoLayer.addData(this.viewData.layerVector)
+    },
+
+    // 设置地图背景图
+    setRasterLayer() {
+      var yx = L.latLng
+      var xy = function xy(x, y) {
+        if (L.Util.isArray(x)) {
+          return yx(x[1], x[0])
         }
-  
-        this.map.fitBounds(bounds)
-        this.map.scrollWheelZoom.disable()
-        this.getMapLayers()
-      },
-  
-      // 选择地图
-      handleSelectMap(obj,mapList) {
-        this.viewData.mapRasterLayer = obj.mapRasterLayer
-        this.viewData.mapId = obj.mapId
-        this.formData.mapId = obj.mapId
-        if(mapList){
-          this.mapList=mapList
+        return yx(y, x)
+      }
+      var bounds = [xy(-600, -600), xy(300, 300)]
+      if (this.imageOverlay) {
+        this.imageOverlay.setUrl(this.viewData.mapRasterLayer)
+      } else {
+        this.imageOverlay = L.imageOverlay(this.viewData.mapRasterLayer, bounds).addTo(this.map)
+      }
+
+      this.map.fitBounds(bounds)
+      this.map.scrollWheelZoom.disable()
+      this.getMapLayers()
+    },
+
+    // 选择地图
+    handleSelectMap(obj, mapList) {
+      this.viewData.mapRasterLayer = obj.mapRasterLayer
+      this.viewData.mapId = obj.mapId
+      this.formData.mapId = obj.mapId
+      if (mapList) {
+        this.mapList = mapList
+      }
+      this.setRasterLayer()
+      this.clearLayers()
+    },
+    formSuccess() {
+      this.$emit('formSuccess')
+    },
+    // 获取地图图层数据
+    getMapLayers() {
+      getMapLayer({
+        mapId: this.formData.mapId
+      }).then((resp) => {
+        const { code, data, msg } = resp
+        if (code === 0) {
+          this.mapLayerList = data
+          this.initMapLayers()
+        } else {
+          this.$message.error(msg)
         }
+      })
+    },
+    updateMapLayers(mapId, type = 1) {
+      if (type === 1) {
         this.setRasterLayer()
         this.clearLayers()
-      },
-      formSuccess() {
-        this.$emit('formSuccess')
-      },
-      // 获取地图图层数据
-      getMapLayers() {
-        getMapLayer({
-          mapId:this.formData.mapId
-        }).then((resp) => {
-          const { code, data, msg } = resp
-          if (code === 0) {
-            this.mapLayerList = data
-            this.initMapLayers()
-          } else {
-            this.$message.error(msg)
-          }
-        })
-      },
-      updateMapLayers(mapId,type=1){
-        if(type===1){
+      } else {
+        /** 其他图层改变需要跳转 */
+        if (this.formData.mapId === mapId) {
+          this.setRasterLayer()
+          this.clearLayers()
+        } else {
+          const obj = this.mapList.filter(item => item.mapId === mapId)[0]
+          this.viewData.mapRasterLayer = obj.mapRasterLayer
+          this.viewData.mapId = obj.mapId
+          this.formData.mapId = obj.mapId
           this.setRasterLayer()
           this.clearLayers()
-        }else{
-          /** 其他图层改变需要跳转 */
-          if(this.formData.mapId===mapId){
-            this.setRasterLayer()
-            this.clearLayers()
-          }else{
-            let obj=this.mapList.filter(item=>item.mapId===mapId)[0]
-            this.viewData.mapRasterLayer = obj.mapRasterLayer
-            this.viewData.mapId = obj.mapId
-            this.formData.mapId = obj.mapId
-            this.setRasterLayer()
-            this.clearLayers()            
-          }          
         }
-      },
-      // 初始化地图图层
-      initMapLayers() {
-        const self = this
-        const layerList = this.mapLayerList
-        const feature = []
-        if (layerList != null && layerList.length > 0) {
-          layerList.forEach((item) => {
-            const layerMarker = item.layerMarker && JSON.parse(item.layerMarker)
-            const layerVector = item.layerMarker && JSON.parse(item.layerVector)
-            if (layerMarker && layerMarker.properties) {
-              layerMarker.properties.layerId = item.layerId
-              feature.push(layerMarker)
+      }
+    },
+    // 初始化地图图层
+    initMapLayers() {
+      const layerList = this.mapLayerList
+      const feature = []
+      if (layerList != null && layerList.length > 0) {
+        layerList.forEach((item) => {
+          const layerMarker = item.layerMarker && JSON.parse(item.layerMarker)
+          const layerVector = item.layerMarker && JSON.parse(item.layerVector)
+          if (layerMarker && layerMarker.properties) {
+            layerMarker.properties.layerId = item.layerId
+            feature.push(layerMarker)
+          }
+          if (layerVector && layerVector.properties) {
+            layerVector.properties.layerId = item.layerId
+            feature.push(layerVector)
+          }
+        })
+        L.geoJSON(feature, {
+          pointToLayer: function(_feature, latlng) {
+            const goafInfo = _feature.properties.goafInfo
+            const layerId = _feature.properties.layerId
+            var goafAlarmStatus = ''
+            let Volume = 0
+            if (goafInfo) {
+              Volume = (goafInfo.goafCanfillVolume - goafInfo.goafRemainVolume) / goafInfo.goafCanfillVolume
+              Volume = (Volume * 100).toFixed(2)
             }
-            if (layerVector && layerVector.properties) {
-              layerVector.properties.layerId = item.layerId
-              feature.push(layerVector)
+            // eslint-disable-next-line eqeqeq
+            if (_feature.properties.goafAlarmStatus == 1) {
+              goafAlarmStatus = 'ico-warning'
             }
-          })
-          L.geoJSON(feature, {
-            pointToLayer: function(_feature, latlng) {
-              const goafInfo = _feature.properties.goafInfo
-              const layerId= _feature.properties.layerId
-              var goafAlarmStatus=""
-              let Volume = 0
-              if (goafInfo) {
-                Volume = (goafInfo.goafCanfillVolume - goafInfo.goafRemainVolume) / goafInfo.goafCanfillVolume
-                Volume = (Volume * 100).toFixed(2)
-              }
-              if(_feature.properties.goafAlarmStatus==1){
-                goafAlarmStatus='ico-warning'
-              }
-              const goafOrebelt = _feature.properties.goafOrebelt
-              const goafOrebody = _feature.properties.goafOrebody
-              const goafOreheight = _feature.properties.goafOreheight
-              const goafName = _feature.properties.goafName
+            const goafOrebelt = _feature.properties.goafOrebelt
+            const goafOrebody = _feature.properties.goafOrebody
+            const goafOreheight = _feature.properties.goafOreheight
+            const goafName = _feature.properties.goafName
 
-              const goaf_icon_tag = `<div class="goaf-icon-tag" title="${NumConvertLM(goafOrebelt)}-${goafOrebody}-${goafOreheight}-${goafName}">${NumConvertLM(goafOrebelt)}-${goafOrebody}-${goafOreheight}-${goafName}</div>`
-              const html = `<div data-layer="${layerId}" class="goaf-icon-box ${goafAlarmStatus}" style="width:100%;height:100%;position: relative;">${goaf_icon_tag}<div class="goaf-fill-v" style="height:${Volume}%;"></div></div>`
-              var icon = L.divIcon({
-                html,
-                iconSize
-              })
-              return L.marker(latlng, { icon })
-            },
-            onEachFeature: (_feature, layer) => {
-              this.layerGroup.addLayer(layer)
-              // layer.on('click', (ev) => {
-              //   self.layer=ev
-              //   self.marker_tip_style=`left:${ev.containerPoint.x+24}px;top:${ev.containerPoint.y-20}px`
-              //   console.log({
-              //       layer:ev
-              //   })
-              // })
-              // layer.on('mouseover', (ev) => {
-              //   self.layer=ev
-              //   self.marker_tip_style=`left:${ev.containerPoint.x+30}px;top:${ev.containerPoint.y-10}px;display:block;`
-              //   console.log({
-              //       layer:ev
-              //   })
-              // })
-              // layer.on('mouseout', (ev) => {
-              //   self.layer=ev
-              //   self.marker_tip_style="left:-1000px;top:0;display:none;"
-              // })
-            }
-          }).addTo(this.layerGroup)
-        }
-      },
-      clearLayers() {
-        if (this.layerGroup && this.layerGroup.clearLayers) {
-          this.layerGroup.clearLayers()
-        }
-      },
-      createGeoJson() {
-        var layerArray = []
-        this.map.eachLayer(function(layer) {
-          if (layer.pm !== 'undefined' && layer.pm != null && layer.pm !== '') {
-            if (layer.pm._enabled === false && layer.pm.options.draggable === true) {
-              layerArray.push(layer)
-            }
+            const goaf_icon_tag = `<div class="goaf-icon-tag" title="${NumConvertLM(goafOrebelt)}-${goafOrebody}-${goafOreheight}-${goafName}">${NumConvertLM(goafOrebelt)}-${goafOrebody}-${goafOreheight}-${goafName}</div>`
+            const html = `<div data-layer="${layerId}" class="goaf-icon-box ${goafAlarmStatus}" style="width:100%;height:100%;position: relative;">${goaf_icon_tag}<div class="goaf-fill-v" style="height:${Volume}%;"></div></div>`
+            var icon = L.divIcon({
+              html,
+              iconSize
+            })
+            return L.marker(latlng, { icon })
+          },
+          onEachFeature: (_feature, layer) => {
+            this.layerGroup.addLayer(layer)
+            // layer.on('click', (ev) => {
+            //   self.layer=ev
+            //   self.marker_tip_style=`left:${ev.containerPoint.x+24}px;top:${ev.containerPoint.y-20}px`
+            //   console.log({
+            //       layer:ev
+            //   })
+            // })
+            // layer.on('mouseover', (ev) => {
+            //   self.layer=ev
+            //   self.marker_tip_style=`left:${ev.containerPoint.x+30}px;top:${ev.containerPoint.y-10}px;display:block;`
+            //   console.log({
+            //       layer:ev
+            //   })
+            // })
+            // layer.on('mouseout', (ev) => {
+            //   self.layer=ev
+            //   self.marker_tip_style="left:-1000px;top:0;display:none;"
+            // })
           }
-        })
-        var geojson = L.layerGroup(layerArray).toGeoJSON()
-        for (var n = 0; n < geojson.features.length; n++) {
-          var nowJson = JSON.stringify(geojson.features[n])
-          for (var m = n + 1; m < geojson.features.length; m++) {
-            var nextJson = JSON.stringify(geojson.features[m])
-            if (nowJson === nextJson) {
-              geojson.features.splice(n, 1)
-            }
+        }).addTo(this.layerGroup)
+      }
+    },
+    clearLayers() {
+      if (this.layerGroup && this.layerGroup.clearLayers) {
+        this.layerGroup.clearLayers()
+      }
+    },
+    createGeoJson() {
+      var layerArray = []
+      this.map.eachLayer(function(layer) {
+        if (layer.pm !== 'undefined' && layer.pm != null && layer.pm !== '') {
+          if (layer.pm._enabled === false && layer.pm.options.draggable === true) {
+            layerArray.push(layer)
           }
         }
-        return geojson
-      },
-      updateLayerState(layerId=0,type=1){
-        var marker = $(`.goaf-icon-box[data-layer='${layerId}']`);
-        if(type===1){
-          // 添加隐患预警
-          marker.addClass("ico-warning " )
-        }else if(type===3){
-          //修改矿坑体积
-        }else{
-          marker.removeClass("ico-warning " )
+      })
+      var geojson = L.layerGroup(layerArray).toGeoJSON()
+      for (var n = 0; n < geojson.features.length; n++) {
+        var nowJson = JSON.stringify(geojson.features[n])
+        for (var m = n + 1; m < geojson.features.length; m++) {
+          var nextJson = JSON.stringify(geojson.features[m])
+          if (nowJson === nextJson) {
+            geojson.features.splice(n, 1)
+          }
         }
-        
-      },
-      unique(arr = [], name = 'name') {
-        const res = new Map()
-        return arr.filter((item) => !res.has(item[name]) && res.set(item[name], 1))
-      },
-      deeepClone(params) {
-        return JSON.parse(JSON.stringify(params))
       }
+      return geojson
+    },
+    updateLayerState(layerId = 0, type = 1) {
+      // eslint-disable-next-line no-undef
+      var marker = $(`.goaf-icon-box[data-layer='${layerId}']`)
+      if (type === 1) {
+        // 添加隐患预警
+        marker.addClass('ico-warning ')
+      } else if (type === 3) {
+        // 修改矿坑体积
+      } else {
+        marker.removeClass('ico-warning ')
+      }
+    },
+    unique(arr = [], name = 'name') {
+      const res = new Map()
+      return arr.filter((item) => !res.has(item[name]) && res.set(item[name], 1))
+    },
+    deeepClone(params) {
+      return JSON.parse(JSON.stringify(params))
     }
   }
-  </script>
+}
+</script>
       <style lang="scss" scoped>
       .map-container{
           nav{
@@ -344,10 +344,10 @@
                 }
               }
           }
-  
+
       }
       </style>
-  
+
   <style lang="scss">
   .goaf-fill-v{
       width:100%;
@@ -364,9 +364,9 @@
     width: 100%;
     display: inline-block;
     background: linear-gradient(90deg, #21649c 0.21%, #060F1E 100%);
-    overflow:hidden; 
-    text-overflow:ellipsis; 
-    white-space:nowrap; 
+    overflow:hidden;
+    text-overflow:ellipsis;
+    white-space:nowrap;
     color: #fff;
     text-align: center;
     z-index: 99999;
@@ -398,4 +398,4 @@
     50% {opacity: 0.5;}
     100% {opacity: 0;}
 }
-</style>
+</style>

+ 7 - 2
src/views/iiot/equipment/overview.vue

@@ -33,8 +33,13 @@
         </el-table-column>
         <el-table-column header-align="center" align="center" prop="goafSensorAlarmType" label="运行状态">
           <template v-slot="{row}">
-            <span v-if="row.goafSensorAlarmType">告警</span>
-            <span v-else>正常</span>
+            <template v-if="row.goafSensorStatus===0">
+              <span>离线</span>
+            </template>
+            <template v-else>
+              <span v-if="row.goafSensorAlarmType">告警</span>
+              <span v-else>正常</span>
+            </template>
           </template>
         </el-table-column>
         <el-table-column header-align="center" align="center" prop="goafSensorAlarmLevel" label="告警级别">

+ 7 - 2
src/views/iiot/sensor/index.vue

@@ -49,8 +49,13 @@
         <el-table-column prop="goafDevName" label="设备名称" align="center" />
         <el-table-column header-align="center" align="center" prop="goafSensorStatus" label="运行状态">
           <template v-slot="{row}">
-            <span v-if="row.goafSensorAlarmType">告警</span>
-            <span v-else>正常</span>
+            <template v-if="row.goafSensorStatus===0">
+              <span>离线</span>
+            </template>
+            <template v-else>
+              <span v-if="row.goafSensorAlarmType">告警</span>
+              <span v-else>正常</span>
+            </template>
           </template>
         </el-table-column>
         <el-table-column header-align="center" align="center" prop="goafSensorAlarmType" label="告警类型">

+ 2 - 1
src/views/iiot/sensor/manager.vue

@@ -20,7 +20,7 @@
         </span>
         <el-dropdown-menu slot="dropdown">
           <el-dropdown-item>
-            <el-checkbox :value="true" @change="handleCheckAllChange">全选</el-checkbox>
+            <el-checkbox v-model="checkAll" @change="handleCheckAllChange">全选</el-checkbox>
             <el-checkbox-group v-model="tablefilter" class="tablefilter-column">
               <el-checkbox v-for=" item in tablefilters" :key="item.value" :label="item.value">{{ item.name }}</el-checkbox>
             </el-checkbox-group>
@@ -309,6 +309,7 @@ export default {
   components: { Pagination, sensorModel },
   data() {
     return {
+      checkAll: true,
       tablefilters: [
         { name: '序号', value: 'index' },
         // { name: '传感器名称', value: 'sensorName' },