shuishen
2023-03-09 beac0f9a8bfe0f0e4d8db19fa18a9745ed1fcc40
src/views/activity/components/drawBtnBox.vue
@@ -118,11 +118,14 @@
    },
    mounted () {
        drawLabelStatus = 'end'
        this.$nextTick(() => {
            if (drawLayers == null) {
                drawLayers = new global.DC.VectorLayer('drawLayers')
                global.viewer.addLayer(drawLayers)
                plot = new global.DC.Plot(global.viewer)
            }
@@ -130,12 +133,12 @@
                drawArrowLayers = new global.DC.VectorLayer('drawArrowLayers')
                global.viewer.addLayer(drawArrowLayers)
                arrowPlot = new global.DC.Plot(global.viewer)
            }
            global.viewer.on(global.DC.MouseEventType.CLICK, this.viewerClick)
            global.viewer.on(global.DC.MouseEventType.MOUSE_MOVE, this.viewerLableMove)
            global.viewer.on(global.DC.MouseEventType.LEFT_UP, this.labelUp)
        })
    },
@@ -143,13 +146,20 @@
        // 地图元素绘制
        draw (poltType, policeType) {
            labelPositionChange = false
            drawLabelStatus = 'end'
            isAddLabel = false
            let flag = false
            const that = this
            global.viewer.tooltip.enable = true
            // this.policeType = ''  // ?
            plot && plot.draw(poltType, overlay => {
                if (isAddLabel) return
                if (poltType == 'billboard' && policeType == 'policeman') {
                    overlay.icon = '/img/icon/police-people.png'
@@ -210,6 +220,11 @@
        },
        drawArrow (type, iconType) {
            labelPositionChange = false
            drawLabelStatus = 'end'
            isAddLabel = false
            global.viewer.tooltip.enable = true
            if (type == 'polygon') {
@@ -217,6 +232,8 @@
                let flag = false
                plot && plot.draw(type, overlay => {
                    if (isAddLabel) return
                    if (overlay) {
                        drawArrowLayers.addOverlay(overlay)
                        plot.edit(overlay, (e) => {
@@ -251,6 +268,8 @@
                let flag = false
                plot && plot.draw(type, overlay => {
                    if (isAddLabel) return
                    if (iconType == 'icon1') {
                        that.$parent.plotSaveType = 6
                        overlay.size = [24, 24]
@@ -284,6 +303,8 @@
                const that = this
                let flag = false
                arrowPlot && arrowPlot.draw(type, overlay => {
                    if (isAddLabel) return
                    if (overlay) {
                        let plotType = ''
                        if (type == 'attack_arrow') {
@@ -295,7 +316,9 @@
                        } else if (type == 'tailed_attack_arrow') {
                            plotType = 4
                        }
                        that.$parent.plotSaveType = plotType
                        plot.edit(overlay, (e) => {
                            flag = true
                            let positionStr = ''
@@ -393,10 +416,13 @@
        },
        drawArrowLabel () {
            this.labelPopupTitle = ""
            global.viewer.tooltip.enable = false
            plot != null && plot.stop()
            arrowPlot != null && arrowPlot.stop()
            isAddLabel = true
            this.labelPopupTitle = ""
            drawLabelStatus = 'start'
            global.viewer.tooltip.enable = true
            this.$emit('drawLabel', drawLabelStatus)
        },
@@ -422,9 +448,9 @@
        },
        labelShowPopup (e) {
            this.labelPopupTitle = '添加文字标注'
            this.addLabelVisible = true
            this.addLabelPosition = e.wgs84SurfacePosition.lng + ' ' + e.wgs84SurfacePosition.lat + ',' + e.wgs84SurfacePosition.lng + ' ' + e.wgs84SurfacePosition.lat
            global.viewer.tooltip.enable = true
        },
        // 文字标注窗口的添加按钮
@@ -455,7 +481,8 @@
            setTimeout(() => {
                if (eventLast == 0) {
                    global.viewer.tooltip.enable = false
                    this.$EventBus.$emit('closeTooltip')
                    labelPositionChange = true
                    curLabelOverLayer = e.overlay
                    global.viewer.scene.screenSpaceCameraController.enableRotate = false
@@ -479,7 +506,7 @@
        },
        updateLableMove (e) {
            global.viewer.tooltip.enable = false
            this.$EventBus.$emit('closeTooltip')
            curLabelOverLayer.position = {
                lng: e.wgs84SurfacePosition.lng,
@@ -493,21 +520,22 @@
        viewerLableMove (e) {
            if (isAddLabel == true) {
                global.viewer.tooltip.showAt(e.windowPosition, '单击选择文字标注位置')
                this.$EventBus.$emit('showTooltip', {
                    position: e.windowPosition,
                    text: '单击选择文字标注位置'
                })
            } else {
                if (e.overlay && e.overlay.attrParams && e.overlay.attrParams.id) {
                    const flag = labelOverLayerID.some(item => item == e.overlay.attrParams.id)
                    if (flag == true) {
                        global.viewer.tooltip.enable = true
                        global.viewer.tooltip.showAt({
                            x: e.windowPosition.x + 10,
                            y: e.windowPosition.y
                        }, '长按开启拖拽,单击修改名称')
                    if (flag == true && labelPositionChange != true) {
                        this.$EventBus.$emit('showTooltip', {
                            position: e.windowPosition,
                            text: '长按开启拖拽,单击修改名称'
                        })
                    }
                } else {
                    global.viewer.tooltip.enable = false
                    this.$EventBus.$emit('closeTooltip')
                }
            }
        },
@@ -517,11 +545,14 @@
            isAddLabel = false
            this.addLabelVisible = false
            drawLabelStatus = 'end'
            this.$EventBus.$emit('closeTooltip')
        },
        // 单击文字标绘
        reEditLabel (e) {
            global.viewer.tooltip.enable = false
            this.$EventBus.$emit('closeTooltip')
            this.labelId = e.overlay.attrParams.id
            this.labelPopupTitle = "修改文字标注"
            this.labelInput = e.overlay.attrParams.item.name
@@ -530,7 +561,8 @@
    },
    destroyed () {
        plot.stop()
        plot != null && plot.stop()
        arrowPlot != null && arrowPlot.stop()
        drawLayers.remove()
        drawLayers = null