From 7366b0a279425cb6218bec8ba19774e5e8399b91 Mon Sep 17 00:00:00 2001
From: liuyg <liuyg@qq.com>
Date: Tue, 15 Mar 2022 14:34:37 +0800
Subject: [PATCH] +把DC拉出vue实例中,解决vue内存溢出问题

---
 src/store/modules/popupParams.js |  124 +++++++++++++++++++++--------------------
 1 files changed, 64 insertions(+), 60 deletions(-)

diff --git a/src/store/modules/popupParams.js b/src/store/modules/popupParams.js
index 6950f51..c01f5ec 100644
--- a/src/store/modules/popupParams.js
+++ b/src/store/modules/popupParams.js
@@ -1,4 +1,8 @@
 import leftNavsData from './pc/leftNavsData'
+window.labelLayer = null;
+window.divIcon = null;
+
+
 const popupParams = {
     state: {
         ...leftNavsData.state,
@@ -23,7 +27,7 @@
         addTagPopup: false,
         addTagPosition: null,
 
-        labelLayer: null, // 自定义标签图层
+        // labelLayer: null, // 自定义标签图层
         addSignList: true,
         myviewer: null,
         nowlabelLayerData: {},
@@ -33,83 +37,83 @@
     },
     mutations: {
         ...leftNavsData.mutations,
-        SET_POPUPBGURL (state, popupBgUrl) {
+        SET_POPUPBGURL(state, popupBgUrl) {
             // console.log(popupBgUrl, "see33333")
             if (!popupBgUrl) {
                 return
             }
             state.popupBgUrl = popupBgUrl
         },
-        SET_POPUPQRURL (state, pupupQRUrl) {
+        SET_POPUPQRURL(state, pupupQRUrl) {
             state.pupupQRUrl = pupupQRUrl
         },
-        SET_TERMINUS (state, terminus) {
+        SET_TERMINUS(state, terminus) {
             state.terminus = terminus
         },
-        SET_STARTINGPOINT (state, startingPoint) {
+        SET_STARTINGPOINT(state, startingPoint) {
             state.startingPoint = startingPoint
         },
-        SET_POINTPOSITION (state, pointPosition) {
+        SET_POINTPOSITION(state, pointPosition) {
             state.pointPosition = pointPosition
         },
-        SET_STATENAME (state, stateName) {
+        SET_STATENAME(state, stateName) {
             state.stateName = stateName
         },
-        SET_SITENAME (state, siteName) {
+        SET_SITENAME(state, siteName) {
             state.siteName = siteName
         },
-        SET_TELEPHONE (state, telephone) {
+        SET_TELEPHONE(state, telephone) {
             state.telephone = telephone
         },
-        SET_INTRODUCETEXT (state, introduceText) {
+        SET_INTRODUCETEXT(state, introduceText) {
             state.introduceText = introduceText
         },
-        SET_PANORAMAURL (state, panoramaUrl) {
+        SET_PANORAMAURL(state, panoramaUrl) {
             state.panoramaUrl = panoramaUrl
         },
-        SET_PANORAMAPOPUP (state, panoramaPopup) {
+        SET_PANORAMAPOPUP(state, panoramaPopup) {
             state.panoramaPopup = panoramaPopup
         },
-        SET_MONITORURL (state, monitorUrl) {
+        SET_MONITORURL(state, monitorUrl) {
             state.monitorUrl = monitorUrl
         },
-        SET_MONITORPOPUP (state, monitorPopup) {
+        SET_MONITORPOPUP(state, monitorPopup) {
             state.monitorPopup = monitorPopup
         },
-        SET_DETAILSPOPUP (state, detailsPopup) {
+        SET_DETAILSPOPUP(state, detailsPopup) {
             state.detailsPopup = detailsPopup
         },
-        SET_POPUPIMGATLAS (state, popupImgAtlas) {
+        SET_POPUPIMGATLAS(state, popupImgAtlas) {
             state.popupImgAtlas = popupImgAtlas
         },
-        SET_TEACHLIST (state, teachList) {
+        SET_TEACHLIST(state, teachList) {
             state.teachList = teachList
         },
-        SET_LIVELIST (state, liveList) {
+        SET_LIVELIST(state, liveList) {
             state.liveList = liveList
         },
 
-        SET_ADDTAGPOPUP (state, addTagPopup) {
+        SET_ADDTAGPOPUP(state, addTagPopup) {
             state.addTagPopup = addTagPopup
         },
 
-        SET_ADDTAGPOSITION (state, addTagPosition) {
+        SET_ADDTAGPOSITION(state, addTagPosition) {
             state.addTagPosition = addTagPosition
         },
-        initLabelLayer (state, val) {
-            if (!state.labelLayer) {
-                state.labelLayer = new global.DC.HtmlLayer('labelLayer')
-                val.addLayer(state.labelLayer)
+        initLabelLayer(state, val) {
+            if (!window.labelLayer) {
+                window.labelLayer = new global.DC.HtmlLayer('labelLayer')
+                val.addLayer(window.labelLayer)
             }
             state.myviewer = val
         },
 
-        clearLabelLayerIcon (state, val) {
-            if (state.labelLayer) {
-                state.labelLayer.clear()
+        clearLabelLayerIcon(state, val) {
+            if (window.labelLayer) {
+                window.labelLayer.clear()
             }
         },
-        openLabelLayer (state, val) {
+        openLabelLayer(state, val) {
             // console.log(val, "see")
             if (val.show) {
                 state.nowlabelLayerData = val.data
@@ -119,7 +123,7 @@
                 state.labelLayerDataShow = false
             }
         },
-        CLEAR_ALL (state, param) {
+        CLEAR_ALL(state, param) {
             state.siteName = param
             state.introduceText = param
             state.telephone = param
@@ -129,13 +133,13 @@
             state.teachList = []
             state.liveList = []
         },
-        set_closeMapClick (state, val) {
+        set_closeMapClick(state, val) {
             state.closeMapClick = val
         }
     },
     actions: {
         ...leftNavsData.actions,
-        openPopups ({
+        openPopups({
             state,
             commit,
             dispatch
@@ -149,7 +153,7 @@
             //       item: item,
             //     });
             //   });
-            var popup = new global.DC.DivForms(state.viewer, {
+            new global.DC.DivForms(state.viewer, {
                 domId: 'divFormsDomBox',
                 position: [
                     global.DC.Transform.transformWGS84ToCartesian(
@@ -168,7 +172,7 @@
                 viewer: this.viewer
             })
         },
-        setOurDataInPoput ({
+        setOurDataInPoput({
             state,
             commit,
             dispatch
@@ -198,12 +202,12 @@
             ])
             commit('SET_DETAILSPOPUP', true)
         },
-        pcMoveView ({
+        pcMoveView({
             state,
             commit,
             dispatch
         }, val) {
-            val.viewer.camera.setView({
+            global.viewer.camera.setView({
                 // Cesium的坐标是以地心为原点,一向指向南美洲,一向指向亚洲,一向指向北极州
                 // fromDegrees()方法,将经纬度和高程转换为世界坐标
                 destination: global.DC.Namespace.Cesium.Cartesian3.fromDegrees(
@@ -220,26 +224,26 @@
                 }
             })
         },
-        pcFlyView ({
+        pcFlyView({
             state,
             commit,
             dispatch
         }, val) {
             val.viewer.flyToPosition(
                 new global.DC.Position(Number(val.jd), Number(val.wd), Number(300), Number(0), Number(-90), Number(0)),
-                function () { },
+                function () {},
                 2
             )
         },
-        addLabelLayerIcon ({
+        addLabelLayerIcon({
             state,
             commit,
             dispatch
         }, val) {
             const list = val.list
             if (val.clear) {
-                //     state.labelLayer.remove();
-                state.labelLayer.clear()
+                //     window.labelLayer.remove();
+                window.labelLayer.clear()
             }
             if (val.add) { // 刷新列表
                 state.addSignList = !state.addSignList
@@ -264,14 +268,14 @@
                           `
                 )
                 // 订阅事件
-                divIcon.on(global.DC.MouseEventType.CLICK, (e) => {
+                window.divIcon.on(global.DC.MouseEventType.CLICK, (e) => {
                     // console.log(e);
                     // return;
                     // 定制化窗体
-                    const position = e.position
+                    // const position = e.position
                     const lntLat = [e.overlay._position._lng, e.overlay._position._lat]
                     // console.log(position, lntLat, list[i], state.myviewer, "see")
-                    new global.DC.DivForms(state.myviewer, {
+                    new global.DC.DivForms(global.viewer, {
                         domId: 'labelLayerid',
                         position: [
                             global.DC.Transform.transformWGS84ToCartesian(
@@ -283,7 +287,7 @@
                             )
                         ]
                     })
-                    state.myviewer.camera.setView({
+                    global.viewer.camera.setView({
                         // Cesium的坐标是以地心为原点,一向指向南美洲,一向指向亚洲,一向指向北极州
                         // fromDegrees()方法,将经纬度和高程转换为世界坐标
                         destination: global.DC.Namespace.Cesium.Cartesian3.fromDegrees(
@@ -304,30 +308,30 @@
                         data: list[i]
                     })
                 })
-                state.labelLayer.addOverlay(divIcon)
+                window.labelLayer.addOverlay(window.divIcon)
             }
         },
-        addLabelLayerIconMobelUse ({
+        addLabelLayerIconMobelUse({
             state,
             commit,
             dispatch
         }, val) {
             const list = val.list
-            if (!state.labelLayer) {
-                state.labelLayer = new global.DC.HtmlLayer('labelLayer')
-                val.mviewer.addLayer(state.labelLayer)
-                state.myviewer = val.mviewer
+            if (!window.labelLayer) {
+                window.labelLayer = new global.DC.HtmlLayer('labelLayer')
+                global.viewer.addLayer(window.labelLayer)
+                // state.myviewer = val.mviewer
             }
             if (val.clear) {
-                //     state.labelLayer.remove();
-                state.labelLayer.clear()
+                //     window.labelLayer.remove();
+                window.labelLayer.clear()
             }
             if (val.add) { // 刷新列表
                 state.addSignList = !state.addSignList
                 return
             }
-            for (const i in list) {
-                const divIcon = new global.DC.DivIcon(
+            for (let i in list) {
+                window.divIcon = new global.DC.DivIcon(
                     new global.DC.Position(
                         Number(list[i].jd),
                         Number(list[i].wd),
@@ -345,14 +349,14 @@
                           `
                 )
                 // 订阅事件
-                divIcon.on(global.DC.MouseEventType.CLICK, (e) => {
+                window.divIcon.on(global.DC.MouseEventType.CLICK, (e) => {
                     // console.log(e);
                     // return;
                     // 定制化窗体
-                    const position = e.position
+                    // const position = e.position
                     const lntLat = [e.overlay._position._lng, e.overlay._position._lat]
                     // console.log(position, lntLat, list[i], state.myviewer, "see")
-                    new global.DC.DivForms(state.myviewer, {
+                    new global.DC.DivForms(global.viewer, {
                         domId: 'labelLayerid',
                         position: [
                             global.DC.Transform.transformWGS84ToCartesian(
@@ -364,7 +368,7 @@
                             )
                         ]
                     })
-                    state.myviewer.camera.setView({
+                    global.viewer.camera.setView({
                         // Cesium的坐标是以地心为原点,一向指向南美洲,一向指向亚洲,一向指向北极州
                         // fromDegrees()方法,将经纬度和高程转换为世界坐标
                         destination: global.DC.Namespace.Cesium.Cartesian3.fromDegrees(
@@ -385,10 +389,10 @@
                         data: list[i]
                     })
                 })
-                state.labelLayer.addOverlay(divIcon)
+                window.labelLayer.addOverlay(window.divIcon)
             }
         }
     }
 }
 
-export default popupParams
+export default popupParams
\ No newline at end of file

--
Gitblit v1.9.3