|
@@ -26,25 +26,12 @@
|
|
|
</div>
|
|
|
<div class="i-list-con h-25">
|
|
|
<div class="d-l-con-icon">
|
|
|
- <div class="icon-con w-33 m-btm-no">
|
|
|
+ <div class="icon-con w-33 m-btm-no" v-for="(item,index) in visuForestCloudMapDeviceBOList"
|
|
|
+ v-on:click="showDevice(item.deviceType)">
|
|
|
<div class="icon icon-dot"></div>
|
|
|
<div class="icon-text">
|
|
|
- <h6>500</h6>
|
|
|
- <h5>摄像头</h5>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <div class="icon-con w-33 m-btm-no">
|
|
|
- <div class="icon icon-dot"></div>
|
|
|
- <div class="icon-text">
|
|
|
- <h6>453</h6>
|
|
|
- <h5>传感器</h5>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <div class="icon-con w-33 m-btm-no">
|
|
|
- <div class="icon icon-dot"></div>
|
|
|
- <div class="icon-text">
|
|
|
- <h6>453</h6>
|
|
|
- <h5>大喇叭</h5>
|
|
|
+ <h6>{{item.deviceCount}}</h6>
|
|
|
+ <h5>{{item.deviceName}}</h5>
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
@@ -73,9 +60,7 @@
|
|
|
</div>
|
|
|
<!-- 地图 -->
|
|
|
<supermap ref="supermap" style="width: 100%;height: 100vh;" :mapDiv="'forestMap'" :mapSite="{doubleClickZoom:false}"
|
|
|
- :codes="['9fa5']" :isSideBySide="false"></supermap>
|
|
|
- <button @click="showEventInfo1" style="position: absolute; right: 50%;top: 45%;z-index: 1000;">弹层事件演示用按钮
|
|
|
- </button>
|
|
|
+ :codes="['9fa5']" :isSideBySide="false" @preview="preview" @showEventInfo_notProcessed="showEventInfo_notProcessed"></supermap>
|
|
|
<!-- 右侧 -->
|
|
|
<div class="rightbar" :class="indentright" ref="right">
|
|
|
<div class="forthis">
|
|
@@ -152,14 +137,23 @@
|
|
|
</div>
|
|
|
<!--事件弹层-->
|
|
|
<div class="event-info">
|
|
|
- <el-dialog title="事件信息" :visible.sync="eventInfoVisible1" width="80%">
|
|
|
- <el-tabs v-model="activeName">
|
|
|
- <el-tab-pane label="基础信息" name="info">
|
|
|
- <div class="event-info-con">
|
|
|
- <div class="e-left">
|
|
|
- <div class="forthis">
|
|
|
- <div class="i-list-con h-35">
|
|
|
- <span v-for="(information,index) in information" :key="index+'5'">
|
|
|
+ <el-dialog title="事件信息-未处理" :visible.sync="eventInfoVisible_notProcessed" v-if="eventInfoVisible_notProcessed" width="80%" @close="cancelEventShow()">
|
|
|
+ <div style="position:absolute; right: 0;top:60px; width:40%;">
|
|
|
+ <el-steps :space="200" :active="1" finish-status="success">
|
|
|
+ <el-step title="待处理"></el-step>
|
|
|
+ <el-step title="处理中"></el-step>
|
|
|
+ <el-step title="已办结"></el-step>
|
|
|
+ <el-step title="已归档"></el-step>
|
|
|
+ </el-steps>
|
|
|
+
|
|
|
+ </div>
|
|
|
+ <el-tabs v-model="activeName" @tab-click="handleClick" :before-leave="beforeLeave" >
|
|
|
+ <el-tab-pane label="基础信息" name="info" >
|
|
|
+ <div class="event-info-con">
|
|
|
+ <div class="e-left">
|
|
|
+ <div class="forthis">
|
|
|
+ <div class="i-list-con h-35">
|
|
|
+ <span v-for="(information,index) in information" :key="index">
|
|
|
<div class="d-l-con" @click="">
|
|
|
<div class="d-l-l-text">
|
|
|
<i class="i-small"></i>
|
|
@@ -168,111 +162,131 @@
|
|
|
</div>
|
|
|
</div>
|
|
|
</span>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <div class="forthis d-map h-30">
|
|
|
- <!-- <supermapDetails></supermapDetails> -->
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <div class="e-center">
|
|
|
- <div class="forthis">
|
|
|
- <div class="this-title">
|
|
|
- <span>涉事单位</span>
|
|
|
- </div>
|
|
|
- <div class="i-list-con h-24">
|
|
|
- <span v-for="(company,index) in company" :key="index+'6'">
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="forthis d-map h-30">
|
|
|
+ <div class="this-title">
|
|
|
+ <span>涉事单位</span>
|
|
|
+ </div>
|
|
|
+ <div class="i-list-con h-26">
|
|
|
+ <span v-for="(company,index) in listEventDept" :key="index">
|
|
|
<div class="d-l-con" @click="">
|
|
|
<div class="d-l-l-text">
|
|
|
<i class="i-small"></i>
|
|
|
- <h4>{{company.name}}</h4>
|
|
|
+ <h4>{{company.deptName}}</h4>
|
|
|
</div>
|
|
|
<div class="d-l-l-count"
|
|
|
- :class="[company.state==0?'state-wcl':'state-wyc']">
|
|
|
- {{['未处理','无异常'][company.state]}}
|
|
|
+ :class="[company.eventStatus=='未处理'?'state-wcl':'state-wyc']">
|
|
|
+<!-- {{['未处理','无异常'][company.state]}}-->{{company.eventStatus}}
|
|
|
</div>
|
|
|
</div>
|
|
|
</span>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <el-image :src="url02" :preview-src-list="srcList" class="img-company">
|
|
|
- </el-image>
|
|
|
- </div>
|
|
|
- <div class="e-right">
|
|
|
- <div class="forthis h-67">
|
|
|
- <div class="this-title">
|
|
|
- <span>处理过程</span>
|
|
|
- </div>
|
|
|
- <div class="i-list-con">
|
|
|
- <div class="this-con">
|
|
|
- <div class="z-begin">党校监控点位 2022-02-12 14:39 上报警情
|
|
|
- </div>
|
|
|
- <div class="z-info-list">
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="e-center">
|
|
|
+ <div class="forthis">
|
|
|
+ <div class="i-list-con h-35">
|
|
|
+ <el-image :src="url" :preview-src-list="listEventPic" class="img-company" style="height: 100%;" v-if="url!=''">
|
|
|
+ </el-image>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="forthis h-30">
|
|
|
+ <div class="i-list-con h-26">
|
|
|
+ <el-image :src="item"
|
|
|
+ style="width:3.9rem; height:3rem;margin: 2px;"
|
|
|
+ v-for="(item,index) in listEventPic" @click="tp(item)">
|
|
|
+ </el-image>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="e-right">
|
|
|
+ <div class="forthis h-67">
|
|
|
+ <div class="this-title">
|
|
|
+ <span>处理过程</span>
|
|
|
+ </div>
|
|
|
+ <div class="i-list-con">
|
|
|
+ <div class="this-con">
|
|
|
+ <span v-for="(company,index) in listLog" :key="index">
|
|
|
|
|
|
- <el-image :src="require('@/assets/images/visual/user-img.png')"
|
|
|
- style="width: 3rem; height: 3rem;margin:2px;">
|
|
|
- </el-image>
|
|
|
+ <div class="z-begin" v-if="company.messageType=='sys_messageType_1'">
|
|
|
+ {{company.logContent}} {{company.createTime}}
|
|
|
+ </div>
|
|
|
+ <div class="z-info-list" v-if="company.messageType=='sys_messageType_2'">
|
|
|
|
|
|
- <div class="z-info-list-con">
|
|
|
- <div class="user-and-time">
|
|
|
- <span>中心管理员</span><span> 2022-02-12 14:39</span>
|
|
|
- </div>
|
|
|
- <div class="z-info">
|
|
|
- <div class="this-con-list-info">
|
|
|
- 请处理单位及时处理
|
|
|
- </div>
|
|
|
- <div>
|
|
|
- <el-image :src="url02" :preview-src-list="srcList"
|
|
|
- style="width:7rem; height:5rem;margin: 2px;"
|
|
|
- v-for="(item,index) in 1" key="index+'7'">
|
|
|
- </el-image>
|
|
|
- </div>
|
|
|
+ <el-image :src="require('@/assets/images/visual/user-img.png')"
|
|
|
+ style="width: 3rem; height: 3rem;margin:2px;">
|
|
|
+ </el-image>
|
|
|
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <div class="z-info-list">
|
|
|
+ <div class="z-info-list-con">
|
|
|
|
|
|
- <el-image :src="require('@/assets/images/visual/user-img.png')"
|
|
|
- style="width: 3rem; height: 3rem;margin:2px;">
|
|
|
- </el-image>
|
|
|
+ <div class="user-and-time">
|
|
|
+ <span>{{company.createBy}}</span><span> {{company.createTime}}</span>
|
|
|
+ </div>
|
|
|
+ <div class="z-info">
|
|
|
+ <div class="this-con-list-info">
|
|
|
+ {{company.logContent}}
|
|
|
+ </div>
|
|
|
+ <div>
|
|
|
+ <el-image :src="url" :preview-src-list="srcList"
|
|
|
+ style="width:6.5rem; height:5rem;margin: 2px;"
|
|
|
+ v-for="(item,index) in 4">
|
|
|
+ </el-image>
|
|
|
+ </div>
|
|
|
|
|
|
- <div class="z-info-list-con">
|
|
|
- <div class="user-and-time">
|
|
|
- <span>救援队</span><span> 2022-02-12 14:39</span>
|
|
|
- </div>
|
|
|
- <div class="z-info">
|
|
|
- <div class="this-con-list-info">
|
|
|
- 正在赶往现场
|
|
|
- </div>
|
|
|
- <div>
|
|
|
- <el-image ref="preview" :src="url03"
|
|
|
- :preview-src-list="srcList"
|
|
|
- style="width:7rem; height:5rem;margin: 2px;">
|
|
|
- </el-image>
|
|
|
- </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <div class="e-btm-btn">
|
|
|
- <el-form>
|
|
|
- <el-form-item>
|
|
|
- <el-radio v-model="radio" label="1">无异常</el-radio>
|
|
|
- <el-radio v-model="radio" label="2">确认警情</el-radio>
|
|
|
- <el-button type="success" @click="">确定</el-button>
|
|
|
- </el-form-item>
|
|
|
+ </div>
|
|
|
+ </span>
|
|
|
|
|
|
- </el-form>
|
|
|
- </div>
|
|
|
- </el-tab-pane>
|
|
|
- <el-tab-pane label="联动点位" disabled name="point">暂无信息</el-tab-pane>
|
|
|
- </el-tabs>
|
|
|
- </el-dialog>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="e-btm-btn">
|
|
|
+ <el-form>
|
|
|
+ <el-form-item>
|
|
|
+ <el-select v-model="deptName" clearable placeholder="请选择部门" class="m-r-1rem" @change="setValue" >
|
|
|
+ <el-option
|
|
|
+ v-for="item in listoperateDept"
|
|
|
+ :key="item.deptId"
|
|
|
+ :label="item.deptName"
|
|
|
+ :value="{value:item.deptId,label:item.deptName}" :disabled="item.eventStatus=='未处理' ? false:true">
|
|
|
+ </el-option>
|
|
|
+ </el-select>
|
|
|
+ <el-select v-model="eventStatus" clearable placeholder="请选择状态" class="m-r-1rem" @change="setXsYc">
|
|
|
+ <el-option
|
|
|
+ v-for="item in options"
|
|
|
+ :key="item.value"
|
|
|
+ :label="item.label"
|
|
|
+ :value="item.value">
|
|
|
+ </el-option>
|
|
|
+ </el-select>
|
|
|
+ <el-select v-model="eventType" clearable placeholder="请选择事件" class="m-r-1rem" v-if="eventTypeShow" >
|
|
|
+ <el-option
|
|
|
+ v-for="item in listeventType"
|
|
|
+ :key="item.id"
|
|
|
+ :label="item.eventTypeName"
|
|
|
+ :value="item.eventType">
|
|
|
+ </el-option>
|
|
|
+ </el-select>
|
|
|
+ <!-- <el-radio v-model="radio" label="1">无异常</el-radio>
|
|
|
+ <el-radio v-model="radio" label="2">确认火情</el-radio> -->
|
|
|
+ <el-button type="success" @click="updateEventStatus">确定</el-button>
|
|
|
+ </el-form-item>
|
|
|
+
|
|
|
+ </el-form>
|
|
|
+ </div>
|
|
|
+ </el-tab-pane>
|
|
|
+ <el-tab-pane label="实时画面" name="frame">
|
|
|
+ </el-tab-pane>
|
|
|
+ <el-tab-pane label="地理位置" name="point" style="height: 1000px;">
|
|
|
+ </el-tab-pane>
|
|
|
+ <supermapNotProcessed ref="supermapNotProcessed" style="width: 1000px;height: 1000px;" :mapDiv="'forestfireWarmSuperMap'" :mapSite="{doubleClickZoom:false}" :codes="['9fa5']" @preview="preview" :isSideBySide="false"></supermapNotProcessed>
|
|
|
+ </el-tabs>
|
|
|
+ </el-dialog>
|
|
|
<el-dialog title="事件信息" :visible.sync="eventInfoVisible2" width="80%">
|
|
|
<el-tabs v-model="activeName">
|
|
|
<el-tab-pane label="基础信息" name="info">
|
|
@@ -403,24 +417,35 @@
|
|
|
getTodayEvent,getEventStatusList,getEventSourceList,getEventListByDeptIdList
|
|
|
} from '@/api/event'
|
|
|
import {
|
|
|
- getBaseInfo
|
|
|
+ getBaseInfo,selectByeventCode,getWarm,updateDeptEventStatus,listByEventCode,selectCameraEventByCameraId,listCenterdataTAttachByBusId,selectchannelCodeByCameraId,selectFjsxt
|
|
|
} from '@/api/forest'
|
|
|
|
|
|
- import supermap from '@/components/supermap' //超图
|
|
|
+ import supermap from '@/components/supermap' //超图
|
|
|
+ import supermapNotProcessed from '@/components/supermap' //超图
|
|
|
import vheader from '@/components/v-header.vue' //一体化共用头部
|
|
|
import vBottomMenu from '@/components/vBottomMenu.vue' //一体化公共底部菜单
|
|
|
+
|
|
|
+ /** ----------------------------------摄像头预览开始------------------------------------- */
|
|
|
+ import {getDahuaVideoServer} from "@/api/dahua/dahua";
|
|
|
+ import DHWs from '@/dahua/lib/DHWs'
|
|
|
+
|
|
|
+ /** ----------------------------------摄像头预览结束------------------------------------- */
|
|
|
// import echarts from 'echarts'
|
|
|
let echarts = require('echarts')
|
|
|
export default {
|
|
|
+ dicts: ['event_source'],
|
|
|
components: {
|
|
|
supermap,
|
|
|
+ supermapNotProcessed,
|
|
|
vheader,
|
|
|
vBottomMenu
|
|
|
},
|
|
|
created() {
|
|
|
- // this.$watch("open", function(newValue, oldValue) {
|
|
|
- // this.outOpen();
|
|
|
- // })
|
|
|
+ /** ----------------------------------摄像头预览开始------------------------------------- */
|
|
|
+ const DHWsInstance = DHWs.getInstance();
|
|
|
+ this.ws = DHWsInstance;
|
|
|
+ console.log(this.ws);
|
|
|
+ /** ----------------------------------摄像头预览结束------------------------------------- */
|
|
|
},
|
|
|
mounted() {
|
|
|
this.getBaseInfo()
|
|
@@ -429,6 +454,14 @@
|
|
|
},
|
|
|
data() {
|
|
|
return {
|
|
|
+ /** ----------------------------------摄像头预览开始------------------------------------- */
|
|
|
+ activePanel: 'key1',
|
|
|
+ isLogin: false,
|
|
|
+ cameraParams: [],
|
|
|
+ /** ----------------------------------摄像头预览结束------------------------------------- */
|
|
|
+ markersList:[],//点位列表
|
|
|
+ cameraList:[],//摄像头列表
|
|
|
+ visuForestCloudMapDeviceBOList:[],//设备列表
|
|
|
visuForestCloudRYBO:[],//人员类型列表
|
|
|
sourceData:[],
|
|
|
todayEventCountList: [],//今日事件列表
|
|
@@ -439,11 +472,46 @@
|
|
|
iframeBoo: true,
|
|
|
open: false,
|
|
|
iframeVue: null,
|
|
|
- eventInfoVisible1: false,
|
|
|
+ eventInfoVisible_notProcessed: false,
|
|
|
eventInfoVisible2: false,
|
|
|
activeName: 'info',
|
|
|
radio: '1',
|
|
|
forestInfo: '',//基本情况
|
|
|
+ /** ----------------------------------事件弹窗开始------------------------------------- */
|
|
|
+ listEventPic: [],//事件图片
|
|
|
+ url: '',
|
|
|
+ eventTypeShow : '',
|
|
|
+ eventType : '',
|
|
|
+ deptName : '',
|
|
|
+ eventStatus : '',
|
|
|
+ cameraId: '',
|
|
|
+ reportTime: '',
|
|
|
+ reportAddress: '',
|
|
|
+ eventCode: null,
|
|
|
+ eventSource: '',
|
|
|
+ //事件详情弹出显隐
|
|
|
+ eventTypeShow: false,
|
|
|
+ listEventDept: [],//涉事单位List,
|
|
|
+ listLog: [],//处理过程List,
|
|
|
+ listoperateDept:[],
|
|
|
+ options: [{
|
|
|
+ value: 'wyc',
|
|
|
+ label: '无异常'
|
|
|
+ }, {
|
|
|
+ value: 'qr',
|
|
|
+ label: '确认'
|
|
|
+ }],
|
|
|
+ listeventType: [],
|
|
|
+ updateEventStatusForm: {
|
|
|
+ id: '',
|
|
|
+ eventStatus: '',
|
|
|
+ eventCode: '',
|
|
|
+ deptId: '',
|
|
|
+ deptName: '',
|
|
|
+ eventType: '',
|
|
|
+ zt: ''
|
|
|
+ },
|
|
|
+ /** ----------------------------------事件弹窗结束------------------------------------- */
|
|
|
forestFarm: [{
|
|
|
name: '双辽市',
|
|
|
id: '',
|
|
@@ -509,43 +577,44 @@
|
|
|
}
|
|
|
],
|
|
|
// 弹出层 基本信息
|
|
|
- information: [{
|
|
|
- name: '标题',
|
|
|
- id: '',
|
|
|
- content: '前段发现警情信息'
|
|
|
+ information: [
|
|
|
+ {
|
|
|
+ name: '标题',
|
|
|
+ id: '',
|
|
|
+ content: '某某某某某发现疑似火情'
|
|
|
|
|
|
- },
|
|
|
- {
|
|
|
- name: '时间',
|
|
|
- id: '',
|
|
|
- content: '2022-02-14 14:30'
|
|
|
- },
|
|
|
- {
|
|
|
- name: '来源',
|
|
|
- id: '',
|
|
|
- content: '摄像头'
|
|
|
- },
|
|
|
- {
|
|
|
- name: '坐标',
|
|
|
- id: '',
|
|
|
- content: '125.78945646'
|
|
|
- },
|
|
|
- {
|
|
|
- name: '纬度',
|
|
|
- id: '',
|
|
|
- content: '43.987424'
|
|
|
- },
|
|
|
- {
|
|
|
- name: '上报人',
|
|
|
- id: '',
|
|
|
- content: '党校监控点位'
|
|
|
- },
|
|
|
- {
|
|
|
- name: '详细信息',
|
|
|
- id: '',
|
|
|
- content: '这里发现病虫害,需要立刻支援'
|
|
|
- }
|
|
|
- ],
|
|
|
+ },
|
|
|
+ {
|
|
|
+ name: '时间',
|
|
|
+ id: '',
|
|
|
+ content: '2022-02-14 14:30'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ name: '来源',
|
|
|
+ id: '',
|
|
|
+ content: '摄像头'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ name: '坐标',
|
|
|
+ id: '',
|
|
|
+ content: '125.78945646'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ name: '纬度',
|
|
|
+ id: '',
|
|
|
+ content: '43.987424'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ name: '上报人',
|
|
|
+ id: '',
|
|
|
+ content: '党校监控点位'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ name: '详细信息',
|
|
|
+ id: '',
|
|
|
+ content: '这里发生火灾,需要立刻支援'
|
|
|
+ },
|
|
|
+ ],
|
|
|
// 弹出层 基本信息 涉事单位
|
|
|
company: [{
|
|
|
name: '沈洋镇',
|
|
@@ -599,6 +668,12 @@
|
|
|
},
|
|
|
|
|
|
methods: {
|
|
|
+ async beforeLeave(newactiveName, oldActiveName) {
|
|
|
+ let that = this;
|
|
|
+ if (newactiveName == 'frame') {
|
|
|
+ return await that.formLeaveTable()
|
|
|
+ }
|
|
|
+ },
|
|
|
//态势感知chart
|
|
|
cameraChat() {
|
|
|
// 基于准备好的dom,初始化echarts实例
|
|
@@ -826,12 +901,181 @@
|
|
|
this.indentText = '收起左右栏'
|
|
|
}
|
|
|
},
|
|
|
-
|
|
|
+ /** ----------------------------------事件弹窗开始------------------------------------- */
|
|
|
// 弹层方法
|
|
|
- // 弹层方法
|
|
|
- showEventInfo1() {
|
|
|
- this.eventInfoVisible1 = true
|
|
|
+ showEventInfo_notProcessed(id) {
|
|
|
+ let that = this
|
|
|
+ that.eventInfoVisible_notProcessed = true
|
|
|
+ that.listEventPic = [],
|
|
|
+ that.url = '',
|
|
|
+ that.resetQuery()
|
|
|
+ getWarm(id).then(res => {
|
|
|
+ let data = res.data
|
|
|
+ that.id = data.id;
|
|
|
+ that.cameraId = data.reportById
|
|
|
+ that.reportTime = data.reportTime
|
|
|
+ that.reportAddress = data.reportAddress
|
|
|
+ that.eventCode = data.eventCode
|
|
|
+ that.eventSource = data.eventSource
|
|
|
+ that.information[0].content = data.eventTitle
|
|
|
+ that.information[1].content = data.reportTime
|
|
|
+ that.information[2].content = that.selectDictLabel(that.dict.type.event_source, data.eventSource)
|
|
|
+ that.information[3].content = data.longitude
|
|
|
+ that.information[4].content = data.latitude
|
|
|
+ that.information[5].content = data.reportBy
|
|
|
+ that.information[6].content = data.eventContent
|
|
|
+ selectByeventCode(data.eventCode).then(res1 => {
|
|
|
+ debugger
|
|
|
+ let that = this
|
|
|
+ that.listEventDept = res1.data.allDept
|
|
|
+ that.listoperateDept = res1.data.operateDept
|
|
|
+ })
|
|
|
+
|
|
|
+ listByEventCode(data.eventCode).then(res2 => {
|
|
|
+ let that = this
|
|
|
+ that.listLog = res2.data
|
|
|
+ })
|
|
|
+
|
|
|
+
|
|
|
+ selectCameraEventByCameraId(data.reportById).then(res3 => {
|
|
|
+ let that = this
|
|
|
+ that.listeventType = res3.data
|
|
|
+ })
|
|
|
+
|
|
|
+ if (data.attachId != null) {
|
|
|
+ listCenterdataTAttachByBusId(data.attachId).then(res4 => {
|
|
|
+ let that = this
|
|
|
+ that.listEventPic = res4.data
|
|
|
+ if (that.listEventPic.length > 0) {
|
|
|
+ that.url = that.listEventPic[0]
|
|
|
+ } else {
|
|
|
+ that.url = ""
|
|
|
+ }
|
|
|
+ })
|
|
|
+ }
|
|
|
+ })
|
|
|
},
|
|
|
+ updateEventStatus() {
|
|
|
+ if (this.deptName == '') {
|
|
|
+ this.$modal.msgError("请选择部门");
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if (this.eventStatus == '') {
|
|
|
+ this.$modal.msgError("请选择状态");
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if (this.eventTypeShow) {
|
|
|
+ if (this.eventType == '') {
|
|
|
+ this.$modal.msgError("请选择事件类型");
|
|
|
+ return
|
|
|
+ }
|
|
|
+ }
|
|
|
+ this.updateEventStatusForm.id = this.id
|
|
|
+ this.updateEventStatusForm.zt = this.eventStatus
|
|
|
+ this.updateEventStatusForm.eventCode = this.eventCode
|
|
|
+ this.updateEventStatusForm.deptId = this.deptId
|
|
|
+ this.updateEventStatusForm.deptName = this.deptName
|
|
|
+ this.updateEventStatusForm.eventType = this.eventType
|
|
|
+
|
|
|
+
|
|
|
+ updateDeptEventStatus(this.updateEventStatusForm).then(response => {
|
|
|
+ this.$modal.msgSuccess(response.msg)
|
|
|
+ this.eventStatus = ''
|
|
|
+ this.deptId = ''
|
|
|
+ this.eventType = ''
|
|
|
+ this.deptName = ''
|
|
|
+ this.eventShow = false
|
|
|
+ this.getList();
|
|
|
+ cancelEventShow();
|
|
|
+ })
|
|
|
+ },
|
|
|
+ setXsYc() {
|
|
|
+ let that = this
|
|
|
+ if (this.eventStatus == 'qr') {
|
|
|
+ this.eventTypeShow = true
|
|
|
+ } else {
|
|
|
+ this.eventTypeShow = false
|
|
|
+ }
|
|
|
+ },
|
|
|
+ setValue(event) {
|
|
|
+ this.deptId = event.value
|
|
|
+ this.deptName = event.label
|
|
|
+ },
|
|
|
+ cancelEventShow() {
|
|
|
+ this.activeName = 'info';
|
|
|
+ },
|
|
|
+ handleClick: function (tab, oldActiveName) {
|
|
|
+ let that = this
|
|
|
+ if (tab.name == 'frame') {
|
|
|
+ if (that.eventSource == 'event_source_2') {
|
|
|
+ selectchannelCodeByCameraId(that.cameraId).then(res => {
|
|
|
+ let channelCode = [];
|
|
|
+ if (res.data != null && res.data.length > 0) {
|
|
|
+ for (let i = 0; i < res.data.length; i++) {
|
|
|
+ channelCode.push(res.data[i].channelCode);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //this.preview("ZgVzqsjwA1DT3G85KJ7HH0");
|
|
|
+ this.preview(channelCode);
|
|
|
+ })
|
|
|
+ }
|
|
|
+ } else if (tab.name == 'point') {
|
|
|
+ setTimeout(() => {
|
|
|
+ that.markersMapList=[];
|
|
|
+ let information={};
|
|
|
+ information.lng = that.information[3].content;
|
|
|
+ information.lat = that.information[4].content;
|
|
|
+ let bindPopupHtml = '';
|
|
|
+ for (let i = 0; i < that.information.length; i++) {
|
|
|
+ bindPopupHtml += '<span>' +
|
|
|
+ ' <div class="d-l-con">' +
|
|
|
+ ' <div class="d-l-l-text">' +
|
|
|
+ ' <h4>' + that.information[i].name + ':' + that.information[i].content + '</h4>' +
|
|
|
+ ' </div>' +
|
|
|
+ ' </div>' +
|
|
|
+ ' </span>';
|
|
|
+ }
|
|
|
+ information.bindPopupHtml = bindPopupHtml;
|
|
|
+ information.click = "";
|
|
|
+ information.keepBindPopup = false;
|
|
|
+ information.isAggregation = false;
|
|
|
+ information.icon = "marker";
|
|
|
+ that.markersMapList.push(information)
|
|
|
+ that.$refs.supermapNotProcessed.dropLocation(that.information[4].content,that.information[3].content)
|
|
|
+ // 查询火点附近摄像头
|
|
|
+ selectFjsxt(that.information[3].content,that.information[4].content).then(response => {
|
|
|
+ console.log("vv",response.data)
|
|
|
+ if (response.data!=null&&response.data.length>0){
|
|
|
+ for(let i=0;i<response.data.length;i++)
|
|
|
+ {
|
|
|
+ let marke={};
|
|
|
+ marke.lng = response.data[i].longitude;
|
|
|
+ marke.lat = response.data[i].latitude;
|
|
|
+ let code=response.data[i].channelCode.split(",");
|
|
|
+ marke.bindPopupHtml = response.data[i].cameraName;
|
|
|
+ marke.click = "preview";
|
|
|
+ marke.parameter = code;
|
|
|
+ marke.keepBindPopup = false;
|
|
|
+ marke.isAggregation = false;
|
|
|
+ marke.icon = "marker";
|
|
|
+ that.markersMapList.push(marke)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ that.$refs.supermapNotProcessed.clearM(false)
|
|
|
+ that.$refs.supermapNotProcessed.setMarkers(that.markersMapList)
|
|
|
+ })
|
|
|
+ }, 1000);
|
|
|
+
|
|
|
+ }
|
|
|
+ },
|
|
|
+ /** ----------------------------------事件弹窗结束------------------------------------- */
|
|
|
+ /** 重置按钮操作 */
|
|
|
+ resetQuery() {
|
|
|
+ this.eventTypeShow = false
|
|
|
+ this.eventType = ''
|
|
|
+ this.deptName = ''
|
|
|
+ this.eventStatus = ''
|
|
|
+ },
|
|
|
showEventInfo2() {
|
|
|
this.eventInfoVisible2 = true
|
|
|
},
|
|
@@ -841,7 +1085,8 @@
|
|
|
//获取左侧菜单列表
|
|
|
getBaseInfo().then(res => {
|
|
|
that.forestInfo = res.data.baseinfo.baseinfo;//基本情况
|
|
|
-
|
|
|
+ that.cameraList = res.data.cameraList;
|
|
|
+ that.visuForestCloudMapDeviceBOList=res.data.visuForestCloudMapDeviceBOList;
|
|
|
|
|
|
if (res.data.VisuForestCloudTodaySjfbBO!=null&&res.data.VisuForestCloudTodaySjfbBO.length>0){
|
|
|
for (let i = 0; i < res.data.VisuForestCloudTodaySjfbBO.length; i++) {
|
|
@@ -857,11 +1102,17 @@
|
|
|
icon: 'marker',
|
|
|
bindPopupHtml: '',
|
|
|
click: '',
|
|
|
+ parameter: '',
|
|
|
keepBindPopup: false,
|
|
|
- isAggregation: true
|
|
|
+ isAggregation: false
|
|
|
}
|
|
|
if(res.data.visuForestVgdEventBOList!=null&&res.data.visuForestVgdEventBOList.length>0){
|
|
|
+ if(res.data.visuForestVgdEventBOList.length>500){
|
|
|
+ markersMap.isAggregation = true
|
|
|
+ }
|
|
|
for (let i = 0; i < res.data.visuForestVgdEventBOList.length; i++) {
|
|
|
+ markersMap.click = "showEventInfo_notProcessed"
|
|
|
+ markersMap.parameter = res.data.visuForestVgdEventBOList[i].id
|
|
|
markersMap.lng = res.data.visuForestVgdEventBOList[i].longitude
|
|
|
markersMap.lat =res.data.visuForestVgdEventBOList[i].latitude
|
|
|
markersMap.bindPopupHtml = '<div class="map-tip">' +
|
|
@@ -1107,6 +1358,116 @@
|
|
|
// reportTime: "2022-06-27 02:42:04"
|
|
|
})
|
|
|
},
|
|
|
+ showDevice(deviceType){
|
|
|
+ this.cameraMarkersList=[];
|
|
|
+ if(deviceType=="sxt"){
|
|
|
+ this.$refs.supermap.clearM(false)
|
|
|
+ if(this.cameraList!=null&&this.cameraList.length>0){
|
|
|
+ for (let i = 0; i < this.cameraList.length; i++) {
|
|
|
+ let markersMap = {
|
|
|
+ lng: 124.59,
|
|
|
+ lat: 43.02,
|
|
|
+ icon: 'camera',
|
|
|
+ bindPopupHtml: '',
|
|
|
+ click: 'preview',
|
|
|
+ parameter: '',
|
|
|
+ keepBindPopup: false,
|
|
|
+ isAggregation: false
|
|
|
+ }
|
|
|
+ markersMap.parameter=this.cameraList[i].channelCode.split(",");
|
|
|
+ markersMap.lng=this.cameraList[i].longitude;
|
|
|
+ markersMap.lat=this.cameraList[i].latitude;
|
|
|
+ markersMap.bindPopupHtml = '<div class="map-tip">' +
|
|
|
+ '<span>' +
|
|
|
+ ' <div class="d-l-con">' +
|
|
|
+ ' <div class="d-l-l-text">' +
|
|
|
+ ' <h4>经纬度:' +this.cameraList[i].longitude + ',' +this.cameraList[i].latitude + '</h4>' +
|
|
|
+ ' </div>' +
|
|
|
+ ' </div>' +
|
|
|
+ ' </span>' +
|
|
|
+ '<span>' +
|
|
|
+ ' <div class="d-l-con">' +
|
|
|
+ ' <div class="d-l-l-text">' +
|
|
|
+ ' <h4>摄像头名称:' +this.cameraList[i].cameraName + '</h4>' +
|
|
|
+ ' </div>' +
|
|
|
+ ' </div>' +
|
|
|
+ ' </span>' +
|
|
|
+ '</div>';
|
|
|
+ this.cameraMarkersList.push(markersMap);
|
|
|
+ // cameraAccount: "1"
|
|
|
+ // cameraCode: "1000010"
|
|
|
+ // cameraFactory: "2"
|
|
|
+ // cameraIp: "1"
|
|
|
+ // cameraName: "2"
|
|
|
+ // cameraPasword: "2"
|
|
|
+ // cameraPort: 2
|
|
|
+ // cameraRadius: 20
|
|
|
+ // cameraRegion: "3"
|
|
|
+ // dataDeptId: null
|
|
|
+ // dataStatus: null
|
|
|
+ // eventType: null
|
|
|
+ // height: "11"
|
|
|
+ // id: "0d165fc362514f79b12a899ea66295fd"
|
|
|
+ // latitude: "49.325625"
|
|
|
+ // longitude: "125.3333"
|
|
|
+ }
|
|
|
+ this.$refs.supermap.setMarkers(this.cameraMarkersList)
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ },
|
|
|
+ /** ----------------------------------摄像头预览开始------------------------------------- */
|
|
|
+ alertLogin: function () {
|
|
|
+ this.$modal.msg("登录中....");
|
|
|
+ },
|
|
|
+ alertLoginSuccess: function () {
|
|
|
+ this.$modal.msgSuccess("登录成功!");
|
|
|
+ },
|
|
|
+ alertLoginFailed: function () {
|
|
|
+ this.$modal.msgError("登陆失败!");
|
|
|
+ },
|
|
|
+ alertReinstall: function () {
|
|
|
+ this.$modal.msgWarning("请重新安装客户端");
|
|
|
+ },
|
|
|
+ /** 预览按钮操作 */
|
|
|
+ preview(channelCode) {
|
|
|
+ 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,
|
|
|
+ token: '',
|
|
|
+ https: 1
|
|
|
+ });
|
|
|
+ this.ws.on('loginState', (res) => {
|
|
|
+ this.isLogin = res;
|
|
|
+ console.log('---res-----', res);
|
|
|
+ if (res) {
|
|
|
+ this.alertLoginSuccess()
|
|
|
+ this.activePanel = 'key2'
|
|
|
+ this.realTimeVideoDialog(channelCode);
|
|
|
+ } else {
|
|
|
+ this.alertLoginFailed();
|
|
|
+ }
|
|
|
+ });
|
|
|
+ } else { // 连接客户端失败
|
|
|
+ this.alertReinstall();
|
|
|
+ }
|
|
|
+ });
|
|
|
+ });
|
|
|
+ },
|
|
|
+ realTimeVideoDialog(cameraParams) { // 调用弹窗实时播放接口
|
|
|
+ if (!this.isLogin) {
|
|
|
+ this.$Message.info('正在登陆客户端,请稍等......');
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ this.ws.openVideo(cameraParams);
|
|
|
+ },
|
|
|
+ /** ----------------------------------摄像头预览结束------------------------------------- */
|
|
|
}
|
|
|
}
|
|
|
</script>
|