From e733164e1c779b3aef7245936b9daf7875bf791e Mon Sep 17 00:00:00 2001
From: shuishen <1109946754@qq.com>
Date: Thu, 14 Dec 2023 17:12:33 +0800
Subject: [PATCH] 解决屏幕缩放导致鼠标位置不准确的问题,右侧,切换校区后的显示BUG

---
 src/components/mobilemap/index.vue |   97 +++++++++++++++++++++++++++++++++++++-----------
 1 files changed, 75 insertions(+), 22 deletions(-)

diff --git a/src/components/mobilemap/index.vue b/src/components/mobilemap/index.vue
index b5675ce..82e3d8b 100644
--- a/src/components/mobilemap/index.vue
+++ b/src/components/mobilemap/index.vue
@@ -1,6 +1,25 @@
 <template>
     <div class="mobile-map-container">
         <div id="sceneview"></div>
+
+        <mobileCortrolSearch ref="mobileCortrolSearch">
+            <template slot="selectCampusBox">
+                <div class="select-campus-box" v-if="campusData.length > 1">
+                    <el-dropdown trigger="click" @command="handleCommand">
+                        <span class="el-dropdown-link icons">
+                            {{ campusData.find(item => item.dictKey == campusValue).dictValue }} <i
+                                class="el-icon-caret-bottom"></i>
+                        </span>
+                        <el-dropdown-menu slot="dropdown">
+                            <el-dropdown-item v-for="(item, index) in campusData" :key="index" :command="item">
+                                {{ item.dictValue }}
+                            </el-dropdown-item>
+                        </el-dropdown-menu>
+                    </el-dropdown>
+                </div>
+            </template>
+        </mobileCortrolSearch>
+
         <!-- 随地图改变图标弹窗↓ -->
         <div id="mobile-map_popup_content"></div>
         <mobileWindow ref="MobileWindow"></mobileWindow>
@@ -12,11 +31,10 @@
         <mobileCortrol ref="mobileCortrol"></mobileCortrol>
         <mobileCortrolButtom ref="mobileCortrolButtom" :mapCenter="mapCenter" :frislayertHeight="frislayertHeight">
         </mobileCortrolButtom>
-        <mobileCortrolSearch ref="mobileCortrolSearch"></mobileCortrolSearch>
         <!-- 控制↑ -->
         <!-- 控制大弹窗的弹窗 -->
         <!-- v-if="mBigPopupAfter" -->
-        <mobilePopupOurAfter></mobilePopupOurAfter>
+        <mobilePopupOurAfter ref="MobilePopupOurAfter"></mobilePopupOurAfter>
         <!-- 大弹窗 -->
         <mobilePopupOur :style="[bigPopup]" v-if="mBigPopup"></mobilePopupOur>
         <!-- 测试-跳转位置 -->
@@ -24,7 +42,7 @@
         <!-- 实景窗口 -->
         <mobilePanorama></mobilePanorama>
         <!-- 退出导航 -->
-        <mobileCloseRouter></mobileCloseRouter>
+        <mobileCloseRouter ref="MobileCloseRouter"></mobileCloseRouter>
         <!-- 退出活动 -->
         <mobileCloseRouterMany></mobileCloseRouterMany>
         <!-- 活动窗口 -->
@@ -37,6 +55,7 @@
 import axios from 'axios'
 import { mapGetters } from 'vuex'
 import { getBuildClock } from '@/api/mobile/buildsClock/buildsClock' // 楼栋详情
+import { getListarc } from '@/api/mobile/public/arc'
 
 import OlView from "ol/View.js"
 
@@ -62,34 +81,35 @@
 let campusLayers = [
     {
         key: 1,
-        tileUrl: "https://fkxt.jxstnu.edu.cn/changjing/arcgis/rest/services/ksd1/MapServer/tile/{z}/{y}/{x}",
-        center: [112.63716735643777, -0.087080937773012637833],
-        resolution: 0.00014276766034981682,
+        tileUrl: "https://fkxt.jxstnu.edu.cn/changjing/arcgis/rest/services/ksdhjzxq/MapServer/tile/{z}/{y}/{x}",
+        center: [112.613918275550715, -0.0457081387615907618595],
+        resolution: 0.00001903568804664224,
         origin: [-400.0, 399.9999999999998],
         resolutions: [
-            0.00019035688046642243, 0.00014276766034981682, 0.00009517844023321122,
-            0.00004758922011660561,
+            0.00015228550437313792, 0.00007614275218656896, 0.00003807137609328448,
+            0.00001903568804664224, 0.00000951784402332112, 0.00000475892201166056
         ],
         fullExtent: [
-            112.51302281804038, -0.17416638494176828, 112.76131189483516,
-            0.000004509395743004334,
+            112.51303616638316, -0.103420786429659, 112.67880038471827,
+            0.000004508906477476281
         ],
         polygonUrl: 'https://fkxt.jxstnu.edu.cn/changjing/lkarcgisapp'
     },
+
     {
         key: 2,
-        tileUrl: "https://dev.jxpskj.com:8023/arcgis156/rest/services/cc/MapServer/tile/{z}/{y}/{x}",
-        center: [115.79624983, 28.6416099],
-        resolution: 0.000007138383017490841,
-        origin: [-400.0, 400.0],
+        tileUrl: "https://fkxt.jxstnu.edu.cn/changjing/arcgis/rest/services/ksdflxq/MapServer/tile/{z}/{y}/{x}",
+        center: [112.6202242373625, -0.0781745423945008147645],
+        resolution: 0.00001903568804664224,
+        origin: [-400.0, 399.9999999999998],
         resolutions: [
-            0.000014276766034981682, 0.000007138383017490841, 0.00000475892201166056,
-            0.00000237946100583028,
+            0.00015228550437313792, 0.00007614275218656896, 0.00003807137609328448,
+            0.00001903568804664224, 0.00000951784402332112, 0.00000475892201166056
         ],
         fullExtent: [
-            115.76861782444642, 28.63584422760626, 115.82432471553928, 28.663308794331794,
+            112.51302551881798, -0.16235359398493399, 112.72742295590702, 0.000004509195932360471
         ],
-        polygonUrl: ''
+        polygonUrl: 'https://fkxt.jxstnu.edu.cn/changjing/fllkarcgisapp'
     }
 ]
 
@@ -132,7 +152,8 @@
                 height: 0
             },
             map2D: this.$store.state.openlayerData.openlayers.map2D,
-            campusValue: ''
+            campusData: [],
+            campusValue: 1
         }
     },
 
@@ -152,6 +173,8 @@
         campusValue: {
             handler (newData) {
                 this.$nextTick(() => {
+                    this.$refs.MobileCloseRouter.mobileRouterClose()
+
                     this.campusCut(newData)
 
                     this.$refs.mobileLeftNav.initialize(newData)
@@ -160,6 +183,10 @@
                 })
             }
         }
+    },
+
+    created () {
+        this.getStreet()
     },
 
     mounted () {
@@ -304,7 +331,8 @@
             const that = this
 
             getBuildClock({
-                mechanismname: event.target.values_.attributes['楼栋号']
+                mechanismname: event.target.values_.attributes['楼栋号'],
+                campus: this.campusValue
             }).then((res) => {
                 if (JSON.stringify(res.data.data) == '{}') return
                 const item = res.data.data
@@ -367,8 +395,8 @@
             })
             // 瓦片数据源
             const tileArcGISXYZ = new XYZ({
-                tileGrid: tileGrid,
                 projection: "EPSG:4326",
+                tileGrid: tileGrid,
                 url: curCampus.tileUrl,
             })
 
@@ -396,15 +424,29 @@
 
             this.map2D.setView(new OlView({
                 // 初始化中心点坐标
+                projection: "EPSG:4326",
                 center: curCampus.center,
                 resolution: curCampus.resolution,
-                projection: "EPSG:4326",
                 extent: curCampus.fullExtent,
             }))
         },
 
         setCampusValue (val) {
             this.campusValue = val
+
+            this.$store.commit('SET_CURRENTCAMPUS', val)
+        },
+
+        handleCommand (command) {
+            this.$refs.MobilePopupOurAfter.closeBigPopupAfter()
+            this.setCampusValue(command.dictKey)
+        },
+
+        getStreet () {
+            getListarc().then((res) => {
+                this.setCampusValue(res.data.data[0].dictKey)
+                this.campusData = res.data.data
+            })
         }
     }
 }
@@ -428,6 +470,17 @@
     /* overflow: hidden; */
 }
 
+.select-campus-box {
+    width: 28%;
+    height: 32px;
+    line-height: 32px;
+    text-align: center;
+    background: #f1f1f1;
+    border-right: 1px solid #C0C4CC;
+    box-sizing: border-box;
+    z-index: 299;
+}
+
 .esri-view-surface--inset-outline:focus::after {
     outline: none !important;
 }

--
Gitblit v1.9.3