guanqb
2023-03-16 815518df3b82838ed9fbb9e0fd506fa024bfa5d7
巡逻路线更新删除调整
2 files modified
124 ■■■■■ changed files
src/views/activity/components/drawBtnBox.vue 102 ●●●●● patch | view | raw | blame | history
src/views/activity/index.vue 22 ●●●● patch | view | raw | blame | history
src/views/activity/components/drawBtnBox.vue
@@ -141,6 +141,8 @@
            global.viewer.on(global.DC.MouseEventType.MOUSE_MOVE, this.viewerLableMove)
            global.viewer.on(global.DC.MouseEventType.LEFT_UP, this.labelUp)
        })
    },
    methods: {
@@ -403,13 +405,14 @@
                    this.updateSecurityPlot({ id: overlayData.attrParams.id, position: position })
                })
            } else if (type == "line") {
                plot.edit(overlayData, (e) => {
                let lineOverlayData = overlayData.attrParams.lineObj
                plot.edit(lineOverlayData, (e) => {
                    let position = ''
                    overlayData._positions.forEach(item => {
                    lineOverlayData._positions.forEach(item => {
                        position += item._lng + ' ' + item._lat + ','
                    })
                    position = position.slice(0, position.length - 1)
                    this.updateActivityCar({ id: this.policeIconId, color: this.chooseColor, width: this.lineWidth, type: 1, position: position })
                    this.updateActivityCar({ id: this.policeIconId, color: this.$parent.chooseColor, width: this.lineWidth, type: 1, position: position },overlayData)
                })
            }
        },
@@ -427,7 +430,6 @@
            })
            addPlotOverlayData.on(global.DC.MouseEventType.CLICK, this.$parent.reeditArrowClick)
            if(item.type == 6 || item.type == 7 || item.type == 8 ) {
               console.log(addPlotOverlayData,666);
               let position = item.position.slice(12, item.position.length - 2).split(',')[0].split(' ')
               let pointPosition = new global.DC.Position(Number(position[0]), Number(position[1]))
               addPlotOverlayData.position = {
@@ -481,16 +483,18 @@
        addNewPolice(data,type,carType){
           // 巡逻路线添加
           if(type == 'policecar' && carType == 1) {
                console.log(data,666665);
                // 线坐标字符串
                let positionNewArr = this.$parent.convertPolylineOrPolygonPositionDate(data.position, data.type)
                positionNewArr = positionNewArr.slice(1,positionNewArr.length - 2)
                 // 范围面坐标串
                let coords = global.DC.GeoTools.polylineBuffer(positionNewArr, data.width != -1 ? data.width : 100)
                let positionStr = ''
                coords.forEach(item => {
                    positionStr += item[0] + ',' + item[1] + ';'
                coords.forEach((item,index) => {
                    if(!(index == coords.length - 1)){
                        positionStr += item[0] + ',' + item[1] + ';'
                    }
                })
                positionStr = positionStr.slice(0,positionStr.length - 1)
                // 面颜色
                let color = ''
                // 线颜色
@@ -509,41 +513,20 @@
                    'width': 3
                })
    
                // let lineObj = new global.DC.Polyline(positionNewArr)
                // drawLayers.addOverlay(lineObj)
                // lineObj.setStyle({
                //     'material': lineColor,
                //     'width': 3
                // })
                data.linePositionStr = positionNewArr
                data.polygonPositionStr = positionStr
                data.lineObj = addPoliceIconOverlayData
    
                // this.$EventBus.$emit('layerPolygonAdd', {
                //     layerName: 'newCarDrawLineLayers',
                //     positions: positionStr,
                //     material: color,
                //     params: data,
                //     incident: this.lineOverlayTypeClick
                // })
                let areaPolygon = new global.DC.Polygon(positionStr)
                console.log('positionStr',positionStr);
                drawLayers.addOverlay(areaPolygon)
                areaPolygon.setStyle({
                    'material': lineColor,
                    'material': color,
                    'height': 0.01,
                })
                addPoliceIconOverlayData.attrParams = data
                areaPolygon.attrParams = data
                console.log('areaPolygon',areaPolygon);
                let lineObj = new global.DC.Polyline(positionNewArr)
                drawLayers.addOverlay(lineObj)
                lineObj.setStyle({
                    'material': global.DC.Namespace.Cesium.Color.fromBytes(255, 0, 0, 150),
                    'width': 30
                })
           }else{
                areaPolygon.on(global.DC.MouseEventType.CLICK, this.$parent.lineOverlayTypeClick)
           } else {
               let positionObj = this.$parent.convertBillboardPositionDate(data, type)
               let positionArr = data.position.slice(7, data.position.length - 2).split(',')[0].split(' ')
               let position = new global.DC.Position(Number(positionArr[0]), Number(positionArr[1]))
@@ -578,7 +561,7 @@
               addPoliceIconOverlayData.on(global.DC.MouseEventType.CLICK, this.$parent.overlayTypeClick)
               // addPoliceIconOverlayData.on(global.DC.MouseEventType.MOUSE_OVER, this.$parent.pointMouseOver)
               addPoliceIconOverlayData.on(global.DC.MouseEventType.MOUSE_OUT, this.$parent.pointMouseOut)
               }
           }
        },
        // 修改标绘样式
@@ -636,6 +619,53 @@
            if('policemanId' in params){
                overlay.attrParams.data.policemanId=  params.policemanId
            }
            if('width' in params){
                let linePosition = ''
                if('position' in params){
                    linePosition = params.position.replace(/,/g, ";").replace(/ /g, ",")
                }else{
                    linePosition = overlay.attrParams.linePositionStr
                }
                let coords = global.DC.GeoTools.polylineBuffer(linePosition, params.width)
                let positionStr = ''
                coords.forEach((item,index) => {
                    if(!(index == coords.length - 1)){
                        positionStr += item[0] + ',' + item[1] + ';'
                    }
                })
                positionStr = positionStr.slice(0,positionStr.length - 1)
                // 面颜色
                let color = ''
                // 线颜色
                let lineColor = ''
                if (params.color == '') {
                    color = global.DC.Namespace.Cesium.Color.fromBytes(255, 0, 0, 150)
                } else {
                    let r = parseInt(params.color.slice(1, 3), 16)
                    let g = parseInt(params.color.slice(3, 5), 16)
                    let b = parseInt(params.color.slice(5, 7), 16)
                    color = global.DC.Namespace.Cesium.Color.fromBytes(r, g, b, 150)
                    lineColor = global.DC.Namespace.Cesium.Color.fromBytes(r, g, b, 255)
                }
                overlay.attrParams.lineObj.setStyle({
                    "material": lineColor,
                    'width': 3
                })
                overlay.attrParams.linePositionStr = linePosition
                overlay.attrParams.polygonPositionStr = positionStr
                overlay.attrParams.color = params.color
                let areaPolygon = new global.DC.Polygon(positionStr)
                drawLayers.addOverlay(areaPolygon)
                areaPolygon.setStyle({
                    'material': color,
                    'height': 0.01,
                })
                areaPolygon.attrParams = overlay.attrParams
                areaPolygon.on(global.DC.MouseEventType.CLICK, this.$parent.lineOverlayTypeClick)
                overlay.remove()
            }
        },
        // 修改活动警车
@@ -655,7 +685,6 @@
                    })
                }
                // this.$parent.getSecurityCarList(this.showingSecurityId, this.policeSwitch, this.polylineBtnSwitch)
            })
        },
@@ -664,18 +693,17 @@
        updateActivityPolice (params,overlay) {
            updateActivityPolice(params).then(res => {
                if (res.data.success) {
                    this.editPoliceStyle(params,overlay)
                    this.$message({
                        message: '保存成功',
                        type: 'success'
                    })
                    this.editPoliceStyle(params,overlay)
                } else {
                    this.$message({
                        message: '保存失败',
                        type: 'error'
                    })
                }
                // this.getSecurityPoliceList(this.showingSecurityId, this.policeSwitch)
            })
        },
src/views/activity/index.vue
@@ -258,7 +258,6 @@
let loading = null
let overlayObj = {}
let lineObjdata = null
let plotOverlayData = null
let policeOverlayData = null
let policecarOption = []
@@ -669,7 +668,6 @@
            this.getSecurityPlotList(item.id, this.policeSwitch, 'billboard')
            this.getSecurityPlotList(item.id, this.arrowBtnSwitch, 'plot')
            this.activityDetails = item
            let positionObj = this.convertBillboardPositionDate(item, 'activity')
@@ -883,7 +881,7 @@
         * @return {*}
         */
        getSecurityCarList (securityId, pointShow, polylineShow, type = 'all') {
            this.$refs.DRAWBTNBOX.removeDraw()
            this.$refs.DRAWBTNBOX.clearDraw()
            if (type == 'car') {
                pointCircleManLayer != null && pointCircleManLayer.clear()
@@ -1460,7 +1458,7 @@
        cancelSaveLine () {
            this.lineEditVisible = false
            // this.$refs.DRAWBTNBOX.removeDraw()
            this.$refs.DRAWBTNBOX.removeDraw()
        },
        // 巡逻路线面点击事件
@@ -1471,10 +1469,10 @@
            this.chooseColor = e.overlay.attrParams.color != '' ? e.overlay.attrParams.color : '#1CA085'
            this.policeIconId = e.overlay.attrParams.id
            policeOverlayData = e
            curLinePosition = e.overlay.attrParams.linePositionStr
            curLinePolygonPosition = e.overlay.attrParams.polygonPositionStr
            lineObjdata = e.overlay.attrParams.lineObj
            if (this.userInfo.dept_id == '1123598813738675201' || this.userInfo.dept_id == this.activityDeptId) {
                this.lineEditTitle = '修改巡逻路线'
@@ -1578,7 +1576,7 @@
        // 保存巡逻路线信息
        saveLineInfo () {
            this.$refs.DRAWBTNBOX.updateActivityCar({ id: this.policeIconId, color: this.chooseColor, width: this.lineWidth })
            this.$refs.DRAWBTNBOX.updateActivityCar({ id: this.policeIconId, color: this.chooseColor, width: this.lineWidth },policeOverlayData.overlay)
            this.lineEditVisible = false
        },
@@ -1591,7 +1589,7 @@
                color: this.chooseColor,
                width: this.lineWidth
            })
            this.cancelSaveLine()
            this.lineEditVisible = false
        },
        // 修改巡逻路线位置信息
@@ -1602,7 +1600,7 @@
                type: 'VectorLayer'
            })
            this.$refs.DRAWBTNBOX.plotEdit(lineObjdata, 'line')
            this.$refs.DRAWBTNBOX.plotEdit(policeOverlayData.overlay, 'line')
        },
        // 保存绘制区域
@@ -1642,8 +1640,11 @@
                        type: 'success'
                    })
                    policeOverlayData.overlay.remove()
                    if('pointOverlayData' in policeOverlayData.overlay.attrParams){
                    if(type == 'car' && 'pointOverlayData' in policeOverlayData.overlay.attrParams){
                        policeOverlayData.overlay.attrParams.pointOverlayData.remove()
                    }
                    if(type == 'line' && 'lineObj' in policeOverlayData.overlay.attrParams){
                        policeOverlayData.overlay.attrParams.lineObj.remove()
                    }
                } else {
                    this.$message({
@@ -1651,7 +1652,6 @@
                        type: 'error'
                    })
                }
                // this.getSecurityCarList(this.showingSecurityId, this.policeSwitch, this.polylineBtnSwitch, type)
            })
        },