diff --git a/api/api.js b/api/api.js index 0363317..864a556 100644 --- a/api/api.js +++ b/api/api.js @@ -2,7 +2,7 @@ * API 统一入口 * 所有 API 函数都从此文件导入 */ -import { post } from './request.js' +import { post, get } from './request.js' /** * 保存用户信息 @@ -35,7 +35,7 @@ export const generateCoupletPoster = (data) => { * @param {string} data.page - 页面标识 * @param {string} data.source - 访问来源 * @param {Object} data.extra - 额外数据 - * @returns {Promise} + * @returns {Promise} - 返回包含uuid和scenes数据的Promise */ export const recordPageVisit = (data = {}) => { const defaultData = { @@ -47,8 +47,27 @@ export const recordPageVisit = (data = {}) => { return post('/api/page-visit', defaultData) } +/** + * 获取场景列表 + * @returns {Promise} - 返回场景列表数据 + */ +export const getScenes = () => { + return get('/api/scenes') +} + +/** + * 获取单个场景详情 + * @param {number} id - 场景ID + * @returns {Promise} - 返回场景详情数据 + */ +export const getSceneById = (id) => { + return get(`/api/scenes/${id}`) +} + export default { saveUserInfo, generateCoupletPoster, - recordPageVisit + recordPageVisit, + getScenes, + getSceneById } diff --git a/components/SinglePageContainer.vue b/components/SinglePageContainer.vue index ef1fc95..ef54950 100644 --- a/components/SinglePageContainer.vue +++ b/components/SinglePageContainer.vue @@ -63,9 +63,6 @@ const isMusicPlaying = ref(false) const audioPlayer = ref(null) -// 推荐关键词 -const recommendedKeywords = ref(['吉祥', '如意', '平安', '健康', '幸福', '快乐', '富贵', '安康']) - // 场景数据数组 // 顺序:结束页 → 东直门 → 隆福寺 → 王府井 → 崇文门 → 前门 → 首页 const scenes = ref([ @@ -252,6 +249,30 @@ const initPage = () => { pageVisitUuid.value = res.uuid console.log('页面访问UUID:', res.uuid) } + // 处理后端返回的场景数据,只更新5个商圈的videoUrl + if (res && res.scenes && Array.isArray(res.scenes)) { + console.log('后端返回的场景数据:', res.scenes) + // 商业区ID列表 + const commercialDistricts = ['dongzhimen', 'longfusi', 'wangfujing', 'chongwen', 'qianmen'] + // 创建场景ID到数据的映射 + const apiScenesMap = {} + res.scenes.forEach(scene => { + apiScenesMap[scene.id] = scene + }) + // 只更新商业区的videoUrl + scenes.value.forEach((scene) => { + if (commercialDistricts.includes(scene.id) && apiScenesMap[scene.id]) { + const apiScene = apiScenesMap[scene.id] + // 后端返回的字段名是 video_url + const videoUrl = apiScene.video_url || apiScene.videoUrl + if (videoUrl) { + console.log(`更新场景 ${scene.id} 的videoUrl:`, videoUrl) + scene.videoUrl = videoUrl + } + } + }) + console.log('场景数据更新完成:', scenes.value) + } }).catch(err => { console.log('页面访问记录失败:', err) }) @@ -275,7 +296,7 @@ const initMusicPlayer = () => { try { // 创建音频播放器实例 audioPlayer.value = uni.createInnerAudioContext() - const bgmUrl = new URL('/static/music/bgm1.mp3', import.meta.url) + const bgmUrl = new URL('/static/music/bgm.mp3', import.meta.url) audioPlayer.value.src = bgmUrl.href audioPlayer.value.loop = true diff --git a/static/music/bgm.mp3 b/static/music/bgm.mp3 new file mode 100644 index 0000000..34b892a Binary files /dev/null and b/static/music/bgm.mp3 differ