Преглед на файлове

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

wangzhe преди 2 години
родител
ревизия
dff517fe4f

+ 10 - 0
src/api/bigdata.js

@@ -197,3 +197,13 @@ export function getG3() {
     method: 'post',
   })
 }
+
+//考勤
+export function bigFindAttend() {
+  return request({
+    url: '/system/sysAttendance/bigFindAttend',
+    method: 'get',
+    data: {}
+  })
+}
+

+ 28 - 17
src/api/leader.js

@@ -9,30 +9,41 @@ export function getRy() {
 }
 
 // 获取左侧人员列表
-export function getForestLeader() {
+export function getForestLeader(linJob,linType) {
   return request({
-    url: '/center-firecontrol/VisuForestLeaderController/getPersonList',
+    url: '/center-firecontrol/VisuForestLeaderController/getPersonList?linJob='+linJob+"&linType="+linType,
     method: 'get',
   })
 }
 // 点击左侧人员列表获取轨迹
 export function getLeaderTrack(trackById) {
   return request({
-    url: '/center-firecontrol/VisuForestLeaderController/getLeaderTrack?trackById='+trackById,
-    method: 'get',
-  })
-}
-// 点击左侧人员列表获取时段
-export function getTrackList(personId) {
-  return request({
-    url: '/center-firecontrol/VisuForestLeaderController/getTrackList?personId='+personId,
-    method: 'get',
-  })
-}
-// 点击右侧时段列表获取落点
-export function getPointList(trackId) {
-  return request({
-    url: '/center-firecontrol/VisuForestLeaderController/getPointList?trackId='+trackId,
+    url: '/center-firecontrol/VisuForestLeaderController/getLeaderTrack?trackById=' + trackById,
     method: 'get',
   })
 }
+
+// 巡林任务
+  export function getPlanList(userId) {
+    return request({
+      url: '/center-data/task/getPlanList',
+      method: 'post',
+      data: {userId:userId,type:'5'}
+    })
+  }
+
+// 巡林记录
+  export function getRecordList(taskId) {
+    return request({
+      url: '/center-data/record/list?taskId='+taskId,
+      method: 'get',
+    })
+  }
+
+// 巡林轨迹
+  export function getPointList(recordId) {
+    return request({
+      url: '/center-data/track/getTrack/'+recordId.toString(),
+      method: 'get',
+    })
+  }

+ 2 - 13
src/components/vBottomMenu.vue

@@ -151,7 +151,7 @@
 					</div>
 				</div>
 				<el-badge :value="taskCount" slot="reference">
-					<el-button size="small" icon="el-icon-bank-card" @click="refreshTaskList">任务</el-button>
+					<el-button size="small" icon="el-icon-bank-card">任务</el-button>
 				</el-badge>
 			</el-popover>
       <el-popover placement="top" trigger="click">
@@ -505,12 +505,6 @@
 			deptTreeselect().then(response => {
 				this.deptOptionsLiandong = response.data
 			})
-      /** 获取任务 */
-      this.selectTaskList()
-      /** 获取消息个数 */
-      this.selectMessageCount();
-      /** 获取消息列表 */
-      this.selectMessageList();
 		},
 		methods: {
 			filterbanNode(value, data) {
@@ -696,10 +690,6 @@
 					}, 1000)
 				})
 			},
-			refreshTaskList() {
-				//刷新任务列表
-				this.selectTaskList()
-			},
 			selectTaskList: async function() {
 				//获取任务列表
 				selectTaskBO().then(res => {
@@ -710,8 +700,6 @@
 
       selectMessageById(id) {
         selectMessageById(id).then(response => {
-          /** 获取消息个数 */
-          this.selectMessageCount();
           /** 获取消息列表 */
           this.selectMessageList();
         });
@@ -726,6 +714,7 @@
       selectMessageList(){
         selectMessageList(Cookies.get("userId")).then(response => {
           this.messageList = response.data
+          this.messageCount = response.data.length
         });
       },
 			handleCheckedCitiesChangeBan(value) {

+ 4 - 4
src/router/index.js

@@ -62,12 +62,12 @@ export const constantRoutes = [
 		}
 	},
   {
-		//网格化
+		//消防人员
 		path: '/leader',
 		name: 'leader',
 		component: () => import('@/views/leader'),
 		meta: {
-			title: '网格化'
+			title: '消防人员'
 		}
 	},
 	{
@@ -116,12 +116,12 @@ export const constantRoutesNew = [{
 		}
 	},
   {
-    //网格化
+    //消防人员
     path: '/leader',
     name: 'leader',
     component: () => import('@/views/leader'),
     meta: {
-      title: '网格化'
+      title: '消防人员'
     }
   },
   {

+ 13 - 2
src/views/bigdata/bigdata.vue

@@ -150,6 +150,15 @@
           <chartPitG3></chartPitG3>
         </div>
       </div>
+      <!-- 第八纵向-->
+      <div class="bigdata-list wid-li-1 m-l-15">
+        <div class="b-con">
+          <div class="b-tit"><img src="@/assets/images/integrated/bigdata-tit-icon.png">
+            <span>考勤统计</span>
+          </div>
+          <chartPitKaoqin></chartPitKaoqin>
+        </div>
+      </div>
     </div>
   </div>
 </template>
@@ -176,6 +185,7 @@ import chartEquipmentDistribution from './chart-equipmentDistribution' //16 设
 import chartPitG1 from './chart-pit' //17 闸口资源统计、、
 import chartPitG2 from './chart-firecontrol' //18 水利工程资源统计、、
 import chartPitG3 from './chart-hydrant' //19 河段资源统计、、
+import chartPitKaoqin from './chart-kaoqin' //19 河段资源统计、、
 
 import { getRlt } from '@/api/bigdata'
 import {
@@ -203,6 +213,7 @@ export default {
     chartPitG1,
     chartPitG2,
     chartPitG3,
+    chartPitKaoqin
   },
   data() {
     return {
@@ -227,9 +238,9 @@ export default {
           name: '监控中心'
         },
         {
-          //网格化
+          //消防人员
           path: '/leader',
-          name: '网格化'
+          name: '消防人员'
         },
         {
           //统计分析

+ 89 - 0
src/views/bigdata/chart-kaoqin.vue

@@ -0,0 +1,89 @@
+<!-- **************************************NO.6 矿坑*************************************** -->
+<template>
+	<div class="chart-container">
+		<div id="pitKaoqin" style="width: 100%; height:23vh;">
+		</div>
+	</div>
+</template>
+
+<script>
+	import * as echarts from 'echarts';
+  import {bigFindAttend} from '@/api/bigdata'
+	export default {
+		name: 'pitKaoqin',
+		data() {
+			return {
+        source: [],
+				count: 0
+			}
+		},
+		mounted() {
+			// this.myEcharts()
+			this.bigFindAttend()
+
+		},
+
+		methods: {
+      bigFindAttend() {
+        bigFindAttend().then(res => {
+          this.myEcharts(res.data)
+        })
+      },
+			// 出处 http://192.144.199.210:8080/editor/index.html?chart_id=udduEFcFiEYEEj4Q
+
+			myEcharts(data) {
+
+
+				var chartDom = document.getElementById('pitKaoqin');
+				var myChart = echarts.init(chartDom);
+				var color = ['#02CDFF', '#62FBE7', '#7930FF','#ef5f9d','#ecb935'];
+				var option;
+				option = {
+
+				    color:color,
+				    tooltip : {
+				        trigger: 'item',
+				        formatter: "{b}: {c}"
+				    },
+				    toolbox: {
+				        show : true,
+
+				    },
+
+				    series : [
+				        {
+				            name:'考勤分析',
+				            type:'pie',
+				            roseType: true,
+				            radius : ['50%', '70%'],
+				            label: {
+				              show: true,
+				              formatter: "{b} {c}",
+							  textStyle: {
+							      fontSize: 10 ,
+
+							  }
+
+				            },
+				            data:data
+				        }
+				    ]
+				};
+				option && myChart.setOption(option);
+			},
+
+		},
+
+
+	}
+</script>
+
+<style rel="stylesheet/scss" lang="scss" scoped>
+	.chart-container {
+		width: 100%;
+		height: auto;
+		position: relative;
+		padding-bottom: 10px;
+		display: flex;
+	}
+</style>

+ 8 - 2
src/views/bigdata/tabbar.vue

@@ -1,7 +1,7 @@
 <template>
   <div class="bigdata-map-tabbar">
     <el-row :gutter="20">
-      <el-col :span="4" v-for="(item,index) in data_zhxx_data" :key="index">
+      <el-col :span="4" v-for="(item,index) in regionNum" :key="index">
         <div class="list-content">
           <span>{{item.value}}</span>
           <h5>{{item.name}}</h5>
@@ -144,7 +144,13 @@
       zhxx() {
         let that = this
         getZhxx().then(resp => {
-          that.data_zhxx_data = [...resp.data.event, ...resp.data.data]
+          // that.data_zhxx_data = [...resp.data.event, ...resp.data.data]
+          that.regionNum = [];
+          that.regionNum.push(...resp.data.event)
+          that.regionNum.push(...resp.data.data)
+          for(let i in resp.data.device){
+            that.regionNum.push({value: resp.data.device[i].deviceCount,name: resp.data.device[i].deviceName})
+          }
         })
       },
 

+ 5 - 0
src/views/datacenter.vue

@@ -99,6 +99,7 @@ export default {
   },
   mounted() {
     this.getResource()
+    this.bottomMenuList() //获取底部公共组件消息和任务
   },
   data() {
     return {
@@ -122,6 +123,10 @@ export default {
 
   methods: {
     /** ----------------------------------底部按钮公用组件开始------------------------------------- */
+    bottomMenuList() {
+      this.$refs.bottomMenu.selectTaskList()//获取任务列表
+      this.$refs.bottomMenu.selectMessageList()//获取消息列表
+    },
     showDialog(click) {
       if (click == 'eventLocation') {
         this.$refs.eventLocation.showEventLocation()

+ 5 - 0
src/views/forest.vue

@@ -508,6 +508,7 @@
           this.getSupermap(this.getCurrentDataStr(), true);
         }
       }, 10000)
+      this.bottomMenuList() //获取底部公共组件消息和任务
     },
     data() {
       return {
@@ -1176,6 +1177,10 @@
       /** ----------------------------------weosocket结束------------------------------------- */
 
       /** ----------------------------------底部按钮公用组件开始------------------------------------- */
+      bottomMenuList() {
+        this.$refs.bottomMenu.selectTaskList()//获取任务列表
+        this.$refs.bottomMenu.selectMessageList()//获取消息列表
+      },
       showDialog(click) {
         if (click == 'eventLocation') {
           this.$refs.eventLocation.showEventLocation()

+ 450 - 428
src/views/leader.vue

@@ -1,450 +1,472 @@
 <template>
-  <div class="visual-con">
-    <!--头部-->
-    <vheader></vheader>
-    <!--主体-->
-    <div class="visual-body">
-      <!-- 左侧 -->
-      <div class="leftbar" :class="indentleft" ref="left">
-        <div class="forthis">
-          <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="this-title">
-              <span>人员分布</span>
-              <dv-decoration-3 style="width:150px;height:15px;margin-right: 1rem;"/>
-            </div>
-            <div class="i-list-con h-25">
-              <div id="personnel-chart" style="width: 100%;height:20vh;"></div>
-              <!--<div class="d-l-con-icon">-->
-                <!--<div class="icon-con w-50" :class="{on:iconCurrentIndex1==item.jobValue}"-->
-                     <!--v-for="(item,index) in visuForestCloudRYBO"-->
-                     <!--@click="getForestLeader(item.jobValue,item.jobType)">-->
-                  <!--<div class="icon icon-mid el-icon-user"></div>-->
-                  <!--<div class="icon-text">-->
-                    <!--<h5>{{ item.job }}</h5>-->
-                    <!--<h6>{{ item.number }}</h6>-->
-                  <!--</div>-->
-                <!--</div>-->
-                <!--&lt;!&ndash; <div class="icon-con w-50  m-btm-no" :class="{on:listCurrentIndex1==item.jobType}" v-for="(item,index) in visuForestCloudRYBO" v-if="index%2!=0" @click="getForestLeader(item.jobValue,item.jobType)">-->
-                <!--<div class="icon icon-mid el-icon-user"></div>-->
-                <!--<div class="icon-text">-->
-                  <!--<h5>{{item.job}}</h5>-->
-                  <!--<h6>{{item.number}}</h6>-->
-                <!--</div>-->
-              <!--</div> &ndash;&gt;-->
-              <!--</div>-->
-            </div>
-          </dv-border-box-13>
-        </div>
-        <!--        avatar: ""-->
-        <!--        deptName: "锦程社区第一网格"-->
-        <!--        nickName: "李猛"-->
-        <!--        userId: 102-->
-        <!--        userName: "limeng"-->
-        <div class="forthis">
-          <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">
-              <div class="d-l-con-icon">
-                <div class="icon-con" :class="{on:listCurrentIndex1==item.userId}"
-                     v-for="(item,index) in peopleList" @click="getLeaderTrack(item.userId)">
-                  <div class="icon icon-mid el-icon-user"></div>
-                  <div class="icon-text personnel-name">
-                    <h6>{{ item.nickName }}</h6>
-                    <h5>{{ item.deptName }}</h5>
-                  </div>
+	<div class="visual-con">
+		<!--头部-->
+		<vheader></vheader>
+		<!--主体-->
+		<div class="visual-body">
+			<!-- 左侧 -->
+			<div class="leftbar" :class="indentleft" ref="left">
+				<div class="forthis">
+					<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="this-title">
+							<span>人员分布</span>
+							<dv-decoration-3 style="width:150px;height:15px;margin-right: 1rem;" />
+						</div>
+						<div class="i-list-con h-25">
+							<div id="personnel-chart" style="width: 100%;height:12vh;"></div>
+							<div class="d-l-con-icon">
+								<div class="icon-con w-50" :class="{on:iconCurrentIndex1==item.jobValue}"
+									v-for="(item,index) in visuForestCloudRYBO"
+									@click="getForestLeader(item.jobValue,item.jobType)">
+									<div class="icon icon-mid el-icon-user"></div>
+									<div class="icon-text">
+										<h5>{{ item.job }}</h5>
+										<h6>{{ item.number }}</h6>
+									</div>
+								</div>
+								<!-- <div class="icon-con w-50  m-btm-no" :class="{on:listCurrentIndex1==item.jobType}" v-for="(item,index) in visuForestCloudRYBO" v-if="index%2!=0" @click="getForestLeader(item.jobValue,item.jobType)">
+                <div class="icon icon-mid el-icon-user"></div>
+                <div class="icon-text">
+                  <h5>{{item.job}}</h5>
+                  <h6>{{item.number}}</h6>
                 </div>
-              </div>
-            </div>
-          </dv-border-box-13>
-        </div>
-      </div>
-      <!-- 地图 -->
-      <supermap ref="supermap" style="width: 100%;height: 100vh;" :mapDiv="'forestMap'" class="indexSupermapClass"
-                :mapSite="{doubleClickZoom:false}" :codes="['9fa5']" :isSideBySide="false"></supermap>
-      <!-- 右侧 -->
-      <div class="rightbar" :class="indentright" ref="right">
-        <div class="forthis">
-          <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="this-title">
-              <span>巡查时段</span>
-              <dv-decoration-3 style="width:150px;height:15px;margin-right: 1rem;"/>
-            </div>
-            <div class="i-list-con h-73">
-              <div class="h-73 overflow-y">
-                <div class="d-l-con" :class="{on:listCurrentIndex2==item.planName}"
+              </div> -->
+							</div>
+						</div>
+					</dv-border-box-13>
+				</div>
+				<!--        avatar: ""-->
+				<!--        deptName: "锦程社区第一网格"-->
+				<!--        nickName: "李猛"-->
+				<!--        userId: 102-->
+				<!--        userName: "limeng"-->
+				<div class="forthis">
+					<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">
+							<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)">
+									<div class="icon icon-mid el-icon-user"></div>
+									<div class="icon-text personnel-name">
+										<h6>{{ item.nickName }}</h6>
+										<h5>{{ item.deptName }}</h5>
+									</div>
+								</div>
+							</div>
+						</div>
+					</dv-border-box-13>
+				</div>
+			</div>
+			<!-- 地图 -->
+			<supermap ref="supermap" style="width: 100%;height: 100vh;" :mapDiv="'forestMap'" class="indexSupermapClass"
+				:mapSite="{doubleClickZoom:false}" :codes="['9fa5']" :isSideBySide="false"></supermap>
+			<!-- 右侧 -->
+			<div class="rightbar" :class="indentright" ref="right">
+				<div class="forthis">
+					<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="this-title">
+							<span>巡护任务</span>
+							<dv-decoration-3 style="width:150px;height:15px;margin-right: 1rem;" />
+						</div>
+						<div class="i-list-con h-73">
+							<div class="h-73 overflow-y">
+                <el-collapse accordion>
+                  <el-collapse-item v-for="(item,index) in xunLinListOne">
+                    <template slot="title">
+                      <div class="d-l-con sj-collapse"
+                           @click="getRecordList(item.id)">
+                        <div class="d-l-l-text">
+                          <el-tooltip class="item" effect="dark" placement="left"
+                                      style="width:10rem ;" :disabled="(item.taskName.length <= 20)">
+                            <div slot="content">
+                              <h4 class="collapse-title" style="width: 200px;">
+                                {{ item.taskName}}</h4>
+                            </div>
+                            <h4 class="collapse-title" style="width: 100px;">
+                              {{ item.taskName | ellipsis20}}</h4>
+                          </el-tooltip>
+                        </div>
+                        <div class="d-l-l-count">({{ item.recordCount }}/{{ item.planCount }})
+                        </div>
+                      </div>
+                    </template>
+                    <div class="d-l-con this-child sj-collapse" @click="getPointList(child.id)"
+                         v-for="(child,index) in recordList">
+                      <div class="d-l-l-text">
+                        <h4>{{child.beginTime}} - {{child.endTime}}</h4>
+                      </div>
+                      <!--<div class="d-l-l-count">{{index}}</div>-->
+                    </div>
+                    <div class="d-l-con this-child sj-collapse"
+                         v-if="showNothing && (recordList == null || recordList == '' || recordList == [])">
+                      <div class="d-l-l-text">
+                        <h4 class="text-gray">暂无信息</h4>
+                      </div>
+                    </div>
+                  </el-collapse-item>
+                </el-collapse>
+								<!--<div class="d-l-con" :class="{on:listCurrentIndex2==item.planName}"
                      v-for="(item,index) in xunLinListOne"
-                     @click="getPointList(item.id)">
+                     @click="setConnectList(item.planLine,item.planName)">
                   <div class="d-l-l-text">
                     <i class="i-small"></i>
-                    <h4>{{ item.timeBegin }} - {{ item.timeEnd }}</h4>
+                    <h4>{{ item.planName }}</h4>
                   </div>
-                </div>
-              </div>
-            </div>
-          </dv-border-box-13>
-        </div>
-      </div>
-      <vBottomMenu ref="bottomMenu"></vBottomMenu>
-<!--      <el-tooltip :content="indentText" placement="top" :disabled="indentdisabled">-->
-<!--        <div class="mascot" ref="mascot" :class="indentStyle" @click="indent">-->
-<!--          <img src="@/assets/images/mascot.png"/>-->
-<!--        </div>-->
-<!--      </el-tooltip>-->
-    </div>
-    <eventLocation ref="eventLocation"></eventLocation>
-    <TVWall ref="TVWall"></TVWall>
-  </div>
+                </div>-->
+							</div>
+						</div>
+					</dv-border-box-13>
+				</div>
+
+
+			</div>
+			<vBottomMenu ref="bottomMenu"></vBottomMenu>
+			<!--      <el-tooltip :content="indentText" placement="top" :disabled="indentdisabled">-->
+			<!--        <div class="mascot" ref="mascot" :class="indentStyle" @click="indent">-->
+			<!--          <img src="@/assets/images/mascot.png"/>-->
+			<!--        </div>-->
+			<!--      </el-tooltip>-->
+		</div>
+		<eventLocation ref="eventLocation"></eventLocation>
+		<TVWall ref="TVWall"></TVWall>
+	</div>
 </template>
 
 <script>
-import {
-  getForestLeader,
-  getLeaderTrack,
-  getTrackList,
-  getPointList,
-  getRy
-} from '@/api/leader'
-
-import supermap from '@/components/supermap' //超图getPointList
-import vheader from '@/components/v-header.vue' //一体化共用头部
-import vBottomMenu from '@/components/vBottomMenu.vue' //一体化公共底部菜单
-import eventLocation from '@/components/eventLocation.vue' //事件定位弹窗
-import TVWall from '@/components/TVWall.vue' //电视墙弹窗
+	import {
+		getForestLeader,
+		getPlanList,
+		getRecordList,
+		getPointList,
+		getRy
+	} from '@/api/leader'
 
-let echarts = require('echarts')
-export default {
-  components: {
-    supermap,
-    vheader,
-    vBottomMenu,
-    eventLocation,
-    TVWall
-  },
-  data() {
-    return {
-      iconCurrentIndex1: '1',
-      listCurrentIndex1: '',
-      listCurrentIndex2: '',
-      //左右缩进
-      indentStyle: '',
-      indentleft: '',
-      indentright: '',
-      indentText: '收起左右栏',
-      indentdisabled: false,
-      visuForestCloudRYBO: [], //人员类型列表
-      peopleList: [], //人员列表
-      connectList: [], //画线
-      xunLinListOne: [], //巡林计划
-      zrs: 0, //总人数
-      zxrs: 0 //在线人数
-    }
-  },
-  created() {
-    this.getInit()
-    /** ----------------------------------底部按钮公用组件开始------------------------------------- */
-    window.showDialog = this.showDialog
-    window.choseLayerSwitching = this.choseLayerSwitching
-    window.choseLayerSwitchingList = this.choseLayerSwitchingList
-    /** ----------------------------------底部按钮公用组件结束------------------------------------- */
-  },
-  methods: {
-    /** ----------------------------------底部按钮公用组件开始------------------------------------- */
-    showDialog(click) {
-      if (click == 'eventLocation') {
-        this.$refs.eventLocation.showEventLocation()
-        this.$refs.supermap.isEditableLayers = false
-        this.$refs.bottomMenu.showChild = false
-        this.$refs.bottomMenu.showBanChild = false
-        this.$refs.bottomMenu.showChangChild = false
-      } else if (click == 'editableLayers') {
-        this.$refs.bottomMenu.showChild = false
-        this.$refs.bottomMenu.showBanChild = false
-        this.$refs.bottomMenu.showChangChild = false
-        if (!this.$refs.supermap.isEditableLayers) {
-          this.$refs.supermap.isEditableLayers = true
-        } else {
-          this.$refs.supermap.isEditableLayers = false
-        }
-      } else if (click == 'layerSwitching') {
-        this.$refs.supermap.isEditableLayers = false
-        this.$refs.bottomMenu.showBanChild = false
-        this.$refs.bottomMenu.showChangChild = false
-        if (!this.$refs.bottomMenu.showChild) {
-          this.$refs.bottomMenu.showChild = true
-        } else {
-          this.$refs.bottomMenu.showChild = false
-        }
-      } else if (click == 'TVWall') {
-        this.$refs.TVWall.showTVWall()
-        this.$refs.supermap.isEditableLayers = false
-        this.$refs.bottomMenu.showChild = false
-        this.$refs.bottomMenu.showBanChild = false
-        this.$refs.bottomMenu.showChangChild = false
-      } else if (click == 'forestban') {
-        this.$refs.supermap.isEditableLayers = false
-        this.$refs.bottomMenu.showChild = false
-        this.$refs.bottomMenu.showChangChild = false
-        if (!this.$refs.bottomMenu.showBanChild) {
-          this.$refs.bottomMenu.showBanChild = true
-        } else {
-          this.$refs.bottomMenu.showBanChild = false
-        }
-      } else if (click == 'forestchang') {
-        this.$refs.supermap.isEditableLayers = false
-        this.$refs.bottomMenu.showBanChild = false
-        this.$refs.bottomMenu.showChild = false
-        if (!this.$refs.bottomMenu.showChangChild) {
-          this.$refs.bottomMenu.showChangChild = true
-        } else {
-          this.$refs.bottomMenu.showChangChild = false
-        }
-      }
+	import supermap from '@/components/supermap' //超图
+	import vheader from '@/components/v-header.vue' //一体化共用头部
+	import vBottomMenu from '@/components/vBottomMenu.vue' //一体化公共底部菜单
+	import eventLocation from '@/components/eventLocation.vue' //事件定位弹窗
+	import TVWall from '@/components/TVWall.vue' //电视墙弹窗
 
+	let echarts = require('echarts')
+	export default {
+		components: {
+			supermap,
+			vheader,
+			vBottomMenu,
+			eventLocation,
+			TVWall
+		},
+		data() {
+			return {
+				iconCurrentIndex1: '1',
+				listCurrentIndex1: '',
+				listCurrentIndex2: '',
+				//左右缩进
+				indentStyle: '',
+				indentleft: '',
+				indentright: '',
+				indentText: '收起左右栏',
+				indentdisabled: false,
+				visuForestCloudRYBO: [], //人员类型列表
+				peopleList: [], //人员列表
+				connectList: [], //画线
+				xunLinListOne: [], //巡林任务
+				recordList: [], //巡查记录
+				showNothing: false, //暂无信息
+				zrs: 0, //总人数
+				zxrs: 0 //在线人数
+			}
+		},
+		created() {
+			this.getInit()
+			/** ----------------------------------底部按钮公用组件开始------------------------------------- */
+			window.showDialog = this.showDialog
+			window.choseLayerSwitching = this.choseLayerSwitching
+			window.choseLayerSwitchingList = this.choseLayerSwitchingList
+      window.choseLayerSwitchingList_Data = this.choseLayerSwitchingList_Data
+			/** ----------------------------------底部按钮公用组件结束------------------------------------- */
+		},
+    mounted(){
+      this.bottomMenuList() //获取底部公共组件消息和任务
     },
-    //选择图层
-    choseLayerSwitching(url, isClear) {
-      this.$refs.supermap.layerSwitching(url, isClear)
-    },
-    //选择图层(传递数组)
-    choseLayerSwitchingList(urlList) {
-      this.$refs.supermap.layerSwitchingList(urlList)
-    },
-    /** ----------------------------------底部按钮公用组件结束------------------------------------- */
+		methods: {
+			/** ----------------------------------底部按钮公用组件开始------------------------------------- */
+      bottomMenuList() {
+        this.$refs.bottomMenu.selectTaskList()//获取任务列表
+        this.$refs.bottomMenu.selectMessageList()//获取消息列表
+      },
+			showDialog(click) {
+				if (click == 'eventLocation') {
+					this.$refs.eventLocation.showEventLocation()
+					this.$refs.supermap.isEditableLayers = false
+					this.$refs.bottomMenu.showChild = false
+					this.$refs.bottomMenu.showBanChild = false
+					this.$refs.bottomMenu.showChangChild = false
+				} else if (click == 'editableLayers') {
+					this.$refs.bottomMenu.showChild = false
+					this.$refs.bottomMenu.showBanChild = false
+					this.$refs.bottomMenu.showChangChild = false
+					if (!this.$refs.supermap.isEditableLayers) {
+						this.$refs.supermap.isEditableLayers = true
+					} else {
+						this.$refs.supermap.isEditableLayers = false
+					}
+				} else if (click == 'layerSwitching') {
+					this.$refs.supermap.isEditableLayers = false
+					this.$refs.bottomMenu.showBanChild = false
+					this.$refs.bottomMenu.showChangChild = false
+					if (!this.$refs.bottomMenu.showChild) {
+						this.$refs.bottomMenu.showChild = true
+					} else {
+						this.$refs.bottomMenu.showChild = false
+					}
+				} else if (click == 'TVWall') {
+					this.$refs.TVWall.showTVWall()
+					this.$refs.supermap.isEditableLayers = false
+					this.$refs.bottomMenu.showChild = false
+					this.$refs.bottomMenu.showBanChild = false
+					this.$refs.bottomMenu.showChangChild = false
+				} else if (click == 'forestban') {
+					this.$refs.supermap.isEditableLayers = false
+					this.$refs.bottomMenu.showChild = false
+					this.$refs.bottomMenu.showChangChild = false
+					if (!this.$refs.bottomMenu.showBanChild) {
+						this.$refs.bottomMenu.showBanChild = true
+					} else {
+						this.$refs.bottomMenu.showBanChild = false
+					}
+				} else if (click == 'forestchang') {
+					this.$refs.supermap.isEditableLayers = false
+					this.$refs.bottomMenu.showBanChild = false
+					this.$refs.bottomMenu.showChild = false
+					if (!this.$refs.bottomMenu.showChangChild) {
+						this.$refs.bottomMenu.showChangChild = true
+					} else {
+						this.$refs.bottomMenu.showChangChild = false
+					}
+				}
 
-    //初始化
-    getInit() {
-      let that = this
-      this.iconCurrentIndex1 = '1'
-      this.listCurrentIndex1 = ''
-      this.listCurrentIndex2 = ''
-      //获取左侧菜单列表
-      getRy().then(res => {
-        that.visuForestCloudRYBO = res.data.visuForestCloudRYBO
-        that.zrs = res.data.visuForestCloudRyZxBO.zrs
-        that.zxrs = res.data.visuForestCloudRyZxBO.zxrs
-        this.personnelChart()
-      })
-      //获取巡林计划
-      // getPlanList().then(res => {
-      //   this.xunLinListOne = res.data
-      // })
-      // // 获取轨迹列表
-      // getTrackList().then(res => {
-      //   this.xunLinListOne = res.data
-      // })
-      // 获取人员列表
-      // getForestLeader(linJob, linType).then(res => {
-      getForestLeader().then(res => {
-        this.peopleList = res.data;
-        console.log("人员",res.data)
-      })
-      this.connectList = []
-      // this.$refs.supermap.clearC() //clearC undefined
-    },
-    //获取左侧人员列表
-    getForestLeader(linJob, linType) {
-      this.listCurrentIndex1 = ''
-      this.listCurrentIndex2 = ''
-      this.iconCurrentIndex1 = linJob
-      this.peopleList = []
-      getForestLeader(linJob, linType).then(res => {
-        this.peopleList = res.data;
-      })
-      this.connectList = []
-      this.$refs.supermap.clearC()
-    },
-    //点击左侧人员列表获取轨迹
-    getLeaderTrack(personId) {
-      getTrackList(personId).then(res => {
-        console.log("轨迹",res.data);
-        if(res.data.length > 0){// 当前资源人员有巡查轨迹 获取最新一条轨迹
-          this.xunLinListOne = res.data;
-          this.getPointList(res.data[0].id);
-        }else {// 清空上一用户落点
-          this.xunLinListOne = [{"timeBegin": "当前资源人员", "timeEnd": "暂无巡查轨迹"}];
-          this.$refs.supermap.clearC()
-        }
-      })
-    },
-    getLeaderTrack_original(userId) {
-      this.listCurrentIndex1 = userId
-      let that = this
-      this.connectList = []
-      getLeaderTrack(userId).then(res => {
-        // this.xunLinListOne = res.data;
-        // 获取右侧轨迹列表
-        // getPlanList().then(res => {
-        //   this.xunLinListOne = res.data
-        // })
+			},
+			//选择图层
+			choseLayerSwitching(url, isClear) {
+				this.$refs.supermap.layerSwitching(url, isClear)
+			},
+			//选择图层(传递数组)
+			choseLayerSwitchingList(urlList) {
+				this.$refs.supermap.layerSwitchingList(urlList)
+			},
+      //选择图层(传递数组)  带数据
+      choseLayerSwitchingList_Data(urlList) {
+        this.$refs.supermap.layerSwitchingList_Data(urlList)
+      },
+			/** ----------------------------------底部按钮公用组件结束------------------------------------- */
 
-        if (res.data != null && res.data.length > 0) {
-          for (let i = 0; i < res.data.length; i++) {
-            let latlng = {
-              lat: res.data[i].latitude,
-              lng: res.data[i].longitude
-            }
-            this.connectList.push(latlng)
-          }
-          setTimeout(() => {
-            that.$refs.supermap.clearC()
-            that.$refs.supermap.setConnectList(this.connectList, 'red')
-          }, 1000)
-        } else {
-          that.$refs.supermap.clearC()
-        }
-      })
-    },
+			//初始化
+			getInit() {
+				let that = this
+				this.iconCurrentIndex1 = '1'
+				this.listCurrentIndex1 = ''
+				this.listCurrentIndex2 = ''
+				//获取左侧菜单列表
+				getRy().then(res => {
+					that.visuForestCloudRYBO = res.data.visuForestCloudRYBO
+					that.zrs = res.data.visuForestCloudRyZxBO.zrs
+					that.zxrs = res.data.visuForestCloudRyZxBO.zxrs
+					this.personnelChart()
+				})
+			},
+			//获取左侧人员列表
+			getForestLeader(linJob, linType) {
+				this.listCurrentIndex1 = ''
+				this.listCurrentIndex2 = ''
+				this.iconCurrentIndex1 = linJob
+				this.peopleList = []
+				getForestLeader(linJob, linType).then(res => {
+					this.peopleList = res.data
+				})
+				this.connectList = []
+				this.$refs.supermap.clearC()
+			},
+			//点击左侧人员列表获取 巡林计划
+			getPlanList(personId) {
+				this.showNothing = false;
+				this.recordList = [];
+				getPlanList(personId).then(res => {
+					this.xunLinListOne = res.data;
+				})
+				this.$refs.supermap.clearC()
+			},
+			//点击右侧巡林计划获取 巡查记录
+			getRecordList(id) {
+				this.showNothing = false;
+				this.recordList = [];
+				getRecordList(id).then(res => {
+					this.recordList = res.data;
+				})
+				this.$refs.supermap.clearC()
+			},
+			//点击右侧巡查记录获取 巡查轨迹
+			getPointList(id) {
+				getPointList(id).then(res => {
+					// console.log("落点",res.data);
+					this.setPointList(res);
+				})
+			},
+			//点击巡查轨迹时段 巡查轨迹落点
+			setPointList(res) {
+				let that = this;
+				this.connectList = [];
+				console.log("落点", res.data)
+				if (res.data != null && res.data.length > 0) {
+					for (let i = 0; i < res.data.length; i++) {
+						let latlng = {
+							lat: res.data[i].latitude,
+							lng: res.data[i].longitude
+						}
+						this.connectList.push(latlng)
+					}
+					setTimeout(() => {
+						that.$refs.supermap.clearC()
+						that.$refs.supermap.setConnectList(this.connectList, 'red')
+					}, 1000)
+				} else {
+					that.$refs.supermap.clearC()
+				}
+			},
+			setConnectList(points, planName) {
+				this.listCurrentIndex2 = planName
+				this.connectList = []
+				if (points != null && points != '') {
+					this.connectList = JSON.parse(points)
+					this.$refs.supermap.setConnectTwoList(this.connectList, 'red')
+				}
+			},
 
-    getPointList(trackId) {
-      let that = this;
-      this.connectList = [];
-      getPointList(trackId).then(res => {
-        console.log("落点",res.data)
-        if (res.data != null && res.data.length > 0) {
-          for (let i = 0; i < res.data.length; i++) {
-            let latlng = {
-              lat: res.data[i].latitude,
-              lng: res.data[i].longitude
-            }
-            this.connectList.push(latlng)
-          }
-          setTimeout(() => {
-            that.$refs.supermap.clearC()
-            that.$refs.supermap.setConnectList(this.connectList, 'red')
-          }, 1000)
-        } else {
-          that.$refs.supermap.clearC()
-        }
-      })
-    },
-    setConnectList(points, planName) {
-      this.listCurrentIndex2 = planName
-      this.connectList = []
-      if (points != null && points != '') {
-        this.connectList = JSON.parse(points)
-        this.$refs.supermap.setConnectTwoList(this.connectList, 'red')
-      }
-    },
+			//吉祥物收起左右框
+			indent() {
+				let list = document.getElementsByClassName('el-tooltip__popper')
+				list[list.length - 1].style.display = 'none'
+				if (this.indentStyle == '') {
+					this.indentStyle = 'indent-style'
+					this.indentleft = 'indent-left'
+					this.indentright = 'indent-right'
+					this.indentText = '展开左右栏'
+				} else if (this.indentText == '展开左右栏') {
+					this.indentStyle = ''
+					this.indentleft = ''
+					this.indentright = ''
+					this.indentText = '收起左右栏'
+				}
+			},
+			//人员chart
+			personnelChart() {
+				// 基于准备好的dom,初始化echarts实例
+				let myChart = echarts.init(document.getElementById('personnel-chart'))
+				// 绘制图表
+				const handred = this.zrs
+				let point = this.zxrs
+				myChart.setOption({
+					title: [{
+						text: '总人数:' + handred + '人' + '\n' + '\n' + '在线人数:' + point + '人',
+						x: '48%',
+						y: '25%',
+						textStyle: {
+							fontWeight: 'normal',
+							color: '#02d6fc',
+							fontSize: '14'
+						}
+					}],
+					series: [{
+						name: 'circle',
+						type: 'pie',
+						center: ['22%', '50%'],
+						radius: ['60%', '70%'],
+						clockWise: true,
+						label: {
+							normal: {
+								position: 'center'
 
-    //吉祥物收起左右框
-    indent() {
-      let list = document.getElementsByClassName('el-tooltip__popper')
-      list[list.length - 1].style.display = 'none'
-      if (this.indentStyle == '') {
-        this.indentStyle = 'indent-style'
-        this.indentleft = 'indent-left'
-        this.indentright = 'indent-right'
-        this.indentText = '展开左右栏'
-      } else if (this.indentText == '展开左右栏') {
-        this.indentStyle = ''
-        this.indentleft = ''
-        this.indentright = ''
-        this.indentText = '收起左右栏'
-      }
-    },
-    //人员chart
-    personnelChart() {
-      // 基于准备好的dom,初始化echarts实例
-      let myChart = echarts.init(document.getElementById('personnel-chart'))
-      // 绘制图表
-      const handred = this.zrs
-      let point = this.zxrs
-      myChart.setOption({
-        title: [{
-          text: '总人数:' + handred + '人' + '\n' + '\n' + '在线人数:' + point + '人',
-          x: '48%',
-          y: '25%',
-          textStyle: {
-            fontWeight: 'normal',
-            color: '#02d6fc',
-            fontSize: '14'
-          }
-        }],
-        series: [{
-          name: 'circle',
-          type: 'pie',
-          center: ['22%', '50%'],
-          radius: ['60%', '70%'],
-          clockWise: true,
-          label: {
-            normal: {
-              position: 'center'
+							}
+						},
+						itemStyle: {
+							normal: {
+								label: {
+									show: false
+								},
+								labelLine: {
+									show: false
+								}
+							}
+						},
+						data: [{
+							value: point,
+							name: '当前在线',
+							label: {
+								show: true, //单独显示该数据项
+								formatter: '{c}人',
+								labelLayout: {
+									top: '50%'
+								},
+								textStyle: {
+									color: '#02d6fc',
+									fontSize: 14
+								}
+							},
+							itemStyle: {
+								normal: {
+									color: { // 完成的圆环的颜色
+										colorStops: [{
+											offset: 0,
+											color: '#02d6fc' // 0% 处的颜色
+										}, {
+											offset: 1,
+											color: '#367bec' // 100% 处的颜色
+										}]
+									},
+									label: {
+										show: false
+									},
+									labelLine: {
+										show: false
+									}
+								}
+							}
+						}, {
+							value: handred - point,
+							itemStyle: {
+								color: '#666'
+							}
+						}]
+					}]
+				})
+			}
+
+
+		},
+		//过滤器
+
+		filters: {
+
+			//标题截取前20
+			ellipsis20(value) {
+				if (!value) return '';
+				if (value.length > 20) {
+					return value.slice(0, 20) + '...'
+				}
+				return value
+			}
+		},
 
-            }
-          },
-          itemStyle: {
-            normal: {
-              label: {
-                show: false
-              },
-              labelLine: {
-                show: false
-              }
-            }
-          },
-          data: [{
-            value: point,
-            name: '当前在线',
-            label: {
-              show: true, //单独显示该数据项
-              formatter: '{c}人',
-              labelLayout: {
-                top: '50%'
-              },
-              textStyle: {
-                color: '#02d6fc',
-                fontSize: 14
-              }
-            },
-            itemStyle: {
-              normal: {
-                color: { // 完成的圆环的颜色
-                  colorStops: [{
-                    offset: 0,
-                    color: '#02d6fc' // 0% 处的颜色
-                  }, {
-                    offset: 1,
-                    color: '#367bec' // 100% 处的颜色
-                  }]
-                },
-                label: {
-                  show: false
-                },
-                labelLine: {
-                  show: false
-                }
-              }
-            }
-          }, {
-            value: handred - point,
-            itemStyle: {
-              color: '#666'
-            }
-          }]
-        }]
-      })
-    }
-  },
-  //过滤器
-  filters: {
-    //标题截取前20
-    ellipsis20(value) {
-      if (!value) return '';
-      if (value.length > 20) {
-        return value.slice(0, 20) + '...'
-      }
-      return value
-    }
-  },
-}
+	}
 </script>
 
 <style rel="stylesheet/scss" lang="scss" scoped>
-@import '@/assets/styles/base.scss';
+	@import '@/assets/styles/base.scss';
 
-.h-27 {
-  height: 27rem;
-}
+	.h-27 {
+		height: 27rem;
+	}
 </style>

+ 86 - 129
src/views/monitor.vue

@@ -41,26 +41,52 @@
                   </div>
                 </div>
               </div>
-              <div class="overflow-y" style="height: 33vh;">
-                <el-collapse accordion>
-                  <el-collapse-item v-for="(item,index) in region" :key="index">
-                    <!-- deptId -->
-                    <template slot="title">
-                      <div class="d-l-con sj-collapse" :class="{on:listCurrentIndex1==item.deptId}"
-                           v-on:click="selectCameraByDeptId(item.deptId)">
-                        <div class="d-l-l-text">
-                          <h4 class="collapse-title">{{ item.deptName }}</h4>
-                        </div>
-                        <div class="d-l-l-count">{{ item.deptCount }}</div>
-                      </div>
-                    </template>
-                  </el-collapse-item>
-                </el-collapse>
-              </div>
+<!--              <div class="overflow-y" style="height: 33vh;">-->
+<!--                <el-collapse accordion>-->
+<!--                  <el-collapse-item v-for="(item,index) in region" :key="index">-->
+<!--                    &lt;!&ndash; deptId &ndash;&gt;-->
+<!--                    <template slot="title">-->
+<!--                      <div class="d-l-con sj-collapse" :class="{on:listCurrentIndex1==item.deptId}"-->
+<!--                           v-on:click="selectCameraByDeptId(item.deptId)">-->
+<!--                        <div class="d-l-l-text">-->
+<!--                          <h4 class="collapse-title">{{ item.deptName }}</h4>-->
+<!--                        </div>-->
+<!--                        <div class="d-l-l-count">{{ item.deptCount }}</div>-->
+<!--                      </div>-->
+<!--                    </template>-->
+<!--                  </el-collapse-item>-->
+<!--                </el-collapse>-->
+<!--              </div>-->
 
-              <!-- 横向柱状 echart -->
-              <div class="overflow-y" style="height: 33vh;">
-                <div id="camera-chart" style="width: 100%;height:33vh;"></div>
+<!--              &lt;!&ndash; 横向柱状 echart &ndash;&gt;-->
+<!--              <div class="overflow-y" style="height: 33vh;">-->
+<!--                <div id="camera-chart" style="width: 100%;height:33vh;"></div>-->
+<!--              </div>-->
+              <div  class="overflow-y" style="height: 70vh;">
+                <div class="i-list-con h-65">
+                  <div class="head-container">
+                    <el-input
+                      v-model="deptName"
+                      placeholder="请输入部门名称"
+                      clearable
+                      size="small"
+                      prefix-icon="el-icon-search"
+                      style="margin-bottom: 20px"
+                    />
+                  </div>
+                  <div class="head-container tree-scrollbar" style="height: 700px;overflow-y:auto;">
+                    <el-tree
+                      :data="deptOptions"
+                      :props="defaultProps"
+                      :expand-on-click-node="false"
+                      :filter-node-method="filterNode"
+                      ref="tree"
+                      node-key="id"
+                      :default-expanded-keys="[100]"
+                      @node-click="handleNodeClick"
+                    />
+                  </div>
+                </div>
               </div>
             </div>
           </dv-border-box-13>
@@ -135,7 +161,7 @@ import {
   selectKeyAreaList,
   getRegionalFlag
 } from '@/api/monitor'
-
+import { treeselect } from '@/api/system/dept'
 import supermap from '@/components/supermap' //超图
 import vheader from '@/components/v-header.vue' //一体化共用头部
 import vBottomMenu from '@/components/vBottomMenu.vue' //一体化公共底部菜单
@@ -178,9 +204,19 @@ export default {
   mounted() {
     this.selectDeviceType(-1)
     this.selectKeyAreaList()
+    this.bottomMenuList() //获取底部公共组件消息和任务
+    this.getTreeselect()
   },
   data() {
     return {
+      // 部门名称
+      deptName: undefined,
+// 部门树选项
+      deptOptions: undefined,
+      defaultProps: {
+        children: 'children',
+        label: 'label'
+      },
       iconCurrentIndex1: '-1',
       listCurrentIndex1: '-1',
       listCurrentIndex2: '-1',
@@ -219,7 +255,31 @@ export default {
       domId: 'dom1',
     }
   },
+  watch: {
+    // 根据名称筛选部门树
+    deptName(val) {
+      this.$refs.tree.filter(val)
+    }
+  },
   methods: {
+    /** 部门树*/
+// 查询部门下拉树结构
+    getTreeselect() {
+      treeselect().then(response => {
+        console.log(response.data)
+        this.deptOptions = response.data
+      })
+    },
+// 筛选节点
+    filterNode(value, data) {
+      if (!value) return true
+      return data.label.indexOf(value) !== -1
+    },
+// 节点单击事件
+    handleNodeClick(data) {
+      // this.findCameraByDept(data.id)
+      this.selectCameraByDeptId(data.id);
+    },
     selectKeyAreaList() {
       this.keyAreaList=[]
       //获取重点区域列表
@@ -253,6 +313,10 @@ export default {
       })
     },
     /** ----------------------------------底部按钮公用组件开始------------------------------------- */
+    bottomMenuList() {
+      this.$refs.bottomMenu.selectTaskList()//获取任务列表
+      this.$refs.bottomMenu.selectMessageList()//获取消息列表
+    },
     showDialog(click) {
       if (click == 'eventLocation') {
         this.$refs.eventLocation.showEventLocation()
@@ -314,112 +378,6 @@ export default {
       this.$refs.supermap.layerSwitchingList(urlList)
     },
     /** ----------------------------------底部按钮公用组件结束------------------------------------- */
-    cameraChat() {
-      // 基于准备好的dom,初始化echarts实例
-      let myChart = echarts.init(document.getElementById('camera-chart'))
-      // 绘制图表
-      const dfColor = ['#92E1FF', '#0097FB', '#30ECA6', '#FFC227', '#FF4848']
-      myChart.setOption({
-        dataset: {
-          source: this.sourceData
-        },
-        tooltip: {
-          trigger: 'item'
-
-        },
-        grid: {
-          top: '5%',
-          left: '5%',
-          // right: "4%",
-          bottom: '0%',
-          width: '75%',
-          containLabel: true
-        },
-        dataZoom: [{
-          show:true,
-          type: 'slider',
-          yAxisIndex:0,
-          left:10,
-          start: 0,
-          end: this.sourceData.length > 10 ? 40 : 100,
-          width:15
-        }],
-        xAxis: {
-          show: false,
-          type: 'value',
-          left:10
-        },
-        yAxis: {
-          type: 'category', // 不设置类目轴,抽离的dataset数据展示不出来
-          inverse: true,
-          axisLabel: {
-            show: true,
-            textStyle: {
-              color: '#5deaff',
-              fontSize: '12'
-            }
-          },
-          splitLine: {
-            show: false
-          },
-          axisTick: {
-            show: false
-          },
-          axisLine: {
-            show: false
-          }
-        },
-
-        series: [{
-
-          type: 'bar',
-          animationCurve: 'easeOutBack',
-          barWidth: 5,
-          label: {
-            show: true,
-            position: 'right',
-            offset: [0, 0],
-            color: '#88dfd5',
-            // fontSize: "12",
-            style: {
-              fill: '#fff'
-            }
-          },
-          backgroundBar: {
-            show: true,
-            style: {
-              fill: 'rgba(97,152,255,0.20)'
-            }
-          },
-          barStyle: {
-            stroke: 'rgba(41,244,236,1)'
-          },
-          gradient: {
-            color: ['rgba(41,244,236,1)', 'rgba(41,244,236,0)']
-          },
-          itemStyle: {
-            label: {
-              show: true
-            },
-            labelLine: {
-              show: false
-            },
-            color: new echarts.graphic.LinearGradient(0, 1, 0, 0, [{
-              offset: 0,
-              color: 'rgba(41,244,236,0)'
-            },
-              {
-                offset: 1,
-                color: 'rgba(41,244,236,.5)'
-              }
-            ]),
-            borderColor: '#a2f9f7',
-            shadowBlur: 16,
-            shadowColor: '#a2f9f7'
-          }
-        }]
-      })
-    },
     selectDeviceType(index) {
       this.iconCurrentIndex1 = index
       //获取左侧动态感知设备
@@ -441,7 +399,6 @@ export default {
         }
 
         that.visuForestCloudCameraBOList = res.data.visuForestCloudCameraBOList
-        this.cameraChat()
         if (res.data.visuForestCloudCameraBOList != null && res.data.visuForestCloudCameraBOList
           .length > 0) {
           for (let i = 0; i < res.data.visuForestCloudCameraBOList.length; i++) {
@@ -549,8 +506,8 @@ export default {
               isAggregation: false
             }
             if (res.data[i].channelCode != null) {
-              markersMap.parameter = {code:res.data.data[i].cameraCode,
-                type:res.data.data[i].cameraFactory}
+              markersMap.parameter = {code:res.data[i].cameraCode,
+                type:res.data[i].cameraFactory}
             } else {
               markersMap.parameter = []
             }