@@ -41,9 +41,9 @@
|
||||
zoom-controls-top="calc(100vh - 292px)"
|
||||
:route-preview="activeRoutePreview"
|
||||
:show-route="Boolean(activeRoutePreview)"
|
||||
:outdoor-markers="arrivalOutdoorMarkers"
|
||||
:active-outdoor-marker-id="activeArrivalMarkerId"
|
||||
:outdoor-focus-offset-y="arrivalOutdoorFocusOffsetY"
|
||||
:outdoor-markers="homeArrivalFeatureEnabled ? arrivalOutdoorMarkers : []"
|
||||
:active-outdoor-marker-id="homeArrivalFeatureEnabled ? activeArrivalMarkerId : ''"
|
||||
:outdoor-focus-offset-y="homeArrivalFeatureEnabled ? arrivalOutdoorFocusOffsetY : 0"
|
||||
:disable-auto-exit="disableIndoorAutoExit"
|
||||
@mode-change="handleModeChange"
|
||||
@floor-request="handleFloorRequest"
|
||||
@@ -60,7 +60,7 @@
|
||||
@outdoor-marker-click="handleArrivalMarkerClick"
|
||||
>
|
||||
<template #overlay>
|
||||
<view v-if="guideOutdoorState === 'entrance' && !is3DMode" class="entrance-tip">
|
||||
<view v-if="homeArrivalFeatureEnabled && guideOutdoorState === 'entrance' && !is3DMode" class="entrance-tip">
|
||||
<text class="entrance-tip-text">主入口 约 4 分钟</text>
|
||||
</view>
|
||||
<view v-if="is3DMode && showIndoorGestureHint" class="indoor-gesture-hint">
|
||||
@@ -117,6 +117,7 @@
|
||||
class="guide-quick-actions"
|
||||
>
|
||||
<view
|
||||
v-if="homeArrivalFeatureEnabled"
|
||||
class="guide-quick-action"
|
||||
:class="{ active: guideQuickActiveAction === 'arrival' }"
|
||||
@tap="handleMoreOutdoorNav"
|
||||
@@ -216,7 +217,7 @@
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<view v-if="guideOutdoorState === 'entrance' && !is3DMode" class="entrance-bottom-card">
|
||||
<view v-if="homeArrivalFeatureEnabled && guideOutdoorState === 'entrance' && !is3DMode" class="entrance-bottom-card">
|
||||
<text class="entrance-card-title">主入口</text>
|
||||
<text class="entrance-card-desc">
|
||||
可参考主入口位置,也可手动进入馆内3D并选择楼层/区域。
|
||||
@@ -234,7 +235,7 @@
|
||||
|
||||
<ArrivalPanel
|
||||
ref="arrivalPanelRef"
|
||||
v-if="currentTab === 'guide'"
|
||||
v-if="homeArrivalFeatureEnabled && currentTab === 'guide'"
|
||||
:visible="showArrivalPanel"
|
||||
:active-type="activeArrivalType"
|
||||
:targets="activeArrivalTargets"
|
||||
@@ -374,6 +375,8 @@ const shouldShowLaunchOverlay = () => {
|
||||
}
|
||||
|
||||
const initialTopTab = (): GuideTopTab => topTabFromHash() || 'guide'
|
||||
// 到馆服务暂不对外开放;保留实现,后续仅需恢复此开关即可。
|
||||
const homeArrivalFeatureEnabled = false
|
||||
|
||||
// 3D 模式状态
|
||||
const is3DMode = ref(true)
|
||||
@@ -1340,6 +1343,7 @@ const handleArrivalTargetSelect = (target: ArrivalSearchTarget) => {
|
||||
}
|
||||
|
||||
const handleArrivalMarkerClick = (markerId: string) => {
|
||||
if (!homeArrivalFeatureEnabled) return
|
||||
const target = activeArrivalTargets.value.find((item) => item.id === markerId)
|
||||
if (!target) return
|
||||
selectedArrivalTargetId.value = target.id
|
||||
@@ -1365,6 +1369,7 @@ onShow(async () => {
|
||||
})
|
||||
|
||||
const handleMoreOutdoorNav = () => {
|
||||
if (!homeArrivalFeatureEnabled) return
|
||||
if (showArrivalPanel.value && showArrivalPanelCollapsed.value) {
|
||||
arrivalPanelRef.value?.expandPanel()
|
||||
showArrivalPanelCollapsed.value = false
|
||||
|
||||
@@ -172,6 +172,16 @@ afterEach(() => {
|
||||
})
|
||||
|
||||
describe('首页搜索与地图闭环', () => {
|
||||
it('首页暂不展示来馆入口及其到馆面板', async () => {
|
||||
const wrapper = await mountIndex()
|
||||
|
||||
expect(wrapper.text()).not.toContain('来馆')
|
||||
expect(wrapper.findAll('.guide-quick-action').map((item) => item.text())).toEqual([
|
||||
'馆内',
|
||||
'讲解'
|
||||
])
|
||||
})
|
||||
|
||||
it('向搜索面板传入当前楼层,并将分类结果 ID 精确传给地图', async () => {
|
||||
const wrapper = await mountIndex()
|
||||
const search = wrapper.getComponent(PoiSearchPanelStub)
|
||||
|
||||
Reference in New Issue
Block a user