From f3e4a728bca47d424fb3f9f0e2ef438cec58a2e3 Mon Sep 17 00:00:00 2001
From: liuyg <liuyg@qq.com>
Date: Thu, 31 Mar 2022 13:36:20 +0800
Subject: [PATCH] Merge branch 'master' of http://192.168.0.105:10010/r/school-web

---
 src/router/page/index.js                    |    6 
 src/components/map/components/dimension.vue |  528 +++++++++++++------------
 .gitignore                                  |    1 
 vue.config.js                               |  108 ++--
 src/pcviews/specialmap/welcome.vue          |   47 +
 src/components/map/index.vue                |    5 
 src/components/error-page/404.vue           |   32 
 src/components/map/components/mapPopup.vue  |   22 
 src/App.vue                                 |   15 
 src/components/mobilePopupOurOnce/index.vue |  384 +++++++++---------
 10 files changed, 620 insertions(+), 528 deletions(-)

diff --git a/.gitignore b/.gitignore
index bc7899b..02342c7 100644
--- a/.gitignore
+++ b/.gitignore
@@ -3,6 +3,7 @@
 /dist
 /public/mx
 /public/wp
+/public/fz
 /public/base
 
 
diff --git a/src/App.vue b/src/App.vue
index 4dfe049..76a0761 100644
--- a/src/App.vue
+++ b/src/App.vue
@@ -1,6 +1,6 @@
 <template>
     <div id="app" :class="{ cantdoit: cantdoits }">
-        <router-view></router-view>
+        <router-view v-if="isRouterActive"></router-view>
     </div>
 </template>
 
@@ -8,9 +8,13 @@
 import AMapLoader from '@amap/amap-jsapi-loader'
 export default {
     name: 'App',
+    provide () {
+        return { reload: this.reload }
+    },
     data () {
         return {
-            cantdoits: false
+            cantdoits: false,
+            isRouterActive: true
         }
     },
     mounted () {
@@ -82,6 +86,13 @@
         }
     },
     methods: {
+        reload () {
+            this.isRouterActive = false
+            this.$nextTick(() => {
+                this.isRouterActive = true
+                this.$store.commit('SET_VIEWEREXIST', false)
+            })
+        },
         getQueryString (name) {
             const inlength =
                 window.location.href.indexOf('?' + name + '=') + name.length + 2
diff --git a/src/components/error-page/404.vue b/src/components/error-page/404.vue
index b69e54e..1081499 100644
--- a/src/components/error-page/404.vue
+++ b/src/components/error-page/404.vue
@@ -1,24 +1,28 @@
 <template>
-  <div class="error-page">
-    <div class="img"
-         style=" background-image: url('/img/bg/404.svg');"></div>
-    <div class="content">
-      <h1>404</h1>
-      <div class="desc">抱歉,你访问的页面不存在</div>
-      <div class="actions">
-        <router-link :to="{path:'/'}">
-          <el-button type="primary">返回首页</el-button>
-        </router-link>
-      </div>
+    <div class="error-page">
+        <div class="img" style=" background-image: url('/img/bg/404.svg');"></div>
+        <div class="content">
+            <h1>404</h1>
+            <div class="desc">抱歉,你访问的页面不存在</div>
+            <div class="actions">
+                <el-button @click="goHome" type="primary">返回首页</el-button>
+            </div>
+        </div>
     </div>
-  </div>
 </template>
 
 <script>
 export default {
-  name: 'error-404'
+    name: 'error-404',
+    inject: ['reload'],
+    methods: {
+        goHome () {
+            this.$router.push({ path: '/pcLayout/default' })
+            this.reload()
+        }
+    }
 }
 </script>
 <style lang="scss" scoped>
-@import "./style.scss";
+@import './style.scss';
 </style>
diff --git a/src/components/map/components/dimension.vue b/src/components/map/components/dimension.vue
index 6d7d2e4..80820b9 100644
--- a/src/components/map/components/dimension.vue
+++ b/src/components/map/components/dimension.vue
@@ -1,5 +1,6 @@
 <template>
     <div class="dimension-cut">
+        <el-button type="primary">{{zoomValue}}</el-button>
         <el-button
             v-show="btnGroupShow"
             size="mini"
@@ -59,13 +60,20 @@
 let viewerHeight = 950
 let smallViewerHeight = 1950
 
+const mixVH = 500
+const maxVH = 950
+const oneVH = 500
+const twoVH = 650
+const fourVH = 800
+const fiveVH = 950
+
 // const wallLayer = null
 
 export default {
     name: 'dimension',
     data () {
         return {
-
+            zoomValue: null,
             btnGroupShow: false,
             dimensionValue: '三 维',
             // 建筑2.5D地图
@@ -101,8 +109,8 @@
                 [114.03954722, 27.62819644, 100],
                 [114.04006133, 27.628038, 100]
             ],
-            mapCenter: [116.35381525,
-                27.95839468, 950.0]
+            mapCenter: [116.35561302,
+                27.96547549, 1860]
             // mapCenter: [115.871863, 28.743861, 950.0]
         }
     },
@@ -213,40 +221,46 @@
                             fileExtension: 'png'
                             // minimumLevel: 19
                         }))
+                    global.viewer.imageryLayers.addImageryProvider(new global.DC.Namespace.Cesium.UrlTemplateImageryProvider({
+                        url: '/fz/{z}/{x}/{y}.png',
+                        fileExtension: 'png'
+                        // minimumLevel: 19
+                    }))
 
-                    global.viewer.imageryLayers.addImageryProvider(
-                        new global.DC.Namespace.Cesium.WebMapTileServiceImageryProvider({
-                            url: 'http://arcgis.jxpskj.com:6080/arcgis/rest/services/FZ25DMap/MapServer/WMTS',
-                            layer: 'fzsw2019',
-                            style: 'default',
-                            tileMatrixSetID: 'default028mm',
-                            format: 'image/jpgpng',
-                            tilingScheme: new global.DC.Namespace.Cesium.GeographicTilingScheme(),
-                            maximumLevel: 19,
-                            tileMatrixLabels: [
-                                '0',
-                                '1',
-                                '2',
-                                '3',
-                                '4',
-                                '5',
-                                '6',
-                                '7',
-                                '8',
-                                '9',
-                                '10',
-                                '11',
-                                '12',
-                                '13',
-                                '14',
-                                '15',
-                                '16',
-                                '17',
-                                '18',
-                                '19'
-                            ]
-                        })
-                    )
+                    // global.viewer.imageryLayers.addImageryProvider(
+                    //     new global.DC.Namespace.Cesium.WebMapTileServiceImageryProvider({
+                    //         url: 'http://arcgis.jxpskj.com:6080/arcgis/rest/services/FZ25DMap/MapServer/WMTS',
+                    //         // url: 'http://arcgis.jxpskj.com:6080/arcgis/rest/services/PX25DMap/Pingxiang25DMap18000/MapServer/WMTS',
+                    //         layer: 'fzsw2019',
+                    //         style: 'default',
+                    //         tileMatrixSetID: 'default028mm',
+                    //         format: 'image/jpgpng',
+                    //         tilingScheme: new global.DC.Namespace.Cesium.GeographicTilingScheme(),
+                    //         maximumLevel: 19,
+                    //         tileMatrixLabels: [
+                    //             '0',
+                    //             '1',
+                    //             '2',
+                    //             '3',
+                    //             '4',
+                    //             '5',
+                    //             '6',
+                    //             '7',
+                    //             '8',
+                    //             '9',
+                    //             '10',
+                    //             '11',
+                    //             '12',
+                    //             '13',
+                    //             '14',
+                    //             '15',
+                    //             '16',
+                    //             '17',
+                    //             '18',
+                    //             '19'
+                    //         ]
+                    //     })
+                    // )
 
                     // global.viewer.imageryLayers.addImageryProvider(new global.DC.Namespace.Cesium.ArcGisMapServerImageryProvider({
                     //     url: 'http://arcgis.jxpskj.com:6080/arcgis/rest/services/FZ25DMap/MapServer',
@@ -325,11 +339,11 @@
                     })
 
                     // 最小
-                    global.viewer.scene.screenSpaceCameraController.minimumZoomDistance = 500
-                    global.eagleViewer.scene.screenSpaceCameraController.minimumZoomDistance = 1500
-                    // 最大
-                    global.viewer.scene.screenSpaceCameraController.maximumZoomDistance = 950
-                    global.eagleViewer.scene.screenSpaceCameraController.maximumZoomDistance = 1950
+                    // global.viewer.scene.screenSpaceCameraController.minimumZoomDistance = mixVH
+                    // global.eagleViewer.scene.screenSpaceCameraController.minimumZoomDistance = mixVH + 1000
+                    // // 最大
+                    // global.viewer.scene.screenSpaceCameraController.maximumZoomDistance = maxVH
+                    // global.eagleViewer.scene.screenSpaceCameraController.maximumZoomDistance = maxVH + 1000
 
                     // 设置相机缩小时的速率
                     global.viewer.scene.screenSpaceCameraController._minimumZoomRate = 2000
@@ -436,181 +450,183 @@
                         }
                     })
 
-                    document.querySelector('.dc-zoom-controller').children[1].onclick =
-                        function () {
-                            if (that.dimensionValue == '真三维') {
-                                global.viewer.camera.setView({
-                                    // Cesium的坐标是以地心为原点,一向指向南美洲,一向指向亚洲,一向指向北极州
-                                    // fromDegrees()方法,将经纬度和高程转换为世界坐标
-                                    destination: global.DC.Namespace.Cesium.Cartesian3.fromDegrees(
-                                        that.mapCenter[0],
-                                        that.mapCenter[1],
-                                        220.0
-                                    ),
-                                    orientation: {
-                                        // 指向
-                                        heading: global.DC.Namespace.Cesium.Math.toRadians(-9),
-                                        // 视角
-                                        pitch: global.DC.Namespace.Cesium.Math.toRadians(-34.54),
-                                        roll: 0.0
-                                    }
-                                })
-                            } else {
-                                global.viewer.camera.setView({
-                                    // Cesium的坐标是以地心为原点,一向指向南美洲,一向指向亚洲,一向指向北极州
-                                    // fromDegrees()方法,将经纬度和高程转换为世界坐标
-                                    destination: global.DC.Namespace.Cesium.Cartesian3.fromDegrees(
-                                        that.mapCenter[0],
-                                        that.mapCenter[1],
-                                        that.mapCenter[2]
-                                    ),
-                                    orientation: {
-                                        // 指向
-                                        heading: global.DC.Namespace.Cesium.Math.toRadians(0, 0),
-                                        // 视角
-                                        pitch: global.DC.Namespace.Cesium.Math.toRadians(-90),
-                                        roll: 0.0
-                                    }
-                                })
-                            }
-                        }
+                    // this.$nextTick(() => {
+                    //     document.querySelector('.dc-zoom-controller').children[1].onclick =
+                    //         function () {
+                    //             if (that.dimensionValue == '真三维') {
+                    //                 global.viewer.camera.setView({
+                    //                     // Cesium的坐标是以地心为原点,一向指向南美洲,一向指向亚洲,一向指向北极州
+                    //                     // fromDegrees()方法,将经纬度和高程转换为世界坐标
+                    //                     destination: global.DC.Namespace.Cesium.Cartesian3.fromDegrees(
+                    //                         that.mapCenter[0],
+                    //                         that.mapCenter[1],
+                    //                         220.0
+                    //                     ),
+                    //                     orientation: {
+                    //                         // 指向
+                    //                         heading: global.DC.Namespace.Cesium.Math.toRadians(-9),
+                    //                         // 视角
+                    //                         pitch: global.DC.Namespace.Cesium.Math.toRadians(-34.54),
+                    //                         roll: 0.0
+                    //                     }
+                    //                 })
+                    //             } else {
+                    //                 global.viewer.camera.setView({
+                    //                     // Cesium的坐标是以地心为原点,一向指向南美洲,一向指向亚洲,一向指向北极州
+                    //                     // fromDegrees()方法,将经纬度和高程转换为世界坐标
+                    //                     destination: global.DC.Namespace.Cesium.Cartesian3.fromDegrees(
+                    //                         that.mapCenter[0],
+                    //                         that.mapCenter[1],
+                    //                         that.mapCenter[2]
+                    //                     ),
+                    //                     orientation: {
+                    //                         // 指向
+                    //                         heading: global.DC.Namespace.Cesium.Math.toRadians(0, 0),
+                    //                         // 视角
+                    //                         pitch: global.DC.Namespace.Cesium.Math.toRadians(-90),
+                    //                         roll: 0.0
+                    //                     }
+                    //                 })
+                    //             }
+                    //         }
 
-                    document.querySelector('.dc-zoom-controller').children[2].onclick =
-                        function () {
-                            if (
-                                that.dimensionValue != undefined &&
-                                that.dimensionValue != '真三维'
-                            ) {
-                                if (viewerHeight == 500) {
-                                    global.viewer.camera.setView({
-                                        destination: global.DC.Namespace.Cesium.Cartesian3.fromRadians(
-                                            global.viewer.camera.positionCartographic.longitude,
-                                            global.viewer.camera.positionCartographic.latitude,
-                                            650
-                                        ),
-                                        orientation: {
-                                            // 指向
-                                            heading: global.DC.Namespace.Cesium.Math.toRadians(0, 0),
-                                            // 视角
-                                            pitch: global.DC.Namespace.Cesium.Math.toRadians(-90),
-                                            roll: 0.0
-                                        }
-                                    })
-                                    viewerHeight = 650
-                                    this.$emit('change-wheel', false, 'startWheel')
-                                    return
-                                }
+                    //     document.querySelector('.dc-zoom-controller').children[2].onclick =
+                    //         function () {
+                    //             if (
+                    //                 that.dimensionValue != undefined &&
+                    //                 that.dimensionValue != '真三维'
+                    //             ) {
+                    //                 if (viewerHeight == oneVH) {
+                    //                     global.viewer.camera.setView({
+                    //                         destination: global.DC.Namespace.Cesium.Cartesian3.fromRadians(
+                    //                             global.viewer.camera.positionCartographic.longitude,
+                    //                             global.viewer.camera.positionCartographic.latitude,
+                    //                             twoVH
+                    //                         ),
+                    //                         orientation: {
+                    //                             // 指向
+                    //                             heading: global.DC.Namespace.Cesium.Math.toRadians(0, 0),
+                    //                             // 视角
+                    //                             pitch: global.DC.Namespace.Cesium.Math.toRadians(-90),
+                    //                             roll: 0.0
+                    //                         }
+                    //                     })
+                    //                     viewerHeight = twoVH
+                    //                     this.$emit('change-wheel', false, 'startWheel')
+                    //                     return
+                    //                 }
 
-                                if (viewerHeight == 650) {
-                                    global.viewer.camera.setView({
-                                        destination: global.DC.Namespace.Cesium.Cartesian3.fromRadians(
-                                            global.viewer.camera.positionCartographic.longitude,
-                                            global.viewer.camera.positionCartographic.latitude,
-                                            800
-                                        ),
-                                        orientation: {
-                                            // 指向
-                                            heading: global.DC.Namespace.Cesium.Math.toRadians(0, 0),
-                                            // 视角
-                                            pitch: global.DC.Namespace.Cesium.Math.toRadians(-90),
-                                            roll: 0.0
-                                        }
-                                    })
-                                    viewerHeight = 800
-                                    this.$emit('change-wheel', false, 'startWheel')
-                                    return
-                                }
+                    //                 if (viewerHeight == twoVH) {
+                    //                     global.viewer.camera.setView({
+                    //                         destination: global.DC.Namespace.Cesium.Cartesian3.fromRadians(
+                    //                             global.viewer.camera.positionCartographic.longitude,
+                    //                             global.viewer.camera.positionCartographic.latitude,
+                    //                             fourVH
+                    //                         ),
+                    //                         orientation: {
+                    //                             // 指向
+                    //                             heading: global.DC.Namespace.Cesium.Math.toRadians(0, 0),
+                    //                             // 视角
+                    //                             pitch: global.DC.Namespace.Cesium.Math.toRadians(-90),
+                    //                             roll: 0.0
+                    //                         }
+                    //                     })
+                    //                     viewerHeight = fourVH
+                    //                     this.$emit('change-wheel', false, 'startWheel')
+                    //                     return
+                    //                 }
 
-                                if (viewerHeight == 800) {
-                                    global.viewer.camera.setView({
-                                        destination: global.DC.Namespace.Cesium.Cartesian3.fromRadians(
-                                            global.viewer.camera.positionCartographic.longitude,
-                                            global.viewer.camera.positionCartographic.latitude,
-                                            950
-                                        ),
-                                        orientation: {
-                                            // 指向
-                                            heading: global.DC.Namespace.Cesium.Math.toRadians(0, 0),
-                                            // 视角
-                                            pitch: global.DC.Namespace.Cesium.Math.toRadians(-90),
-                                            roll: 0.0
-                                        }
-                                    })
-                                    viewerHeight = 950
-                                    this.$emit('change-wheel', false, 'startWheel')
-                                }
-                            }
-                        }
+                    //                 if (viewerHeight == fourVH) {
+                    //                     global.viewer.camera.setView({
+                    //                         destination: global.DC.Namespace.Cesium.Cartesian3.fromRadians(
+                    //                             global.viewer.camera.positionCartographic.longitude,
+                    //                             global.viewer.camera.positionCartographic.latitude,
+                    //                             fiveVH
+                    //                         ),
+                    //                         orientation: {
+                    //                             // 指向
+                    //                             heading: global.DC.Namespace.Cesium.Math.toRadians(0, 0),
+                    //                             // 视角
+                    //                             pitch: global.DC.Namespace.Cesium.Math.toRadians(-90),
+                    //                             roll: 0.0
+                    //                         }
+                    //                     })
+                    //                     viewerHeight = fiveVH
+                    //                     this.$emit('change-wheel', false, 'startWheel')
+                    //                 }
+                    //             }
+                    //         }
 
-                    document.querySelector('.dc-zoom-controller').children[0].onclick =
-                        function () {
-                            if (
-                                that.dimensionValue != undefined &&
-                                that.dimensionValue != '真三维'
-                            ) {
-                                if (viewerHeight == 950) {
-                                    global.viewer.camera.setView({
-                                        destination: global.DC.Namespace.Cesium.Cartesian3.fromRadians(
-                                            global.viewer.camera.positionCartographic.longitude,
-                                            global.viewer.camera.positionCartographic.latitude,
-                                            800
-                                        ),
-                                        orientation: {
-                                            // 指向
-                                            heading: global.DC.Namespace.Cesium.Math.toRadians(0, 0),
-                                            // 视角
-                                            pitch: global.DC.Namespace.Cesium.Math.toRadians(-90),
-                                            roll: 0.0
-                                        }
-                                    })
-                                    viewerHeight = 800
-                                    this.$emit('change-wheel', false, 'startWheel')
-                                    return
-                                }
+                    //     document.querySelector('.dc-zoom-controller').children[0].onclick =
+                    //         function () {
+                    //             if (
+                    //                 that.dimensionValue != undefined &&
+                    //                 that.dimensionValue != '真三维'
+                    //             ) {
+                    //                 if (viewerHeight == fiveVH) {
+                    //                     global.viewer.camera.setView({
+                    //                         destination: global.DC.Namespace.Cesium.Cartesian3.fromRadians(
+                    //                             global.viewer.camera.positionCartographic.longitude,
+                    //                             global.viewer.camera.positionCartographic.latitude,
+                    //                             fourVH
+                    //                         ),
+                    //                         orientation: {
+                    //                             // 指向
+                    //                             heading: global.DC.Namespace.Cesium.Math.toRadians(0, 0),
+                    //                             // 视角
+                    //                             pitch: global.DC.Namespace.Cesium.Math.toRadians(-90),
+                    //                             roll: 0.0
+                    //                         }
+                    //                     })
+                    //                     viewerHeight = fourVH
+                    //                     this.$emit('change-wheel', false, 'startWheel')
+                    //                     return
+                    //                 }
 
-                                if (viewerHeight == 800) {
-                                    global.viewer.camera.setView({
-                                        destination: global.DC.Namespace.Cesium.Cartesian3.fromRadians(
-                                            global.viewer.camera.positionCartographic.longitude,
-                                            global.viewer.camera.positionCartographic.latitude,
-                                            650
-                                        ),
-                                        orientation: {
-                                            // 指向
-                                            heading: global.DC.Namespace.Cesium.Math.toRadians(0, 0),
-                                            // 视角
-                                            pitch: global.DC.Namespace.Cesium.Math.toRadians(-90),
-                                            roll: 0.0
-                                        }
-                                    })
-                                    viewerHeight = 650
-                                    this.$emit('change-wheel', false, 'startWheel')
-                                    return
-                                }
+                    //                 if (viewerHeight == fourVH) {
+                    //                     global.viewer.camera.setView({
+                    //                         destination: global.DC.Namespace.Cesium.Cartesian3.fromRadians(
+                    //                             global.viewer.camera.positionCartographic.longitude,
+                    //                             global.viewer.camera.positionCartographic.latitude,
+                    //                             twoVH
+                    //                         ),
+                    //                         orientation: {
+                    //                             // 指向
+                    //                             heading: global.DC.Namespace.Cesium.Math.toRadians(0, 0),
+                    //                             // 视角
+                    //                             pitch: global.DC.Namespace.Cesium.Math.toRadians(-90),
+                    //                             roll: 0.0
+                    //                         }
+                    //                     })
+                    //                     viewerHeight = twoVH
+                    //                     this.$emit('change-wheel', false, 'startWheel')
+                    //                     return
+                    //                 }
 
-                                if (viewerHeight == 650) {
-                                    global.viewer.camera.setView({
-                                        destination: global.DC.Namespace.Cesium.Cartesian3.fromRadians(
-                                            global.viewer.camera.positionCartographic.longitude,
-                                            global.viewer.camera.positionCartographic.latitude,
-                                            500
-                                        ),
-                                        orientation: {
-                                            // 指向
-                                            heading: global.DC.Namespace.Cesium.Math.toRadians(0, 0),
-                                            // 视角
-                                            pitch: global.DC.Namespace.Cesium.Math.toRadians(-90),
-                                            roll: 0.0
-                                        }
-                                    })
-                                    viewerHeight = 500
-                                    this.$emit('change-wheel', false, 'startWheel')
-                                }
-                            }
-                        }
+                    //                 if (viewerHeight == twoVH) {
+                    //                     global.viewer.camera.setView({
+                    //                         destination: global.DC.Namespace.Cesium.Cartesian3.fromRadians(
+                    //                             global.viewer.camera.positionCartographic.longitude,
+                    //                             global.viewer.camera.positionCartographic.latitude,
+                    //                             oneVH
+                    //                         ),
+                    //                         orientation: {
+                    //                             // 指向
+                    //                             heading: global.DC.Namespace.Cesium.Math.toRadians(0, 0),
+                    //                             // 视角
+                    //                             pitch: global.DC.Namespace.Cesium.Math.toRadians(-90),
+                    //                             roll: 0.0
+                    //                         }
+                    //                     })
+                    //                     viewerHeight = oneVH
+                    //                     this.$emit('change-wheel', false, 'startWheel')
+                    //                 }
+                    //             }
+                    //         }
+                    // })
 
-                    global.viewer.on(global.DC.SceneEventType.CAMERA_CHANGED, that.mapCameraEvent)
-                    global.eagleViewer.on(global.DC.SceneEventType.CAMERA_CHANGED, that.smallMapCameraEvent)
+                    // global.viewer.on(global.DC.SceneEventType.CAMERA_CHANGED, that.mapCameraEvent)
+                    // global.eagleViewer.on(global.DC.SceneEventType.CAMERA_CHANGED, that.smallMapCameraEvent)
                 }
             }
         }
@@ -626,6 +642,18 @@
 
         mouseMoveEvent (e) {
             var that = this
+
+            function heightToZoom (height) {
+                var A = 40487.57
+                var B = 0.00007096758
+                var C = 91610.74
+                var D = -40467.74
+                return Math.round(D + (A - D) / (1 + Math.pow(height / C, B)))
+            }
+            var height = Math.ceil(global.viewer.camera.positionCartographic.height)
+            var zoom = heightToZoom(height)
+
+            that.zoomValue = zoom
 
             if (that.closeMapClick) {
                 return
@@ -693,12 +721,12 @@
             if (this.startWheel == false) return
 
             if (this.wheelFlag) { // 下
-                if (viewerHeight == 950) {
+                if (viewerHeight == fiveVH) {
                     global.viewer.camera.setView({
                         destination: global.DC.Namespace.Cesium.Cartesian3.fromRadians(
                             global.viewer.camera.positionCartographic.longitude,
                             global.viewer.camera.positionCartographic.latitude,
-                            800
+                            fourVH
                         ),
                         orientation: {
                             // 指向
@@ -708,17 +736,17 @@
                             roll: 0.0
                         }
                     })
-                    viewerHeight = 800
+                    viewerHeight = fourVH
                     this.$emit('change-wheel', false, 'startWheel')
                     return
                 }
 
-                if (viewerHeight == 800) {
+                if (viewerHeight == fourVH) {
                     global.viewer.camera.setView({
                         destination: global.DC.Namespace.Cesium.Cartesian3.fromRadians(
                             global.viewer.camera.positionCartographic.longitude,
                             global.viewer.camera.positionCartographic.latitude,
-                            650
+                            twoVH
                         ),
                         orientation: {
                             // 指向
@@ -728,17 +756,17 @@
                             roll: 0.0
                         }
                     })
-                    viewerHeight = 650
+                    viewerHeight = twoVH
                     this.$emit('change-wheel', false, 'startWheel')
                     return
                 }
 
-                if (viewerHeight == 650) {
+                if (viewerHeight == twoVH) {
                     global.viewer.camera.setView({
                         destination: global.DC.Namespace.Cesium.Cartesian3.fromRadians(
                             global.viewer.camera.positionCartographic.longitude,
                             global.viewer.camera.positionCartographic.latitude,
-                            500
+                            oneVH
                         ),
                         orientation: {
                             // 指向
@@ -748,16 +776,16 @@
                             roll: 0.0
                         }
                     })
-                    viewerHeight = 500
+                    viewerHeight = oneVH
                     this.$emit('change-wheel', false, 'startWheel')
                 }
             } else { // 上
-                if (viewerHeight == 500) {
+                if (viewerHeight == oneVH) {
                     global.viewer.camera.setView({
                         destination: global.DC.Namespace.Cesium.Cartesian3.fromRadians(
                             global.viewer.camera.positionCartographic.longitude,
                             global.viewer.camera.positionCartographic.latitude,
-                            650
+                            twoVH
                         ),
                         orientation: {
                             // 指向
@@ -767,17 +795,17 @@
                             roll: 0.0
                         }
                     })
-                    viewerHeight = 650
+                    viewerHeight = twoVH
                     this.$emit('change-wheel', false, 'startWheel')
                     return
                 }
 
-                if (viewerHeight == 650) {
+                if (viewerHeight == twoVH) {
                     global.viewer.camera.setView({
                         destination: global.DC.Namespace.Cesium.Cartesian3.fromRadians(
                             global.viewer.camera.positionCartographic.longitude,
                             global.viewer.camera.positionCartographic.latitude,
-                            800
+                            fourVH
                         ),
                         orientation: {
                             // 指向
@@ -787,17 +815,17 @@
                             roll: 0.0
                         }
                     })
-                    viewerHeight = 800
+                    viewerHeight = fourVH
                     this.$emit('change-wheel', false, 'startWheel')
                     return
                 }
 
-                if (viewerHeight == 800) {
+                if (viewerHeight == fourVH) {
                     global.viewer.camera.setView({
                         destination: global.DC.Namespace.Cesium.Cartesian3.fromRadians(
                             global.viewer.camera.positionCartographic.longitude,
                             global.viewer.camera.positionCartographic.latitude,
-                            950
+                            fiveVH
                         ),
                         orientation: {
                             // 指向
@@ -807,7 +835,7 @@
                             roll: 0.0
                         }
                     })
-                    viewerHeight = 950
+                    viewerHeight = fiveVH
                     this.$emit('change-wheel', false, 'startWheel')
                 }
             }
@@ -827,12 +855,12 @@
             if (this.startSmallWheel == false) return
 
             if (this.wheelFlag) { // 下
-                if (smallViewerHeight == 1950) {
+                if (smallViewerHeight == fiveVH + 1000) {
                     global.eagleViewer.camera.setView({
                         destination: global.DC.Namespace.Cesium.Cartesian3.fromRadians(
                             global.eagleViewer.camera.positionCartographic.longitude,
                             global.eagleViewer.camera.positionCartographic.latitude,
-                            1800
+                            fourVH + 1000
                         ),
                         orientation: {
                             // 指向
@@ -842,17 +870,17 @@
                             roll: 0.0
                         }
                     })
-                    smallViewerHeight = 1800
+                    smallViewerHeight = fourVH + 1000
                     this.$emit('change-wheel', false, 'startSmallWheel')
                     return
                 }
 
-                if (smallViewerHeight == 1800) {
+                if (smallViewerHeight == fourVH + 1000) {
                     global.eagleViewer.camera.setView({
                         destination: global.DC.Namespace.Cesium.Cartesian3.fromRadians(
                             global.eagleViewer.camera.positionCartographic.longitude,
                             global.eagleViewer.camera.positionCartographic.latitude,
-                            1650
+                            twoVH + 1000
                         ),
                         orientation: {
                             // 指向
@@ -862,17 +890,17 @@
                             roll: 0.0
                         }
                     })
-                    smallViewerHeight = 1650
+                    smallViewerHeight = twoVH + 1000
                     this.$emit('change-wheel', false, 'startSmallWheel')
                     return
                 }
 
-                if (smallViewerHeight == 1650) {
+                if (smallViewerHeight == twoVH + 1000) {
                     global.eagleViewer.camera.setView({
                         destination: global.DC.Namespace.Cesium.Cartesian3.fromRadians(
                             global.eagleViewer.camera.positionCartographic.longitude,
                             global.eagleViewer.camera.positionCartographic.latitude,
-                            1500
+                            oneVH + 1000
                         ),
                         orientation: {
                             // 指向
@@ -882,16 +910,16 @@
                             roll: 0.0
                         }
                     })
-                    smallViewerHeight = 1500
+                    smallViewerHeight = oneVH + 1000
                     this.$emit('change-wheel', false, 'startSmallWheel')
                 }
             } else { // 上
-                if (smallViewerHeight == 1500) {
+                if (smallViewerHeight == oneVH + 1000) {
                     global.eagleViewer.camera.setView({
                         destination: global.DC.Namespace.Cesium.Cartesian3.fromRadians(
                             global.eagleViewer.camera.positionCartographic.longitude,
                             global.eagleViewer.camera.positionCartographic.latitude,
-                            1650
+                            twoVH + 1000
                         ),
                         orientation: {
                             // 指向
@@ -901,17 +929,17 @@
                             roll: 0.0
                         }
                     })
-                    smallViewerHeight = 1650
+                    smallViewerHeight = twoVH + 1000
                     this.$emit('change-wheel', false, 'startSmallWheel')
                     return
                 }
 
-                if (smallViewerHeight == 1650) {
+                if (smallViewerHeight == twoVH + 1000) {
                     global.eagleViewer.camera.setView({
                         destination: global.DC.Namespace.Cesium.Cartesian3.fromRadians(
                             global.eagleViewer.camera.positionCartographic.longitude,
                             global.eagleViewer.camera.positionCartographic.latitude,
-                            1800
+                            fourVH + 1000
                         ),
                         orientation: {
                             // 指向
@@ -921,17 +949,17 @@
                             roll: 0.0
                         }
                     })
-                    smallViewerHeight = 1800
+                    smallViewerHeight = fourVH + 1000
                     this.$emit('change-wheel', false, 'startSmallWheel')
                     return
                 }
 
-                if (smallViewerHeight == 1800) {
+                if (smallViewerHeight == fourVH + 1000) {
                     global.eagleViewer.camera.setView({
                         destination: global.DC.Namespace.Cesium.Cartesian3.fromRadians(
                             global.eagleViewer.camera.positionCartographic.longitude,
                             global.eagleViewer.camera.positionCartographic.latitude,
-                            1950
+                            fiveVH + 1000
                         ),
                         orientation: {
                             // 指向
@@ -941,7 +969,7 @@
                             roll: 0.0
                         }
                     })
-                    smallViewerHeight = 1950
+                    smallViewerHeight = fiveVH + 1000
                     this.$emit('change-wheel', false, 'startSmallWheel')
                 }
             }
@@ -1294,7 +1322,7 @@
                     destination: global.DC.Namespace.Cesium.Cartesian3.fromDegrees(
                         that.mapCenter[0],
                         that.mapCenter[1],
-                        1950.0
+                        maxVH + 1000
                     ),
                     orientation: {
                         // 指向
@@ -1305,11 +1333,11 @@
                     }
                 })
                 // 最小
-                global.viewer.scene.screenSpaceCameraController.minimumZoomDistance = 500
-                global.eagleViewer.scene.screenSpaceCameraController.minimumZoomDistance = 1500
+                global.viewer.scene.screenSpaceCameraController.minimumZoomDistance = mixVH
+                global.eagleViewer.scene.screenSpaceCameraController.minimumZoomDistance = mixVH + 1000
                 // 最大
-                global.viewer.scene.screenSpaceCameraController.maximumZoomDistance = 950
-                global.eagleViewer.scene.screenSpaceCameraController.maximumZoomDistance = 1950
+                global.viewer.scene.screenSpaceCameraController.maximumZoomDistance = maxVH
+                global.eagleViewer.scene.screenSpaceCameraController.maximumZoomDistance = maxVH + 1000
                 // 视角旋转
                 global.viewer.scene.screenSpaceCameraController.enableTilt = false
                 global.eagleViewer.scene.screenSpaceCameraController.enableTilt = false
diff --git a/src/components/map/components/mapPopup.vue b/src/components/map/components/mapPopup.vue
index f9ae8a9..cd760a3 100644
--- a/src/components/map/components/mapPopup.vue
+++ b/src/components/map/components/mapPopup.vue
@@ -745,12 +745,14 @@
         this.audioSynth = window.speechSynthesis
         this.audioMsg = new window.SpeechSynthesisUtterance()
 
-        this.audioMsg.onend = function () {
-            that.audioSynth.cancel()
-            that.audioFlag = false
-            that.audioCourse = false
-            that.audioImgUrl = '/img/icon/close-video.png'
-        }
+        this.$nextTick(() => {
+            this.audioMsg.onend = function () {
+                that.audioSynth.cancel()
+                that.audioFlag = false
+                that.audioCourse = false
+                that.audioImgUrl = '/img/icon/close-video.png'
+            }
+        })
     },
     mounted () {
         global.viewer.scene.globe.depthTestAgainstTerrain = false
@@ -816,12 +818,16 @@
             immediate: true,
             handler (newCode, oldCode) {
                 if (newCode == false) {
-                    this.audioSynth.cancel()
+                    if (this.audioSynth != null) {
+                        this.audioSynth.cancel()
+                    }
                     this.audioFlag = false
                     this.audioCourse = false
                 } else {
                     if (this.audioFlag == true) {
-                        this.audioSynth.cancel()
+                        if (this.audioSynth != null) {
+                            this.audioSynth.cancel()
+                        }
                         this.audioFlag = false
                         this.audioCourse = false
                         this.audioImgUrl = '/img/icon/close-video.png'
diff --git a/src/components/map/index.vue b/src/components/map/index.vue
index da5d9ff..5421c65 100644
--- a/src/components/map/index.vue
+++ b/src/components/map/index.vue
@@ -227,6 +227,11 @@
             global.viewer.measure.deactivate()
         }
 
+        if (global.viewer != null) {
+            global.viewer = null
+            global.eagleViewer = null
+        }
+
         function initViewer () {
             global.viewer = new global.DC.Viewer('viewer-container', {
                 contextOptions: {
diff --git a/src/components/mobilePopupOurOnce/index.vue b/src/components/mobilePopupOurOnce/index.vue
index f12dcc0..d3e76a3 100644
--- a/src/components/mobilePopupOurOnce/index.vue
+++ b/src/components/mobilePopupOurOnce/index.vue
@@ -1,34 +1,32 @@
 <template>
-  <div class="mobilePopupOurOnce">
-    <div
-      class="mobilePopupOurOnce_center"
-      :style="{
+    <div class="mobilePopupOurOnce">
+        <div
+            class="mobilePopupOurOnce_center"
+            :style="{
         borderBottom: !ends ? '#d4d4d4 dashed 1px' : '',
         marginBottom: !ends ? '6px' : '',
       }"
-    >
-      <div class="mobilePopupOurOnce_left">
-        <!-- <img :src="icon" alt="" :key="icon" /> -->
-        <el-image
-          style="width: 80px; height: 80px"
-          :src="icon"
-          :id="'mobileBigImgs' + icon + ''"
-          :preview-src-list="srcList"
         >
-          <!-- v-show="false" -->
-        </el-image>
-      </div>
-      <div class="mobilePopupOurOnce_right" @click.self.stop="openOnce('定位')">
-        <div
-          class="mobilePopupOurOnce_r_up"
-          @click.self.stop="openOnce('定位')"
-        >
-          {{ onceData.name }}
-        </div>
-        <div class="mobilePopupOurOnce_r_down">
-          <div v-for="(item, index) in seebut" :key="index">
-            <el-link
-              :icon="
+            <div class="mobilePopupOurOnce_left">
+                <!-- <img :src="icon" alt="" :key="icon" /> -->
+                <el-image
+                    style="width: 80px; height: 80px"
+                    :src="icon"
+                    :id="'mobileBigImgs' + icon + ''"
+                    :preview-src-list="srcList"
+                >
+                    <!-- v-show="false" -->
+                </el-image>
+            </div>
+            <div class="mobilePopupOurOnce_right" @click.self.stop="openOnce('定位')">
+                <div
+                    class="mobilePopupOurOnce_r_up"
+                    @click.self.stop="openOnce('定位')"
+                >{{ onceData.name }}</div>
+                <div class="mobilePopupOurOnce_r_down">
+                    <div v-for="(item, index) in seebut" :key="index">
+                        <el-link
+                            :icon="
                 item.name == '实景'
                   ? 'el-icon-place'
                   : item.name == '图集'
@@ -37,191 +35,193 @@
                   ? 'el-icon-map-location'
                   : ''
               "
-              class="mobilePopupOurOnce_r_d_in"
-              @click="openOnce(item.name)"
-              >{{ item.name }}</el-link
-            >
-            <el-divider
-              direction="vertical"
-              class="mobilePopupOurOnce_r_d_in"
-              v-if="index != seebut.length - 1"
-            ></el-divider>
-          </div>
+                            class="mobilePopupOurOnce_r_d_in"
+                            @click="openOnce(item.name)"
+                        >{{ item.name }}</el-link>
+                        <el-divider
+                            direction="vertical"
+                            class="mobilePopupOurOnce_r_d_in"
+                            v-if="index != seebut.length - 1"
+                        ></el-divider>
+                    </div>
+                </div>
+            </div>
         </div>
-      </div>
     </div>
-  </div>
 </template>
 
 <script>
-import { mapGetters } from "vuex";
-import { getChildNavDetail } from "@/api/mobile/public/arc";
+import { mapGetters } from 'vuex'
+import { getChildNavDetail } from '@/api/mobile/public/arc'
 export default {
-  props: ["onceData", "ends"],
-  name: "mobilePopupOurOnce",
-  created() {
-    if (this.onceData.icon) {
-      this.srcList = this.onceData.icon;
-      this.icon = this.srcList[0];
-    }
-    if (this.onceData.from == "校区建筑" || this.onceData.from == "文化风景") {
-      this.getOnceCampus(this.onceData.id);
-    } else {
-      this.ourData = this.onceData;
-    }
-  },
-  data() {
-    return {
-      icon: "",
-      srcList: [],
-      ourData: {},
-    };
-  },
-  computed: {
-    ...mapGetters(["mviewer"]),
-    seebut() {
-      const buts = this.onceData.buts;
-      let b = [];
-      for (const k in buts) {
-        if (buts[k] == "实景") {
-          continue;
+    props: ['onceData', 'ends'],
+    name: 'mobilePopupOurOnce',
+    created () {
+        if (this.onceData.icon) {
+            this.srcList = this.onceData.icon
+            this.icon = this.srcList[0]
         }
-        b.push({
-          name: buts[k],
-        });
-      }
-      if (this.ourData.panoramaurl) {
-        b.push({
-          name: "实景",
-        });
-      } else {
-        b = b.filter((res) => {
-          return res.name != "实景";
-        });
-      }
-      return b;
-    },
-  },
-  methods: {
-    openOnce(val) {
-      if (!this.ourData.name) {
-        console.log("数据传输失败");
-        return;
-      }
-      const that = this;
-      if (val == "定位") {
-        // 活动定位
-        if (this.ourData.name == "活动") {
-          console.log(this.ourData);
-          return;
+        if (this.onceData.from == '校区建筑' || this.onceData.from == '文化风景') {
+            this.getOnceCampus(this.onceData.id)
+        } else {
+            this.ourData = this.onceData
         }
-        // 随地图移动窗口
-        this.$store.commit("MSET_BIGPOPUP", false); // 关闭全屏弹窗
-        setTimeout(() => {
-          //   // 定制化窗体
-          const d = {
-            position: {},
-            lntLat: that.ourData.lntLat,
-            query: { ...this.ourData, seebut: this.seebut },
-            useJWD: true, // 仅使用经纬度
-            from: "PopupOurOnce",
-          };
-         that.$store.dispatch("setMobileWindows", d);
-        }, 500);
-        // 固定窗口
-        // that.$store.dispatch("SET_OPENWIDOWFIXED", d);
-      } else if (val == "实景") {
-        this.$store.commit("MSET_OPENMOBILEPANORAMA", this.ourData.panoramaurl);
-        // if(this.ourData.panoramaurl){
-        // }
-        // console.log(this.ourData.panoramaurl);
-      } else if (val == "图集") {
-        const imgsDom = document.getElementById(
-          "mobileBigImgs" + this.icon + ""
-        );
-        imgsDom.click();
-      }
     },
-    // "校区建筑"↓
-    getOnceCampus(id) {
-      getChildNavDetail({ id: id }).then((res) => {
-        var result = res.data.data[0].list;
-        const d = {
-          name: result.mechanismname,
-          lntLat: [result.jd, result.wd],
-          alt: result.gd,
-          heading: result.heading,
-          pitch: result.pitch,
-          roll: result.roll,
-          bgImg: result.tpurl,
-          QRImg: result.codeurl,
-          websiteUrl: result.websiteurl,
-          telePhone: result.telephone,
-          address: result.address,
-          introduce: result.introduce,
-          video: result.videourl,
-          panoramaurl: result.panoramaurl, // 全景
-        };
-        this.ourData = d;
-      });
+    data () {
+        return {
+            icon: '',
+            srcList: [],
+            ourData: {}
+        }
     },
-    // "校区建筑"↑
-  },
-};
+    computed: {
+        ...mapGetters(['mviewer']),
+        seebut () {
+            const buts = this.onceData.buts
+            let b = []
+            for (const k in buts) {
+                if (buts[k] == '实景') {
+                    continue
+                }
+                b.push({
+                    name: buts[k]
+                })
+            }
+            if (this.ourData.panoramaurl) {
+                b.push({
+                    name: '实景'
+                })
+            } else {
+                b = b.filter((res) => {
+                    return res.name != '实景'
+                })
+            }
+            return b
+        }
+    },
+    methods: {
+        openOnce (val) {
+            console.log(this.ourData)
+            if (!this.ourData.name) {
+                console.log('数据传输失败')
+                return
+            }
+            const that = this
+            if (val == '定位') {
+                // 活动定位
+                if (this.ourData.name == '活动') {
+                    console.log(this.ourData)
+                    return
+                }
+                // 随地图移动窗口
+                this.$store.commit('MSET_BIGPOPUP', false) // 关闭全屏弹窗
+                setTimeout(() => {
+                    //   // 定制化窗体
+                    const d = {
+                        position: {},
+                        lntLat: that.ourData.lntLat,
+                        query: { ...this.ourData, seebut: this.seebut },
+                        useJWD: true, // 仅使用经纬度
+                        from: 'PopupOurOnce'
+                    }
+                    that.$store.dispatch('setMobileWindows', d)
+                }, 500)
+                // 固定窗口
+                // that.$store.dispatch("SET_OPENWIDOWFIXED", d);
+            } else if (val == '实景') {
+                this.$store.commit('MSET_OPENMOBILEPANORAMA', this.ourData.panoramaurl)
+                // if(this.ourData.panoramaurl){
+                // }
+                // console.log(this.ourData.panoramaurl);
+            } else if (val == '图集') {
+                const imgsDom = document.getElementById(
+                    'mobileBigImgs' + this.icon + ''
+                )
+                imgsDom.click()
+            }
+        },
+        // "校区建筑"↓
+        getOnceCampus (id) {
+            console.log(id)
+            getChildNavDetail({ id: id }).then((res) => {
+                console.log(res, 5656)
+                var result = res.data.data[0].list
+                const d = {
+                    name: result.mechanismname,
+                    lntLat: [result.jd, result.wd],
+                    alt: result.gd,
+                    heading: result.heading,
+                    pitch: result.pitch,
+                    roll: result.roll,
+                    bgImg: result.tpurl,
+                    QRImg: result.codeurl,
+                    websiteUrl: result.websiteurl,
+                    telePhone: result.telephone,
+                    address: result.address,
+                    introduce: result.introduce,
+                    video: result.videourl,
+                    panoramaurl: result.panoramaurl // 全景
+                }
+                this.ourData = d
+            })
+        }
+        // "校区建筑"↑
+    }
+}
 </script>
 
 <style lang="scss" scoped>
 // 继承类
 .flexCenter {
-  display: flex !important;
-  align-items: center !important;
-  justify-content: center !important;
+    display: flex !important;
+    align-items: center !important;
+    justify-content: center !important;
 }
 .mobilePopupOurOnce {
-  padding: 8px 0 0 0;
-  margin: 0 8px;
-  // background-image: linear-gradient(#29baf1, #28bbf0);
-  .mobilePopupOurOnce_center {
-    // margin-bottom: 8px;
-    height: 80px;
-    // border-bottom: #d4d4d4 dashed 1px;
-    padding-bottom: 8px;
-    @extend .flexCenter;
-    .mobilePopupOurOnce_left {
-      width: 32%;
-      height: 100%;
-      @extend .flexCenter;
-      img {
-        width: 80px;
+    padding: 8px 0 0 0;
+    margin: 0 8px;
+    // background-image: linear-gradient(#29baf1, #28bbf0);
+    .mobilePopupOurOnce_center {
+        // margin-bottom: 8px;
         height: 80px;
-      }
-    }
-    .mobilePopupOurOnce_right {
-      width: 68%;
-      height: 100%;
-      @extend .flexCenter;
-      flex-direction: column;
-      .mobilePopupOurOnce_r_up {
-        height: 50%;
-        width: 100%;
-        font-size: 16px;
-        text-indent: 1em;
-        display: flex !important;
-        align-items: center !important;
-        // color: #fff;
-      }
-      .mobilePopupOurOnce_r_down {
-        height: 50%;
-        width: 100%;
-        padding-left: 1em;
-        display: flex !important;
-        align-items: center !important;
-        .mobilePopupOurOnce_r_d_in {
-          // color: #fff;
-          font-size: 17px;
+        // border-bottom: #d4d4d4 dashed 1px;
+        padding-bottom: 8px;
+        @extend .flexCenter;
+        .mobilePopupOurOnce_left {
+            width: 32%;
+            height: 100%;
+            @extend .flexCenter;
+            img {
+                width: 80px;
+                height: 80px;
+            }
         }
-      }
+        .mobilePopupOurOnce_right {
+            width: 68%;
+            height: 100%;
+            @extend .flexCenter;
+            flex-direction: column;
+            .mobilePopupOurOnce_r_up {
+                height: 50%;
+                width: 100%;
+                font-size: 16px;
+                text-indent: 1em;
+                display: flex !important;
+                align-items: center !important;
+                // color: #fff;
+            }
+            .mobilePopupOurOnce_r_down {
+                height: 50%;
+                width: 100%;
+                padding-left: 1em;
+                display: flex !important;
+                align-items: center !important;
+                .mobilePopupOurOnce_r_d_in {
+                    // color: #fff;
+                    font-size: 17px;
+                }
+            }
+        }
     }
-  }
 }
 </style>
diff --git a/src/pcviews/specialmap/welcome.vue b/src/pcviews/specialmap/welcome.vue
index 72a60c2..1968d5c 100644
--- a/src/pcviews/specialmap/welcome.vue
+++ b/src/pcviews/specialmap/welcome.vue
@@ -74,7 +74,7 @@
             </div>
         </div>
 
-        <!-- <div v-show="layerList.length > 0" class="layer-manage-container">
+        <div v-show="layerList.length > 0" class="layer-manage-container">
             <div class="header">图层管理</div>
             <ul class="content">
                 <li v-for="(item, index) in layerList" :key="index">
@@ -82,7 +82,7 @@
                     <el-switch v-model="item.flag" @change="switchChange(item)"></el-switch>
                 </li>
             </ul>
-        </div>-->
+        </div>
     </div>
 </template>
 
@@ -92,6 +92,7 @@
 
 let pathLayer = null
 let pointLayer = null
+let special = []
 
 export default {
     data () {
@@ -146,6 +147,14 @@
                     this.urlDataName = this.$route.query.name
                     this.getData()
                 } else if (newData.query.name != this.urlDataName) {
+                    if (special.length > 0) {
+                        special.forEach(item => {
+                            global.viewer.imageryLayers.remove(
+                                item.layer
+                            )
+                        })
+                    }
+                    special = []
                     this.audioSynth.cancel()
                     global.viewer.removeLayer(pathLayer)
                     global.viewer.removeLayer(pointLayer)
@@ -169,22 +178,33 @@
     methods: {
         switchChange (item) {
             if (item.flag == true) {
-
+                this.addArcgisLayer(item.url, item.name)
             } else {
-
+                this.removeArcgisLayer(item.name)
             }
         },
 
-        addArcgisLayer (url) {
-            global.viewer.imageryLayers.addImageryProvider(
+        addArcgisLayer (url, name) {
+            var layer = global.viewer.imageryLayers.addImageryProvider(
                 new global.DC.Namespace.Cesium.ArcGisMapServerImageryProvider({
                     url: url
                 })
             )
+            special.push({
+                layer,
+                name
+            })
         },
 
-        removeArcgisLayer () {
-
+        removeArcgisLayer (name) {
+            special.forEach((item, index) => {
+                if (item.name == name) {
+                    global.viewer.imageryLayers.remove(
+                        item.layer
+                    )
+                    special.splice(index, 1)
+                }
+            })
         },
 
         getData () {
@@ -213,7 +233,7 @@
                         this.layerList.push({ flag: false, name: item, url: url[index] })
                     })
                     this.layerList[0].flag = true
-                    this.addArcgisLayer(this.layerList[0].url)
+                    this.addArcgisLayer(this.layerList[0].url, this.layerList[0].name)
                 }
 
                 var a = result.lx.split(';')
@@ -314,6 +334,15 @@
             }
         },
         closeModel () {
+            if (special.length > 0) {
+                special.forEach(item => {
+                    global.viewer.imageryLayers.remove(
+                        item.layer
+                    )
+                })
+            }
+            special = []
+
             global.viewer.removeLayer(pathLayer)
             global.viewer.removeLayer(pointLayer)
 
diff --git a/src/router/page/index.js b/src/router/page/index.js
index f6ef179..f854bae 100644
--- a/src/router/page/index.js
+++ b/src/router/page/index.js
@@ -2,7 +2,7 @@
  * @Author: Morpheus
  * @Date: 2021-04-30 14:12:09
  * @Last Modified by: Morpheus
- * @Last Modified time: 2022-03-24 15:25:40
+ * @Last Modified time: 2022-03-28 14:34:15
  */
 
 import Vue from 'vue'
@@ -63,6 +63,10 @@
         },
         component: large
     },
+    {
+        path: '/',
+        redirect: '/pcLayout'
+    },
     // pc端
     {
         path: '/pcLayout',
diff --git a/vue.config.js b/vue.config.js
index b1d1794..d44a655 100644
--- a/vue.config.js
+++ b/vue.config.js
@@ -6,56 +6,60 @@
 const CompressionPlugin = require('compression-webpack-plugin')
 
 module.exports = {
-  publicPath: '/',
-  lintOnSave: false,
-  // 其他配置
-  chainWebpack: (config) => {
-    config.plugin('copy').use(CopywebpackPlugin, [
-      [
-        {
-          from: path.join(dvgisDist, 'dc-sdk/dist/resources'),
-          to: 'libs/dc-sdk/resources'
-        },
-        {
-          from: './public/img',
-          to: 'img'
-        },
-        {
-          from: './public/examples',
-          to: 'examples'
-        },
-        {
-          from: './public/mx',
-          to: 'mx'
-        },
-        {
-          from: './public/wp',
-          to: 'wp'
-        },
-        {
-          from: './public/favicon.ico',
-          to: 'favicon.ico'
-        }
-      ]
-    ])
-  },
-  // 减少chunk-vendors.js文件大小
-  //  报错 TypeError: Cannot read property 'tapPromise' of undefined
-  // 解决  ,把compression-webpack-plugin包退回成 compression-webpack-plugin@5.0.1  即可
-  // 文件由8M 减成2.5M
-  productionSourceMap: false, // 代码压缩加密
-  configureWebpack: {
-    // webpack plugins
-    plugins: [
-      // 提供带 Content-Encoding 编码的压缩版的资源
-      new CompressionPlugin({
-        algorithm: 'gzip',
-        test: /\.js$|\.html$|\.css/, // 匹配文件名
-        // test: /\.(js|css)$/,
-        threshold: 10240, // 对超过10k的数据压缩
-        deleteOriginalAssets: false, // 不删除源文件
-        minRatio: 0.8 // 压缩比
-      })
-    ]
-  }
+    publicPath: '/',
+    lintOnSave: false,
+    // 其他配置
+    chainWebpack: (config) => {
+        config.plugin('copy').use(CopywebpackPlugin, [
+            [
+                {
+                    from: path.join(dvgisDist, 'dc-sdk/dist/resources'),
+                    to: 'libs/dc-sdk/resources'
+                },
+                {
+                    from: './public/img',
+                    to: 'img'
+                },
+                {
+                    from: './public/examples',
+                    to: 'examples'
+                },
+                {
+                    from: './public/mx',
+                    to: 'mx'
+                },
+                {
+                    from: './public/fz',
+                    to: 'fz'
+                },
+                {
+                    from: './public/wp',
+                    to: 'wp'
+                },
+                {
+                    from: './public/favicon.ico',
+                    to: 'favicon.ico'
+                }
+            ]
+        ])
+    },
+    // 减少chunk-vendors.js文件大小
+    //  报错 TypeError: Cannot read property 'tapPromise' of undefined
+    // 解决  ,把compression-webpack-plugin包退回成 compression-webpack-plugin@5.0.1  即可
+    // 文件由8M 减成2.5M
+    productionSourceMap: false, // 代码压缩加密
+    configureWebpack: {
+        // webpack plugins
+        plugins: [
+            // 提供带 Content-Encoding 编码的压缩版的资源
+            new CompressionPlugin({
+                algorithm: 'gzip',
+                test: /\.js$|\.html$|\.css/, // 匹配文件名
+                // test: /\.(js|css)$/,
+                threshold: 10240, // 对超过10k的数据压缩
+                deleteOriginalAssets: false, // 不删除源文件
+                minRatio: 0.8 // 压缩比
+            })
+        ]
+    }
 }

--
Gitblit v1.9.3