From 4c9d480cced888c362d43f6a68cf79b597f3b41e Mon Sep 17 00:00:00 2001
From: lyf <2514544224@qq.com>
Date: Mon, 29 Jun 2026 20:55:13 +0800
Subject: [PATCH] =?UTF-8?q?=E8=B0=83=E6=95=B4=E5=AF=BC=E8=A7=88=E8=AE=B2?=
=?UTF-8?q?=E8=A7=A3=E4=B8=BA=E5=BA=95=E9=83=A8=E4=B8=BB=E5=AF=BC=E8=88=AA?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/components/audio/AudioPlayer.vue | 12 +-
src/components/explain/ExplainHallSelect.vue | 2 +-
src/components/explain/ExplainList.vue | 4 +-
src/components/navigation/GuideBottomNav.vue | 173 ++++++++++++++++++
src/components/navigation/GuideMapShell.vue | 16 +-
src/components/navigation/GuidePageFrame.vue | 10 +-
.../navigation/OutdoorNavigationPanel.vue | 8 +-
.../navigation/RoutePlannerPanel.vue | 10 +-
src/pages/explain/list.vue | 3 +
src/pages/facility/detail.vue | 8 +-
src/pages/index/index.vue | 61 +++---
src/pages/route/detail.vue | 28 +--
12 files changed, 271 insertions(+), 64 deletions(-)
create mode 100644 src/components/navigation/GuideBottomNav.vue
diff --git a/src/components/audio/AudioPlayer.vue b/src/components/audio/AudioPlayer.vue
index bf274c2..1f43f6a 100644
--- a/src/components/audio/AudioPlayer.vue
+++ b/src/components/audio/AudioPlayer.vue
@@ -1,6 +1,10 @@
-
+
@@ -65,6 +69,7 @@ const props = defineProps<{
visible?: boolean
audio?: AudioItem | null
autoPlay?: boolean
+ avoidBottomNav?: boolean
}>()
const emit = defineEmits<{
@@ -517,6 +522,11 @@ defineExpose({
padding-bottom: env(safe-area-inset-bottom);
}
+.audio-player.avoid-bottom-nav {
+ bottom: calc(82px + env(safe-area-inset-bottom));
+ padding-bottom: 0;
+}
+
@media (min-width: 768px) {
.audio-player {
left: 50%;
diff --git a/src/components/explain/ExplainHallSelect.vue b/src/components/explain/ExplainHallSelect.vue
index decdcff..8476af5 100644
--- a/src/components/explain/ExplainHallSelect.vue
+++ b/src/components/explain/ExplainHallSelect.vue
@@ -120,7 +120,7 @@ const handleBack = () => {
.explain-scroll {
height: 100%;
- padding: 76px 20px calc(28px + env(safe-area-inset-bottom));
+ padding: 76px 20px calc(112px + env(safe-area-inset-bottom));
box-sizing: border-box;
}
diff --git a/src/components/explain/ExplainList.vue b/src/components/explain/ExplainList.vue
index 3fadd34..9983a10 100644
--- a/src/components/explain/ExplainList.vue
+++ b/src/components/explain/ExplainList.vue
@@ -526,7 +526,7 @@ const handleBrowseAll = () => {
.explain-scroll {
height: 100%;
- padding: 0 16px calc(28px + env(safe-area-inset-bottom));
+ padding: 0 16px calc(110px + env(safe-area-inset-bottom));
box-sizing: border-box;
}
@@ -897,7 +897,7 @@ const handleBrowseAll = () => {
}
.card-list {
- padding-bottom: calc(28px + env(safe-area-inset-bottom));
+ padding-bottom: calc(110px + env(safe-area-inset-bottom));
}
.list-more {
diff --git a/src/components/navigation/GuideBottomNav.vue b/src/components/navigation/GuideBottomNav.vue
new file mode 100644
index 0000000..770f2d0
--- /dev/null
+++ b/src/components/navigation/GuideBottomNav.vue
@@ -0,0 +1,173 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ tab.label }}
+
+
+
+
+
+
+
+
diff --git a/src/components/navigation/GuideMapShell.vue b/src/components/navigation/GuideMapShell.vue
index c9fa7ce..77c4603 100644
--- a/src/components/navigation/GuideMapShell.vue
+++ b/src/components/navigation/GuideMapShell.vue
@@ -18,6 +18,7 @@
:target-focus-distance-factor="targetFocusDistanceFactor"
:route-preview="routePreview"
:show-route="showRoute"
+ :disable-auto-exit="disableAutoExit"
:auto-switch-threshold-low="autoSwitchThresholdLow"
:auto-switch-threshold-high="autoSwitchThresholdHigh"
@floor-change="handleThreeFloorChange"
@@ -29,7 +30,7 @@
- 室内三维导览
+ 馆内三维导览
当前端暂不支持 WebGL 三维展示,请在 H5 端查看。
@@ -81,14 +82,14 @@
:class="{ active: activeMode === '2d' }"
@tap="handleModeChange('2d')"
>
- 室外2D
+ 馆外2D
- 室内3D
+ 馆内3D
@@ -98,14 +99,14 @@
:class="{ active: activeMode === '2d' }"
@tap="handleModeChange('2d')"
>
- 室外2D
+ 馆外2D
- 室内3D
+ 馆内3D
@@ -316,6 +317,7 @@ const props = withDefaults(defineProps<{
targetFocusDistanceFactor?: number
routePreview?: GuideRouteResult | null
showRoute?: boolean
+ disableAutoExit?: boolean
autoSwitchThresholdLow?: number
autoSwitchThresholdHigh?: number
outdoorNavPolylines?: OutdoorNavPolyline[]
@@ -363,6 +365,7 @@ const props = withDefaults(defineProps<{
targetFocusDistanceFactor: 0.22,
routePreview: null,
showRoute: false,
+ disableAutoExit: false,
autoSwitchThresholdLow: 1.0,
autoSwitchThresholdHigh: 1.3,
outdoorNavPolylines: () => [] as OutdoorNavPolyline[]
@@ -590,8 +593,7 @@ defineExpose({
position: relative;
z-index: 0;
width: 100%;
- height: 100vh;
- height: 100dvh;
+ height: 100%;
overflow: hidden;
background: #ffffff;
color: #000000;
diff --git a/src/components/navigation/GuidePageFrame.vue b/src/components/navigation/GuidePageFrame.vue
index c5d7793..b1aa5bd 100644
--- a/src/components/navigation/GuidePageFrame.vue
+++ b/src/components/navigation/GuidePageFrame.vue
@@ -1,7 +1,7 @@
+