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