diff --git a/src/components/image-editor/model3d-preview/Model3dViewerModel.ts b/src/components/image-editor/model3d-preview/Model3dViewerModel.ts index 600cb5e75..e4f9516eb 100644 --- a/src/components/image-editor/model3d-preview/Model3dViewerModel.ts +++ b/src/components/image-editor/model3d-preview/Model3dViewerModel.ts @@ -51,20 +51,21 @@ export function resolveModel3dViewerFailureText( detail: Model3dViewerStatusDetail | null | undefined, fallbackText: string, ) { - switch (detail?.reason) { + const reason = detail?.reason; + // 加载失败没有更细的可读信息,与原因缺失共用调用方的兜底文案。 + if (reason === undefined || reason === 'load-failed') { + return fallbackText; + } + switch (reason) { case 'too-large': return `模型超过 ${MODEL3D_VIEWER_MAX_MIB} MiB,无法预览。`; case 'unsupported-format': return `无法识别模型格式,只支持 ${MODEL3D_VIEWER_SUPPORTED_FORMAT_TEXT}。`; case 'webgl-unavailable': return '当前环境不支持 WebGL2,无法预览模型。'; - // 加载失败没有更细的可读信息,与原因缺失共用调用方的兜底文案。 - case 'load-failed': - case undefined: - return fallbackText; default: { // 查看器新增失败原因时这里会编译报错,不会静默退化成通用文案。 - const unhandledReason: never = detail?.reason; + const unhandledReason: never = reason; return unhandledReason; } }