Selaa lähdekoodia

Merge remote-tracking branch 'origin/visu_forest_0_1' into visu_forest_0_1

wangzhe 2 vuotta sitten
vanhempi
commit
deb161966e

Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 2
public/hwMeeting/HWMeeting.js


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 1
public/hwMeeting/bulma.min.css


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 1015
public/hwMeeting/meeting-en.html


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 1032
public/hwMeeting/meeting.html


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 1
public/hwMeeting/moment.min.js


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 26292
public/hwMeeting/react-dom.development.js


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 3357
public/hwMeeting/react.development.js


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

@@ -14,6 +14,14 @@ export function getCenterdataTSupermapBlockBySmID(smid){
   })
 }
 
+export function getCenterdataTSupermapBlockBySBT(query){
+  return request({
+    url: '/sooka-sponest-center-data/supermapBlock/getCenterdataTSupermapBlock',
+    method: 'get',
+    params: query
+  })
+}
+
 export const iconList = {
   'marker': require('@/assets/images/cameraType/marker.png'),
   'big-horn': require('@/assets/images/cameraType/big-horn.png'),

+ 19 - 1
src/api/forest.js

@@ -304,6 +304,24 @@ export function eventHandling(id,eventCode) {
   return request({
     url: '/center-fire/VisuForestEventCenterController/eventHandling',
     method: 'post',
-    data: {id:id,eventCode:eventCode,dataStatus:"1"}
+    data: { id: id, eventCode: eventCode, dataStatus: "1" }
   })
 }
+  //
+  export function initByCameras(param) {
+    return request({
+      url: '/center-monitor/TVWallController/initByCameras',
+      method: 'get',
+      params:param
+    })
+
+}
+// export function initByCameras(param) {
+//   return request({
+//     url: '/center-fire/VisuForestMonitorCenterController/findCameraByEventCoordinate',
+//     method: 'get',
+//     params:param
+//   })
+
+// }
+

+ 1 - 1
src/api/leader.js

@@ -45,7 +45,7 @@ export function getRecordList(taskId) {
 // 巡林轨迹
 export function getPointList(recordId) {
   return request({
-    url: '/center-data/track/getTrack/'+recordId.toString(),
+    url: '/center-data/patrolTrack/getTrack/'+recordId.toString(),
     method: 'get',
   })
 }

+ 4 - 4
src/api/monitor.js

@@ -40,8 +40,8 @@ export function getRegionalFlag(id) {
 
 //获取点位周边摄像头
 export function findCameraByEventCoordinate(longitude,latitude) {
-  longitude = '124.41986560821533';
-  latitude = '43.08817137032747';
+  // longitude = '124.41986560821533';
+  // latitude = '43.08817137032747';
   return request({
     url: '/center-fire/VisuForestMonitorCenterController/findCameraByEventCoordinate?longitude='+longitude+"&latitude="+latitude+"&type=1",
     method: 'get',
@@ -50,8 +50,8 @@ export function findCameraByEventCoordinate(longitude,latitude) {
 
 //转到固定点位
 export function rotation(lng,lat,list) {
-  lng = '124.41986560821533';
-  lat = '43.08817137032747';
+  // lng = '124.41986560821533';
+  // lat = '43.08817137032747';
   return request({
     url: '/center-fire/VisuForestMonitorCenterController/rotation',
     method: 'post',

+ 23 - 0
src/api/vBottomMenu.js

@@ -1,6 +1,15 @@
 import request from '@/utils/request'
 
 
+// 获取林场层级树结构
+export function userDeptSelect(param) {
+  return request({
+    url: '/system/dept/userAllDeptSelectIncludeChildren',
+    method: 'get'
+  })
+}
+
+
 // 获取林场列表
 export function selectFarmByDeptId(param) {
   return request({
@@ -9,3 +18,17 @@ export function selectFarmByDeptId(param) {
     data: param
   })
 }
+// 获取林班层级树结构
+export function linBanTreeselect() {
+  return request({
+    url: '/center-fire/VisuForestCloudMapController/linBanTreeselect',
+    method: 'post',
+  })
+}
+// 获取林班列表
+export function selectBanBylinBanTreesId(id) {
+  return request({
+    url: '/center-fire/VisuForestCloudMapController/selectBanBylinBanTreesId/'+id,
+    method: 'get',
+  })
+}

+ 1 - 1
src/assets/iconfont/iconfont.css

@@ -131,7 +131,7 @@
   content: "\e602";
 }
 /* 林场 */
-.sj-icon-farm:before {
+.sj-icon-level:before {
   content: "\e61d";
 }
 /* 森林防火队 */

+ 1 - 1
src/assets/iconfont/iconfont.json

@@ -106,7 +106,7 @@
     {
       "icon_id": "21110466",
       "name": "林场",
-      "font_class": "farm",
+      "font_class": "level",
       "unicode": "e61d",
       "unicode_decimal": 58909
     },

+ 132 - 62
src/components/TVWall.vue

@@ -2,7 +2,6 @@
   <div>
     <el-dialog title="电视墙" :visible.sync="TVWallVisible" v-if="TVWallVisible" customClass="TVWallCustomWidth"
                @close="cancelEventLocationShow()">
-      <!--<div @click="findCameraByEventCoordinate()">视频联动</div>-->
 	  <!--<div class="forthis" style="width: 22%; position: absolute;left: 0;z-index: 9999999999999;">-->
 	  	<!--<div class="i-list-con" style="height: 46vh; overflow-y: scroll;">-->
 	  		<!--<span v-for="(item,index) in cameraList" :key="index">-->
@@ -41,57 +40,9 @@ export default {
   components: {},
   data() {
     return {
+      array:[],
       tvListJson: [
         {
-        'switchTab': '1',
-        'treeLabels': [
-          {
-            'labelCode': '123456',
-            'labelName': '视频场景',
-            'parentLabelCode': null
-          },
-          {
-            'labelCode': '5a81d1bd499b4940a21fc63ca51f4dfa',
-            'labelName': '标签2',
-            'parentLabelCode': 123456
-          },
-          {
-            'labelCode': 'd941adbbd3e64dac92cc448dec5293cd',
-            'labelName': '标签1',
-            'parentLabelCode': 123456
-          }
-        ],
-        'labelChannels': [{
-          'channelDates': [{
-            'channelCode': '6044981090191552',
-            'channelName': '复兴大桥中段-交通事故',
-            'channelSn': null,
-            'cameraType': 0,
-            'online': 1
-          },
-            {
-              'channelCode': 'ZgVzqsjwA1DTF561VGHK5E',
-              'channelName': '北京7青羊东二路77号2通道1',
-              'channelSn': null,
-              'cameraType': 1,
-              'online': 1
-            }
-          ],
-          'labelCode': 'd941adbbd3e64dac92cc448dec5293cd'
-        },
-          {
-            'channelDates': [{
-              'channelCode': 'ZgVzqsjwA1DTF561VGHKK7',
-              'channelName': '北京7青羊东二路77号2通道2',
-              'channelSn': null,
-              'cameraType': 2,
-              'online': 0
-            }],
-            'labelCode': '5a81d1bd499b4940a21fc63ca51f4dfa'
-          }
-        ]
-      },
-        {
           'switchTab': '2',
           'labelChannels': [{
             'channelDates': [{
@@ -277,7 +228,6 @@ export default {
     },
     rotation(lng,lat,list){
       rotation(lng,lat,list).then(res => {
-
       })
     },
     cancelEventLocationShow() {
@@ -293,6 +243,104 @@ export default {
           })
       }
     },
+    playRealMonitorVideo(array) { // 自定义设备树自动播放指定通道编码视频
+      const config = this.ws.config
+      const { loginIp, userCode } = config
+      this.ws.postMessage('playRealMonitorVideo', {
+        loginIp,
+        userCode,
+        params: {
+          ctrlCode: "ctrl1",
+          array: array
+        }
+      })
+
+    },
+
+    //火点联动电视墙调用
+    showTVWall1(longitude,latitude,tvListJson) {
+      // let that=this;
+      /** ----------------------------------大华摄像头预览开始------------------------------------- */
+      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
+            }
+          });
+        }
+      })
+        getDahuaVideoServer().then(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,
+                // loginIp: '192.168.100.100',
+                // loginPort: 8314,
+                // userName: 'system',
+                // userPwd: 'Admin@123',
+                token: '',
+                https: 1
+              })
+              this.ws.on('loginState', (res) => {
+                this.isLogin = res
+                console.log('---res-----', res)
+                if (res) {
+                  this.alertLoginSuccess()
+                  this.activePanel = 'key2'
+                  console.log(tvListJson)
+                  const array=[]
+                  const array1=[]
+                  tvListJson[0].treeLabels.forEach((item,index)=>
+                  {
+                    if (index!=0)
+                    {
+                      const param =Object.assign({})
+                      param.channelId=item.labelCode
+                       array.push(param)
+                       array1.push(item.labelCode)
+                      }
+
+                  })
+                  this.create1(longitude,latitude,tvListJson,array,array1)
+                  // var obj=JSON.parse(tvListJson)
+                } else {
+                  this.alertLoginFailed()
+                }
+              })
+            } else { // 连接客户端失败
+              this.alertReinstall()
+            }
+          })
+
+        })
+      /** ----------------------------------大华摄像头预览结束------------------------------------- */
+      /** ----------------------------------海康摄像头预览开始------------------------------------- */
+      // tvCameraList().then(response => {
+      //   this.cameraList=response.data
+      // })
+      // that.initPlugin()
+      // setTimeout(function() {
+      //   that.playhk();
+      // }, 5000)
+      // /** ----------------------------------海康摄像头预览结束------------------------------------- */
+      this.TVWallVisible = true
+
+    },
     showTVWall() {
       // let that=this;
       /** ----------------------------------大华摄像头预览开始------------------------------------- */
@@ -367,6 +415,7 @@ export default {
                   this.alertLoginSuccess()
                   this.activePanel = 'key2'
                   this.create(newres.data)
+
                 } else {
                   this.alertLoginFailed()
                 }
@@ -378,7 +427,34 @@ export default {
         })
       })
     },
+    create1(longitude,latitude,tvListJson,array,array1) { // 调用创建控件接口
+      let _this = this
+      const params = [
+        {
+          'ctrlType': 'realMonitorUI',
+          'ctrlCode': 'ctrl1',
+          'ctrlProperty': {
+            'displayMode': 1,
+            'splitNum': 1,
+            'channelList': [
+              {
+                'channelId': ''
+              }
+            ]
+          },
+          'visible': true,
+          'domId': 'dom1'
+        }
+      ]
+      this.setPos()
+      this.customizeTree(tvListJson);
+      _this.ws.createCtrl(params);
+      _this.playRealMonitorVideo(array)
+      setTimeout(() => {
+        _this.rotation(longitude,latitude,array1)
+      }, 5000)
 
+    },
     create(tvListJson) { // 调用创建控件接口
       let _this = this
       const params = [
@@ -399,17 +475,11 @@ export default {
         }
       ]
       this.setPos()
-      _this.ws.createCtrl(params).then(res => {
-        this.customizeTree(tvListJson)
-      }).catch(e => {
-        console.log(e)
-      })
-      _this.ws.on('createCtrlResult', (res) => {
-        this.customizeTree(tvListJson)
-        _this.ws.on('createCtrlResult', (res) => {
-          this.customizeTree(tvListJson)
-        })
-      })
+      this.customizeTree(tvListJson);
+      setTimeout(() => {
+        _this.ws.createCtrl(params);
+      }, 5000)
+
     },
     setPos() {
       let target = document.getElementById(this.domId)

+ 55 - 36
src/components/supermap.vue

@@ -151,13 +151,15 @@
 	import {
 		getSuperMap,
 		iconList,
-    getCenterdataTSupermapBlockBySmID
+    getCenterdataTSupermapBlockBySmID,
+    getCenterdataTSupermapBlockBySBT,
 	} from '@/api/components/supermap.js'
 	import {
 		selectConfigKey
 	} from '@/api/system/config'
 	// import {setToken} from '../plugins/auth'
 	import modal from '@/plugins/modal'
+  import { getCenterdataTSupermapBlock } from '../api/components/supermap'
 
 	export default {
 		name: 'sookaSuperMap',
@@ -198,8 +200,16 @@
 				isheatPlotting: false, //火灾蔓延
 				heat_lat: 0, //火灾蔓延经纬度
 				heat_lng: 0, //火灾蔓延经纬度
-				host: ''
+				host: '',
+
+        queryParams: {
+          smid: null,
+          bsm: null,
+          tbbh: null,
+
+        },
 			}
+
 		},
 		watch: {
 			isEditableLayers: {
@@ -268,7 +278,6 @@
 			}
 		},
 		mounted() {
-			this.getspuerMapHost()
 			this.initMap()
 			//添加画图的提示信息
 			window.L.drawLocal.draw.toolbar = {
@@ -1425,12 +1434,24 @@
           that.banDataList = fea.attributes
         })*/
 
-        that.lbtThemeLayer.on('dblclick', function(e) {
 
+        /*that.lbtThemeLayer.on('dblclick', function(e) {
           var fea = that.lbtThemeLayer.getFeatureById(e.target.refDataID);
           var smid = fea.attributes.SMID;
           getCenterdataTSupermapBlockBySmID(smid).then(res => {
-            that.banDataList = res;
+            that.banDataList = res.data;
+            that.showBanData = true
+          });
+        })*/
+        that.lbtThemeLayer.on('dblclick', function(e) {
+
+          var fea = that.lbtThemeLayer.getFeatureById(e.target.refDataID);
+          that.queryParams.smid  = fea.attributes.SMID;
+          that.queryParams.bsm  = fea.attributes.BSM;
+          that.queryParams.tbbh = fea.attributes.TBBH;
+          console.log("this.queryParams" + that.queryParams)
+          getCenterdataTSupermapBlockBySBT(that.queryParams).then(res => {
+            that.banDataList = res.data;
             that.showBanData = true
           });
         })
@@ -1451,27 +1472,29 @@
 				if (banCheckList != null && banCheckList.length > 0) {
 					for (let i = 0; i < banCheckList.length; i++) {
 
-            that.deckglLayer = window.L.supermap.tiledMapLayer(banCheckList[i].farmAddress, {})
+            that.deckglLayer = window.L.supermap.tiledMapLayer(banCheckList[i].supermapAddress, {})
             that.deckglLayerList_Data.push(that.deckglLayer)
             that.map.addLayer(that.deckglLayer)
-						if (banCheckList[i].farmAddress != null) {
+						if (banCheckList[i].supermapAddress != null) {
               var getFeatureBySQLParams = new SuperMap.GetFeaturesBySQLParameters({
                 queryParameter: {
                   name: banCheckList[i].name,
                 },
-                datasetNames: banCheckList[i].datasetNames,
+                datasetNames: [banCheckList[i].datasetNames],
                 maxFeatures:20000,
                 fromIndex: 0,
                 toIndex: 999999
               })
 
-              window.L.supermap.featureService("http://121.36.228.94:8090/iserver/services/data-baishan/rest/data")
-                .getFeaturesBySQL(getFeatureBySQLParams, function(serviceResult) {
-                  if (serviceResult.hasOwnProperty('result') && serviceResult.result
-                    .hasOwnProperty('features')) {
-                    that.lbtThemeLayer.addFeatures(serviceResult.result.features);
-                  }
-                }, SuperMap.DataFormat.ISERVER);
+              selectConfigKey('superMap.iserver.data').then(res => {
+                window.L.supermap.featureService(res.data)
+                  .getFeaturesBySQL(getFeatureBySQLParams, function(serviceResult) {
+                    if (serviceResult.hasOwnProperty('result') && serviceResult.result
+                      .hasOwnProperty('features')) {
+                      that.lbtThemeLayer.addFeatures(serviceResult.result.features);
+                    }
+                  }, SuperMap.DataFormat.ISERVER);
+              })
 						}
 					}
 				}
@@ -1523,29 +1546,25 @@
 			PlottingDrawCancel: function() {
 				this.plottingdrawControl.handler.disable()
 			},
-			getspuerMapHost() {
-				selectConfigKey('superMap.iserver.plot').then(res => {
-					this.host = res.data
-				})
-			},
 			dynamicPlotting: function() {
 				setTimeout(() => {
-					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)
+          selectConfigKey('superMap.iserver.plot').then(res => {
+            var host = res.data
+            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)
+          })
 				}, 2000)
 			}
 			/** ----------------------------------动态绘制结束------------------------------------- */

+ 122 - 95
src/components/vBottomMenu.vue

@@ -57,12 +57,12 @@
                 <!--                  placeholder="输入关键字进行过滤"-->
                 <!--                  v-model="filterbanText">-->
                 <!--                </el-input>-->
-                <el-tree :data="deptOptionsLiandong_baishan" ref="banDept" node-key="id" :check-strictly="true"
-                         :filter-node-method="filterbanNode" @node-click="handlebanNodeClick" :accordion="true" empty-text="加载中,请稍候"
+                <el-tree :data="deptBanOptionsLiandong" ref="banDept" node-key="id"  :check-strictly="true"
+                         :filter-node-method="filterbanNode" @node-click="handlebanNodeClick" :accordion="true" empty-text=""
                          :props="defaultProps"></el-tree>
               </div>
               <div class="forestban-right">
-                <el-input placeholder="请输入内容" prefix-icon="el-icon-search" v-model="filterban">
+                <el-input placeholder="请输入内容" prefix-icon="el-icon-search" v-model="filterban" @change="searchFilterban(filterchang)">
                 </el-input>
                 <el-checkbox-group v-model="banCheckList_Data">
                   <el-checkbox v-for="(item,index) in filterbanList" :label="item"
@@ -84,7 +84,7 @@
                 <!--                  placeholder="输入关键字进行过滤"-->
                 <!--                  v-model="filterchangText">-->
                 <!--                </el-input>-->
-                <el-tree :data="deptOptionsLiandong" ref="changDept" node-key="id"
+                <el-tree :data="deptChangOptionsLiandong" ref="changDept" node-key="id"
                          :check-strictly="true" :filter-node-method="filterchangNode"
                          @node-click="handlechangNodeClick" :accordion="true" empty-text="加载中,请稍候"
                          :props="defaultProps"></el-tree>
@@ -359,11 +359,8 @@ import {
   selectMessageById
 } from '@/api/forest'
 import {
-  selectFarmByDeptId
+  selectFarmByDeptId,linBanTreeselect,selectBanBylinBanTreesId,userDeptSelect
 } from '@/api/vBottomMenu'
-import {
-  treeselectAll as deptTreeselect
-} from '@/api/system/dept'
 import supermapTaskDialog from '@/components/supermap' //超图
 import TcPlayer from '@/components/TcPlayer' //视频预览
 import Cookies from 'js-cookie'
@@ -391,6 +388,7 @@ export default {
       filterbanText: '',
       filterchangText: '',
       filterbanList: [],
+      filterbanListAll: [],
       filterchangList: [],
       filterchangListAll: [],
       eventId: null,
@@ -455,31 +453,32 @@ export default {
           click: 'wrj'
         }
       ],
-      deptOptionsLiandong: [],
-      deptOptionsLiandong_baishan: [
-        {
-          label: '板石头国有林场',
-          id: 1,
-          children: [
-          ]
-        }, {
-          label: '五间房国有林场',
-          id: 2,
-          children: []
-        }, {
-          label: '三道沟国有林场',
-          id: 3,
-          children: []
-        }, {
-          label: '大镜沟国有林场',
-          id: 4,
-          children: []
-        }, {
-          label: '实验国有林场',
-          id: 5,
-          children: []
-        }
-      ],
+      deptChangOptionsLiandong: [],//查询林场部门树结构
+      deptBanOptionsLiandong: [],//查询林班层级树结构
+      // deptOptionsLiandong_baishan: [
+      //   {
+      //     label: '板石头国有林场',
+      //     id: 1,
+      //     children: [
+      //     ]
+      //   }, {
+      //     label: '五间房国有林场',
+      //     id: 2,
+      //     children: []
+      //   }, {
+      //     label: '三道沟国有林场',
+      //     id: 3,
+      //     children: []
+      //   }, {
+      //     label: '大镜沟国有林场',
+      //     id: 4,
+      //     children: []
+      //   }, {
+      //     label: '实验国有林场',
+      //     id: 5,
+      //     children: []
+      //   }
+      // ],
 
       defaultProps: {
         children: 'children',
@@ -499,12 +498,20 @@ export default {
     }
   },
   created() {
-    /** 查询部门树结构 */
-    deptTreeselect().then(response => {
-      this.deptOptionsLiandong = response.data
-    })
   },
   methods: {
+    deptTreeselect(){
+      /** 查询林场部门树结构 */
+      userDeptSelect().then(response => {
+        this.deptChangOptionsLiandong = response.data
+      })
+    },
+    linBanTreeselect(){
+      /** 查询林班层级树结构 */
+      linBanTreeselect().then(response => {
+        this.deptBanOptionsLiandong = response.data
+      })
+    },
     selectMessageById(id) {
       selectMessageById(id).then(response => {
         /** 获取消息列表 */
@@ -547,64 +554,68 @@ export default {
     handlebanNodeClick(node, data, value) {
       //获取林班列表
       this.filterban = ''
-      if(node.id==1){
-        this.filterbanList=[
-          {
-            farmAddress: 'http://121.36.228.94:8090/iserver/services/map-baishan/rest/maps/BanShiTouGuoYouLinChang',
-            farmName: '板石街道',
-            datasetNames: ['bs:banshijiedao'],
-            name: 'banshijiedao@bs'
-          },
-          {
-            farmAddress: 'http://121.36.228.94:8090/iserver/services/map-baishan/rest/maps/BanShiTouGuoYouLinChang',
-            farmName: '河口街道',
-            datasetNames: ['bs:hekoujiedao'],
-            name: 'hekoujiedao@bs'
-          },
-          {
-            farmAddress: 'http://121.36.228.94:8090/iserver/services/map-baishan/rest/maps/BanShiTouGuoYouLinChang',
-            farmName: '七道江镇',
-            datasetNames: ['bs:qidaojiangzhen'],
-            name: 'qidaojiangzhen@bs'
-          },
-        ]
-      }else if (node.id==2){
-        this.filterbanList=[
-          {
-            farmAddress: 'http://121.36.228.94:8090/iserver/services/map-baishan/rest/maps/WuJianFangGuoYouLinChang',
-            farmName: '六道江镇',
-            datasetNames: ['bs:WuJianFangGuoYouLinChang'],
-            name: 'WuJianFangGuoYouLinChang@bs'
-          },
-        ]
-      }else if (node.id==3){
-        this.filterbanList=[
-          {
-            farmAddress: 'http://121.36.228.94:8090/iserver/services/map-baishan/rest/maps/SanDaoGouGuoYouLinChang',
-            farmName: '三道沟镇',
-            datasetNames: ['bs:SanDaoGouGuoYouLinChang'],
-            name: 'SanDaoGouGuoYouLinChang@bs'
-          },
-        ]
-      }else if (node.id==4){
-        this.filterbanList=[
-          {
-            farmAddress: 'http://121.36.228.94:8090/iserver/services/map-baishan/rest/maps/DaJingGouGuoYouLinChang',
-            farmName: '红土崖镇',
-            datasetNames: ['bs:DaJingGouGuoYouLinChang'],
-            name: 'DaJingGouGuoYouLinChang@bs'
-          },
-        ]
-      }else if (node.id==5){
-        this.filterbanList=[
-          {
-            farmAddress: 'http://121.36.228.94:8090/iserver/services/map-baishan/rest/maps/ShiYanGuoYouLinChang',
-            farmName: '大阳岔镇',
-            datasetNames: ['bs:ShiYanGuoYouLinChang'],
-            name: 'ShiYanGuoYouLinChang@bs'
-          }
-        ]
-      }
+      selectBanBylinBanTreesId(node.id).then(res => {
+        this.filterbanList = res.data
+        this.filterbanListAll = res.data
+      })
+      // if(node.id==1){
+      //   this.filterbanList=[
+      //     {
+      //       farmAddress: 'http://121.36.228.94:8090/iserver/services/map-baishan/rest/maps/BanShiTouGuoYouLinChang',
+      //       farmName: '板石街道',
+      //       datasetNames: ['bs:banshijiedao'],
+      //       name: 'banshijiedao@bs'
+      //     },
+      //     {
+      //       farmAddress: 'http://121.36.228.94:8090/iserver/services/map-baishan/rest/maps/BanShiTouGuoYouLinChang',
+      //       farmName: '河口街道',
+      //       datasetNames: ['bs:hekoujiedao'],
+      //       name: 'hekoujiedao@bs'
+      //     },
+      //     {
+      //       farmAddress: 'http://121.36.228.94:8090/iserver/services/map-baishan/rest/maps/BanShiTouGuoYouLinChang',
+      //       farmName: '七道江镇',
+      //       datasetNames: ['bs:qidaojiangzhen'],
+      //       name: 'qidaojiangzhen@bs'
+      //     },
+      //   ]
+      // }else if (node.id==2){
+      //   this.filterbanList=[
+      //     {
+      //       farmAddress: 'http://121.36.228.94:8090/iserver/services/map-baishan/rest/maps/WuJianFangGuoYouLinChang',
+      //       farmName: '六道江镇',
+      //       datasetNames: ['bs:WuJianFangGuoYouLinChang'],
+      //       name: 'WuJianFangGuoYouLinChang@bs'
+      //     },
+      //   ]
+      // }else if (node.id==3){
+      //   this.filterbanList=[
+      //     {
+      //       farmAddress: 'http://121.36.228.94:8090/iserver/services/map-baishan/rest/maps/SanDaoGouGuoYouLinChang',
+      //       farmName: '三道沟镇',
+      //       datasetNames: ['bs:SanDaoGouGuoYouLinChang'],
+      //       name: 'SanDaoGouGuoYouLinChang@bs'
+      //     },
+      //   ]
+      // }else if (node.id==4){
+      //   this.filterbanList=[
+      //     {
+      //       farmAddress: 'http://121.36.228.94:8090/iserver/services/map-baishan/rest/maps/DaJingGouGuoYouLinChang',
+      //       farmName: '红土崖镇',
+      //       datasetNames: ['bs:DaJingGouGuoYouLinChang'],
+      //       name: 'DaJingGouGuoYouLinChang@bs'
+      //     },
+      //   ]
+      // }else if (node.id==5){
+      //   this.filterbanList=[
+      //     {
+      //       farmAddress: 'http://121.36.228.94:8090/iserver/services/map-baishan/rest/maps/ShiYanGuoYouLinChang',
+      //       farmName: '大阳岔镇',
+      //       datasetNames: ['bs:ShiYanGuoYouLinChang'],
+      //       name: 'ShiYanGuoYouLinChang@bs'
+      //     }
+      //   ]
+      // }
     },
     // 返回图片列表
     assetTypeAnImage(filePath) {
@@ -804,10 +815,12 @@ export default {
       window.choseLayerSwitchingList_Data(urlList)
     },
     forestban() {
+      alert(111)
       window.forestban()
       console.log('林班')
     },
     forestchang() {
+      alert(222)
       window.forestchang()
       console.log('林场')
     },
@@ -841,6 +854,20 @@ export default {
         this.filterchangList = this.filterchangListAll
       }
     },
+    searchFilterban(filterban) {
+      //林场列表搜索
+      let searchFilterbannew = []
+      if (filterban != null && filterban != '') {
+        for (var i = 0; i < this.filterbanListAll.length; i++) {
+          if (this.filterbanListAll[i].farmName.indexOf(filterban) > -1) {
+            searchFilterbannew.push(this.filterbanListAll[i])
+          }
+        }
+        this.filterbanList = searchFilterbannew
+      } else {
+        this.filterbanList = this.filterbanListAll
+      }
+    },
 
     //标记警报
     updateAlert() {

+ 1 - 1
src/utils/request.js

@@ -20,7 +20,7 @@ const service = axios.create({
   // axios中请求配置有baseURL选项,表示请求URL公共部分
   baseURL: process.env.VUE_APP_BASE_API,
   // 超时
-  timeout: 10000
+  timeout: 20000
 })
 
 // request拦截器

+ 2 - 0
src/views/afforestation.vue

@@ -144,6 +144,8 @@ export default {
     bottomMenuList() {
       this.$refs.bottomMenu.selectTaskList()//获取任务列表
       this.$refs.bottomMenu.selectMessageList()//获取消息列表
+      this.$refs.bottomMenu.linBanTreeselect()//查询林班层级树结构
+      this.$refs.bottomMenu.deptTreeselect()//查询林场部门树结构
     },
     showDialog(click) {
       if (click == 'eventLocation') {

+ 2 - 0
src/views/animal.vue

@@ -188,6 +188,8 @@ export default {
     bottomMenuList() {
       this.$refs.bottomMenu.selectTaskList()//获取任务列表
       this.$refs.bottomMenu.selectMessageList()//获取消息列表
+      this.$refs.bottomMenu.linBanTreeselect()//查询林班层级树结构
+      this.$refs.bottomMenu.deptTreeselect()//查询林场部门树结构
     },
     showDialog(click) {
       if (click == 'eventLocation') {

+ 2 - 0
src/views/datacenter.vue

@@ -139,6 +139,8 @@ export default {
     bottomMenuList() {
       this.$refs.bottomMenu.selectTaskList()//获取任务列表
       this.$refs.bottomMenu.selectMessageList()//获取消息列表
+      this.$refs.bottomMenu.linBanTreeselect()//查询林班层级树结构
+      this.$refs.bottomMenu.deptTreeselect()//查询林场部门树结构
     },
     showDialog(click) {
       if (click == 'eventLocation') {

+ 2 - 0
src/views/disaster.vue

@@ -451,6 +451,8 @@ export default {
     bottomMenuList() {
       this.$refs.bottomMenu.selectTaskList()//获取任务列表
       this.$refs.bottomMenu.selectMessageList()//获取消息列表
+      this.$refs.bottomMenu.linBanTreeselect()//查询林班层级树结构
+      this.$refs.bottomMenu.deptTreeselect()//查询林场部门树结构
     },
     showDialog(click) {
       if (click == 'eventLocation') {

+ 143 - 65
src/views/eventdetailsdialog.vue

@@ -59,6 +59,7 @@
                    </div> -->
                 <!-- 底部工具栏end -->
                 <div class="fire-m">
+                  <el-button size="small" icon="el-icon-s-grid" @click="showTVWallDiaLog()">火点联动</el-button>
                   <el-button size="small" icon="el-icon-upload" @click="showheatPlotting()">火灾蔓延</el-button>
                 </div>
                 <!-- 地图 -->
@@ -159,10 +160,10 @@
                                            size="small" icon="el-icon-download" @click="updateCentereventTEventcatalogueStatus('cz',true)">处置
                                 </el-button>
                               </div>
-                              <div class="z-info-btm-grp-right">
-                                <el-button size="small" icon="el-icon-mic" @click="Meeting()">会议
-                                </el-button>
-                              </div>
+                              <!--<div class="z-info-btm-grp-right">-->
+                                <!--<el-button size="small" icon="el-icon-mic" @click="Meeting()">会议-->
+                                <!--</el-button>-->
+                              <!--</div>-->
                             </div>
                             <div class="z-info-btm-input">
                               <el-input type="textarea" v-model="eventLog"
@@ -239,10 +240,15 @@
                               <div class="z-info-btm-input-btn"
                                    v-else-if="eventStatusValue=='forest_event_status_5'&&statusFlag=='1'">
                                 <el-button size="small"
-                                           icon="el-icon-success" style="text-align:left"
+                                           icon="el-icon-success" style="text-align:left" v-if="eventType == 1"
                                            @click="updateCentereventTEventcatalogueStatus('gd',false)">
                                   填报
                                 </el-button>
+                                <el-button size="small"
+                                           icon="el-icon-success" style="text-align:left" v-if="eventType != 1"
+                                           @click="updateCentereventTEventcatalogueStatus('gd',true)">
+                                  归档
+                                </el-button>
                                 <el-button size="small" icon="el-icon-chat-dot-square" @click="sendEventLog()">发送
                                 </el-button>
                               </div>
@@ -271,7 +277,7 @@
                class="top-dialog"
                @close="cancelEventConfirm()">
       <el-form label-width="80px">
-        <el-form-item label="火灾半径" v-if="eventStatusButton=='qs' &&eventTypeXl==null">
+        <el-form-item label="火灾半径" v-if="eventStatusButton=='qs' && eventTypeXl==null">
           <el-input type="number" v-model="sendHuoZaiBanJing" placeholder="请输入火灾半径"/>
         </el-form-item>
         <el-form-item :label="deptNameitem">
@@ -466,8 +472,8 @@
       </el-form>
     </el-dialog>
     <!--    会议弹窗  start -->
-    <el-dialog title="视频会议" :visible.sync="showResponsibilityDialog" v-if="showResponsibilityDialog" width="65%"
-               @close="closeResponsibilityDialog()">
+    <el-dialog title="视频会议" :visible.sync="showMeetingMsgDialog" v-if="showMeetingMsgDialog" width="65%"
+               @close="closeMeetingMsgDialog()">
       <el-form label-width="1500px">
         <div class="bottom">
           <!-- 左侧菜单栏 -->
@@ -1057,6 +1063,7 @@
     <el-dialog title="人员选择" :visible.sync="showFindUserByDept" width="40%">
       <findUserByDept v-if="showFindUserByDept" ref="findUserByDept" :deptId="iconCurrentIndex" @addSelection="addSelection"></findUserByDept>
     </el-dialog>
+      <TVWall ref="TVWall"></TVWall>
   </div>
 </template>
 
@@ -1068,6 +1075,7 @@ import vBottomMenu from '@/components/vBottomMenu.vue' //一体化公共底部
 import eventLogUpload from '@/views/eventLogUpload.vue' //日志上传文件
 import areaSupermap from '@/components/supermap'//区域标记地图
 import TcPlayer from '@/components/TcPlayer' //视频预览
+import TVWall from '@/components/TVWall.vue' //电视墙弹窗
 import findUserByDept from '@/views/findUserByDept' //责任人选择弹框
 import {
   getEventDetail,
@@ -1086,7 +1094,7 @@ import {
   dutysystemRemove,
   sendMessage,
   userFeginlist,
-  eventHandling
+  eventHandling, initByCameras
 } from '@/api/forest'
 import {
   treeselectAll as deptTreeselect
@@ -1116,12 +1124,55 @@ export default {
     vBottomMenu,
     supermapDialog,
     eventLogUpload,
+    TVWall,
     areaSupermap,
     TcPlayer,
     findUserByDept
   },
   data() {
     return {
+      aa:[
+        {
+          "switchTab":"2",
+          "treeLabels":[
+            {
+              "id":null,
+              "labelCode":"999",
+              "labelName":"电视墙",
+              "parentLabelCode":""
+            },
+            {
+              "id":"spcamera00288",
+              "labelCode":"22030300001321100289",
+              "labelName":"四平市伊通县西苇椽子沟村",
+              "parentLabelCode":"999"
+            }
+          ],
+          "labelChannels":[
+            {
+              "labelCode":"22030300001321100289",
+              "channelDates":[
+                {
+                  "channelCode":"22030300001321100289",
+                  "channelName":"四平市伊通县西苇椽子沟村可见光",
+                  "channelSn":null,
+                  "cameraType":null,
+                  "online":"1",
+                  "cameraCode":null
+                },
+                {
+                  "channelCode":"22030300001321100290",
+                  "channelName":"四平市伊通县西苇椽子沟村热成像",
+                  "channelSn":null,
+                  "cameraType":null,
+                  "online":"1",
+                  "cameraCode":null
+                }
+              ]
+            }
+          ]
+        }
+      ],
       showFindUserByDept: false,//责任人选择框
       /** ----------------------------------摄像头预览开始------------------------------------- */
       //大华
@@ -1277,6 +1328,7 @@ export default {
       visuForestCloudYuAnBo: null,
       eventDialog: false,
       showResponsibilityDialog: false,//责任制弹窗
+      showMeetingMsgDialog: false,//发送会议短信弹窗
       depteventList: [],//责任制部门列表
       iconCurrentIndex: '',
       dutysystemDeptName: '',
@@ -1434,6 +1486,13 @@ export default {
       this.iconCurrentIndex = ''
       this.showResponsibilityDialog = false
     },
+    closeMeetingMsgDialog() {//会议弹窗关闭
+      this.dutysystemTableData = []
+      this.dutysystemDeptName = ''
+      this.depteventId = ''
+      this.iconCurrentIndex = ''
+      this.showMeetingMsgDialog = 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位手机号码正则
@@ -1459,33 +1518,7 @@ export default {
         this.closeResponsibilityDialog();
       })
     },
-    sendMsg() {// 视频会议发送短信
-      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,eventId:this.eventId}
-      sendMessage(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)
@@ -1496,6 +1529,27 @@ export default {
       this.eventDialog = false;
       this.$emit('getFirespread', this.eventCode);
     },
+    showTVWallDiaLog() {
+      this.initByCameras()
+      // this.$refs.TVWall.showTVWall();
+
+    },
+    initByCameras()
+    {
+      const params=Object.assign({})
+      params.longitude=this.longitude;
+      params.latitude=this.latitude;
+      params.type='1'
+      initByCameras(params).then(res=>
+      {
+        this.$refs.TVWall.showTVWall1(this.longitude,this.latitude,res.data);
+        this.$refs.supermap.isEditableLayers = false
+        this.$refs.bottomMenu.showChild = false
+        this.$refs.bottomMenu.showBanChild = false
+        this.$refs.bottomMenu.showChangChild = false
+      })
+
+    },
     showUpdateYjYuAn() {
       listYuAn().then(res => {
         //关联预案列表
@@ -1631,7 +1685,7 @@ export default {
       this.sendDeptName = null
       this.sendUserFegin = []
       this.sendEventType = null
-      this.sendHuoZaiBanJing = null
+      this.sendHuoZaiBanJing = 0
       this.sendGuanLianYuAn = null
       this.longitude = null
       this.latitude = null
@@ -1654,7 +1708,7 @@ export default {
       this.sendDeptName = null
       this.sendUserFegin = []
       this.sendEventType = null
-      this.sendHuoZaiBanJing = null
+      this.sendHuoZaiBanJing = 0
       this.sendGuanLianYuAn = null
       this.sendTaskTitle = null
       this.sendTaskSource = null
@@ -1900,30 +1954,33 @@ 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(that.eventType == 1){
+            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(!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
+              that.$message.error(`疏密度不能为空!`)
+              return
+            }
           }
 
+
           //事件处理流程--归档
           let param = {
             deptId: that.deptId,
@@ -1952,10 +2009,6 @@ export default {
               return
             }
             if (eventStatus == 'qs') {
-              if (that.sendHuoZaiBanJing == '' || that.sendHuoZaiBanJing == null) {
-                that.$message.error(`请输入火灾半径!`)
-                return
-              }
               if (that.sendEventType == '' || that.sendEventType == null) {
                 that.$message.error(`请选择事件类型!`)
                 return
@@ -2459,6 +2512,32 @@ export default {
     },
     /** ----------------------------------海康摄像头预览结束------------------------------------- */
     /** ----------------------------------视频会议开始------------------------------------- */
+    sendMsg() {// 视频会议发送短信
+      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,eventId:this.eventId}
+      sendMessage(param).then(res => {
+        this.$message.success(res.msg);
+        this.dutysystemSelect(this.iconCurrentIndex, this.dutysystemDeptName, this.depteventId);
+        this.showMeetingMsgDialog = false;
+        this.joinMeeting();
+      })
+    },
     joinMeeting(){
       let hwMeetingUrl;
       selectConfigKey('hwMeetingUrl').then(res => {
@@ -2466,16 +2545,15 @@ export default {
         window.open(hwMeetingUrl+"/joinConferences/"+this.eventId+"/"+this.eventName+"的会议"+"/"+Cookies.get("nickName"));
       })
     },
-    /** ----------------------------------视频会议结束------------------------------------- */
-    /** ----------------------------------点击视频会议开始弹窗 --------------------------*/
-    Meeting() {//弹出责任制弹窗
+    Meeting() {//弹出发送会议短信弹窗
       let param = { eventCode: this.eventCode }
       centereventtdepteventList(param).then(res => {
         this.depteventList = res.data
-        this.showResponsibilityDialog = true
+        this.showMeetingMsgDialog = true
         this.initDutysystemTableData();
       })
     },
+    /** ----------------------------------视频会议结束------------------------------------- */
   }
 }
 

+ 9 - 5
src/views/firespread.vue

@@ -33,6 +33,7 @@
                 </div>
                 <!-- 应急预案end -->
                 <div class="fire-m">
+
                   <el-button size="small" icon="el-icon-upload" @click="showEventdetailsdialog()">动态标绘</el-button>
                   <el-button size="small" icon="el-icon-upload" @click="showheatPlotting()">火灾蔓延</el-button>
                 </div>
@@ -140,13 +141,16 @@
         <div id="playWnd" class="playWnd" style="left: 0px; top: 0px;"></div>
       </div>
     </el-dialog>
+<!--    <TVWall ref="TVWall"></TVWall>-->
   </div>
+
 </template>
 
 <script>
   import html2canvas from 'html2canvas'//截图组件
   import supermapDialog1 from '@/components/supermap' //超图
   import vheader from '@/components/v-header.vue' //一体化共用头部
+  import TVWall from '@/components/TVWall.vue' //电视墙弹窗
   import vBottomMenu from '@/components/vBottomMenu.vue' //一体化公共底部菜单
   import eventLogUpload from '@/views/eventLogUpload.vue' //日志上传文件
   import areaSupermap from '@/components/supermap'//区域标记地图
@@ -166,7 +170,8 @@
     dutysystemList,
     dutysystemAdd,
     dutysystemRemove,
-    userFeginlist
+    userFeginlist,
+    initByCameras
   } from '@/api/forest'
   import {
     treeselectAll as deptTreeselect
@@ -191,6 +196,7 @@
     },
     components: {
       vheader,
+      TVWall,
       vBottomMenu,
       supermapDialog1,
       eventLogUpload,
@@ -200,6 +206,7 @@
     data() {
       return {
         //海康
+        tvListJson:[],
         cameraTitle: '',
         cameraCode:'',
         cameraVisible: false,
@@ -513,6 +520,7 @@
         this.eventDialog = false;
         this.$emit('showEventDialog', this.eventCode);
       },
+
       showheatPlotting() {
         if (!this.$refs.supermapDialog1.isheatPlotting) {
           this.$refs.supermapDialog1.showheatPlotting(this.latitude, this.longitude)
@@ -964,10 +972,6 @@
                 return
               }
               if (eventStatus == 'qs') {
-                if (that.sendHuoZaiBanJing == '' || that.sendHuoZaiBanJing == null) {
-                  that.$message.error(`请输入火灾半径!`)
-                  return
-                }
                 if (that.sendEventType == '' || that.sendEventType == null) {
                   that.$message.error(`请选择事件类型!`)
                   return

+ 8 - 8
src/views/forest.vue

@@ -427,7 +427,7 @@
 
     <firespread ref="firespread" :calendarDay="calendarDay" @getEventList="getEventList"
                 @getTodayEvents="getTodayEvents" @showEventDialog="showEventDialog"
-                @getSupermap="getSupermap"></firespread>
+                @getSupermap="getSupermap" @showDialog="showDialog"></firespread>
     <eventLocation ref="eventLocation"></eventLocation>
     <TVWall ref="TVWall"></TVWall>
     <wrj ref="wrj"></wrj>
@@ -532,7 +532,6 @@ export default {
     return {
       //警报MP3文件
       audioSrc: require('@/assets/jingbao.mp3'),
-
       calendarDay: this.getCurrentDataStr(),
       //基本情况
       forestInfo: '', //基本情况
@@ -1176,7 +1175,7 @@ export default {
     },
     websocketonmessage(e) { //数据接收
       console.log('接收数据', e.data)
-      let data = "{\"fromId\":\"forest\",\"fromUserId\":\""+Cookies.get('username')+"\",\"toUserId\":\""+Cookies.get('username')+"\"}";
+      let data = "{\"fromId\":\"forest\"}";
       if (this.calendarDay == this.getCurrentDataStr() && data != e.data) {
         // 处理收到的消息
         this.handleWebSoceketEvent(e.data)
@@ -1228,9 +1227,7 @@ export default {
      * @param {string} ping 心跳名称 默认字符串ping
      */
     sendPing(time = 60000, ping = {
-      'fromId': 'forest',
-      'fromUserId': Cookies.get('username'),
-      'toUserId': Cookies.get('username')
+      'fromId': 'forest'
     }) {
       clearInterval(this.setIntervalWesocketPush)
       this.setIntervalWesocketPush = setInterval(() => {
@@ -1251,8 +1248,11 @@ export default {
       bottomMenuList() {
         this.$refs.bottomMenu.selectTaskList()//获取任务列表
         this.$refs.bottomMenu.selectMessageList()//获取消息列表
+        this.$refs.bottomMenu.linBanTreeselect()//查询林班层级树结构
+        this.$refs.bottomMenu.deptTreeselect()//查询林场部门树结构
       },
       showDialog(click) {
+        console.log(click)
         if (click == 'eventLocation') {
           this.$refs.eventLocation.showEventLocation()
           this.$refs.supermap.isEditableLayers = false
@@ -1284,7 +1284,8 @@ export default {
           this.$refs.bottomMenu.showChild = false
           this.$refs.bottomMenu.showBanChild = false
           this.$refs.bottomMenu.showChangChild = false
-        } else if (click == 'wrj') {
+        }
+        else if (click == 'wrj') {
           this.$refs.wrj.showWrj();
           this.$refs.supermap.isEditableLayers = false
           this.$refs.bottomMenu.showChild = false
@@ -1309,7 +1310,6 @@ export default {
             this.$refs.bottomMenu.showChangChild = false
           }
         }
-
       },
       //选择图层
       choseLayerSwitching(url, isClear) {

+ 30 - 2
src/views/leader.vue

@@ -45,9 +45,17 @@
 					<dv-border-box-13 backgroundColor="rgba(12, 19, 38, .90)" style="padding-bottom: 1rem;">
 						<img src="../assets/images/integrated/light.png" style="width: 100%; margin-top: .4rem;" />
 						<div class="i-list-con h-27">
+              <el-input
+                v-model="nickName"
+                placeholder="请输入姓名"
+                clearable
+                size="small"
+                prefix-icon="el-icon-search"
+                style="margin-bottom: 20px"
+              />
 							<div class="d-l-con-icon">
 								<div class="icon-con" :class="{on:listCurrentIndex1==item.userId}"
-									v-for="(item,index) in peopleList" @click="getPlanList(item.userId)">
+									v-for="(item,index) in peopleList2" @click="getPlanList(item.userId)">
 									<div class="icon icon-mid el-icon-user"></div>
 									<div class="icon-text personnel-name">
 										<h6>{{ item.nickName }}</h6>
@@ -158,12 +166,14 @@
 		},
 		data() {
 			return {
+        nickName:'',
 				iconCurrentIndex1: '1',
 				listCurrentIndex1: '',
 				listCurrentIndex2: '',
 				visuForestCloudRYBO: [], //人员类型列表
         personId: null, //人员
         peopleList: [], //人员列表
+        peopleList2: [], //人员列表
         connectList: [], //画线
         patrolTrajectory: null, //任务画线
 				xunLinListOne: [], //巡林任务
@@ -185,11 +195,26 @@
     mounted(){
       this.bottomMenuList() //获取底部公共组件消息和任务
     },
+    watch:
+      {
+        nickName(val){
+          this.peopleList2=[];
+
+          for (let i in this.peopleList) {
+            if(this.peopleList[i].nickName.indexOf(val) != -1){
+              this.peopleList2.push(this.peopleList[i]);
+            }
+          }
+          console.log(this.peopleList2)
+        }
+      },
 		methods: {
 			/** ----------------------------------底部按钮公用组件开始------------------------------------- */
       bottomMenuList() {
         this.$refs.bottomMenu.selectTaskList()//获取任务列表
         this.$refs.bottomMenu.selectMessageList()//获取消息列表
+        this.$refs.bottomMenu.linBanTreeselect()//查询林班层级树结构
+        this.$refs.bottomMenu.deptTreeselect()//查询林场部门树结构
       },
 			showDialog(click) {
 				if (click == 'eventLocation') {
@@ -278,8 +303,10 @@
 				that.listCurrentIndex2 = ''
 				that.iconCurrentIndex1 = linJob
 				that.peopleList = []
+        that.peopleList2 = []
 				getForestLeader(linJob, linType).then(res => {
 					that.peopleList = res.data
+          that.peopleList2 = res.data
 				})
 				that.connectList = []
         this.personId = null;
@@ -289,6 +316,7 @@
 			},
 			//点击左侧人员列表获取 巡林计划
 			getPlanList(personId) {
+
         if(this.personId == personId){//当前人员已经被点击一次 不再重复加载
           return;
         }
@@ -298,7 +326,7 @@
 				that.recordList = [];
         that.listCurrentIndex1 = personId
 				getPlanList(personId).then(res => {
-          console.log("点击左侧人员列表获取 巡林计划=", res.data)
+          console.log("点击左侧人员列表获取 巡林计划=", personId)
 					that.xunLinListOne = res.data;
 				})
         getlinleaderMap(personId).then(res => {

+ 25 - 2
src/views/monitor.vue

@@ -106,7 +106,15 @@
               <dv-decoration-3 style="width:150px;height:15px;margin-right: 1rem;"/>
             </div>
             <div class="i-list-con h-43">
-              <div class="d-l-con" v-for="(item,index) in visuForestCloudCameraBOList"
+              <el-input
+                v-model="rightDeptName"
+                placeholder="请输入摄像头名称"
+                clearable
+                size="small"
+                prefix-icon="el-icon-search"
+                style="margin-bottom: 20px"
+              />
+              <div class="d-l-con" v-for="(item,index) in visuForestCloudCameraBOListSearch"
                    :class="{on:listCurrentIndex2 == index}"
                    v-on:click="dropLocation(item.latitude,item.longitude,index)">
                 <div class="d-l-l-text">
@@ -193,6 +201,14 @@ export default {
     // 根据名称筛选部门树
     deptName(val) {
       this.$refs.tree.filter(val)
+    },
+    rightDeptName(val){
+      this.visuForestCloudCameraBOListSearch=[];
+      for (let i in this.visuForestCloudCameraBOList) {
+        if(this.visuForestCloudCameraBOList[i].cameraName.indexOf(val) != -1){
+          this.visuForestCloudCameraBOListSearch.push(this.visuForestCloudCameraBOList[i]);
+        }
+      }
     }
   },
   created() {
@@ -236,6 +252,7 @@ export default {
       /** ----------------------------------摄像头预览结束------------------------------------- */
       visuForestCloudMapDeviceBOList: [],
       visuForestCloudCameraBOList: [],
+      visuForestCloudCameraBOListSearch: [],
       cameraMarkersList: [],
       sourceData: [],
       keyAreaList: [],//重点区域
@@ -253,7 +270,8 @@ export default {
       indentdisabled: false,
       domId: 'dom1',
 
-
+      //摄像头名称
+      rightDeptName: undefined,
 
       // 部门名称
       deptName: undefined,
@@ -290,6 +308,7 @@ export default {
         //根据设备类型查看列表
         this.cameraMarkersList = [];
         that.visuForestCloudCameraBOList = res.data
+        that.visuForestCloudCameraBOListSearch = res.data
         if (res.data != null && res.data.length > 0) {
           this.cameraMarkersList.push({
             lng: res.data[0].deptLongitude,
@@ -407,6 +426,8 @@ export default {
     bottomMenuList() {
       this.$refs.bottomMenu.selectTaskList()//获取任务列表
       this.$refs.bottomMenu.selectMessageList()//获取消息列表
+      this.$refs.bottomMenu.linBanTreeselect()//查询林班层级树结构
+      this.$refs.bottomMenu.deptTreeselect()//查询林场部门树结构
     },
     showDialog(click) {
       if (click == 'eventLocation') {
@@ -600,6 +621,7 @@ export default {
         }
 
         that.visuForestCloudCameraBOList = res.data.visuForestCloudCameraBOList
+        that.visuForestCloudCameraBOListSearch = res.data.visuForestCloudCameraBOList
         // this.cameraChat()
         if (res.data.visuForestCloudCameraBOList != null && res.data.visuForestCloudCameraBOList
           .length > 0) {
@@ -695,6 +717,7 @@ export default {
       selectCameraByDeptId(depId).then(res => {
         //根据设备类型查看列表
         that.visuForestCloudCameraBOList = res.data
+        that.visuForestCloudCameraBOListSearch = res.data
         if (res.data != null && res.data.length > 0) {
           for (let i = 0; i < res.data.length; i++) {
             let markersMap = {

+ 2 - 0
src/views/trees.vue

@@ -98,6 +98,8 @@ export default {
     bottomMenuList() {
       this.$refs.bottomMenu.selectTaskList()//获取任务列表
       this.$refs.bottomMenu.selectMessageList()//获取消息列表
+      this.$refs.bottomMenu.linBanTreeselect()//查询林班层级树结构
+      this.$refs.bottomMenu.deptTreeselect()//查询林场部门树结构
     },
     showDialog(click) {
       if (click == 'eventLocation') {

+ 1 - 1
src/views/treesDetails.vue

@@ -11,7 +11,7 @@
         <div><i class="ismall"></i><span>类型:{{retMap.treesType}}</span></div>
         <div><i class="ismall"></i><span>备注:{{retMap.treesRemarks}}</span></div>
         <div><i class="ismall"></i><span>部门名称:{{retMap.deptName}}</span></div>
-        <div><i class="ismall"></i><span>图片</span><img :src="retMap.attachId"></div>
+        <div><i class="ismall"></i><span>图片</span><img style="width: 400px; height: 400px;" :src="retMap.attachId"></div>
       </div>
     </el-dialog>
   </div>

+ 1 - 1
vue.config.js

@@ -9,7 +9,7 @@ const CompressionPlugin = require('compression-webpack-plugin')
 
 const name = process.env.VUE_APP_TITLE || '四平市态势感知平台' // 网页标题
 
-const port = process.env.port || process.env.npm_config_port || 80 // 端口
+const port = process.env.port || process.env.npm_config_port || 81 // 端口
 
 const ssl_path = require('path')
 const fs = require('fs')