| | |
| | | * @Author: shuishen 1109946754@qq.com |
| | | * @Date: 2022-08-18 16:18:17 |
| | | * @LastEditors: shuishen 1109946754@qq.com |
| | | * @LastEditTime: 2023-03-15 09:15:07 |
| | | * @LastEditTime: 2023-03-22 15:15:18 |
| | | * @FilePath: \srs-police-affairs\src\views\activity\index.vue |
| | | * @Description: 安保活 |
| | | * @Description: 电子沙盘 |
| | | * |
| | | * Copyright (c) 2022 by shuishen 1109946754@qq.com, All Rights Reserved. |
| | | --> |
| | |
| | | <template> |
| | | <div class="activity-page container"> |
| | | <div v-show="boxShow" class="container-content"> |
| | | <div class="title">安保活动</div> |
| | | <div class="title">电子沙盘</div> |
| | | <div class="search-box"> |
| | | <div> |
| | | <div class="category">选择时间:</div> |
| | |
| | | </div> |
| | | |
| | | <div> |
| | | <div class="category">活动名称:</div> |
| | | <div class="category">名称:</div> |
| | | <div class="category-value search-activity"> |
| | | <input type="text" placeholder="请输入…" v-model="searchActivity" class="category-input" |
| | | @input="inputChange" /> |
| | |
| | | <div class="row-title">常规安保</div> |
| | | <div class="row-content"> |
| | | <div> |
| | | <div class="category">活动名称:</div> |
| | | <div class="category">名称:</div> |
| | | <div class="category-value">{{ item.name }}</div> |
| | | </div> |
| | | <div> |
| | |
| | | <div class="category-value">{{ item.number }}</div> |
| | | </div> |
| | | <div> |
| | | <div class="category">活动时间:</div> |
| | | <div class="category">时间:</div> |
| | | <div class="category-value">{{ item.startTime }} 至 {{ item.endTime }}</div> |
| | | </div> |
| | | <div> |
| | | <div class="category">活动详情:</div> |
| | | <div class="category">详情:</div> |
| | | <div class="category-value">{{ item.content }}</div> |
| | | </div> |
| | | </div> |
| | |
| | | //摄像头 |
| | | this.getEquipmentAll({ type: 1},'') |
| | | //警车 |
| | | this.getEquipmentAll({ type: 0},''); |
| | | this.getEquipmentAll({ type: 0 }, '') |
| | | //手台-公网 |
| | | this.getEquipmentAll({ type: "2-1" },''); |
| | | this.getEquipmentAll({ type: "2-1" }, '') |
| | | //手台-专网 |
| | | this.getEquipmentAll({ type: "2-2" },''); |
| | | this.getEquipmentAll({ type: "2-2" }, '') |
| | | //执法记录仪 |
| | | this.getEquipmentAll({ type: 3 },'') |
| | | |
| | |
| | | this.getSecurityList(this.currentPage, this.pagesize, this.activityType, this.searchActivity, startTime, endTime) |
| | | }, |
| | | |
| | | // 获取活动列表 |
| | | // 获取列表 |
| | | getSecurityList (current, size, type, name, startTime, endTime) { |
| | | this.loading() |
| | | var deptId = "" |
| | |
| | | }) |
| | | }, |
| | | |
| | | // 添加活动图标 |
| | | // 添加图标 |
| | | addActivityPoint () { |
| | | this.activityList.forEach(item => { |
| | | let positionObj = this.convertBillboardPositionDate(item, 'activity') |
| | |
| | | }, |
| | | |
| | | /** |
| | | * @description: 点击活动列表活动 |
| | | * @description: 点击列表 |
| | | * @param {*} item |
| | | * @param {*} index |
| | | * @return {*} |
| | |
| | | |
| | | this.showingSecurityId = item.id |
| | | |
| | | // 加载当前活动面 |
| | | // 加载当前面 |
| | | if (item.activityArea && item.activityArea.length > 0) { |
| | | let polyGonData = item.activityArea.slice(11, item.activityArea.length - 1) |
| | | polyGonData = polyGonData.replace(/,/g, ";") |
| | |
| | | }) |
| | | } |
| | | |
| | | // 警员警车列表根据活动deptid筛选 |
| | | // 警员警车列表根据deptid筛选 |
| | | // 获取树状警员数据 |
| | | console.log('item',item.deptId,item); |
| | | console.log('item', item.deptId, item) |
| | | this.getPolicemanTree({deptId:item.deptId}) |
| | | |
| | | this.getCarList({deptId:item.deptId}) |
| | |
| | | this.getSecurityCarList(this.showingSecurityId, this.policeSwitch, this.polylineBtnSwitch, 'line') |
| | | }, |
| | | |
| | | // 获取活动标绘箭头列表 |
| | | // 获取标绘箭头列表 |
| | | getSecurityPlotList (securityId, arrowShow, showType) { |
| | | arrowsListLayer.clear() |
| | | this.$refs.DRAWBTNBOX.removeDrawArrow() |
| | |
| | | }) |
| | | }, |
| | | |
| | | // 获取活动警员分布信息 |
| | | // 获取警员分布信息 |
| | | getSecurityPoliceList (securityId, pointShow) { |
| | | this.$refs.DRAWBTNBOX.removeDraw() |
| | | |
| | |
| | | }) |
| | | }, |
| | | |
| | | // 活动添加警车和范围 |
| | | // carId警车id, position坐标, securityId活动id, type线面类型,width缓存范围,color范围颜色 |
| | | // 添加警车和范围 |
| | | // carId警车id, position坐标, securityIdid, type线面类型,width缓存范围,color范围颜色 |
| | | addCarAndRange (params) { |
| | | addCarAndRange(params).then(res => { |
| | | if (res.data.success) { |
| | |
| | | }) |
| | | }, |
| | | |
| | | // 活动添加警员 |
| | | // policemanId警车id, position坐标, securityId活动id, type线面类型 |
| | | // 添加警员 |
| | | // policemanId警车id, position坐标, securityIdid, type线面类型 |
| | | addActivityPolice (params) { |
| | | addActivityPolice(params).then(res => { |
| | | if (res.data.success) { |
| | |
| | | |
| | | // 树形控件选中事件 |
| | | treeCheckClick (e1, e2) { |
| | | // 没有选中活动就不展示实时图标 |
| | | // 没有选中就不展示实时图标 |
| | | const that = this |
| | | this.$EventBus.$emit('mapRemoveLayer', { |
| | | layerName: 'activeHeatLayer', |
| | |
| | | // 清除定时器 |
| | | if(realPoliceTimer != {}) { |
| | | for(let item in realPoliceTimer) { |
| | | console.log(`定时器realPoliceTimer[${item}]关闭了`); |
| | | console.log(`定时器realPoliceTimer[${item}]关闭了`) |
| | | clearInterval(realPoliceTimer[item]) |
| | | } |
| | | } |
| | | if(data != []){ |
| | | data.some(item => { |
| | | return item.label == '视频监控' |
| | | }) ? this.iconImageShowOrHidden('/img/icon/camera.png', '',cameraList, 'activityCameraLayers') : this.clearLayerIconForMap('activityCameraLayers'); |
| | | }) ? this.iconImageShowOrHidden('/img/icon/camera.png', '', cameraList, 'activityCameraLayers') : this.clearLayerIconForMap('activityCameraLayers') |
| | | |
| | | data.some(item => { |
| | | return item.label == '警车' |
| | | }) ? this.iconImageShowOrHidden('/img/icon/real-car.png','/img/icon/real-car-ok.png', carList, 'activityCarLayers') : this.clearLayerIconForMap('activityCarLayers'); |
| | | }) ? this.iconImageShowOrHidden('/img/icon/real-car.png', '/img/icon/real-car-ok.png', carList, 'activityCarLayers') : this.clearLayerIconForMap('activityCarLayers') |
| | | |
| | | data.some(item => { |
| | | return item.label == '公网' |
| | | }) ? this.iconImageShowOrHidden('/img/icon/real-public-recorder.png','/img/icon/real-public-recorder-ok.png', talkBackEquipmentPublicList, 'activityTalkBackEquipmentPublicLayers') : this.clearLayerIconForMap('activityTalkBackEquipmentPublicLayers'); |
| | | }) ? this.iconImageShowOrHidden('/img/icon/real-public-recorder.png', '/img/icon/real-public-recorder-ok.png', talkBackEquipmentPublicList, 'activityTalkBackEquipmentPublicLayers') : this.clearLayerIconForMap('activityTalkBackEquipmentPublicLayers') |
| | | |
| | | data.some(item => { |
| | | return item.label == '专网' |
| | | }) ? this.iconImageShowOrHidden('/img/icon/real-recorder.png','/img/icon/real-recorder-ok.png', talkBackEquipmentList, 'activityTalkBackEquipmentLayers') : this.clearLayerIconForMap('activityTalkBackEquipmentLayers'); |
| | | }) ? this.iconImageShowOrHidden('/img/icon/real-recorder.png', '/img/icon/real-recorder-ok.png', talkBackEquipmentList, 'activityTalkBackEquipmentLayers') : this.clearLayerIconForMap('activityTalkBackEquipmentLayers') |
| | | |
| | | data.some(item => { |
| | | return item.label == '执法记录仪' |
| | | }) ? this.iconImageShowOrHidden('/img/icon/real-phone.png', '/img/icon/real-phone-ok.png',policeCarmeraList, 'activityPoliceCameraLayers') : this.clearLayerIconForMap('activityPoliceCameraLayers'); |
| | | }) ? this.iconImageShowOrHidden('/img/icon/real-phone.png', '/img/icon/real-phone-ok.png', policeCarmeraList, 'activityPoliceCameraLayers') : this.clearLayerIconForMap('activityPoliceCameraLayers') |
| | | } |
| | | }, |
| | | |
| | |
| | | */ |
| | | clearLayerIconForMap(layerName) { |
| | | realPoliceTimer[layerName] && clearInterval(realPoliceTimer[layerName]) |
| | | console.log(`定时器realPoliceTimer[${layerName}]关闭了`); |
| | | console.log(`定时器realPoliceTimer[${layerName}]关闭了`) |
| | | this.$EventBus.$emit('mapClearLayer', { |
| | | layerName: layerName, |
| | | type: 'VectorLayer' |
| | |
| | | } |
| | | }, |
| | | |
| | | // 关闭活动详情弹窗 |
| | | // 关闭详情弹窗 |
| | | closeActivityDetails () { |
| | | this.dialogVisible = false |
| | | this.polylineBtnSwitch = false |
| | |
| | | |
| | | // 定时查找实时警力资源 |
| | | searchRealResources(layerName){ |
| | | console.log(`定时器realPoliceTimer[${layerName}]开启了`); |
| | | console.log(`定时器realPoliceTimer[${layerName}]开启了`) |
| | | let type = '' |
| | | if(layerName == 'activityCarLayers') { |
| | | type = 0 |
| | |
| | | }else if (layerName == 'activityPoliceCameraLayers'){ |
| | | type = 3 |
| | | } |
| | | this.getEquipmentAll({ type: type ,query:this.showingSecurityId },layerName); |
| | | this.getEquipmentAll({ type: type, query: this.showingSecurityId }, layerName) |
| | | }, |
| | | |
| | | // 大小重置 |
| | |
| | | } |
| | | }, |
| | | |
| | | // 保存活动标绘箭头 |
| | | // securityId活动id, position坐标, type标绘类型, name多边形名称,color标绘颜色,aera_type多边形类型 |
| | | // 保存标绘箭头 |
| | | // securityIdid, position坐标, type标绘类型, name多边形名称,color标绘颜色,aera_type多边形类型 |
| | | addSecurityPlot (params) { |
| | | addSecurityPlot(params).then(res => { |
| | | if (res.data.success) { |
| | |
| | | this.lineEditVisible = false |
| | | }, |
| | | |
| | | // 删除活动标绘接口 |
| | | // 删除标绘接口 |
| | | deleteSecurityPlot (id) { |
| | | deleteSecurityPlot(id).then(res => { |
| | | if (res.data.success) { |
| | |
| | | }) |
| | | }, |
| | | |
| | | // 删除活动标绘 |
| | | // 删除标绘 |
| | | deletePlot () { |
| | | this.deleteSecurityPlot(this.plotId) |
| | | this.editPlotVisible = false |
| | |
| | | // 清除定时器 |
| | | if(realPoliceTimer != {}) { |
| | | for(let item in realPoliceTimer) { |
| | | console.log(`定时器realPoliceTimer[${item}]关闭了`); |
| | | console.log(`定时器realPoliceTimer[${item}]关闭了`) |
| | | clearInterval(realPoliceTimer[item]) |
| | | } |
| | | } |