优化模型加载失败提示文案
Some checks failed
CI / verify (push) Has been cancelled

This commit is contained in:
lyf
2026-07-10 12:40:08 +08:00
parent 288861838a
commit 27d8864852

View File

@@ -5,7 +5,7 @@
<view v-if="isLoading && !loadError" class="loading-overlay">
<view class="loading-content">
<view class="loading-spinner"></view>
<text class="loading-text">{{ loadingMessage }}</text>
<text class="loading-text">{{ loadingDisplayMessage }}</text>
<view class="loading-progress">
<view class="loading-bar" :style="{ width: `${loadingProgress}%` }"></view>
</view>
@@ -14,8 +14,8 @@
<view v-else-if="loadError" class="loading-overlay error-overlay">
<view class="loading-content error-content">
<text class="error-title">3D 模型加载失败</text>
<text class="error-text">{{ loadingMessage }}</text>
<text class="error-title">{{ modelLoadErrorTitle }}</text>
<text class="error-text">{{ modelLoadErrorMessage }}</text>
<view class="retry-btn" @tap="retryLoad">
<text class="retry-text">重新加载</text>
</view>
@@ -349,6 +349,12 @@ const loadingProgress = ref(0)
const loadingMessage = ref('正在读取馆内导览资源...')
const activeView = ref<ViewMode>(props.initialView)
const currentFloor = ref(props.initialFloorId)
const loadingDisplayMessage = '正在加载馆内三维场景'
const modelLoadErrorTitle = '馆内三维场景加载失败'
const modelLoadErrorMessage = '可能是网络原因,请重新加载。'
const setFriendlyModelLoadError = () => {
setProgress(0, modelLoadErrorMessage)
}
const selectedPOI = ref<RenderPoi | null>(null)
const activeFocusPoiId = ref('')
const floorIndex = ref<FloorIndexItem[]>([])
@@ -3188,7 +3194,6 @@ const checkAutoSwitch = (options: { forceOverviewEntry?: boolean } = {}) => {
detachPoiBeforeLoad: true
})
},
'单楼层模型加载失败',
{ showLoading: !hasSceneToKeep && !canLoadFloorSilently(targetFloorId) }
)
return
@@ -3249,15 +3254,13 @@ const checkAutoSwitch = (options: { forceOverviewEntry?: boolean } = {}) => {
trigger: 'zoom-out',
distance
},
loadOverview,
'建筑外观模型加载失败'
loadOverview
)
}
const runAutoSwitchLoad = async (
event: { from: 'overview' | 'floor'; to: 'overview' | 'floor'; trigger: 'zoom-in' | 'zoom-out'; distance: number },
loadTask: () => Promise<unknown>,
fallbackMessage: string,
options: { showLoading?: boolean } = {}
) => {
const showLoading = options.showLoading ?? true
@@ -3278,7 +3281,7 @@ const runAutoSwitchLoad = async (
console.error('馆内 3D 自动视角切换失败:', error)
loadError.value = true
isLoading.value = false
setProgress(0, error instanceof Error ? error.message : fallbackMessage)
setFriendlyModelLoadError()
} finally {
isAutoSwitchLocked = false
}
@@ -4854,7 +4857,7 @@ const focusTargetPoi = async (request: TargetPoiFocusRequest) => {
console.error('目标 POI 聚焦失败:', error)
loadError.value = true
isLoading.value = false
setProgress(0, error instanceof Error ? error.message : '目标位置聚焦失败')
setFriendlyModelLoadError()
emitTargetFocus(request, 'error', error instanceof Error ? error.message : '目标位置聚焦失败')
return false
}
@@ -4962,7 +4965,7 @@ const init3DScene = async () => {
loadError.value = true
isLoading.value = false
const message = error instanceof Error ? error.message : '请检查模型资源或网络状态后重试'
setProgress(0, message)
setFriendlyModelLoadError()
initialModelSettled = true
emit('initialModelFailed', {
view: activeView.value,
@@ -5010,7 +5013,7 @@ const handleFloorChange = async (floorId: string) => {
console.error('楼层模型加载失败:', error)
loadError.value = true
restoreCommittedFloorPoiLayer()
setProgress(0, error instanceof Error ? error.message : '楼层模型加载失败')
setFriendlyModelLoadError()
} finally {
const requestWasSuperseded = modelLoadVersion > previousLoadToken + 1
if (!requestWasSuperseded || floorSwitchRequestedFloorId === requestedFloorId) {
@@ -5039,7 +5042,7 @@ const showMultiFloor = async () => {
console.error('多层展示模型加载失败:', error)
loadError.value = true
isLoading.value = false
setProgress(0, error instanceof Error ? error.message : '多层展示模型加载失败')
setFriendlyModelLoadError()
}
}