修复F1楼层默认进入判定
Some checks failed
CI / verify (push) Has been cancelled

This commit is contained in:
lyf
2026-07-17 15:29:03 +08:00
parent 122013ccfb
commit 3d4f4c1d9a
3 changed files with 12 additions and 8 deletions

View File

@@ -63,7 +63,8 @@ import type {
GuideRouteResult
} from '@/domain/museum'
import {
compareFloorsTopToBottom
compareFloorsTopToBottom,
getFloorSortLevel
} from '@/domain/guideFloor'
import {
guideModelLoadManager,
@@ -3139,7 +3140,8 @@ const resolveFloorIdFromRequest = (requestedFloorId?: string | null) => {
}
const isGroundEntryFloor = (floor: FloorIndexItem) => (
getFloorMatchKeys(floor).some((key) => {
getFloorSortLevel(floor) === 1
|| getFloorMatchKeys(floor).some((key) => {
const normalizedKey = normalizeModelMatchKey(key)
return normalizedKey === 'l1' || normalizedKey === '1f'
})

View File

@@ -345,6 +345,7 @@ import type {
MuseumHall,
MuseumPoi
} from '@/domain/museum'
import { getFloorSortLevel } from '@/domain/guideFloor'
type GuideIndoorView = 'overview' | 'floor' | 'multi'
type LayerDisplayMode = 'single' | 'multi'
@@ -583,7 +584,8 @@ const guideFloors = ref<MuseumFloor[]>([])
const normalizeGuideFloorId = (labelOrId: string) => guideUseCase.normalizeFloorId(labelOrId)
const getPreferredInitialGuideFloorId = (floors: MuseumFloor[]) => (
floors.find((floor) => (
normalizeGuideFloorId(floor.id) === 'L1'
getFloorSortLevel(floor) === 1
|| normalizeGuideFloorId(floor.id) === 'L1'
|| normalizeGuideFloorId(floor.label) === 'L1'
))?.id
|| floors[0]?.id

View File

@@ -366,17 +366,17 @@ describe('首页搜索与地图闭环', () => {
it('楼层数据按高到低返回时,首次进入仍将 1F 作为自动缩放的默认目标', async () => {
const originalFloors = [...floors]
floors.splice(0, floors.length,
{ id: 'L5', label: '5F', order: 5 },
{ id: 'L2', label: '2F', order: 2 },
{ id: 'L1', label: '1F', order: 1 }
{ id: 'F5', label: 'F5', order: 5 },
{ id: 'F2', label: 'F2', order: 2 },
{ id: 'F1', label: 'F1', order: 1 }
)
try {
const wrapper = await mountIndex()
const map = wrapper.getComponent(GuideMapShellStub)
expect(map.props('activeFloor')).toBe('L1')
expect(wrapper.getComponent(PoiSearchPanelStub).props('currentFloorId')).toBe('L1')
expect(map.props('activeFloor')).toBe('F1')
expect(wrapper.getComponent(PoiSearchPanelStub).props('currentFloorId')).toBe('F1')
} finally {
floors.splice(0, floors.length, ...originalFloors)
}