| | |
| | | <div class="second-container" :class="{ 'spread': boxShow, 'take-back': !boxShow }"> |
| | | <el-tree :data="treeData" show-checkbox node-key="id" @check="treeCheckClick"></el-tree> |
| | | </div> |
| | | |
| | | <div v-show="dialogVisible" class="activity-details-box"> |
| | | <div class="title"> |
| | | 活动详情 |
| | | <div class="close" @click="closeActivityDetails"></div> |
| | | </div> |
| | | <div class="row-box"> |
| | | <div class="category">人数:</div> |
| | | <div class="category-value">{{ activityDetails.number }}</div> |
| | | </div> |
| | | <div class="row-box"> |
| | | <div class="category">活动名称:</div> |
| | | <div class="category-value">{{ activityDetails.name }}</div> |
| | | </div> |
| | | <div class="row-box"> |
| | | <div class="category">负责单位:</div> |
| | | <div class="category-value">{{ activityDetails.company }}</div> |
| | | <div class="category">活动时间:</div> |
| | | <div class="category-value">{{ activityDetails.startTime }} 至 {{ activityDetails.endTime }}</div> |
| | | </div> |
| | | <div class="row-box"> |
| | | <div class="category">负责人:</div> |
| | |
| | | <div class="category-value">{{ activityDetails.contact }}</div> |
| | | </div> |
| | | <div class="row-box"> |
| | | <div class="category">活动地点:</div> |
| | | <div class="category-value">{{ activityDetails.place }}</div> |
| | | <div class="category">负责单位:</div> |
| | | <div class="category-value">{{ activityDetails.company }}</div> |
| | | </div> |
| | | <div class="row-box"> |
| | | <div class="category">所属辖区:</div> |
| | | <div class="category-value">{{ activityDetails.content }}</div> |
| | | <div class="category-value">{{ activityDetails.deptName }}</div> |
| | | </div> |
| | | <div class="row-box"> |
| | | <div class="category">活动时间:</div> |
| | | <div class="category-value">{{ activityDetails.startTime }} 至 {{ activityDetails.endTime }}</div> |
| | | <div class="category">人数:</div> |
| | | <div class="category-value">{{ activityDetails.number }}</div> |
| | | </div> |
| | | <div class="row-box"> |
| | | <div class="category">活动地点:</div> |
| | | <div class="category-value">{{ activityDetails.place }}</div> |
| | | </div> |
| | | <div class="row-box"> |
| | | <div class="category">活动内容:</div> |
| | |
| | | v-show="searchTreeShowFlag"></el-tree> |
| | | <div class="police-btn-box"> |
| | | <el-button @click="determine" v-show="!isChoosePoliceElementDisabled">确定</el-button> |
| | | <el-button @click="cancel" v-show="!isChoosePoliceElementDisabled">取消</el-button> |
| | | <el-button @click="deletePoliceElement" v-show="!isChoosePoliceElementDisabled">删除</el-button> |
| | | <el-button @click="cancel" v-show="!isChoosePoliceElementDisabled">取消</el-button> |
| | | </div> |
| | | </div> |
| | | </el-dialog> |
| | |
| | | </div> |
| | | <div> |
| | | <div class="value-name-box">选择范围颜色:</div> |
| | | <div class="color-box"> |
| | | <div class="red-color" @click="changeLineColor('#FF0000')">{{ chooseColor == '#FF0000' ? '√' : '' }} |
| | | </div> |
| | | <div class="green-color" @click="changeLineColor('#00FF00')">{{ chooseColor == '#00FF00' ? '√' : '' }} |
| | | </div> |
| | | <div class="blue-color" @click="changeLineColor('#0000FF')">{{ chooseColor == '#0000FF' ? '√' : '' }} |
| | | </div> |
| | | <div class="pick-color-box"> |
| | | <v-swatches v-model="chooseColor"></v-swatches> |
| | | </div> |
| | | </div> |
| | | <div> |
| | |
| | | </el-dialog> |
| | | |
| | | <el-dialog :title="polygonAddTitle" :modal="false" :visible.sync="polygonAddVisible" :close-on-click-modal="true" |
| | | class="add-polygon-box"> |
| | | <div> |
| | | <div>设置名称:</div> |
| | | class="add-polygon-box" :before-close="cancelSavePolygon"> |
| | | <div class="line" v-show="isNeedName"> |
| | | <div class="value-name-box">设置名称:</div> |
| | | <div> |
| | | <input type="text" placeholder="请输入区域名称" v-model="polygonName" /> |
| | | <input type="text" v-model="polygonName" /> |
| | | </div> |
| | | </div> |
| | | <div> |
| | | <div class="line"> |
| | | <div class="value-name-box">选择颜色:</div> |
| | | <div class="pick-color-box"> |
| | | <v-swatches v-model="choosePlotColor"></v-swatches> |
| | | </div> |
| | | </div> |
| | | <div class="add-polygon-btn-box"> |
| | | <el-button @click="savePolygonInfo">保存</el-button> |
| | | <el-button @click="cancelSavePolygon">取消</el-button> |
| | | </div> |
| | | </el-dialog> |
| | | |
| | |
| | | class="edit-plot-box"> |
| | | <div> |
| | | <div class="value-name-box">选择标绘颜色:</div> |
| | | <div class="color-box"> |
| | | <div class="red-color" @click="changePlotColor('#FF0000')">{{ choosePlotColor == '#FF0000' ? '√' : '' }} |
| | | </div> |
| | | <div class="green-color" @click="changePlotColor('#00FF00')">{{ choosePlotColor == '#00FF00' ? '√' : '' |
| | | }} |
| | | </div> |
| | | <div class="blue-color" @click="changePlotColor('#0000FF')">{{ choosePlotColor == '#0000FF' ? '√' : '' |
| | | }} |
| | | </div> |
| | | <div class="pick-color-box"> |
| | | <v-swatches v-model="choosePlotColor"></v-swatches> |
| | | </div> |
| | | </div> |
| | | <div> |
| | |
| | | import { getRegionList, getDevices } from '@/api/video/index.js' |
| | | import { getEquipmentAll } from '@/api/home/index.js' |
| | | import flvjs from 'flv.js' |
| | | import VSwatches from 'vue-swatches' |
| | | import 'vue-swatches/dist/vue-swatches.css' |
| | | |
| | | let analyseLayer = null |
| | | let analysePolygon = null |
| | |
| | | |
| | | export default { |
| | | inject: ['userInfo'], |
| | | |
| | | components: { VSwatches }, |
| | | |
| | | data () { |
| | | return { |
| | |
| | | polygonAddVisible: false, |
| | | polygonName: '', |
| | | polygonPositionStr: '', |
| | | chooseColor: '#FF0000', |
| | | choosePlotColor: '#FF0000', |
| | | chooseColor: '#1CA085', |
| | | choosePlotColor: '#1CA085', |
| | | chooseLineData: {}, |
| | | lineWidth: 100, |
| | | linePosition: '', |
| | |
| | | searchTreeShowFlag: false, |
| | | plotOverlayData: null, |
| | | lineObjdata: null, |
| | | isNeedName:false, |
| | | plotSaveType:1, |
| | | arrowPositionSre:'', |
| | | } |
| | | }, |
| | | |
| | |
| | | |
| | | // 切换作战标绘 |
| | | switchArrowBtnChange (e) { |
| | | this.getSecurityPlotList(this.securityId, this.arrowBtnSwitch) |
| | | this.getSecurityPlotList(this.showingSecurityId, this.arrowBtnSwitch) |
| | | }, |
| | | |
| | | // 切换轨迹播放控件 |
| | |
| | | this.dialogVisible = false |
| | | this.polylineBtnSwitch = false |
| | | this.isTrackBtnShow = false |
| | | this.closeVideo () |
| | | this.currentClickIndex = '' |
| | | analyseLayer.clear() |
| | | arrowsListLayer.clear() |
| | |
| | | document.oncontextmenu = function () { |
| | | if (flag == true && poltType == 'billboard') { |
| | | if (policeType == 'policeman') { |
| | | this.searchPoliceTreeId = '' |
| | | this.searchPoliceTreeName = '' |
| | | that.searchPoliceTreeId = '' |
| | | that.searchPoliceTreeName = '' |
| | | that.policeChooseVisible = true |
| | | } else if (policeType == 'policecar') { |
| | | that.policeOption = that.policecarOption |
| | |
| | | // overlay.on(global.DC.MouseEventType.CLICK, this.polygonClick) |
| | | document.oncontextmenu = function () { |
| | | if (flag) { |
| | | that.choosePlotColor = '#1CA085' |
| | | that.isNeedName = true |
| | | that.polygonAddVisible = true |
| | | flag = false |
| | | } |
| | |
| | | } |
| | | },{material: global.DC.Color.RED}) |
| | | } else { |
| | | const that = this |
| | | let flag = false |
| | | arrowPlot && arrowPlot.draw(type, overlay => { |
| | | if (overlay) { |
| | | let plotType = '' |
| | |
| | | } else if (type == 'tailed_attack_arrow') { |
| | | plotType = 4 |
| | | } |
| | | this.plotSaveType = plotType |
| | | plot.edit(overlay, (e) => { |
| | | let position = '' |
| | | flag = true |
| | | let positionStr = '' |
| | | overlay._positions.forEach(item => { |
| | | position += item._lng + ' ' + item._lat + ',' |
| | | positionStr += item._lng + ' ' + item._lat + ',' |
| | | }) |
| | | position = position.slice(0, position.length - 1) |
| | | positionStr = positionStr.slice(0, positionStr.length - 1) |
| | | this.arrowPositionStr = positionStr |
| | | drawArrowLayers.addOverlay(overlay) |
| | | this.addSecurityPlot(this.showingSecurityId, position, plotType) |
| | | document.oncontextmenu = function () { |
| | | if (flag) { |
| | | that.choosePlotColor = '#1CA085' |
| | | that.isNeedName = false |
| | | that.polygonAddVisible = true |
| | | flag = false |
| | | } |
| | | } |
| | | }) |
| | | } |
| | | },{material: global.DC.Color.RED}) |
| | |
| | | }, |
| | | |
| | | removeAllArrow () { |
| | | drawArrowLayers.clear() |
| | | if(drawArrowLayers!=null){ |
| | | drawArrowLayers.clear() |
| | | } |
| | | }, |
| | | |
| | | // 播放轨迹 |
| | |
| | | this.policeChooseCarVisible = false |
| | | this.overlayObj2 = {} |
| | | this.removeAll() |
| | | }, |
| | | |
| | | // 取消保存多边形 |
| | | cancelSavePolygon(){ |
| | | this.polygonAddVisible = false |
| | | if(drawArrowLayers!=null){ |
| | | drawArrowLayers.clear() |
| | | } |
| | | }, |
| | | |
| | | // 选择警员关闭 |
| | |
| | | lineOverlayTypeClick (e) { |
| | | this.videoShow = false |
| | | this.lineWidth = e.overlay.attrParams.width != -1 ? e.overlay.attrParams.width : 100 |
| | | this.chooseColor = e.overlay.attrParams.color != '' ? e.overlay.attrParams.color : '#FF0000' |
| | | this.chooseColor = e.overlay.attrParams.color != '' ? e.overlay.attrParams.color : '#1CA085' |
| | | this.policeIconId = e.overlay.attrParams.id |
| | | this.linePosition = e.overlay.attrParams.linePositionStr |
| | | this.lineObjdata = e.overlay.attrParams.lineObj |
| | |
| | | }, |
| | | |
| | | // 保存活动标绘箭头 |
| | | addSecurityPlot (securityId, position, type, name) { |
| | | addSecurityPlot(securityId, position, type, name).then(res => { |
| | | // securityId活动id, position坐标, type标绘类型, name多边形名称,color标绘颜色 |
| | | addSecurityPlot (params) { |
| | | addSecurityPlot(params).then(res => { |
| | | if (res.data.success) { |
| | | this.$message({ |
| | | message: '保存成功', |
| | |
| | | message: '保存失败' |
| | | }) |
| | | } |
| | | this.getSecurityPlotList(securityId, this.arrowBtnSwitch) |
| | | this.getSecurityPlotList(params.securityId, this.arrowBtnSwitch) |
| | | }) |
| | | }, |
| | | |
| | |
| | | // 单击。标绘箭头 |
| | | reeditArrowClick (e) { |
| | | this.plotOverlayData = e |
| | | this.choosePlotColor = e.overlay.attrParams.color != '' ? e.overlay.attrParams.color : '#FF0000' |
| | | console.log('this.choosePlotColor', this.choosePlotColor, e.overlay.attrParams) |
| | | this.choosePlotColor = e.overlay.attrParams.color != '' ? e.overlay.attrParams.color : '#1CA085' |
| | | if (this.userInfo.dept_id == '1123598813738675201' || this.userInfo.dept_id == this.activityDeptId) { |
| | | this.plotId = e.overlay.attrParams.id |
| | | this.editPlotVisible = true |
| | |
| | | } |
| | | this.monitorOption.push({ value: `${index}`, label: `${item.name}`, flvUrl: `${flvAddress}`, status: `${item.status}` }) |
| | | if (index == monitorData.length - 1) { |
| | | console.log('this.monitorOption',this.monitorOption); |
| | | this.monitorOption.forEach((itemm, indexx) => { |
| | | if (indexx < 4) { |
| | | this.isHaveMonitor[`type${indexx + 5}`] = true |
| | | this.isHaveMonitor[`video${indexx + 5}`] = itemm.status == '0' ? false:true |
| | | this.monitor[`type${indexx + 5}`] = itemm.label |
| | | this.playVideoList(`flvPlayer${indexx + 5}`, `${itemm.flvUrl}`, `videoElement${indexx + 5}`) |
| | | } |
| | |
| | | layerName: 'monitoringLayers', |
| | | type: 'VectorLayer' |
| | | }) |
| | | if (tc) { |
| | | tc.clear() |
| | | } |
| | | }, |
| | | |
| | | playVideoList (flvItemPlayer, flvUrl, videoEleName) { |
| | | console.log('flvUrl',flvUrl); |
| | | if (this.flvListPlayer[flvItemPlayer] != null) { |
| | | this.flvListPlayer[flvItemPlayer].pause() |
| | | this.flvListPlayer[flvItemPlayer].unload() |
| | |
| | | |
| | | // 保存绘制区域 |
| | | savePolygonInfo () { |
| | | this.addSecurityPlot(this.showingSecurityId, this.polygonPositionStr, 5, this.polygonName) |
| | | this.polygonAddVisible = false |
| | | if(this.isNeedName){ |
| | | if (this.polygonName == '') { |
| | | this.$message({ |
| | | message: '请输入名称', |
| | | type: 'error' |
| | | }) |
| | | } else { |
| | | this.addSecurityPlot({securityId:this.showingSecurityId, position:this.polygonPositionStr, type:5, name:this.polygonName,color:this.choosePlotColor}) |
| | | this.polygonAddVisible = false |
| | | } |
| | | }else{ |
| | | this.addSecurityPlot({securityId:this.showingSecurityId, position:this.arrowPositionStr, type:this.plotSaveType, color:this.choosePlotColor}) |
| | | this.polygonAddVisible = false |
| | | } |
| | | }, |
| | | |
| | | // 获取面的中心点 |
| | |
| | | // 改变巡逻路线颜色 |
| | | changeLineColor (color) { |
| | | this.chooseColor = color |
| | | }, |
| | | |
| | | // 改变标绘颜色 |
| | | changePlotColor (color) { |
| | | this.choosePlotColor = color |
| | | }, |
| | | |
| | | // 删除警车 |
| | |
| | | |
| | | .second-container { |
| | | position: absolute; |
| | | top: 0px; |
| | | top: 10px; |
| | | display: flex; |
| | | flex-direction: column; |
| | | width: 240px; |