From b5f8881176bcb44928758e25d7d7a6fc140840c5 Mon Sep 17 00:00:00 2001
From: shuishen <1109946754@qq.com>
Date: Fri, 17 Dec 2021 15:06:23 +0800
Subject: [PATCH] 弹框完善

---
 src/divForms/divForms.js |  102 ++++++++++-----------------------------------------
 1 files changed, 20 insertions(+), 82 deletions(-)

diff --git a/src/divForms/divForms.js b/src/divForms/divForms.js
index 72327a5..27719de 100644
--- a/src/divForms/divForms.js
+++ b/src/divForms/divForms.js
@@ -10,11 +10,9 @@
 import DC from '@dvgis/dc-sdk/dist/dc.base.min' // 基础包
 import DcCore from '@dvgis/dc-sdk/dist/dc.core.min' // 核心包
 
-var $ = window.$
-
 DC.use(DcCore) // 安装DC核心库
 
-class divForms {
+class DivForms {
     /**
      * @popup 存放 dom 相关
      *
@@ -23,21 +21,11 @@
         this._viewer = viewer
         this._popup = popup
         this._position = popup.position
-        this._title = popup.title
-        this._content = popup.content
         this.appendPopup()
     }
 
     get viewer () {
         return this._viewer
-    }
-
-    get title () {
-        return this._title
-    }
-
-    get content () {
-        return this._content
     }
 
     get popup () {
@@ -53,97 +41,47 @@
          * @domId 存放 dom 的id, 多个数组,单个字符串
          */
 
-        this.createVideoWindowAll(this._popup.domId, this._popup.className, this._position[0])
+        this.createVideoWindowAll(this._popup.domId)
     }
 
     // 创建元素并追加
-    createVideoWindowAll (id, className, position) {
-        var childs = document.getElementById('map_popup_content').getElementsByTagName('div')
+    createVideoWindowAll (id) {
+        this._viewer.scene.postRender.addEventListener(this.movePopup(id))
+    }
 
-        if (childs.length > 0) {
-            for (var i = 0; i < childs.length; i++) {
-                document.getElementById('map_popup_content').removeChild(childs[i])
-            }
-        }
-
+    movePopup (id) {
         var self = this
-
-        var el = $("<div class=''></div>")
-
-        var divBig = $("<div style='width: 100%; height: 100%;' class=''></div>")
-
-        var divForms = $("<div class='divForms divForms-theme'></div>")
-
-        var divFormsWrap = $("<div class='divForms-wrap'></div>")
-
-        var area = $("<div class='area'></div>")
-
-        var arrowLt = $("<div class='arrow-lt'></div>")
-        var bT = $("<div class='b-t'></div>")
-        var bR = $("<div class='b-r'></div>")
-        var bB = $("<div class='b-b'></div>")
-        var bL = $("<div class='b-l'></div>")
-        var arrowRb = $("<div class='arrow-rb'></div>")
-
-        var labelWrap = $("<div class='label-wrap'></div>")
-        var titleDiv = $("<div class='title'></div>").text(this._title)
-        var labelContent = $("<div class='label-content'></div>").append(this._content)
-
-        labelWrap.append(titleDiv)
-        labelWrap.append(labelContent)
-
-        var bTL = $("<div class='b-t-l'></div>")
-        var bBR = $("<div class='b-b-r'></div>")
-
-        var arrow = $("<div class='arrow'></div>")
-
-        area.append(arrowLt)
-        area.append(bT)
-        area.append(bR)
-        area.append(bB)
-        area.append(bL)
-        area.append(arrowRb)
-        area.append(labelWrap)
-
-        divFormsWrap.append(area)
-        divFormsWrap.append(bTL)
-        divFormsWrap.append(bBR)
-
-        divForms.append(divFormsWrap)
-        divForms.append(arrow)
-
-        divBig.append(divForms)
-        el.append(divBig)
-
-        el.attr('id', id)
-
-        el.addClass(className || '')
-
-        $('#map_popup_content').append(el)
-
-        this._viewer.scene.postRender.addEventListener(function () {
+        return function () {
             const windowCoord = DC.Namespace.Cesium.SceneTransforms.wgs84ToWindowCoordinates(
                 self._viewer.scene,
-                position
+                self._position[0]
             )
 
             self.positionPopUp(windowCoord, id)
-        })
+        }
+    }
+
+    clearMove (id) {
+        this._viewer.scene.postRender.removeEventListener(this.movePopup(id))
     }
 
     positionPopUp (windowCoord, id) {
-        if (windowCoord != undefined && windowCoord.x && windowCoord.x != undefined && !Number.isNaN(windowCoord.x)) {
+        if (document.getElementById(id) == null || document.getElementById(id) == undefined) {
+            this._viewer.scene.postRender.removeEventListener(this.movePopup(id))
+            return
+        }
+        if (windowCoord != undefined && windowCoord.x && windowCoord.x != undefined && !Number.isNaN(windowCoord.x) &&
+            windowCoord.y && windowCoord.y != undefined && !Number.isNaN(windowCoord.y)) {
             const x = windowCoord.x
             const y = windowCoord.y - document.getElementById(id).offsetHeight
             // x = windowCoord.x - document.getElementById(id).offsetWidth
 
             document.getElementById(id).style.cssText = `
             visibility:visible;
-            z-index:1;
             transform:translate3d(${Math.round(x)}px,${Math.round(y)}px, 0);
             `
         }
     }
 }
 
-export default divForms
+export default DivForms

--
Gitblit v1.9.3