From 12b97dc27b3ab546db2ac4ea00148faa847fb36a Mon Sep 17 00:00:00 2001
From: shuishen <1109946754@qq.com>
Date: Wed, 08 Mar 2023 22:38:05 +0800
Subject: [PATCH] 活动及其他

---
 src/views/activity/components/drawBtnBox.vue |   60 +++++++++++++++++++++++++++++++++++++++++++++++-------------
 1 files changed, 47 insertions(+), 13 deletions(-)

diff --git a/src/views/activity/components/drawBtnBox.vue b/src/views/activity/components/drawBtnBox.vue
index e1e4ed3..5fbf7fd 100644
--- a/src/views/activity/components/drawBtnBox.vue
+++ b/src/views/activity/components/drawBtnBox.vue
@@ -97,6 +97,10 @@
 let drawLabelStatus = 'end'
 let labelPositionChange = false
 
+let labelOverLayerID = []
+
+let eventLast = 0
+
 export default {
     props: [
         'dialogVisible', 'isShowActivityEditBox', 'showingSecurityId',
@@ -108,8 +112,8 @@
             addLabelVisible: false,// 文字标注的窗口(内容是名称)
             labelInput: '',
             addLabelPosition: null,
-            labelPopupTitle:'添加文字标注',
-            labelId:'',
+            labelPopupTitle: '添加文字标注',
+            labelId: '',
         }
     },
 
@@ -323,6 +327,8 @@
 
         removeDrawArrow () {
             drawArrowLayers != null && drawArrowLayers.clear()
+
+            labelOverLayerID = []
         },
 
         plotEdit (overlayData, type) {
@@ -429,9 +435,9 @@
                     type: 'error'
                 })
             } else {
-                if(this.labelPopupTitle == "添加文字标注"){
+                if (this.labelPopupTitle == "添加文字标注") {
                     this.$parent.addSecurityPlot({ securityId: this.showingSecurityId, position: this.addLabelPosition, type: 9, name: this.labelInput })
-                }else{
+                } else {
                     this.updateSecurityPlot({ id: this.labelId, name: this.labelInput })
                 }
                 this.cancelSaveLabel()
@@ -439,28 +445,41 @@
         },
 
         lableAllEvent (label) {
+            labelOverLayerID.push(label.attrParams.id)
+            label.on(global.DC.MouseEventType.CLICK, this.reEditLabel)
             label.on(global.DC.MouseEventType.LEFT_DOWN, this.labelDowm)
         },
 
         labelDowm (e) {
-            labelPositionChange = true
-            curLabelOverLayer = e.overlay
-            global.viewer.scene.screenSpaceCameraController.enableRotate = false
-            global.viewer.on(global.DC.MouseEventType.MOUSE_MOVE, this.updateLableMove)
+            eventLast = 0
+
+            setTimeout(() => {
+                if (eventLast == 0) {
+                    labelPositionChange = true
+                    curLabelOverLayer = e.overlay
+                    global.viewer.scene.screenSpaceCameraController.enableRotate = false
+                    global.viewer.on(global.DC.MouseEventType.MOUSE_MOVE, this.updateLableMove)
+                }
+            }, 500)
         },
 
         labelUp (e) {
+            eventLast = new Date().getTime()
+
             if (labelPositionChange == true) {
                 global.viewer.scene.screenSpaceCameraController.enableRotate = true
                 global.viewer.off(global.DC.MouseEventType.MOUSE_MOVE, this.updateLableMove)
 
                 // curLabelOverLayer 中的位置就是移动后的位置
-                let position = curLabelOverLayer._position._lng + ' ' + curLabelOverLayer._position._lat  + ',' + curLabelOverLayer._position._lng  + ' ' + curLabelOverLayer._position._lat
+                let position = curLabelOverLayer._position._lng + ' ' + curLabelOverLayer._position._lat + ',' + curLabelOverLayer._position._lng + ' ' + curLabelOverLayer._position._lat
                 this.updateSecurityPlot({ id: curLabelOverLayer.attrParams.id, position: position })
+                labelPositionChange = false
             }
         },
 
         updateLableMove (e) {
+            global.viewer.tooltip.enable = false
+
             curLabelOverLayer.position = {
                 lng: e.wgs84SurfacePosition.lng,
                 lat: e.wgs84SurfacePosition.lat,
@@ -472,7 +491,21 @@
         },
 
         viewerLableMove (e) {
-            isAddLabel == true && global.viewer.tooltip.showAt(e.windowPosition, '单击选择文字标注位置')
+            if (isAddLabel == true) {
+                global.viewer.tooltip.showAt(e.windowPosition, '单击选择文字标注位置')
+            } else {
+                if (e.overlay) {
+                    const flag = labelOverLayerID.some(item => item == e.overlay.attrParams.id)
+
+                    if (flag == true) {
+                        global.viewer.tooltip.enable = true
+
+                        global.viewer.tooltip.showAt(e.windowPosition, '长按开启拖拽,单击修改名称')
+                    }
+                } else {
+                    global.viewer.tooltip.enable = false
+                }
+            }
         },
 
         // 关闭添加标注弹窗
@@ -483,8 +516,8 @@
         },
 
         // 单击文字标绘
-        reEditLabel(e){
-            console.log(66,e);
+        reEditLabel (e) {
+            global.viewer.tooltip.enable = false
             this.labelId = e.overlay.attrParams.id
             this.labelPopupTitle = "修改文字标注"
             this.labelInput = e.overlay.attrParams.item.name
@@ -501,6 +534,8 @@
         drawArrowLayers.clear()
         drawArrowLayers = null
 
+        labelOverLayerID = []
+
         global.viewer.off(global.DC.MouseEventType.CLICK, this.viewerClick)
         global.viewer.off(global.DC.MouseEventType.MOUSE_MOVE, this.viewerLableMove)
         global.viewer.off(global.DC.MouseEventType.LEFT_UP, this.labelUp)
@@ -513,7 +548,6 @@
     position: fixed;
     display: flex;
     // left: 50%;
-    left: calc(810 / 1920 * 100vw);
     bottom: 40px;
     color: #fff;
     background: $bg-one-color;

--
Gitblit v1.9.3