修正楼层显示顺序
This commit is contained in:
@@ -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'
|
||||
|
||||
Reference in New Issue
Block a user