From bd19b6e23ad8648d019ce9f3f850fa52f92e5fd8 Mon Sep 17 00:00:00 2001 From: lyf <2514544224@qq.com> Date: Fri, 26 Jun 2026 12:22:42 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=20SDK=20=E5=90=8C=E6=BA=90?= =?UTF-8?q?=E8=B5=84=E6=BA=90=E5=8A=A0=E8=BD=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 将生产环境 SDK 接口、H5 基座和模型资源配置为同源访问,避免 HTTPS 页面请求 HTTP 后端或 MinIO 资源时触发混合内容拦截。 同步更新环境变量模板,并移除导览页中废弃的 3D 视角切换入口。 --- .env.example | 12 ++++++++++++ src/pages/index/index.vue | 16 ---------------- src/repositories/GuideModelRepository.ts | 19 ++++++++++++++++++- 3 files changed, 30 insertions(+), 17 deletions(-) diff --git a/.env.example b/.env.example index 8c79588..22b8ed4 100644 --- a/.env.example +++ b/.env.example @@ -1,3 +1,15 @@ # 腾讯地图 API Key # 请到 https://lbs.qq.com/index.html 申请 VITE_TENCENT_MAP_KEY=your_tencent_map_key_here + +# 数据源模式:sdk / mock +VITE_DATA_SOURCE_MODE=sdk +VITE_API_BASE_URL=/app-api +VITE_SGS_SDK_TIMEOUT_MS=15000 + +# SGS SDK 配置(生产部署使用同源路径,避免 HTTPS 页面请求 HTTP 后端被浏览器拦截) +VITE_SGS_API_BASE_URL=/app-api +VITE_SGS_MAP_ID=1 +VITE_SGS_SDK_SCRIPT_URL=/static/sgs-map-sdk/index.global.js +VITE_SGS_H5_ENGINE_URL=/h5-sdk +VITE_SGS_SDK_ORIGIN=https://guide.whaoyue.com diff --git a/src/pages/index/index.vue b/src/pages/index/index.vue index ddc648a..160e310 100644 --- a/src/pages/index/index.vue +++ b/src/pages/index/index.vue @@ -41,8 +41,6 @@ zoom-controls-top="calc(100vh - 284px)" show-more-control more-control-bottom="54px" - :tools="guide3DTools" - :camera-view="guideCameraView" :route-preview="activeRoutePreview" :show-route="Boolean(activeRoutePreview)" :auto-switch-threshold-low="0.58" @@ -54,7 +52,6 @@ @indoor-view-change="handleIndoorViewChange" @poi-click="handleGuidePoiClick" @selection-clear="handleGuideSelectionClear" - @tool-click="handleGuideToolClick" @more-click="handleGuideMoreClick" @auto-switch="handleAutoSwitch" @map-tap="handleMapTapForOutdoorNav" @@ -345,9 +342,6 @@ const normalizeGuideFloorId = (labelOrId: string) => guideUseCase.normalizeFloor const indoorLayerMode = computed(() => ( indoorView.value === 'multi' ? 'multi' : 'single' )) -const guide3DTools = computed(() => { - return is3DMode.value ? ['视角'] : [] -}) const routePlanSummary = computed(() => { if (activeRoutePreview.value) { @@ -708,16 +702,6 @@ const handleSelectedPoiRelated = () => { }) } -const guideCameraView = ref<'reset' | 'top' | 'oblique'>('reset') - -const handleGuideToolClick = (_tool: string) => { - // 视角循环切换:重置 -> 俯视 -> 斜视 -> 重置 - const viewOrder: Array<'reset' | 'top' | 'oblique'> = ['reset', 'top', 'oblique'] - const currentIndex = viewOrder.indexOf(guideCameraView.value) - const nextIndex = (currentIndex + 1) % viewOrder.length - guideCameraView.value = viewOrder[nextIndex] -} - const loadRouteTargets = async (keyword = '') => { routeTargetsLoading.value = true routeTargetsError.value = '' diff --git a/src/repositories/GuideModelRepository.ts b/src/repositories/GuideModelRepository.ts index 3683d8b..8c3aa97 100644 --- a/src/repositories/GuideModelRepository.ts +++ b/src/repositories/GuideModelRepository.ts @@ -54,7 +54,24 @@ const trimTrailingSlash = (value: string) => value.replace(/\/+$/, '') const resolveSgsAssetUrl = (url?: string | null) => { const normalizedUrl = url?.trim() if (!normalizedUrl) return '' - if (/^https?:\/\//i.test(normalizedUrl)) return normalizedUrl + + if (/^https?:\/\//i.test(normalizedUrl)) { + try { + const assetUrl = new URL(normalizedUrl) + if ( + assetUrl.hostname === '1.92.206.90' + && assetUrl.port === '9000' + && assetUrl.pathname.startsWith('/museum-assets/') + ) { + return `${assetUrl.pathname}${assetUrl.search}${assetUrl.hash}` + } + } catch { + return normalizedUrl + } + + return normalizedUrl + } + if (!normalizedUrl.startsWith('/')) return normalizedUrl const baseUrl = trimTrailingSlash(dataSourceConfig.sgsApiBaseUrl || dataSourceConfig.apiBaseUrl || '')