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     |    3 ++-
 src/pcLayout/index.vue                 |   11 ++++++-----
 src/components/leftNav/index.vue       |    8 +++++++-
 src/components/mobileLeftNav/index.vue |    8 ++++++++
 src/components/map/index.vue           |   18 ++++++++++--------
 5 files changed, 33 insertions(+), 15 deletions(-)

diff --git a/src/components/leftNav/index.vue b/src/components/leftNav/index.vue
index 50e5c03..4a73a08 100644
--- a/src/components/leftNav/index.vue
+++ b/src/components/leftNav/index.vue
@@ -269,10 +269,16 @@
         },
 
         initialize (campus) {
-
             var that = this
 
             that.$nextTick(() => {
+                this.leftNavData = this.leftNavData.map(item => {
+                    return {
+                        ...item,
+                        flag: false,
+                        img: item.normal
+                    }
+                })
 
                 this.leftNavData[0].flag = true
                 this.leftNavData[0].img = this.leftNavData[0].checked
diff --git a/src/components/map/index.vue b/src/components/map/index.vue
index 27741a2..73bdbc9 100644
--- a/src/components/map/index.vue
+++ b/src/components/map/index.vue
@@ -40,7 +40,6 @@
 import { Icon, Style, Fill, Text, Stroke, Circle } from 'ol/style.js'
 import TilegridTileGrid from "ol/tilegrid/TileGrid"
 
-
 let architecturePolygon = null
 let select = null
 
@@ -216,8 +215,9 @@
 
     mounted () {
         const that = this
-        this.map2D.setTarget('viewer-container')
         this.$nextTick(() => {
+            this.map2D.setTarget('viewer-container')
+
             that.map2D.on('pointermove', that.mouseMoveEvent)
 
             this.map2D.on("singleclick", function (event) {
@@ -226,7 +226,7 @@
                 let flag = true
 
                 that.map2D.forEachFeatureAtPixel(
-                    event.pixel,
+                    [event.originalEvent.offsetX, event.originalEvent.offsetY],
                     (feature) => {
                         if (flag == false) {
                             return
@@ -305,7 +305,7 @@
             select = null
 
             that.map2D.forEachFeatureAtPixel(
-                event.pixel,
+                [event.originalEvent.offsetX, event.originalEvent.offsetY],
                 (feature) => {
                     if (flag == false) {
                         return
@@ -363,15 +363,17 @@
                 if (JSON.stringify(res.data.data) == '{}') return
                 let result = res.data.data
 
+                let curLngLat = this.map2D.getCoordinateFromPixel([event.event.originalEvent.offsetX, event.event.originalEvent.offsetY])
+
                 this.$store.dispatch('setOurDataInPoput', {
                     item: result,
-                    lng: event.event.coordinate[0],
-                    lat: event.event.coordinate[1]
+                    lng: curLngLat[0],
+                    lat: curLngLat[1]
                 })
 
                 this.openPopups({
-                    lng: Number(event.event.coordinate[0]),
-                    lat: Number(event.event.coordinate[1]),
+                    lng: Number(curLngLat[0]),
+                    lat: Number(curLngLat[1]),
                     item: result,
                     event
                 })
diff --git a/src/components/mobileLeftNav/index.vue b/src/components/mobileLeftNav/index.vue
index c37027b..a7b144c 100644
--- a/src/components/mobileLeftNav/index.vue
+++ b/src/components/mobileLeftNav/index.vue
@@ -274,6 +274,14 @@
         initialize (campus) {
             var that = this
 
+            this.leftNavData = this.leftNavData.map(item => {
+                return {
+                    ...item,
+                    flag: false,
+                    img: item.normal
+                }
+            })
+
             this.leftNavData[0].flag = true
             this.leftNavData[0].img = this.leftNavData[0].checked
             this.leftNavData[4].flag = true
diff --git a/src/components/mobilemap/index.vue b/src/components/mobilemap/index.vue
index e16e69d..82e3d8b 100644
--- a/src/components/mobilemap/index.vue
+++ b/src/components/mobilemap/index.vue
@@ -34,7 +34,7 @@
         <!-- 控制↑ -->
         <!-- 控制大弹窗的弹窗 -->
         <!-- v-if="mBigPopupAfter" -->
-        <mobilePopupOurAfter></mobilePopupOurAfter>
+        <mobilePopupOurAfter ref="MobilePopupOurAfter"></mobilePopupOurAfter>
         <!-- 大弹窗 -->
         <mobilePopupOur :style="[bigPopup]" v-if="mBigPopup"></mobilePopupOur>
         <!-- 测试-跳转位置 -->
@@ -438,6 +438,7 @@
         },
 
         handleCommand (command) {
+            this.$refs.MobilePopupOurAfter.closeBigPopupAfter()
             this.setCampusValue(command.dictKey)
         },
 
diff --git a/src/pcLayout/index.vue b/src/pcLayout/index.vue
index e0e83e8..7924a53 100644
--- a/src/pcLayout/index.vue
+++ b/src/pcLayout/index.vue
@@ -63,11 +63,12 @@
                             <el-menu-item index="/pcLayout/default/service/alleyway">出入口</el-menu-item>
                         </el-submenu>
 
-                        <!-- <el-menu-item index="/pcLayout/default/campusnav"> <i class='custom-icon menu-xydl'></i> 校园导览</el-menu-item> -->
+                        <!-- <el-menu-item index="/pcLayout/default/campusnav"> <i class='custom-icon menu-xydl'></i>
+                            校园导览</el-menu-item> -->
 
-                        <!-- <el-menu-item index="/pcLayout/default/campusnavi">
+                        <el-menu-item index="/pcLayout/default/campusnavi">
                             <i class="custom-icon menu-xydh"></i> 校园导航
-                        </el-menu-item> -->
+                        </el-menu-item>
 
                         <!-- <el-submenu index="specialmap">
                             <template slot="title">
@@ -77,7 +78,7 @@
                             <el-menu-item index="/pcLayout/default/specialmap/welcome?name=校园迎新">校园迎新</el-menu-item>
                         </el-submenu> -->
 
-                        <!-- <el-submenu index="tool">
+                        <el-submenu index="tool">
                             <template slot="title">
                                 <i class="custom-icon menu-tool"></i> 工具
                             </template>
@@ -86,7 +87,7 @@
                             <el-menu-item index="/pcLayout/default/tool/ranging">地图测距</el-menu-item>
                             <el-menu-item index="/pcLayout/default/tool/area">地图测面</el-menu-item>
                             <el-menu-item index="/pcLayout/default/tool/layer-manage">图层管理</el-menu-item>
-                        </el-submenu> -->
+                        </el-submenu>
 
                         <!-- <el-submenu index="technique">
                         <template slot="title">

--
Gitblit v1.9.3