Prechádzať zdrojové kódy

数字通榆更改事件流程

wang_xy 2 rokov pred
rodič
commit
f0338b059f

+ 1 - 0
src/api/components/supermap.js

@@ -49,6 +49,7 @@ export const iconList = {
   'sj-icon-map-qianshou': require('@/assets/icons/sj-icon-map/sj-icon-map-qianshou.png'),//签收
   'sj-icon-map-guidang': require('@/assets/icons/sj-icon-map/sj-icon-map-guidang.png'),//归档
   'sj-icon-map-banjie': require('@/assets/icons/sj-icon-map/sj-icon-map-banjie.png'),//办结
+  'sj-icon-map-queren': require('@/assets/icons/sj-icon-map/sj-icon-map-queren.png'),//确认
 
 
 }

+ 15 - 2
src/api/event.js

@@ -1,10 +1,23 @@
 import request from '@/utils/request'
 
 //获取附近事件
-export function getNearEvent(longitude,latitude) {
+export function getNearEvent(longitude,latitude,day,loading) {
   return request({
-    url: '/center-village/VisuVillageCloudController/getNearEvent?longitude='+longitude+"&latitude="+latitude,
+    url: '/center-village/VisuVillageCloudController/getNearEvent?longitude='+longitude+"&latitude="+latitude+"&day="+day,
     method: 'get',
+    headers: {
+      loading: loading
+    },
+  })
+}
+//获取附近事件(云图获取点位用)
+export function getNearEventByEventId(eventTypeIdDl,eventTypeId,day,loading) {
+  return request({
+    url: '/center-village/VisuVillageCloudController/getNearEventByEventId?eventTypeIdDl='+[eventTypeIdDl]+"&eventTypeId="+[eventTypeId]+"&day="+day,
+    method: 'get',
+    headers: {
+      loading: loading
+    },
   })
 }
 //获取附近摄像头

+ 25 - 0
src/api/meeting.js

@@ -0,0 +1,25 @@
+import request from '@/utils/request'
+
+// 查询该事件是否有会议
+export function hasConferences(eventId) {
+  return request({
+    url: '/center-event/hwMeeting/hasConferences?eventId=' + eventId,
+    method: 'post'
+  })
+}
+
+// 根据事件ID和标题创建会议
+export function createConferences(eventId, subject) {
+  return request({
+    url: '/center-event/hwMeeting/createConferences?eventId='+eventId+'&subject='+subject,
+    method: 'post'
+  })
+}
+
+// 获取登录人信息
+export function getUserInfo() {
+  return request({
+    url: '/center-event/hwMeeting/getUserInfo',
+    method: 'get'
+  })
+}

+ 5 - 2
src/api/village.js

@@ -1,10 +1,13 @@
 import request from '@/utils/request'
 
 // 获取左侧列表
-export function getEventByEventType(param) {
+export function getEventByEventType(param,loading) {
   return request({
     url: '/center-village/VisuVillageCloudController/getEventByEventType',
     method: 'post',
-    data:param
+    data: param,
+    headers: {
+      loading: loading
+    },
   })
 }

BIN
src/assets/icons/sj-icon-map/sj-icon-map-queren.png


+ 22 - 0
src/assets/styles/base.scss

@@ -65,6 +65,7 @@ $eventStateColor-wb: #c2bc43;
 $eventStateColor-cf: #a23737;
 $eventStateColor-bj: #6ae08f;
 $eventStateColor-gd: #0369ef;
+$eventStateColor-qr: #20EF56;
 
 $eventStateColor-xsb: #11b57e;
 $eventStateColor-cb: #e63b4a;
@@ -2498,6 +2499,27 @@ div::-webkit-scrollbar {
         border-radius: .2rem;
       }
     }
+    //确认
+    .event-state-qr {
+      display: flex;
+      align-items: center;
+
+      i {
+        color: $eventStateColor-qr;
+        font-size: 1rem;
+        margin-left: -.5rem;
+      }
+
+      .event-list-state-qr {
+        width: fit-content;
+        background-color: $eventStateColor-qr;
+        color: $white;
+        padding:0.25rem 0.4rem;
+        margin-left: -.5rem;
+        margin-bottom: .2rem;
+        border-radius: .2rem;
+      }
+    }
 
     .bgt-info-name {
       color: $inBlue;

+ 67 - 60
src/components/TVWall.vue

@@ -2,28 +2,30 @@
   <div>
     <el-dialog title="电视墙" :visible.sync="TVWallVisible" v-if="TVWallVisible" customClass="TVWallCustomWidth"
                @close="cancelEventLocationShow()">
-	  <div class="forthis" style="width: 22%; position: absolute;left: 0;z-index: 9999999999999;">
-	  	<!-- <div class="this-title">
-	  		<span>林场</span>
-	  		<span>45</span>
-	  	</div> -->
-	  	<div class="i-list-con" style="height: 46vh; overflow-y: scroll;">
-	  		<span v-for="(item,index) in cameraList" :key="index">
-	  			<div class="d-l-con" @click="playhk(item.channelCode)">
-	  				<div class="d-l-l-text">
-	  					<i class="i-small"></i>
-	  					<h4>{{ item.cameraName }}</h4>
-	  				</div>
-	  			</div>
-	  		</span>
-	  	</div>
-	  </div>
-      <div style="width:70%;height:400px;position:absolute;">
-        <!--视频窗口展示---大华-->
-        <div id="dom1" class="dom1"></div>
-        <!--视频窗口展示---海康-->
-        <div id="playWnd" class="playWnd" style="left: 0px; top: 0px;"></div>
-      </div>
+	  <!--<div class="forthis" style="width: 22%; position: absolute;left: 0;z-index: 9999999999999;">-->
+	  	<!--&lt;!&ndash; <div class="this-title">-->
+	  		<!--<span>林场</span>-->
+	  		<!--<span>45</span>-->
+	  	<!--</div> &ndash;&gt;-->
+	  	<!--<div class="i-list-con" style="height: 46vh; overflow-y: scroll;">-->
+	  		<!--<span v-for="(item,index) in cameraList" :key="index">-->
+	  			<!--<div class="d-l-con" @click="playhk(item.channelCode)">-->
+	  				<!--<div class="d-l-l-text">-->
+	  					<!--<i class="i-small"></i>-->
+	  					<!--<h4>{{ item.cameraName }}</h4>-->
+	  				<!--</div>-->
+	  			<!--</div>-->
+	  		<!--</span>-->
+	  	<!--</div>-->
+	  <!--</div>-->
+      <!--<div style="width:70%;height:400px;position:absolute;">-->
+        <!--&lt;!&ndash;视频窗口展示-&#45;&#45;大华&ndash;&gt;-->
+        <!--<div id="dom1" class="dom1"></div>-->
+        <!--&lt;!&ndash;视频窗口展示-&#45;&#45;海康&ndash;&gt;-->
+        <!--<div id="playWnd" class="playWnd" style="left: 0px; top: 0px;"></div>-->
+      <!--</div>-->
+
+      <div id="dom1" class="dom1"></div>
     </el-dialog>
   </div>
 
@@ -249,8 +251,8 @@ export default {
         }],
       crtPosX: 0,
       crtPosY: 0,
-      crtWidth: 740,
-      crtHeight: 400,
+      crtWidth: 1150,
+      crtHeight: 700,
       domId: 'dom1',
       mixedVideoDisplayMode: 2,
       isShowTipe: true,
@@ -262,12 +264,14 @@ export default {
     }
   },
   created() {
+    const DHWsInstance = DHWs.getInstance()
+    this.ws = DHWsInstance
   },
   methods: {
     cancelEventLocationShow() {
       // this.activeName = 'tv'
       this.TVWallVisible = false
-      // this.destroy()
+      this.destroy()
 
       if (this.oWebControl != null) {
         this.oWebControl.JS_HideWnd()   // 先让窗口隐藏,规避可能的插件窗口滞后于浏览器消失问题
@@ -278,40 +282,38 @@ export default {
       }
     },
     showTVWall() {
-      let that=this;
+      // let that=this;
       /** ----------------------------------大华摄像头预览开始------------------------------------- */
-      // const DHWsInstance = DHWs.getInstance()
-      // this.ws = DHWsInstance
-      // this.ws.addEventListener('connectStateChange', data => {
-      //   if (data) {
-      //     console.log('连接成功')
-      //   } else {
-      //     console.log('连接失败,下载客户端')
-      //     this.alertReinstall()
-      //     // this.isShowTipe && this.$modal.confirm({
-      //     //   title: '下载客户端',
-      //     //   content: '检测到您未安装部分插件,将影响部分功能使用,请下载后使用?',
-      //     //   onOk: () => {
-      //     //     //这里写下载方法
-      //     //     this.isShowTipe = false
-      //     //   },
-      //     //   onCancel: () => {
-      //     //     this.isShowTipe = false
-      //     //   }
-      //     // });
-      //   }
-      // })
-      // this.preview()
+      this.ws.addEventListener('connectStateChange', data => {
+        if (data) {
+          console.log('连接成功')
+        } else {
+          console.log('连接失败,下载客户端')
+          this.alertReinstall()
+          this.isShowTipe && this.$modal.confirm({
+            title: '下载客户端',
+            content: '检测到您未安装部分插件,将影响部分功能使用,请下载后使用?',
+            onOk: () => {
+              //这里写下载方法
+              this.isShowTipe = false
+            },
+            onCancel: () => {
+              this.isShowTipe = false
+            }
+          });
+        }
+      })
+      this.preview()
       /** ----------------------------------大华摄像头预览结束------------------------------------- */
       /** ----------------------------------海康摄像头预览开始------------------------------------- */
-      tvCameraList().then(response => {
-        this.cameraList=response.data
-      })
-      that.initPlugin()
-      setTimeout(function() {
-        that.playhk();
-      }, 5000)
-      /** ----------------------------------海康摄像头预览结束------------------------------------- */
+      // tvCameraList().then(response => {
+      //   this.cameraList=response.data
+      // })
+      // that.initPlugin()
+      // setTimeout(function() {
+      //   that.playhk();
+      // }, 5000)
+      // /** ----------------------------------海康摄像头预览结束------------------------------------- */
       this.TVWallVisible = true
     },
     /** ----------------------------------大华摄像头预览开始------------------------------------- */
@@ -339,8 +341,12 @@ export default {
                 loginPort: newResponse.loginPort,
                 userName: newResponse.userName,
                 userPwd: newResponse.userPwd,
+                // loginIp: '192.168.100.100',
+                // loginPort: 8314,
+                // userName: 'system',
+                // userPwd: 'Admin@123',
                 token: '',
-                https: 1
+                https: 0
               })
               this.ws.on('loginState', (res) => {
                 this.isLogin = res
@@ -362,6 +368,7 @@ export default {
     },
 
     create(tvListJson) { // 调用创建控件接口
+      debugger
       let _this = this
       const params = [
         {
@@ -372,7 +379,7 @@ export default {
             'splitNum': 1,
             'channelList': [
               {
-                'channelId': '8ORBqXFlA1D77U45SM1ROC'
+                'channelId': ''
               }
             ]
           },
@@ -457,7 +464,7 @@ export default {
         },
         cbConnectError: function() { // 创建WebControl实例失败
           that.oWebControl = null
-          $('#playWnd').html('插件未启动,正在尝试启动,请稍候...')
+          $('#playWnd').html('插件未启动,正在尝试启动,请稍候...<a href="./hk/VideoWebPlugin.exe">点击下载插件</a>')
           WebControl.JS_WakeUp('VideoWebPlugin://') // 程序未启动时执行error函数,采用wakeup来启动程序
           initCount++
           if (initCount < 3) {
@@ -465,7 +472,7 @@ export default {
               that.initPlugin()
             }, 3000)
           } else {
-            $('#playWnd').html('插件启动失败,请检查插件是否安装!')
+            $('#playWnd').html('插件启动失败,请检查插件是否安装!<a href="./hk/VideoWebPlugin.exe">点击下载插件</a>')
           }
         },
         cbConnectClose: function(bNormalClose) {

+ 11 - 1
src/components/eventLocation.vue

@@ -77,6 +77,12 @@
                             归档
                           </div>
                         </div>
+                        <div v-if="item.eventStatusValue=='forest_event_status_7'" class="event-state-qr">
+                          <i class="el-icon-caret-left"></i>
+                          <div class="event-list-state-qr">
+                            确认
+                          </div>
+                        </div>
                         <div class="bgt-info-name">{{ item.reportor }} {{ item.eventName }}</div>
                         <div class="bgt-info-place">
                           <ul>
@@ -315,9 +321,10 @@ export default {
         isAggregation: false
       }]
       let that = this
-      getNearEvent(that.longitude, that.latitude).then(res => {
+      getNearEvent(that.longitude, that.latitude,'').then(res => {
         that.markersList = []
         that.eventList = res.data
+        debugger
         if (that.eventList != null && that.eventList.length > 0) {
           for (let i = 0; i < that.eventList.length; i++) {
             let markersMap = {
@@ -351,6 +358,9 @@ export default {
             } else if (that.eventList[i].eventStatusValue == 'forest_event_status_6') {
               markersMap.click = 'showEventDialog'
               markersMap.icon = 'sj-icon-map-guidang'
+            } else if (that.eventList[i].eventStatusValue == 'forest_event_status_7') {
+              markersMap.click = 'showEventDialog'
+              markersMap.icon = 'sj-icon-map-queren'
             }
             markersMap.parameter = that.eventList[i].eventCode
             markersMap.lng = that.eventList[i].longitude

+ 107 - 100
src/components/supermap.vue

@@ -42,43 +42,43 @@
             <input type="text" class="form-control" id="heatNums1" value="6"/>
           </div>
         </div>
-        <div class="panel">
-          <div class="input-group">
-            <span class="input-group-addon">温度</span>
-            <input type="text" class="form-control" id="heatNums2" value="10℃"/>
-          </div>
-        </div>
-        <div class="panel">
-          <div class="input-group">
-            <span class="input-group-addon">湿度</span>
-            <input type="text" class="form-control" id="heatNums3" value="6%RH"/>
-          </div>
-        </div>
-        <div class="panel">
-          <div class="input-group">
-            <span class="input-group-addon">持续时间</span>
-            <input type="text" class="form-control" id="heatNums4" value="60分钟"/>
-          </div>
-        </div>
-        <div class="panel">
-          <div class="input-group">
-            <span class="input-group-addon">植被类型</span>
-            <select class="form-control" style="width:auto" id="heatNums5">
-              <option value="1">针叶林</option>
-              <option value="31">落叶林</option>
-            </select>
-          </div>
-        </div>
-        <div class="panel">
-          <div class="input-group">
-            <span class="input-group-addon">大气压</span>
-            <input type="text" class="form-control" id="heatNums6" value="101.325kPa"/>
-          </div>
-        </div>
-        <div class="panel">
-          <el-button type="success" @click="createHeatPoints">分析</el-button>
-          <el-button type="success" @click="clearHeatPoints">重置</el-button>
-        </div>
+		<div class="panel">
+		  <div class="input-group">
+		    <span class="input-group-addon">温度</span>
+		    <input type="text" class="form-control" id="heatNums2" value="10℃"/>
+		  </div>
+		</div>
+		<div class="panel">
+		  <div class="input-group">
+		    <span class="input-group-addon">湿度</span>
+		    <input type="text" class="form-control" id="heatNums3" value="6%RH"/>
+		  </div>
+		</div>
+		<div class="panel">
+		  <div class="input-group">
+		    <span class="input-group-addon">持续时间</span>
+		    <input type="text" class="form-control" id="heatNums4" value="60分钟"/>
+		  </div>
+		</div>
+		<div class="panel">
+		<div class="input-group">
+		  <span class="input-group-addon">植被类型</span>
+		  <select class="form-control" style="width:auto" id="heatNums5">
+		    <option value="1">针叶林</option>
+		    <option value="31">落叶林</option>
+		  </select>
+		</div>
+		</div>
+		<div class="panel">
+		  <div class="input-group">
+		    <span class="input-group-addon">大气压</span>
+		    <input type="text" class="form-control" id="heatNums6" value="101.325kPa"/>
+		  </div>
+		</div>
+		<div class="panel">
+        <el-button type="success" @click="createHeatPoints">分析</el-button>
+        <el-button type="success" @click="clearHeatPoints">重置</el-button>
+		</div>
       </div>
     </div>
   </div>
@@ -98,6 +98,7 @@ import {
   getSuperMap,
   iconList
 } from '@/api/components/supermap.js'
+import { selectConfigKey } from "@/api/system/config";
 // import {setToken} from '../plugins/auth'
 import modal from '@/plugins/modal'
 
@@ -129,7 +130,8 @@ export default {
       heatMapLayer: [], //火灾蔓延图层Layer
       isheatPlotting: false,//火灾蔓延
       heat_lat: 0, //火灾蔓延经纬度
-      heat_lng: 0 //火灾蔓延经纬度
+      heat_lng: 0, //火灾蔓延经纬度
+      host:''
     }
   },
   watch: {
@@ -199,6 +201,7 @@ export default {
     }
   },
   mounted() {
+    this.getspuerMapHost()
     this.initMap()
     //添加画图的提示信息
     window.L.drawLocal.draw.toolbar = {
@@ -617,19 +620,19 @@ export default {
         if (this.isAggregationMyGroup != undefined && this.isAggregationMyGroup != false) {
           this.isAggregationMyGroup.clearLayers()
         }
-        this.map.removeLayer(this.isAggregationLayers)
-        this.isAggregationLayers = []
-        this.radiusLayers = []
-        this.isAggregationLayers = window.L.markerClusterGroup({
-          //设置为true时显示聚类所占据的范围
-          showCoverageOnHover: true,
-          //设置为true时会向低一级聚类缩放
-          zoomToBoundsOnClick: true,
-          //增加点位时增加聚合动画(否则会出问题)
-          animateAddingMarkers: true,
-          //最大缩放级别点击聚合图标展开图标
-          spiderfyOnMaxZoom: true
-        })
+          this.map.removeLayer(this.isAggregationLayers)
+          this.isAggregationLayers = []
+          this.radiusLayers = []
+          this.isAggregationLayers = window.L.markerClusterGroup({
+            //设置为true时显示聚类所占据的范围
+            showCoverageOnHover: true,
+            //设置为true时会向低一级聚类缩放
+            zoomToBoundsOnClick: true,
+            //增加点位时增加聚合动画(否则会出问题)
+            animateAddingMarkers: true,
+            //最大缩放级别点击聚合图标展开图标
+            spiderfyOnMaxZoom: true
+          })
       } else {
         if (this.myGroup != undefined && this.myGroup != false) {
           this.myGroup.clearLayers()
@@ -702,6 +705,7 @@ export default {
           return
         }
         getSuperMap(this.codes).then(resp => {
+
           let mapList = resp.data
           if (mapList != null && mapList.length > 0) {
             let url = mapList[0].url
@@ -1044,11 +1048,11 @@ export default {
           _that.layers.push(markerClick)
           _that.myGroup = window.L.layerGroup(_that.layers)
         }
-        if (this.myGroup != undefined && this.myGroup != false) {
-          this.map.addLayer(_that.myGroup)
-        }
-        this.map.addLayer(_that.isAggregationLayers)
       }
+      if (_that.myGroup != undefined && _that.myGroup != false) {
+        _that.map.addLayer(_that.myGroup)
+      }
+      _that.map.addLayer(_that.isAggregationLayers)
     },
     setMarkersByType: function(markersList, type) { //地图标点(根据类型,可取消落点 clearMByType方法)
       const _that = this
@@ -1066,7 +1070,7 @@ export default {
         })
         let markerClick = window.L.marker([markersList[i].lat, markersList[i].lng], {
           icon: icon
-        })
+        }).addTo(this.map)
         if (markersList[i].bindPopupHtml != null && markersList[i].bindPopupHtml !== '') {
           let html = markersList[i].bindPopupHtml
           if (keepBindPopup) {
@@ -1225,6 +1229,9 @@ export default {
     dropLocation10: function(lat, lng) { //落点定位
       this.map.flyTo([lat, lng], 10, { duration: 2 })
     },
+    dropLocation5: function(lat, lng) { //落点定位
+      this.map.flyTo([lat, lng], 5, { duration: 2 })
+    },
     controlLevel: function(level) { //控制地图缩放级别
       this.map.setZoom(level)
     },
@@ -1258,24 +1265,29 @@ export default {
     PlottingDrawCancel: function() {
       this.plottingdrawControl.handler.disable()
     },
+    getspuerMapHost(){
+      selectConfigKey('superMap.iserver.plot').then(res => {
+        this.host = res.data;
+      })
+    },
     dynamicPlotting: function() {
       setTimeout(() => {
-        var host = 'https://iserver.supermap.io'
-        var serverUrl = host + '/iserver/services/plot-jingyong/rest/plot/'
+          var host = this.host
+          var serverUrl = host + '/iserver/services/plot-jingyong/rest/plot/'
 
-        var me = this
-        this.plottingLayer = window.L.supermap.plotting.plottingLayer('plot',
-          serverUrl)
-        this.plottingLayer.spatialAnalystUrl =
-          host + '/iserver/services/spatialanalyst-sample/restjsr/spatialanalyst'
-        this.plottingLayer.addTo(this.map)
-        this.plottingdrawControl = window.L.supermap.plotting.drawControl(this
-          .plottingLayer)
-        this.plottingdrawControl.addTo(this.map)
-        var editControl = window.L.supermap.plotting.editControl()
-        editControl.addTo(this.map)
-        window.L.supermap.plotting.initPlotPanel('plotPanel', serverUrl, this
-          .plottingdrawControl)
+          var me = this
+          this.plottingLayer = window.L.supermap.plotting.plottingLayer('plot',
+            serverUrl)
+          this.plottingLayer.spatialAnalystUrl =
+            host + '/iserver/services/spatialanalyst-sample/restjsr/spatialanalyst'
+          this.plottingLayer.addTo(this.map)
+          this.plottingdrawControl = window.L.supermap.plotting.drawControl(this
+            .plottingLayer)
+          this.plottingdrawControl.addTo(this.map)
+          var editControl = window.L.supermap.plotting.editControl()
+          editControl.addTo(this.map)
+          window.L.supermap.plotting.initPlotPanel('plotPanel', serverUrl, this
+            .plottingdrawControl)
       }, 2000)
     }
     /** ----------------------------------动态绘制结束------------------------------------- */
@@ -1285,36 +1297,31 @@ export default {
 
 <style lang="scss" scoped>
 @import '@/assets/styles/base.scss';
+.panel{
+	margin-bottom: .5rem;
+	button{
+		margin-top: .5rem;
+	}
+	.input-group{
+		display: flex;
+		flex-direction: row;
+		align-items: center;
+		.input-group-addon{
+			color: $inBlue;
+			width: 3rem;
+			text-align: right;
 
-.panel {
-  margin-bottom: .5rem;
-
-  button {
-    margin-top: .5rem;
-  }
-
-  .input-group {
-    display: flex;
-    flex-direction: row;
-    align-items: center;
-
-    .input-group-addon {
-      color: $inBlue;
-      width: 3rem;
-      text-align: right;
-
-    }
-
-    .form-control {
-      padding: 0 .3rem;
-      margin-left: .5rem;
-      height: 1.5rem;
-      line-height: 1.5rem;
-      background-color: #112543;
-      color: $inBlue;
-      border: 1px $searchBorder;
-    }
-  }
+		}
+		.form-control{
+			padding: 0 .3rem;
+			margin-left: .5rem;
+			height: 1.5rem;
+			line-height: 1.5rem;
+			background-color: #112543;
+			color: $inBlue;
+			border: 1px $searchBorder;
+		}
+	}
 }
 
 .button-group {

Rozdielové dáta súboru neboli zobrazené, pretože súbor je príliš veľký
+ 1231 - 1203
src/components/vBottomMenu.vue


+ 337 - 189
src/views/eventdetailsdialog.vue

@@ -158,7 +158,7 @@
                                 </el-button>
                               </div>
                               <div class="z-info-btm-grp-right">
-                                <el-button size="small" icon="el-icon-mic">会议
+                                <el-button size="small" icon="el-icon-mic" @click="joinMeeting()">会议
                                 </el-button>
                               </div>
                             </div>
@@ -170,6 +170,27 @@
                                 <div style="text-align:left">
                                   <el-button size="small"
                                              icon="el-icon-s-flag"
+                                             @click="updateCentereventTEventcatalogueStatus('qr',true)">
+                                    确认
+                                  </el-button>
+                                  <el-button size="small"
+                                             icon="el-icon-question"
+                                             @click="updateCentereventTEventcatalogueStatus('wb',false)">
+                                    误报
+                                  </el-button>
+                                  <el-button size="small"
+                                             icon="el-icon-warning"
+                                             @click="updateCentereventTEventcatalogueStatus('cf',false)">
+                                    重复
+                                  </el-button>
+                                </div>
+                                <el-button size="small" icon="el-icon-chat-dot-square" @click="sendEventLog()">发送
+                                </el-button>
+                              </div>
+                              <div class="z-info-btm-input-btn" v-else-if="eventStatusValue=='forest_event_status_7'">
+                                <div style="text-align:left">
+                                  <el-button size="small"
+                                             icon="el-icon-s-flag"
                                              @click="updateCentereventTEventcatalogueStatus('qs',false)">
                                     签收
                                   </el-button>
@@ -215,16 +236,11 @@
                               </div>
                               <div class="z-info-btm-input-btn"
                                    v-else-if="eventStatusValue=='forest_event_status_5'&&dataStatus=='1'">
-                                <el-button size="small" v-if="eventType=='1'"
+                                <el-button size="small"
                                            icon="el-icon-success" style="text-align:left"
                                            @click="updateCentereventTEventcatalogueStatus('gd',false)">
                                   填报
                                 </el-button>
-                                <el-button size="small" v-else
-                                           icon="el-icon-success" style="text-align:left"
-                                           @click="updateCentereventTEventcatalogueStatus('gd',true)">
-                                  归档
-                                </el-button>
                                 <el-button size="small" icon="el-icon-chat-dot-square" @click="sendEventLog()">发送
                                 </el-button>
                               </div>
@@ -253,7 +269,7 @@
                class="top-dialog"
                @close="cancelEventConfirm()">
       <el-form label-width="80px">
-        <el-form-item label="火灾半径" v-if="eventStatusButton=='qs'&&eventType=='1'">
+        <el-form-item label="火灾半径" v-if="eventStatusButton=='qs'">
           <el-input type="number" v-model="sendHuoZaiBanJing" placeholder="请输入火灾半径"/>
         </el-form-item>
         <el-form-item :label="deptNameitem">
@@ -269,7 +285,7 @@
             </el-option>
           </el-select>
         </el-form-item>
-        <el-form-item label="事件类型" v-if="eventStatusButton=='qs'&&eventType=='1'">
+        <el-form-item label="事件类型" v-if="eventStatusButton=='qs'">
           <el-select v-model="sendEventType" placeholder="请选择事件类型!" clearable>
             <el-option
               v-for="item in eventTypeList"
@@ -317,7 +333,7 @@
           ></el-tree>
           <!--            default-expand-all-->
         </el-form-item>
-        <el-form-item label="关联预案" v-if="eventStatusButton=='qs'&&eventType=='1'">
+        <el-form-item label="关联预案" v-if="eventStatusButton=='qs'">
           <el-select v-model="sendGuanLianYuAn" placeholder="请选择关联预案!" clearable>
             <el-option
               v-for="item in guanLianYuAnList"
@@ -327,15 +343,18 @@
             />
           </el-select>
         </el-form-item>
-        <el-form-item label="联系人" v-if="eventStatusButton=='qs'">
-          <el-select multiple collapse-tags v-model='sendUserFegin' placeholder='请选择联系人!' clearable>
-            <el-option
-              v-for="item in userFeginList"
-              :label="item.nickName"
-              :value="item.phonenumber"
-            />
-          </el-select>
-        </el-form-item>
+        <!--<el-form-item label="联系人" v-if="eventStatusButton=='qs'">-->
+          <!--<el-select multiple collapse-tags v-model='sendUserFegin' placeholder='请选择联系人!' clearable filterable>-->
+            <!--<el-option-->
+              <!--v-for="item in userFeginList"-->
+              <!--:label="item.nickName"-->
+              <!--:value="item.phonenumber"-->
+            <!--/>-->
+          <!--</el-select>-->
+        <!--</el-form-item>-->
+        <el-button size="mini" type="primary" v-if="eventStatusButton=='qr'"
+                   @click="updateCentereventTEventcatalogueStatus('qr',false)">确认
+        </el-button>
         <el-button size="mini" type="primary" v-if="eventStatusButton=='qs'"
                    @click="updateCentereventTEventcatalogueStatus('qs',true)">签收
         </el-button>
@@ -390,9 +409,16 @@
               v-if="depteventId!=null&&depteventId!=''"
               @click="addLine">添加
             </el-button>
+            <el-button
+              size="mini"
+              type="danger"
+              v-if="depteventId!=null&&depteventId!=''"
+              @click="finUserByDept">选择
+            </el-button>
             <el-table
               :data="dutysystemTableData"
-              style="width: 100%">
+              style="width: 100%"
+              :rules="rules">
               <el-table-column prop="id" label="主键" v-if="false">
                 <template slot-scope="scope" hidden>
                   <el-input v-model="scope.row.id" readonly placeholder="主键"></el-input>
@@ -400,7 +426,7 @@
               </el-table-column>
               <el-table-column prop="name" label="姓名">
                 <template slot-scope="scope">
-                  <el-input v-model="scope.row.name" placeholder="姓名"></el-input>
+                  <el-input v-model="scope.row.name" placeholder="姓名" οninput="value=value.replace(/^[\u4e00-\u9fa5]{2,4}$/,'')"></el-input>
                 </template>
               </el-table-column>
               <el-table-column prop="post" label="岗位">
@@ -410,7 +436,7 @@
               </el-table-column>
               <el-table-column prop="telphone" label="手机号码">
                 <template slot-scope="scope">
-                  <el-input v-model="scope.row.telphone" placeholder="手机号码"></el-input>
+                  <el-input v-model="scope.row.telphone" placeholder="手机号码" οninput="value=value.replace(/^((13[0-9])|(14[5-9])|(15([0-3]|[5-9]))|(16[6-7])|(17[1-8])|(18[0-9])|(19[1|3])|(19[5|6])|(19[8|9]))\d{8}$/,'')"></el-input>
                 </template>
               </el-table-column>
               <el-table-column prop="bookbuytime" label="操作">
@@ -421,18 +447,18 @@
                     icon="el-icon-delete"
                     @click="handleDelete(scope.$index, scope.row)">删除
                   </el-button>
-                  <el-button
-                    size="mini"
-                    type="danger"
-                    icon="el-icon-save"
-                    @click="handleSave(scope.$index, scope.row)">保存
-                  </el-button>
+                  <!--<el-button-->
+                    <!--size="mini"-->
+                    <!--type="danger"-->
+                    <!--icon="el-icon-save"-->
+                    <!--@click="handleSave(scope.$index, scope.row)">保存-->
+                  <!--</el-button>-->
                 </template>
               </el-table-column>
             </el-table>
           </div>
         </div>
-        <el-button size="mini" type="primary" class="fr_button" @click="closeResponsibilityDialog">确定
+        <el-button size="mini" type="primary" class="fr_button" @click="addResponsibilityDialog">确定
         </el-button>
         <div style="clear: both;"></div>
       </el-form>
@@ -948,6 +974,9 @@
         <div id="playWnd" class="playWnd" style="left: 0px; top: 0px;"></div>
       </div>
     </el-dialog>
+    <el-dialog title="人员选择" :visible.sync="showFindUserByDept" width="40%">
+      <findUserByDept v-if="showFindUserByDept" ref="findUserByDept" :deptId="iconCurrentIndex" @addSelection="addSelection"></findUserByDept>
+    </el-dialog>
   </div>
 </template>
 
@@ -959,6 +988,7 @@ import vBottomMenu from '@/components/vBottomMenu.vue' //一体化公共底部
 import eventLogUpload from '@/views/eventLogUpload.vue' //日志上传文件
 import areaSupermap from '@/components/supermap'//区域标记地图
 import TcPlayer from '@/components/TcPlayer' //视频预览
+import findUserByDept from '@/views/findUserByDept' //责任人选择弹框
 import {
   getEventDetail,
   sendEventLog,
@@ -982,7 +1012,14 @@ import {
 import {
   getHaiKangVideoServer
 } from '@/api/haikang/haikang'
-
+import {
+  hasConferences,
+  createConferences, getUserInfo
+} from "@/api/meeting"
+import {
+  getDahuaVideoServer
+} from '@/api/dahua/dahua'
+import DHWs from '@/dahua/lib/DHWs'
 export default {
   dicts: ['task_source'],
   watch: {
@@ -996,12 +1033,15 @@ export default {
     supermapDialog,
     eventLogUpload,
     areaSupermap,
-    TcPlayer
+    TcPlayer,
+    findUserByDept
   },
   data() {
     return {
+      showFindUserByDept: false,//责任人选择框
       //海康
       cameraTitle: '',
+      cameraCode:'',
       cameraVisible: false,
       initCount: 0,
       pubKey: '',
@@ -1029,9 +1069,9 @@ export default {
       sendLianDongDept: [],//联动部门
       eventTypeList: [],//事件类型列表
       guanLianYuAnList: [],//关联预案列表
+      userFeginList: [],//联系人列表
       deptOptions: [],//签收部门
       deptOptionsLiandong: [],//联动部门
-      userFeginList: [],//联系人列表
       eventStatusButton: null,//流程按钮标识
       eventConfirmTitle: null,//弹窗标题  ---签收 误报  重复
       defaultProps: {
@@ -1134,9 +1174,10 @@ export default {
       eventStatusValue: null,//事件状态
       eventId: null,//事件ID
       eventType: null,//事件类型-大类
-      dataStatus: null,//事件处理流程按钮
-      deptId: null,//事件处理流程部门
+      dataStatus: null,//事件流程按钮
+      deptId: null,//事件流程部门
       eventCode: null,
+      eventName: null,
       longitude: null,
       latitude: null,
       eventLog: null,
@@ -1150,58 +1191,58 @@ export default {
       depteventId: '',
       dutysystemTableData: [],
       radius: 50,//资源搜索半径
-      // resourcesList: [
-      //   {
-      //     resourceName: '取水口',
-      //     type: 'qsk',
-      //     count: '1',
-      //     icon: 'sj-icon-waterintake'
-      //   },
-      //   {
-      //     resourceName: '水鹤',
-      //     type: 'sh',
-      //     icon: 'sj-icon-watercrane'
-      //   },
-      //   {
-      //     resourceName: '消防栓',
-      //     type: 'xfs',
-      //     count: '1',
-      //     icon: 'sj-icon-firehydrant'
-      //   },
-      //   {
-      //     resourceName: '起降点',
-      //     type: 'qjd',
-      //     count: '1',
-      //     icon: 'sj-icon-landing'
-      //   },
-      //   {
-      //     resourceName: '检查站',
-      //     type: 'jcz',
-      //     count: '1',
-      //     icon: 'sj-icon-checkpoint'
-      //   },
-      //   {
-      //     resourceName: '防火队',
-      //     type: 'fhd',
-      //     count: '1',
-      //     icon: 'sj-icon-fireteam'
-      //   },
-      //   {
-      //     resourceName: '重点区域',
-      //     type: 'zdqy',
-      //     count: '1',
-      //     icon: 'sj-icon-tcqh'
-      //   },
-      //   {
-      //     resourceName: '摄像头',
-      //     type: 'sxt',
-      //     count: '1',
-      //     icon: 'camera'
-      //   }
-      // ],
+      resourcesList: [
+        {
+          resourceName: '取水口',
+          type: 'qsk',
+          count: '1',
+          icon: 'sj-icon-waterintake'
+        },
+        {
+          resourceName: '水鹤',
+          type: 'sh',
+          icon: 'sj-icon-watercrane'
+        },
+        {
+          resourceName: '消防栓',
+          type: 'xfs',
+          count: '1',
+          icon: 'sj-icon-firehydrant'
+        },
+        {
+          resourceName: '起降点',
+          type: 'qjd',
+          count: '1',
+          icon: 'sj-icon-landing'
+        },
+        {
+          resourceName: '检查站',
+          type: 'jcz',
+          count: '1',
+          icon: 'sj-icon-checkpoint'
+        },
+        {
+          resourceName: '防火队',
+          type: 'fhd',
+          count: '1',
+          icon: 'sj-icon-fireteam'
+        },
+        {
+          resourceName: '重点区域',
+          type: 'zdqy',
+          count: '1',
+          icon: 'sj-icon-keyAreas'
+        },
+        {
+          resourceName: '摄像头',
+          type: 'sxt',
+          count: '1',
+          icon: 'sj-icon-jkzx'
+        }
+      ],
       resourcesListCheck: [],
       //文本域
-      feedback: ''
+      feedback: '',
 
     }
   },
@@ -1210,6 +1251,12 @@ export default {
     bigEventTypeId: null,//事件大类
     smallEventTypeId: null//事件小类
   },
+  created() {
+    /** ----------------------------------摄像头预览开始------------------------------------- */
+    const DHWsInstance = DHWs.getInstance()
+    this.ws = DHWsInstance
+    /** ----------------------------------摄像头预览结束------------------------------------- */
+  },
   methods: {
     /************************************责任制-开始****************************************/
     addLine: function() {//添加负责人行数
@@ -1224,6 +1271,20 @@ export default {
       //添加新的行数
       this.dutysystemTableData.push(newValue)
     },
+    finUserByDept: function(){ //根据部门选择责任人
+      this.showFindUserByDept=true;
+    },
+    addSelection: function(userList){
+      for (let i in this.dutysystemTableData) {
+        for (let j in userList) {
+          if(this.dutysystemTableData[i].name == userList[j].name && this.dutysystemTableData[i].telphone == userList[j].telphone){
+            userList.splice(j, 1);
+          }
+        }
+      }
+      this.dutysystemTableData = this.dutysystemTableData.concat(userList);
+      this.showFindUserByDept=false;
+    },
     handleDelete: function(index, row) {//删除负责人行数
       if (row.id != null && row.id != '') {
         let param = { ids: row.id }
@@ -1262,8 +1323,8 @@ export default {
           }]
         }
       })
-
     },
+
     showResponsibility() {//弹出责任制弹窗
       let param = { eventCode: this.eventCode }
       centereventtdepteventList(param).then(res => {
@@ -1278,8 +1339,39 @@ export default {
       this.iconCurrentIndex = ''
       this.showResponsibilityDialog = false
     },
+    addResponsibilityDialog() {//责任制保存
+      let reg_user = /^[\u4e00-\u9fa5]{2,4}$/;    //2-4个中文字符正则
+      let reg_tel = /^(13[0-9]|14[01456879]|15[0-35-9]|16[2567]|17[0-8]|18[0-9]|19[0-35-9])\d{8}$/;    //11位手机号码正则
+      for(let i in this.dutysystemTableData){
+        if(!reg_user.test(this.dutysystemTableData[i].name)){
+          this.$message.error(`请输入正确姓名!`)
+          return;
+        }
+        if(!reg_tel.test(this.dutysystemTableData[i].telphone)){
+          this.$message.error(`请输入正确手机号码!`)
+          return;
+        }
+
+        if(this.dutysystemTableData[i].id==null || this.dutysystemTableData[i].id==''){
+          this.dutysystemTableData[i].dept = this.dutysystemDeptName;
+          this.dutysystemTableData[i].depteventId = this.depteventId;
+        }
+      }
+      const param = {centereventTDutySystemList:this.dutysystemTableData,eventCode:this.eventCode,eventName:this.eventName}
+      dutysystemAdd(param).then(res => {
+        this.$message.success(`保存成功!`)
+        this.dutysystemSelect(this.iconCurrentIndex, this.dutysystemDeptName, this.depteventId);
+        this.closeResponsibilityDialog();
+      })
+    },
     /************************************责任制-结束****************************************/
     showheatPlotting() {
+      // if (!this.$refs.supermapDialog.isheatPlotting) {
+      //   this.$refs.supermapDialog.showheatPlotting(this.latitude, this.longitude)
+      // } else {
+      //   this.$refs.supermapDialog.isheatPlotting = false
+      // }
+      // this.cancelEventShow();
       this.eventDialog = false;
       this.$emit('getFirespread', this.eventCode);
     },
@@ -1293,16 +1385,21 @@ export default {
       })
     },
     updateYjYuAn() {
-      let param = { eventCode: this.eventCode, reserve: this.sendGuanLianYuAn }
-      updateYjYuAn(param).then(res => {
-        //事件调整关联预案
-        if (res.code == 200) {
-          this.$message.success(`预案调整成功!`)
-          this.refreshEventDialog(this.eventCode)
-          this.sendGuanLianYuAn = null
-          this.showGuanLianYuAnConfirm = false
-        }
-      })
+      if(this.eventStatusValue=='forest_event_status_1'){
+        this.$message.error(`未签收事件无法修改预案信息,请先签收!`)
+        return
+      }else{
+        let param = { eventCode: this.eventCode, reserve: this.sendGuanLianYuAn }
+        updateYjYuAn(param).then(res => {
+          //事件调整关联预案
+          if (res.code == 200) {
+            this.$message.success(`预案调整成功!`)
+            this.refreshEventDialog(this.eventCode)
+            this.sendGuanLianYuAn = null
+            this.showGuanLianYuAnConfirm = false
+          }
+        })
+      }
     },
     listResourceByWz(type) {
       if (this.resourcesListCheck.indexOf(type) > -1) {
@@ -1311,11 +1408,11 @@ export default {
           this.$refs.supermapDialog.clearMByType(type)
         }, 1000)
       } else {
-        this.resourcesListCheck.push(type)
         //搜索物资
         let param = { longitude: this.longitude, latitude: this.latitude, type: type, radius: this.radius }
         listResourceByWz(param).then(res => {
           if (res.data != null && res.data.length > 0) {
+            this.resourcesListCheck.push(type)
             var markersList = []
             for (let i = 0; i < res.data.length; i++) {
               let markersMap = {
@@ -1344,9 +1441,15 @@ export default {
               } else if (type == 'fhd') {
                 markersMap.icon = 'sj-icon-fireteam'
               } else if (type == 'zdqy') {
-                markersMap.icon = 'sj-icon-tcqh'
+                markersMap.icon = 'sj-icon-keyAreas'
               } else if (type == 'sxt') {
-                markersMap.icon = 'sj-icon-jkzx'
+                markersMap.icon = 'camera'
+                if (res.data[i].cameraCode != null) {
+                  markersMap.click = 'preview'
+                  // markersMap.parameter = res.data[i].cameraCode
+                  markersMap.parameter = {code:res.data.data[i].cameraCode,
+                    type:res.data.data[i].cameraFactory}
+                }
               }
               markersMap.lng = res.data[i].longitude
               markersMap.lat = res.data[i].latitude
@@ -1405,10 +1508,10 @@ export default {
       //关闭事件签收弹窗
       this.sendDeptId = null
       this.sendDeptName = null
+      this.sendUserFegin = []
       this.sendEventType = null
       this.sendHuoZaiBanJing = null
       this.sendGuanLianYuAn = null
-      this.sendUserFegin = []
       this.longitude = null
       this.latitude = null
       this.sendTaskTitle = null
@@ -1428,10 +1531,10 @@ export default {
       //清空表单数据
       this.sendDeptId = null
       this.sendDeptName = null
+      this.sendUserFegin = []
       this.sendEventType = null
       this.sendHuoZaiBanJing = null
       this.sendGuanLianYuAn = null
-      this.sendUserFegin = []
       this.sendTaskTitle = null
       this.sendTaskSource = null
       this.sendTaskContent = null
@@ -1550,7 +1653,7 @@ export default {
      * */
     async updateCentereventTEventcatalogueStatus(eventStatus, isSend) {
       this.eventStatusButton = eventStatus
-      let that = this
+      let that=this
       if (!isSend) {//事件弹窗
         if (eventStatus == 'qs') {//签收
           that.eventConfirmTitle = '事件签收'
@@ -1567,12 +1670,6 @@ export default {
               that.guanLianYuAnList = res.data
             }
           })
-          await userFeginlist().then(res => {
-            //联系人列表
-            if (res.code == 200) {
-              that.userFeginList = res.data
-            }
-          })
           await selectByeventCode(that.eventCode).then(res => {
             //签收部门
             if (res.code == 200) {
@@ -1581,6 +1678,8 @@ export default {
             }
           })
           that.showEventConfirm = true
+        } else if (eventStatus == 'qr') {//确认
+          that.eventConfirmTitle = '事件确认'
         } else if (eventStatus == 'wb') {//误报
           that.eventConfirmTitle = '事件误报'
           await selectByeventCode(that.eventCode).then(res => {
@@ -1668,28 +1767,40 @@ export default {
           })
 
         } else if (eventStatus == 'gd') {
+          let double = /(^[1-9]([0-9]+)?(\.[0-9]{1,2})?$)|(^(0){1}$)|(^[0-9]\.[0-9]([0-9])?$)/;    //数字和两位小数
+          let number = /^[+]{0,1}(\d+)$/g;    //正整数
+
+          if(!double.test(that.table2.areaTotal)){
+            that.$message.error(`面积只能填写到小数后两位!`)
+            return
+          }
+          if(!number.test(that.table2.peopleTotal)){
+            that.$message.error(`人员请填写正整数!`)
+            return
+          }
+          if(that.table2.forestComposition == '' || that.table2.forestComposition==null){
+            that.$message.error(`林木组成不能为空!`)
+            return
+          }
+          if(that.table2.forestToken == '' || that.table2.forestToken==null){
+            that.$message.error(`林令不能为空!`)
+            return
+          }
+            if(that.table2.porosities == '' || that.table2.porosities==null){
+            that.$message.error(`疏密度不能为空!`)
+            return
+          }
+
           //事件处理流程--归档
-          let param = {}
-          if (that.eventType != '1') {
-            param = {
-              deptId: that.deptId,
-              eventCode: that.eventCode,
-              eventStatus: eventStatus,
-              id: that.eventId,
-              czlx: '',
-              array: that.regionalFlagObj.array
-            }
-          } else {
-            param = {
-              deptId: that.deptId,
-              eventCode: that.eventCode,
-              eventStatus: eventStatus,
-              id: that.eventId,
-              czlx: '',
-              forestFireLoss: { eventId: that.eventCode, table1: that.table1 },
-              fireInformation: { eventId: that.eventCode, table2: that.table2 },
-              array: that.regionalFlagObj.array
-            }
+          let param = {
+            deptId: that.deptId,
+            eventCode: that.eventCode,
+            eventStatus: eventStatus,
+            id: that.eventId,
+            czlx: '',
+            forestFireLoss: { eventId: that.eventCode, table1: that.table1 },
+            fireInformation: { eventId: that.eventCode, table2: that.table2 },
+            array: that.regionalFlagObj.array
           }
           updateCentereventTEventcatalogueStatus(param).then(res => {
             if (res.code == 200) {
@@ -1697,7 +1808,8 @@ export default {
               that.refreshEvent(that.eventCode)
               that.cancelEventConfirm_send()
               that.showEventConfirm_gd = false
-              that.$emit('getEventList', that.calendarDay, that.bigEventTypeId, that.smallEventTypeId)
+              that.$emit('getEventList', that.calendarDay, that.bigEventTypeId, that.smallEventTypeId,10,1)
+              that.$emit('getSupermap', that.calendarDay)
             }
           })
         } else {
@@ -1706,15 +1818,22 @@ export default {
               that.$message.error(`请选择部门!`)
               return
             }
-            if (that.eventType != '1') {
-              that.sendEventType = that.smallEventTypeId
+            if (eventStatus == 'qs') {
+              if (that.sendHuoZaiBanJing == '' || that.sendHuoZaiBanJing == null) {
+                that.$message.error(`请输入火灾半径!`)
+                return
+              }
+              if (that.sendEventType == '' || that.sendEventType == null) {
+                that.$message.error(`请选择事件类型!`)
+                return
+              }
             }
           } else {
             that.sendDeptId = that.deptId
           }
           //事件处理流程
           let param = {
-            phones: that.sendUserFegin,
+            phones:that.sendUserFegin,
             eventCode: that.eventCode,
             deptId: that.sendDeptId,
             deptName: that.sendDeptName,
@@ -1722,6 +1841,7 @@ export default {
             eventType: that.sendEventType,
             id: that.eventId,
             czlx: '',
+            cameraCode: that.cameraCode,
             fireRadius: that.sendHuoZaiBanJing,
             reserve: that.sendGuanLianYuAn
           }
@@ -1731,7 +1851,8 @@ export default {
               that.refreshEvent(that.eventCode)
               that.cancelEventConfirm_send()
               that.showEventConfirm = false
-              that.$emit('getEventList', that.calendarDay, that.bigEventTypeId, that.smallEventTypeId)
+              that.$emit('getEventList', that.calendarDay, that.bigEventTypeId, that.smallEventTypeId,10,1)
+              that.$emit('getSupermap', that.calendarDay)
             }
           })
         }
@@ -1744,12 +1865,7 @@ export default {
     },
     sendEventLog() {
       //日志发送
-      let param = {
-        eventCode: this.eventCode,
-        logContent: this.eventLog,
-        operation: 'bus_oper_type_2',
-        operationType: 'log_oper_type_1'
-      }
+      let param = { eventCode: this.eventCode, logContent: this.eventLog,operation:"bus_oper_type_2",operationType:"log_oper_type_1"}
       sendEventLog(param).then(res => {
         if (res.code == 200) {
           this.$message.success(`发送成功!`)
@@ -1762,8 +1878,8 @@ export default {
       this.$refs.eventLogUpload.eventLogUpload(this.eventCode)
     },
     cancelEventShow() {
-      this.deptId = null
       this.dataStatus = null
+      this.deptId = null
       console.log('关闭事件弹窗')
       this.eventLogList = []
     },
@@ -1783,6 +1899,7 @@ export default {
         that.eventId = res.data.catalogue.id
         that.longitude = res.data.catalogue.longitude
         that.latitude = res.data.catalogue.latitude
+        that.eventName = res.data.catalogue.eventName
         let markersMap = {
           lng: 124.59,
           lat: 43.02,
@@ -1805,6 +1922,8 @@ export default {
           markersMap.icon = 'sj-icon-map-banjie'
         } else if (res.data.catalogue.eventStatusValue == 'forest_event_status_6') {
           markersMap.icon = 'sj-icon-map-guidang'
+        } else if (res.data.catalogue.eventStatusValue == 'forest_event_status_7') {
+          markersMap.icon = 'sj-icon-map-queren'
         }
         markersMap.lng = res.data.catalogue.longitude
         markersMap.lat = res.data.catalogue.latitude
@@ -1818,13 +1937,14 @@ export default {
           that.$refs.supermapDialog.dropLocation10(res.data.catalogue.latitude, res.data.catalogue.longitude)
         }, 2000)
         if (res.data.centermonitorTCamera != null) {
+          that.cameraCode = res.data.centermonitorTCamera.cameraCode;
           let markersMap = {
             lng: 124.59,
             lat: 43.02,
             icon: 'camera',
             bindPopupHtml: '',
             click: 'preview',
-            parameter: res.data.centermonitorTCamera.cameraCode,
+            parameter: {code:res.data.centermonitorTCamera.cameraCode,type:res.data.centermonitorTCamera.cameraFactory},
             keepBindPopup: false,
             isAggregation: false,
             radius: 0
@@ -1863,6 +1983,7 @@ export default {
         that.eventId = res.data.catalogue.id
         that.latitude = res.data.catalogue.latitude
         that.longitude = res.data.catalogue.longitude
+        that.eventName = res.data.catalogue.eventName
         let markersMap = {
           lng: 124.59,
           lat: 43.02,
@@ -1885,6 +2006,8 @@ export default {
           markersMap.icon = 'sj-icon-map-banjie'
         } else if (res.data.catalogue.eventStatusValue == 'forest_event_status_6') {
           markersMap.icon = 'sj-icon-map-guidang'
+        } else if (res.data.catalogue.eventStatusValue == 'forest_event_status_7') {
+          markersMap.icon = 'sj-icon-map-queren'
         }
         markersMap.lng = res.data.catalogue.longitude
         markersMap.lat = res.data.catalogue.latitude
@@ -1907,7 +2030,7 @@ export default {
             icon: 'camera',
             bindPopupHtml: '',
             click: 'preview',
-            parameter: res.data.centermonitorTCamera.cameraCode,
+            parameter: {code:res.data.centermonitorTCamera.cameraCode,type:res.data.centermonitorTCamera.cameraFactory},
             keepBindPopup: false,
             isAggregation: false,
             radius: 0
@@ -1939,6 +2062,7 @@ export default {
     },
     // 页面元素转图片
     toImage() {
+      this.$message.success(`正在上传!请稍后...`)
       // 手动创建一个 canvas 标签
       const canvas = document.createElement('canvas')
       // 获取父标签,意思是这个标签内的 DOM 元素生成图片
@@ -1966,7 +2090,6 @@ export default {
       html2canvas(canvasBox, options).then((canvas) => {
         // toDataURL 图片格式转成 base64
         let dataBase64 = canvas.toDataURL('image/png')
-        console.log(dataBase64)
         this.uploadBase64(dataBase64)
       })
       canvasBox.appendChild(toolbar)
@@ -1985,7 +2108,6 @@ export default {
       this.regionalFlagOpen = true
     },
     showAreaLatLng: function(latlng) {//获取火灾区域经纬度
-      console.log(latlng)
       this.regionalFlagObj.array = latlng
       this.$modal.msgSuccess('获取坐标成功!')
     },
@@ -2012,45 +2134,48 @@ export default {
       }
     },
     /** 预览按钮操作 */
-    preview(cameraCode) {
-      let that = this
-      // getDahuaVideoServer().then(newResponse => {
-      //   console.log(newResponse)
-      //   this.ws.detectConnectQt().then(res => {
-      //     if (res) { // 连接客户端成功
-      //       this.alertLogin()
-      //       this.ws.login({
-      //         loginIp: newResponse.loginIp,
-      //         loginPort: newResponse.loginPort,
-      //         userName: newResponse.userName,
-      //         userPwd: newResponse.userPwd,
-      //         token: '',
-      //         https: 1
-      //       })
-      //       this.ws.on('loginState', (res) => {
-      //         this.isLogin = res
-      //         console.log('---res-----', res)
-      //         if (res) {
-      //           this.alertLoginSuccess()
-      //           this.activePanel = 'key2'
-      //           this.realTimeVideoDialog(channelCode)
-      //         } else {
-      //           this.alertLoginFailed()
-      //         }
-      //       })
-      //     } else { // 连接客户端失败
-      //       this.alertReinstall()
-      //     }
-      //   })
-      // })
-      that.cameraVisible = true
-      getHaiKangVideoServer({ cameraCode: cameraCode }).then(newResponse => {
-        that.cameraTitle = '摄像头-' + newResponse.data.cameraName
-        that.initPlugin(newResponse.data.appkey, newResponse.data.loginIp, newResponse.data.secret, newResponse.data.loginPort)
-        setTimeout(function() {
-          that.playhk(newResponse.data.channelCode)
-        }, 5000)
-      })
+    preview(cameraParam) {
+      if(cameraParam.type=='大华'){
+        getDahuaVideoServer().then(newResponse => {
+          console.log(newResponse)
+          this.ws.detectConnectQt().then(res => {
+            if (res) { // 连接客户端成功
+              this.alertLogin()
+              this.ws.login({
+                loginIp: newResponse.loginIp,
+                loginPort: newResponse.loginPort,
+                userName: newResponse.userName,
+                userPwd: newResponse.userPwd,
+                token: '',
+                https: 0
+              })
+              this.ws.on('loginState', (res) => {
+                this.isLogin = res
+                console.log('---res-----', res)
+                if (res) {
+                  this.alertLoginSuccess()
+                  this.activePanel = 'key2'
+                  this.realTimeVideoDialog(cameraParam.code)
+                } else {
+                  this.alertLoginFailed()
+                }
+              })
+            } else { // 连接客户端失败
+              this.alertReinstall()
+            }
+          })
+        })
+      }else if(cameraParam.type=='海康'){
+        let that = this
+        that.cameraVisible = true
+        getHaiKangVideoServer({cameraCode:cameraParam.code}).then(newResponse => {
+          that.cameraTitle = '摄像头-'+newResponse.data.cameraName
+          that.initPlugin(newResponse.data.appkey,newResponse.data.loginIp,newResponse.data.secret,newResponse.data.loginPort)
+          setTimeout(function() {
+            that.playhk(newResponse.data.channelCode)
+          }, 5000)
+        })
+      }
 
     },
     realTimeVideoDialog(cameraParams) { // 调用弹窗实时播放接口
@@ -2088,21 +2213,20 @@ export default {
         },
         cbConnectError: function() { // 创建WebControl实例失败
           that.oWebControl = null
-          $('#playWnd').html('插件未启动,正在尝试启动,请稍候...')
+          $('#playWnd').html('插件未启动,正在尝试启动,请稍候...<a href="./hk/VideoWebPlugin.exe">点击下载插件</a>')
           WebControl.JS_WakeUp('VideoWebPlugin://') // 程序未启动时执行error函数,采用wakeup来启动程序
-          initCount++
-          if (initCount < 3) {
+          that.initCount++
+          if (that.initCount < 3) {
             setTimeout(function() {
               that.initPlugin(newappkey, newloginIp, newsecret, newloginPort)
             }, 3000)
           } else {
-            $('#playWnd').html('插件启动失败,请检查插件是否安装!<a href="./public/hk/VideoWebPlugin.exe">点击下载插件</a>')
+            $('#playWnd').html('插件启动失败,请检查插件是否安装!<a href="./hk/VideoWebPlugin.exe">点击下载插件</a>')
           }
         },
         cbConnectClose: function(bNormalClose) {
           // 异常断开:bNormalClose = false
           // JS_Disconnect正常断开:bNormalClose = true
-          console.log('cbConnectClose')
           that.oWebControl = null
         }
       })
@@ -2187,11 +2311,34 @@ export default {
         }
       })
     },
-//RSA加密
+    //RSA加密
     setEncrypt(value) {
       var encrypt = new JSEncrypt()
       encrypt.setPublicKey(this.pubKey)
       return encrypt.encrypt(value)
+    },
+    //加入华为视频会议方法
+    joinMeeting(){
+      let eventId = this.eventId;
+      let subject = "视频会议";
+      let nickName;
+      getUserInfo().then(res => {
+        nickName = res.data.nickName;
+      });
+      hasConferences(eventId).then(res => {
+        let data = res.data;
+        /**如果没有正在开启的会议会返回空对象**/
+        if(res.code == 200 && Object.keys(data).length === 0){
+          createConferences(eventId,subject).then(res => {
+            let data = res.data;
+            if(res.code == 200){
+              window.open("/hwMeeting/meeting.html?nickName="+encodeURI(encodeURI(nickName))+"&conferenceID="+data.conferenceID+"&password="+data.password);
+            }
+          });
+        }else{
+          window.open("/hwMeeting/meeting.html?nickName="+encodeURI(encodeURI(nickName))+"&conferenceID="+data.conferenceID+"&password="+data.password);
+        }
+      });
     }
     /** ----------------------------------海康摄像头预览结束------------------------------------- */
   }
@@ -2203,6 +2350,7 @@ function cbIntegrationCallBack(oData) {
 }
 </script>
 
+
 <style lang="scss" scoped>
 @import '@/assets/styles/base.scss';
 

+ 113 - 0
src/views/findUserByDept.vue

@@ -0,0 +1,113 @@
+<template>
+  <div class="app-container">
+    <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
+      <el-form-item label="姓名" prop="nickName">
+        <el-input
+          v-model="queryParams.nickName"
+          placeholder="姓名"
+        />
+      </el-form-item>
+      <el-form-item label="手机号" prop="phonenumber">
+        <el-input
+          v-model="queryParams.phonenumber"
+          placeholder="手机号"
+        />
+      </el-form-item>
+      <el-form-item>
+        <el-button type="primary" icon="el-icon-search" size="mini" @click="getList">搜索</el-button>
+        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
+        <el-button icon="el-icon-refresh" size="mini" @click="addSelection">确认</el-button>
+      </el-form-item>
+    </el-form>
+
+    <el-table v-loading="loading" :data="userList"  @selection-change="handleSelectionChange">
+      <el-table-column align="center" type="selection" width="60"></el-table-column>
+      <el-table-column label="姓名" align="center" prop="nickName"></el-table-column>
+      <el-table-column label="岗位" align="center" prop="postName" ></el-table-column>
+      <el-table-column label="手机号" align="center" prop="phonenumber"></el-table-column>
+    </el-table>
+  </div>
+</template>
+
+<script>
+  import {userFeginlist} from "@/api/forest";
+
+  export default {
+    name: "findUserByDept",
+    data() {
+      return {
+        // 遮罩层
+        loading: true,
+        // 选中数组
+        ids: [],
+        // 非单个禁用
+        single: true,
+        // 非多个禁用
+        multiple: false,
+        // 显示搜索条件
+        showSearch: true,
+        // 总条数
+        total: 0,
+        // 可视化前端配置表表格数据
+        userList: [],
+        // 弹出层标题
+        title: "",
+        // 是否显示弹出层
+        open: false,
+        // 查询参数
+        queryParams: {
+          deptId: null,
+          nickName:null,
+          phonenumber:null
+        },
+        // 表单参数
+        form: {},
+        resUser:[],
+      };
+    },
+    props: {
+      deptId: {
+        type: String,
+        required: true
+      },
+    },
+    created() {
+      this.queryParams.deptId = this.deptId;
+      this.getList();
+    },
+    methods: {
+      /** 查询可视化前端配置表列表 */
+      getList() {
+        this.loading = true;
+        userFeginlist(this.queryParams).then(response => {
+          this.userList = response.data;
+          this.loading = false;
+        });
+      },
+      /** 重置按钮操作 */
+      resetQuery() {
+        this.queryParams.nickName=null;
+        this.queryParams.phonenumber=null;
+        this.getList();
+      },
+      // 多选框选中数据
+      handleSelectionChange(selection) {
+        this.resUser = [];
+        for (let i in selection){
+          const res = {};
+          res.id = '';
+          res.dept = '';
+          res.depteventId = '';
+          res.name = selection[i].nickName;
+          res.post = selection[i].postName;
+          res.telphone = selection[i].phonenumber;
+          this.resUser.push(res);
+        }
+      },
+      //数据提交到父页
+      addSelection(){
+        this.$emit("addSelection",this.resUser);
+      }
+    }
+  };
+</script>

Rozdielové dáta súboru neboli zobrazené, pretože súbor je príliš veľký
+ 1615 - 1492
src/views/firespread.vue


+ 316 - 143
src/views/forest.vue

@@ -16,7 +16,7 @@
                 <el-collapse-item v-for="(item,index) in villageTypeXlList" :key="index">
                   <template slot="title">
                     <div class="d-l-con sj-collapse" :class="{on:listCurrentIndex1==item.id}"
-                         v-on:click="getEventList(calendarDay,item.parentId,item.id)">
+                         v-on:click="getEventList(calendarDay,item.parentId,item.id,10,1);getSupermap(calendarDay);">
                       <div class="d-l-l-text">
                         <h4 class="collapse-title">{{ item.name }}</h4>
                       </div>
@@ -59,12 +59,13 @@
                 <span>事件列表</span>
                 <dv-decoration-3 style="width:150px;height:15px;margin-right: 1rem;"/>
               </div>
-              <div class="i-list-con small-bottom-margin h-44">
+              <div class="i-list-con small-bottom-margin h-43">
                 <div class="event-list-search">
                   <el-input
                     placeholder="请输入内容"
                     prefix-icon="el-icon-search"
-                    v-model="eventSearch" @change="searchEvent(eventSearch)">
+                    v-model="eventSearch"
+                    @change="getEventList(calendarDay,10,1,eventSearch)">
                   </el-input>
                 </div>
                 <div class="d-l-con padding-box nowrap" v-for="(item,index) in eventList"
@@ -119,6 +120,12 @@
                         归档
                       </div>
                     </div>
+                    <div v-if="item.eventStatusValue=='forest_event_status_7'" class="event-state-qr">
+                      <i class="el-icon-caret-left"></i>
+                      <div class="event-list-state-qr">
+                        归档
+                      </div>
+                    </div>
                     <div class="bgt-info-name">{{ item.reportor }} {{ item.eventName }}</div>
                     <div class="bgt-info-place">
                       <ul>
@@ -128,6 +135,14 @@
                   </div>
                 </div>
               </div>
+              <!--分页-->
+              <div class="paging">
+                <el-button type="button" @click="getEventList(calendarDay,bigEventTypeId,smallEventTypeId,pageSize,pageNum-1)">上一页
+                </el-button>
+                <!-- <span>第0页</span> -->
+                <el-button type="button" @click="getEventList(calendarDay,bigEventTypeId,smallEventTypeId,pageSize,pageNum+1)">下一页
+                </el-button>
+              </div>
             </dv-border-box-13>
           </div>
         </div>
@@ -141,6 +156,7 @@
                         @getEventList="getEventList"></eventdetailsdialog>
 
     <firespread ref="firespread" :calendarDay="calendarDay" @getEventList="getEventList" @showEventDialog="showEventDialog"></firespread>
+
     <eventLocation ref="eventLocation"></eventLocation>
     <TVWall ref="TVWall"></TVWall>
   </div>
@@ -155,7 +171,9 @@ import Cookies from 'js-cookie'
 import {
   getEventList
 } from '@/api/forest'
-
+import {
+  getNearEventByEventId
+} from '@/api/event'
 import {
   getEventByEventType
 } from '@/api/village'
@@ -205,14 +223,15 @@ export default {
   },
   mounted() {
     this.getEventByEventType(this.getCurrentDataStr())
-    this.getEventList(this.getCurrentDataStr(),0,0)
+    this.getEventList(this.getCurrentDataStr(),this.bigEventTypeId,this.smallEventTypeId,this.pageSize,this.pageNum,'')
+    this.getSupermap(this.getCurrentDataStr());
     /** ----------------------------------weosocket开始------------------------------------- */
     // this.initWebSocket()
     /** ----------------------------------weosocket结束------------------------------------- */
     this.selectTaskList()//获取任务
     setInterval(() => {
       if(this.calendarDay == this.getCurrentDataStr()){
-        this.getEventList(this.getCurrentDataStr(),0,0,true);
+        this.getEventList(this.getCurrentDataStr(),this.bigEventTypeId,this.smallEventTypeId,this.pageSize,this.pageNum,this.eventSearch,true);//day, bigEventTypeId,smallEventTypeId, pageSize, pageNum, eventSearch, loading
         this.getEventByEventType(this.getCurrentDataStr(),true);
       }
     }, 10000)
@@ -224,14 +243,16 @@ export default {
       calendarDay: this.getCurrentDataStr(),
       //左侧部门事件数量
       villageTypeXlList: [],
+      pageSize: 10,
+      pageNum: 1,
       //右侧事件列表
       eventList: [],
       eventListnew: [],
       eventListAll: [],
       eventSearch: '',//事件列表搜索
-      listCurrentIndex1: '',
-      bigEventTypeId: '',
-      smallEventTypeId: '',
+      listCurrentIndex1: 0,
+      bigEventTypeId: 0,
+      smallEventTypeId: 0,
       /** ----------------------------------weosocket开始------------------------------------- */
       weosocket: false,
       websock: '',
@@ -257,103 +278,103 @@ export default {
   },
   /** ----------------------------------weosocket结束------------------------------------- */
   methods: {
-    searchEvent(eventSearch) {
-      let that = this
-      //事件列表搜索
-      this.eventListnew = []
-      if (eventSearch != null && eventSearch != '') {
-        for (var i = 0; i < this.eventListAll.length; i++) {
-          if (this.eventListAll[i].reportor.indexOf(eventSearch) > -1) {
-            this.eventListnew.push(this.eventListAll[i])
-          }
-        }
-        this.eventList = this.eventListnew
-      } else {
-        this.eventList = this.eventListAll
-      }
-      if (this.eventList != null && this.eventList.length > 0) {
-        for (let i = 0; i < this.eventList.length; i++) {
-          let markersMap = {
-            lng: 124.59,
-            lat: 43.02,
-            icon: 'marker',
-            bindPopupHtml: '',
-            click: '',
-            parameter: '',
-            keepBindPopup: false,
-            isAggregation: false
-          }
-          if (this.eventList.length > 200) {
-            markersMap.isAggregation = true
-          }
-          if (this.eventList[i].eventStatusValue == 'forest_event_status_1' && this.eventList[i].urgeCount == 0) {
-            markersMap.click = 'showEventDialog'
-            markersMap.icon = 'sj-icon-map-xinshangbao'
-          }
-          if (this.eventList[i].eventStatusValue == 'forest_event_status_1' && this.eventList[i].urgeCount > 0) {
-            markersMap.click = 'showEventDialog'
-            markersMap.icon = 'sj-icon-map-cuiban'
-          } else if (this.eventList[i].eventStatusValue == 'forest_event_status_2') {
-            markersMap.click = 'showEventDialog'
-            markersMap.icon = 'sj-icon-map-qianshou'
-            markersMap.isAggregation = false
-          } else if (this.eventList[i].eventStatusValue == 'forest_event_status_5') {
-            markersMap.click = 'showEventDialog'
-            markersMap.icon = 'sj-icon-map-banjie'
-            markersMap.isAggregation = false
-          } else if (this.eventList[i].eventStatusValue == 'forest_event_status_6') {
-            markersMap.click = 'showEventDialog'
-            markersMap.icon = 'sj-icon-map-guidang'
-          }
-          markersMap.parameter = this.eventList[i].eventCode
-          markersMap.lng = this.eventList[i].longitude
-          markersMap.lat = this.eventList[i].latitude
-          markersMap.bindPopupHtml = '<div class="map-tip">' +
-            '<span>' +
-            '                  <div class="d-l-con">' +
-            '                  <div class="d-l-l-text">' +
-            '                  <h4>经纬度:' + this.eventList[i].longitude + ',' + this.eventList[i].latitude + '</h4>' +
-            '                </div>' +
-            '                </div>' +
-            '                </span>' +
-            '<span>' +
-            '                  <div class="d-l-con">' +
-            '                  <div class="d-l-l-text">' +
-            '                  <h4>事件名称:' + this.eventList[i].eventName + '</h4>' +
-            '                </div>' +
-            '                </div>' +
-            '                </span>' +
-            '<span>' +
-            '                  <div class="d-l-con">' +
-            '                  <div class="d-l-l-text">' +
-            '                  <h4>事件时间:' + this.eventList[i].createTime + '</h4>' +
-            '                </div>' +
-            '                </div>' +
-            '                </span>'
-          if (this.eventList[i].picturePath != null && this.eventList[i].picturePath != '' && this.eventList[i].pictureType=='image') {
-            markersMap.bindPopupHtml += '<span>' +
-              '                  <div class="d-l-con">' +
-              '                  <div class="d-l-l-text">' +
-              '<img src="' + this.eventList[i].picturePath + '" style="width: 150px;height: 100px"/>' +
-              '                </div>' +
-              '                </div>' +
-              '                </span>'
-          }
-          markersMap.bindPopupHtml += '</div>'
-          that.markersList.push(markersMap)
-        }
-        setTimeout(() => {
-          that.$refs.supermap.clearM(false)
-          that.$refs.supermap.clearM(true)
-          that.$refs.supermap.setMarkers(that.markersList)
-        }, 2000)
-      } else {
-        setTimeout(() => {
-          that.$refs.supermap.clearM(false)
-          that.$refs.supermap.clearM(true)
-        }, 2000)
-      }
-    },
+    // searchEvent(eventSearch) {
+    //   let that = this
+    //   //事件列表搜索
+    //   this.eventListnew = []
+    //   if (eventSearch != null && eventSearch != '') {
+    //     for (var i = 0; i < this.eventListAll.length; i++) {
+    //       if (this.eventListAll[i].reportor.indexOf(eventSearch) > -1) {
+    //         this.eventListnew.push(this.eventListAll[i])
+    //       }
+    //     }
+    //     this.eventList = this.eventListnew
+    //   } else {
+    //     this.eventList = this.eventListAll
+    //   }
+    //   if (this.eventList != null && this.eventList.length > 0) {
+    //     for (let i = 0; i < this.eventList.length; i++) {
+    //       let markersMap = {
+    //         lng: 124.59,
+    //         lat: 43.02,
+    //         icon: 'marker',
+    //         bindPopupHtml: '',
+    //         click: '',
+    //         parameter: '',
+    //         keepBindPopup: false,
+    //         isAggregation: false
+    //       }
+    //       if (this.eventList.length > 200) {
+    //         markersMap.isAggregation = true
+    //       }
+    //       if (this.eventList[i].eventStatusValue == 'forest_event_status_1' && this.eventList[i].urgeCount == 0) {
+    //         markersMap.click = 'showEventDialog'
+    //         markersMap.icon = 'sj-icon-map-xinshangbao'
+    //       }
+    //       if (this.eventList[i].eventStatusValue == 'forest_event_status_1' && this.eventList[i].urgeCount > 0) {
+    //         markersMap.click = 'showEventDialog'
+    //         markersMap.icon = 'sj-icon-map-cuiban'
+    //       } else if (this.eventList[i].eventStatusValue == 'forest_event_status_2') {
+    //         markersMap.click = 'showEventDialog'
+    //         markersMap.icon = 'sj-icon-map-qianshou'
+    //         markersMap.isAggregation = false
+    //       } else if (this.eventList[i].eventStatusValue == 'forest_event_status_5') {
+    //         markersMap.click = 'showEventDialog'
+    //         markersMap.icon = 'sj-icon-map-banjie'
+    //         markersMap.isAggregation = false
+    //       } else if (this.eventList[i].eventStatusValue == 'forest_event_status_6') {
+    //         markersMap.click = 'showEventDialog'
+    //         markersMap.icon = 'sj-icon-map-guidang'
+    //       }
+    //       markersMap.parameter = this.eventList[i].eventCode
+    //       markersMap.lng = this.eventList[i].longitude
+    //       markersMap.lat = this.eventList[i].latitude
+    //       markersMap.bindPopupHtml = '<div class="map-tip">' +
+    //         '<span>' +
+    //         '                  <div class="d-l-con">' +
+    //         '                  <div class="d-l-l-text">' +
+    //         '                  <h4>经纬度:' + this.eventList[i].longitude + ',' + this.eventList[i].latitude + '</h4>' +
+    //         '                </div>' +
+    //         '                </div>' +
+    //         '                </span>' +
+    //         '<span>' +
+    //         '                  <div class="d-l-con">' +
+    //         '                  <div class="d-l-l-text">' +
+    //         '                  <h4>事件名称:' + this.eventList[i].eventName + '</h4>' +
+    //         '                </div>' +
+    //         '                </div>' +
+    //         '                </span>' +
+    //         '<span>' +
+    //         '                  <div class="d-l-con">' +
+    //         '                  <div class="d-l-l-text">' +
+    //         '                  <h4>事件时间:' + this.eventList[i].createTime + '</h4>' +
+    //         '                </div>' +
+    //         '                </div>' +
+    //         '                </span>'
+    //       if (this.eventList[i].picturePath != null && this.eventList[i].picturePath != '' && this.eventList[i].pictureType=='image') {
+    //         markersMap.bindPopupHtml += '<span>' +
+    //           '                  <div class="d-l-con">' +
+    //           '                  <div class="d-l-l-text">' +
+    //           '<img src="' + this.eventList[i].picturePath + '" style="width: 150px;height: 100px"/>' +
+    //           '                </div>' +
+    //           '                </div>' +
+    //           '                </span>'
+    //       }
+    //       markersMap.bindPopupHtml += '</div>'
+    //       that.markersList.push(markersMap)
+    //     }
+    //     setTimeout(() => {
+    //       that.$refs.supermap.clearM(false)
+    //       that.$refs.supermap.clearM(true)
+    //       that.$refs.supermap.setMarkers(that.markersList)
+    //     }, 2000)
+    //   } else {
+    //     setTimeout(() => {
+    //       that.$refs.supermap.clearM(false)
+    //       that.$refs.supermap.clearM(true)
+    //     }, 2000)
+    //   }
+    // },
     dropLocation(lat, lng) {
       this.$refs.supermap.dropLocation(lat, lng)
     },
@@ -375,7 +396,8 @@ export default {
     },
     selectDay(day) {//日历点击
       this.getEventByEventType(day)
-      this.getEventList(day,0,0)
+      this.getEventList(day,0,0,10,1,'')
+      this.getSupermap(day);
       this.calendarDay = day
     },
 
@@ -389,28 +411,12 @@ export default {
         this.villageTypeXlList = res.data
       })
     },
-    getEventList(day,bigEventTypeId,smallEventTypeId,loading) {
-      this.listCurrentIndex1=smallEventTypeId
-      this.bigEventTypeId=bigEventTypeId
-      this.smallEventTypeId=smallEventTypeId
+    getSupermap(day, loading) {
       let that = this
-      this.eventList = []
-      this.eventListAll = []
-      //右侧获取事件列表
-      getEventList({
-        day: day,
-        eventTypeIdDl: [bigEventTypeId],
-        eventTypeId: [smallEventTypeId]
-      },loading).then(res => {
-        this.eventList = res.data
-        this.eventListAll = res.data
-        that.markersList = []
-        if (this.eventList != null && this.eventList.length > 0) {
-          if(this.eventList[0].eventStatusValue == 'forest_event_status_1'){
-            that.$refs.bottomMenu.updateAlert();
-            that.$refs.up.play();
-          }
-          for (let i = 0; i < this.eventList.length; i++) {
+      getNearEventByEventId(this.bigEventTypeId, this.smallEventTypeId, day, loading).then(res => {
+        that.markersList = [];
+        if (res.data != null && res.data.length > 0) {
+          for (let i = 0; i < res.data.length; i++) {
             let markersMap = {
               lng: 124.59,
               lat: 43.02,
@@ -421,58 +427,61 @@ export default {
               keepBindPopup: false,
               isAggregation: false
             }
-            if (this.eventList.length > 200) {
+            if (res.data.length > 200) {
               markersMap.isAggregation = true
             }
-            if (this.eventList[i].eventStatusValue == 'forest_event_status_1' && this.eventList[i].urgeCount == 0) {
+            if (res.data[i].eventStatusValue == 'forest_event_status_1' && res.data[i].urgeCount == 0) {
               markersMap.click = 'showEventDialog'
               markersMap.icon = 'sj-icon-map-xinshangbao'
             }
-            if (this.eventList[i].eventStatusValue == 'forest_event_status_1' && this.eventList[i].urgeCount > 0) {
+            if (res.data[i].eventStatusValue == 'forest_event_status_1' && res.data[i].urgeCount > 0) {
               markersMap.click = 'showEventDialog'
               markersMap.icon = 'sj-icon-map-cuiban'
-            } else if (this.eventList[i].eventStatusValue == 'forest_event_status_2') {
+            } else if (res.data[i].eventStatusValue == 'forest_event_status_2') {
               markersMap.click = 'showEventDialog'
               markersMap.icon = 'sj-icon-map-qianshou'
               markersMap.isAggregation = false
-            } else if (this.eventList[i].eventStatusValue == 'forest_event_status_5') {
+            } else if (res.data[i].eventStatusValue == 'forest_event_status_5') {
               markersMap.click = 'showEventDialog'
               markersMap.icon = 'sj-icon-map-banjie'
               markersMap.isAggregation = false
-            } else if (this.eventList[i].eventStatusValue == 'forest_event_status_6') {
+            } else if (res.data[i].eventStatusValue == 'forest_event_status_6') {
               markersMap.click = 'showEventDialog'
               markersMap.icon = 'sj-icon-map-guidang'
+            } else if (res.data[i].eventStatusValue == 'forest_event_status_7') {
+              markersMap.click = 'showEventDialog'
+              markersMap.icon = 'sj-icon-map-queren'
             }
-            markersMap.parameter = this.eventList[i].eventCode
-            markersMap.lng = this.eventList[i].longitude
-            markersMap.lat = this.eventList[i].latitude
+            markersMap.parameter = res.data[i].eventCode
+            markersMap.lng = res.data[i].longitude
+            markersMap.lat = res.data[i].latitude
             markersMap.bindPopupHtml = '<div class="map-tip">' +
               '<span>' +
               '                  <div class="d-l-con">' +
               '                  <div class="d-l-l-text">' +
-              '                  <h4>经纬度:' + this.eventList[i].longitude + ',' + this.eventList[i].latitude + '</h4>' +
+              '                  <h4>经纬度:' + res.data[i].longitude + ',' + res.data[i].latitude + '</h4>' +
               '                </div>' +
               '                </div>' +
               '                </span>' +
               '<span>' +
               '                  <div class="d-l-con">' +
               '                  <div class="d-l-l-text">' +
-              '                  <h4>事件名称:' + this.eventList[i].eventName + '</h4>' +
+              '                  <h4>事件名称:' + res.data[i].eventName + '</h4>' +
               '                </div>' +
               '                </div>' +
               '                </span>' +
               '<span>' +
               '                  <div class="d-l-con">' +
               '                  <div class="d-l-l-text">' +
-              '                  <h4>事件时间:' + this.eventList[i].createTime + '</h4>' +
+              '                  <h4>事件时间:' + res.data[i].createTime + '</h4>' +
               '                </div>' +
               '                </div>' +
-              '                </span>'
-            if (this.eventList[i].picturePath != null && this.eventList[i].picturePath != '' && this.eventList[i].pictureType=='image') {
+              '                </span>';
+            if (res.data[i].pictureType == 'image' && res.data[i].picturePath != null && res.data[i].picturePath != '') {
               markersMap.bindPopupHtml += '<span>' +
                 '                  <div class="d-l-con">' +
                 '                  <div class="d-l-l-text">' +
-                '<img src="' + this.eventList[i].picturePath + '" style="width: 150px;height: 100px"/>' +
+                '<img src="' + res.data[i].picturePath + '" style="width: 150px;height: 100px"/>' +
                 '                </div>' +
                 '                </div>' +
                 '                </span>'
@@ -493,6 +502,142 @@ export default {
         }
       })
     },
+    // getEventList(day,bigEventTypeId,smallEventTypeId,loading) {
+    //   this.listCurrentIndex1=smallEventTypeId
+    //   this.bigEventTypeId=bigEventTypeId
+    //   this.smallEventTypeId=smallEventTypeId
+    //   let that = this
+    //   this.eventList = []
+    //   this.eventListAll = []
+    //   //右侧获取事件列表
+    //   getEventList({
+    //     day: day,
+    //     eventTypeIdDl: [bigEventTypeId],
+    //     eventTypeId: [smallEventTypeId]
+    //   },loading).then(res => {
+    //     this.eventList = res.data
+    //     this.eventListAll = res.data
+    //     that.markersList = []
+    //     if (this.eventList != null && this.eventList.length > 0) {
+    //       if(this.eventList[0].eventStatusValue == 'forest_event_status_1'){
+    //         that.$refs.bottomMenu.updateAlert();
+    //         that.$refs.up.play();
+    //       }
+    //       for (let i = 0; i < this.eventList.length; i++) {
+    //         let markersMap = {
+    //           lng: 124.59,
+    //           lat: 43.02,
+    //           icon: 'marker',
+    //           bindPopupHtml: '',
+    //           click: '',
+    //           parameter: '',
+    //           keepBindPopup: false,
+    //           isAggregation: false
+    //         }
+    //         if (this.eventList.length > 200) {
+    //           markersMap.isAggregation = true
+    //         }
+    //         if (this.eventList[i].eventStatusValue == 'forest_event_status_1' && this.eventList[i].urgeCount == 0) {
+    //           markersMap.click = 'showEventDialog'
+    //           markersMap.icon = 'sj-icon-map-xinshangbao'
+    //         }
+    //         if (this.eventList[i].eventStatusValue == 'forest_event_status_1' && this.eventList[i].urgeCount > 0) {
+    //           markersMap.click = 'showEventDialog'
+    //           markersMap.icon = 'sj-icon-map-cuiban'
+    //         } else if (this.eventList[i].eventStatusValue == 'forest_event_status_2') {
+    //           markersMap.click = 'showEventDialog'
+    //           markersMap.icon = 'sj-icon-map-qianshou'
+    //           markersMap.isAggregation = false
+    //         } else if (this.eventList[i].eventStatusValue == 'forest_event_status_5') {
+    //           markersMap.click = 'showEventDialog'
+    //           markersMap.icon = 'sj-icon-map-banjie'
+    //           markersMap.isAggregation = false
+    //         } else if (this.eventList[i].eventStatusValue == 'forest_event_status_6') {
+    //           markersMap.click = 'showEventDialog'
+    //           markersMap.icon = 'sj-icon-map-guidang'
+    //         }
+    //         markersMap.parameter = this.eventList[i].eventCode
+    //         markersMap.lng = this.eventList[i].longitude
+    //         markersMap.lat = this.eventList[i].latitude
+    //         markersMap.bindPopupHtml = '<div class="map-tip">' +
+    //           '<span>' +
+    //           '                  <div class="d-l-con">' +
+    //           '                  <div class="d-l-l-text">' +
+    //           '                  <h4>经纬度:' + this.eventList[i].longitude + ',' + this.eventList[i].latitude + '</h4>' +
+    //           '                </div>' +
+    //           '                </div>' +
+    //           '                </span>' +
+    //           '<span>' +
+    //           '                  <div class="d-l-con">' +
+    //           '                  <div class="d-l-l-text">' +
+    //           '                  <h4>事件名称:' + this.eventList[i].eventName + '</h4>' +
+    //           '                </div>' +
+    //           '                </div>' +
+    //           '                </span>' +
+    //           '<span>' +
+    //           '                  <div class="d-l-con">' +
+    //           '                  <div class="d-l-l-text">' +
+    //           '                  <h4>事件时间:' + this.eventList[i].createTime + '</h4>' +
+    //           '                </div>' +
+    //           '                </div>' +
+    //           '                </span>'
+    //         if (this.eventList[i].picturePath != null && this.eventList[i].picturePath != '' && this.eventList[i].pictureType=='image') {
+    //           markersMap.bindPopupHtml += '<span>' +
+    //             '                  <div class="d-l-con">' +
+    //             '                  <div class="d-l-l-text">' +
+    //             '<img src="' + this.eventList[i].picturePath + '" style="width: 150px;height: 100px"/>' +
+    //             '                </div>' +
+    //             '                </div>' +
+    //             '                </span>'
+    //         }
+    //         markersMap.bindPopupHtml += '</div>'
+    //         that.markersList.push(markersMap)
+    //       }
+    //       setTimeout(() => {
+    //         that.$refs.supermap.clearM(false)
+    //         that.$refs.supermap.clearM(true)
+    //         that.$refs.supermap.setMarkers(that.markersList)
+    //       }, 2000)
+    //     } else {
+    //       setTimeout(() => {
+    //         that.$refs.supermap.clearM(false)
+    //         that.$refs.supermap.clearM(true)
+    //       }, 2000)
+    //     }
+    //   })
+    // },
+
+    getEventList(day, bigEventTypeId,smallEventTypeId, pageSize, pageNum, eventSearch, loading) {
+      this.listCurrentIndex1=smallEventTypeId
+      this.bigEventTypeId=bigEventTypeId
+      this.smallEventTypeId=smallEventTypeId
+      if (pageNum < 1) {
+        this.$modal.msg('当前已是第一页')
+        return;
+      }
+      this.pageSize = pageSize;
+      this.pageNum = pageNum;
+      let that = this
+      this.eventList = []
+      //右侧获取事件列表
+      getEventList({day: day,
+        eventTypeIdDl: [bigEventTypeId],
+        eventTypeId: [smallEventTypeId],
+        pageSize: pageSize, pageNum: pageNum, eventName: eventSearch}, loading).then(res => {
+        this.eventList = res.data
+        if (this.eventList != null && this.eventList.length > 0) {
+          if (this.eventList[0].eventStatusValue == 'forest_event_status_1') {
+            that.$refs.bottomMenu.updateAlert();
+            that.$refs.up.play();
+          } else {
+            that.$refs.bottomMenu.updateAlertFalse();
+          }
+        }
+      })
+    },
+
+
+
     stopAudio(){
       this.$refs.up.pause();//停止播放音乐
       this.$refs.up.currentTime = 0;
@@ -673,5 +818,33 @@ export default {
 
 <style rel="stylesheet/scss" lang="scss" scoped>
 @import '@/assets/styles/base.scss';
+.paging {
+  padding: .5rem .3rem;
+  display: flex;
+  justify-content: center;
+  align-content: center;
+
+  span {
+    color: #2bacf7;
+    display: flex;
+    align-items: center;
+    padding: 0 1rem;
+  }
+
+  button {
+    padding: 0 0.3rem;
+    height: 1.5rem;
+    background-color: #112543;
+    color: #2bacf7;
+    border: 1px solid #33467f;
+  }
+  button:hover {
+    padding: 0 0.3rem;
+    height: 1.5rem;
+    background-color: #112543;
+    color: #0ff7c5;
+    border: 1px solid #1d657f;
+  }
+}
 </style>
 

+ 2 - 1
vue.config.js

@@ -52,7 +52,8 @@ module.exports = {
     proxy: {
       // detail: https://cli.vuejs.org/config/#devserver-proxy
       [process.env.VUE_APP_BASE_API]: {
-        target: `http://117.78.49.164:3031`,
+        // target: `http://117.78.49.164:3031`,
+        target: `http://127.0.0.1:3031`,
         changeOrigin: true,
         pathRewrite: {
           ['^' + process.env.VUE_APP_BASE_API]: ''