修正楼层显示顺序

This commit is contained in:
lyf
2026-06-28 19:23:27 +08:00
parent 32c98723e2
commit c4d819021f
5 changed files with 74 additions and 17 deletions

View File

@@ -62,6 +62,9 @@ import type {
GuideRouteFloorSegment,
GuideRouteResult
} from '@/domain/museum'
import {
compareFloorsTopToBottom
} from '@/domain/guideFloor'
type ViewMode = 'overview' | 'floor' | 'multi'
type CameraPreset = 'top' | 'oblique'
@@ -202,7 +205,7 @@ const renderPackage = ref<GuideModelRenderPackage | null>(null)
const floors = computed<FloorOption[]>(() => (
[...floorIndex.value]
.sort((a, b) => b.order - a.order)
.sort(compareFloorsTopToBottom)
.map((floor) => ({
id: floor.floorId,
label: formatFloorLabel(floor.floorId)
@@ -1424,7 +1427,7 @@ const applyMultiFloorLayout = (items: MultiFloorModelItem[]) => {
const centerIndex = (items.length - 1) / 2
items.forEach((item, index) => {
const offsetY = (index - centerIndex) * verticalGap
const offsetY = (centerIndex - index) * verticalGap
item.model.position.y += offsetY
item.model.userData.multiFloorOffsetY = offsetY
item.model.userData.multiFloorVerticalGap = verticalGap
@@ -1892,7 +1895,7 @@ const loadMultiFloor = async () => {
const group = new THREE.Group()
group.name = 'GuideMultiFloorModel'
const orderedFloors = [...floorIndex.value].sort((a, b) => a.order - b.order)
const orderedFloors = [...floorIndex.value].sort(compareFloorsTopToBottom)
const loadedFloors: MultiFloorModelItem[] = []
const sharedModelUrl = getSharedMultiFloorModelUrl(orderedFloors)
@@ -2695,7 +2698,7 @@ const loadModelPackage = async () => {
renderPackage.value = packageData
setProgress(14, '正在读取楼层索引...')
floorIndex.value = [...packageData.floors].sort((a, b) => a.order - b.order)
floorIndex.value = [...packageData.floors].sort(compareFloorsTopToBottom)
if (!floorIndex.value.some((floor) => floor.floorId === currentFloor.value)) {
currentFloor.value = floorIndex.value.find((floor) => floor.floorId === 'L1')?.floorId || floorIndex.value[0]?.floorId || 'L1'