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 @@
+