优化导览预览与讲解展示层

This commit is contained in:
lyf
2026-06-25 02:48:33 +08:00
parent 19516a507b
commit 33641e75df
17 changed files with 1224 additions and 793 deletions

View File

@@ -25,6 +25,8 @@
:show-controls="false"
:show-poi="shouldShowIndoorPois"
:target-focus="targetFocusRequest"
:touch-gesture-mode="touchGestureMode"
:target-focus-distance-factor="targetFocusDistanceFactor"
:route-preview="routePreview"
:show-route="showRoute"
@floor-change="handleThreeFloorChange"
@@ -216,6 +218,7 @@ interface TargetPoiFocusRequest {
floorLabel?: string
primaryCategoryZh?: string
positionGltf?: [number, number, number]
sourceObjectName?: string
}
interface TargetPoiFocusResult {
@@ -228,6 +231,7 @@ interface TargetPoiFocusResult {
type IndoorViewMode = 'overview' | 'floor' | 'multi'
type LayerDisplayMode = 'single' | 'multi'
type TouchGestureMode = 'orbit' | 'pan'
const props = withDefaults(defineProps<{
searchText?: string
@@ -267,6 +271,8 @@ const props = withDefaults(defineProps<{
normalizeFloorId?: (labelOrId: string) => string
dimmed?: boolean
targetFocusRequest?: TargetPoiFocusRequest | null
touchGestureMode?: TouchGestureMode
targetFocusDistanceFactor?: number
routePreview?: GuideRouteResult | null
showRoute?: boolean
}>(), {
@@ -307,6 +313,8 @@ const props = withDefaults(defineProps<{
normalizeFloorId: (labelOrId: string) => labelOrId,
dimmed: false,
targetFocusRequest: null,
touchGestureMode: 'orbit',
targetFocusDistanceFactor: 0.22,
routePreview: null,
showRoute: false
})

View File

@@ -1,6 +1,10 @@
<template>
<view class="guide-page-frame" :class="`variant-${variant}`">
<view
class="guide-page-frame"
:class="[`variant-${variant}`, { 'no-top-tabs': !showTopTabs }]"
>
<GuideTopTabs
v-if="showTopTabs"
:active-tab="activeTab"
:variant="topTabsVariant"
:top="topTabsTop"
@@ -40,6 +44,7 @@ withDefaults(defineProps<{
variant?: 'overlay' | 'static'
topTabsVariant?: 'underline' | 'segmented'
topTabsTop?: string
showTopTabs?: boolean
showBack?: boolean
showCancel?: boolean
backLabel?: string
@@ -49,6 +54,7 @@ withDefaults(defineProps<{
variant: 'overlay',
topTabsVariant: 'underline',
topTabsTop: '0',
showTopTabs: true,
showBack: false,
showCancel: false,
backLabel: '返回',
@@ -102,6 +108,10 @@ const handleCancelTap = () => {
background: var(--museum-bg-light);
}
.variant-static.no-top-tabs .guide-page-frame-body {
top: 0;
}
.guide-page-frame-actions {
position: absolute;
top: 0;