提交室内导览交互与讲解优化

This commit is contained in:
lyf
2026-06-14 23:48:13 +08:00
parent a7c1879f60
commit feb7310a46
33 changed files with 3257 additions and 361 deletions

48
src/config/dataSource.ts Normal file
View File

@@ -0,0 +1,48 @@
export type DataSourceMode = 'static' | 'api' | 'sdk'
const allowedModes = new Set<DataSourceMode>(['static', 'api', 'sdk'])
const defaultSdkScriptUrl = '/static/sgs-map-sdk/index.global.js'
const defaultSgsEngineUrl = '/h5-sdk'
const defaultSdkTimeoutMs = 5000
const normalizeMode = (mode: string | undefined): DataSourceMode => {
if (mode && allowedModes.has(mode as DataSourceMode)) {
return mode as DataSourceMode
}
return 'static'
}
const normalizeUrl = (url: string | undefined, fallback: string) => {
const normalized = url?.trim()
return normalized || fallback
}
const normalizeTimeout = (timeoutValue: string | undefined) => {
const timeout = Number(timeoutValue)
return Number.isFinite(timeout) && timeout > 0 ? timeout : defaultSdkTimeoutMs
}
const inferOrigin = (url: string) => {
if (typeof window === 'undefined') return ''
try {
return new URL(url, window.location.origin).origin
} catch {
return window.location.origin
}
}
export const dataSourceConfig = {
mode: normalizeMode(import.meta.env.VITE_DATA_SOURCE_MODE),
sgsSdkScriptUrl: normalizeUrl(import.meta.env.VITE_SGS_SDK_SCRIPT_URL, defaultSdkScriptUrl),
sgsMapEngineUrl: normalizeUrl(import.meta.env.VITE_SGS_H5_ENGINE_URL, defaultSgsEngineUrl),
sgsSdkTargetOrigin: import.meta.env.VITE_SGS_SDK_ORIGIN?.trim() || '',
sgsSdkTimeoutMs: normalizeTimeout(import.meta.env.VITE_SGS_SDK_TIMEOUT_MS)
}
export const isSgsSdkMode = () => dataSourceConfig.mode === 'sdk'
export const getSgsMapTargetOrigin = () => (
dataSourceConfig.sgsSdkTargetOrigin || inferOrigin(dataSourceConfig.sgsMapEngineUrl)
)