hookehuyr

refactor(StudyDetailPage): 移除测试音频数据并优化音频列表处理

移除不再使用的测试音频数据,优化音频列表处理逻辑,确保音频封面统一
1 <!-- 1 <!--
2 * @Date: 2025-04-07 12:35:35 2 * @Date: 2025-04-07 12:35:35
3 * @LastEditors: hookehuyr hookehuyr@gmail.com 3 * @LastEditors: hookehuyr hookehuyr@gmail.com
4 - * @LastEditTime: 2025-04-07 17:37:34 4 + * @LastEditTime: 2025-05-08 10:20:49
5 - * @FilePath: /mlaj/src/components/ui/audioPlayer.vue 5 + * @FilePath: /mlaj/src/components/ui/AudioPlayer.vue
6 * @Description: 音频播放器组件,支持播放控制、进度条调节、音量控制、播放列表等功能 6 * @Description: 音频播放器组件,支持播放控制、进度条调节、音量控制、播放列表等功能
7 --> 7 -->
8 <template> 8 <template>
......
...@@ -8,7 +8,7 @@ ...@@ -8,7 +8,7 @@
8 <!-- 固定区域:视频播放和标签页 --> 8 <!-- 固定区域:视频播放和标签页 -->
9 <div class="fixed top-0 left-0 right-0 z-10 top-wrapper"> 9 <div class="fixed top-0 left-0 right-0 z-10 top-wrapper">
10 <!-- 视频播放区域 --> 10 <!-- 视频播放区域 -->
11 - <div v-if="course.course_type === 'video'" class="w-full bg-black relative"> 11 + <div v-if="course.course_type === 'video'" class="w-full relative">
12 <!-- 视频封面和播放按钮 --> 12 <!-- 视频封面和播放按钮 -->
13 <div v-if="!isPlaying" class="relative w-full" style="aspect-ratio: 16/9;"> 13 <div v-if="!isPlaying" class="relative w-full" style="aspect-ratio: 16/9;">
14 <img :src="courseFile.cover" :alt="course.title" class="w-full h-full object-cover" /> 14 <img :src="courseFile.cover" :alt="course.title" class="w-full h-full object-cover" />
...@@ -22,13 +22,17 @@ ...@@ -22,13 +22,17 @@
22 </div> 22 </div>
23 </div> 23 </div>
24 <!-- 视频播放器 --> 24 <!-- 视频播放器 -->
25 - <VideoPlayer v-show="isPlaying" ref="videoPlayerRef" :video-url="courseFile.url" :autoplay="false" 25 + <VideoPlayer v-show="isPlaying" ref="videoPlayerRef" :video-url="courseFile.list.length ? courseFile['list'][0]['url'] : ''" :autoplay="false"
26 @onPlay="handleVideoPlay" @onPause="handleVideoPause" /> 26 @onPlay="handleVideoPlay" @onPause="handleVideoPause" />
27 </div> 27 </div>
28 <div v-if="course.course_type === 'audio'" class="w-full relative" style="border-bottom: 1px solid #F3F4F6;"> 28 <div v-if="course.course_type === 'audio'" class="w-full relative" style="border-bottom: 1px solid #F3F4F6;">
29 <!-- 音频播放器 --> 29 <!-- 音频播放器 -->
30 <AudioPlayer :songs="audioList" /> 30 <AudioPlayer :songs="audioList" />
31 </div> 31 </div>
32 + <!-- 图片列表展示区域 -->
33 + <div v-if="course.course_type === 'image'" class="w-full relative">image</div>
34 + <!-- 文件列表展示区域 -->
35 + <div v-if="course.course_type === 'file'" class="w-full relative">file</div>
32 <!-- 标签页区域 --> 36 <!-- 标签页区域 -->
33 <div class="px-4 py-3 bg-white"> 37 <div class="px-4 py-3 bg-white">
34 <van-tabs v-model:active="activeTab" sticky animated swipeable shrink @change="handleTabChange"> 38 <van-tabs v-model:active="activeTab" sticky animated swipeable shrink @change="handleTabChange">
...@@ -250,65 +254,6 @@ const popupFinished = ref(false); ...@@ -250,65 +254,6 @@ const popupFinished = ref(false);
250 const popupLimit = ref(5); 254 const popupLimit = ref(5);
251 const popupPage = ref(0); 255 const popupPage = ref(0);
252 256
253 -// 测试音频数据
254 -// const audioList = ref([
255 -// {
256 -// id: 1,
257 -// title: '示例音频 1',
258 -// artist: '演唱者 1',
259 -// cover: 'https://cdn.ipadbiz.cn/mlaj/images/zMRLZh40kms.jpg',
260 -// url: 'https://img.tukuppt.com/newpreview_music/09/03/95/5c8af46b01eb138909.mp3'
261 -// },
262 -// {
263 -// id: 2,
264 -// title: '示例音频 2',
265 -// artist: '演唱者 2',
266 -// cover: 'https://cdn.ipadbiz.cn/mlaj/images/zMRLZh40kms.jpg',
267 -// url: 'https://img.tukuppt.com/newpreview_music/08/99/00/5c88d4a8d1f5745026.mp3'
268 -// },
269 -// {
270 -// id: 3,
271 -// title: '示例音频 3',
272 -// artist: '演唱者 3',
273 -// cover: 'https://cdn.ipadbiz.cn/mlaj/images/zMRLZh40kms.jpg',
274 -// url: 'https://img.tukuppt.com/newpreview_music/09/03/95/5c8af46b01eb138909.mp3'
275 -// },
276 -// {
277 -// id: 4,
278 -// title: '示例音频 4',
279 -// artist: '演唱者 4',
280 -// cover: 'https://cdn.ipadbiz.cn/mlaj/images/zMRLZh40kms.jpg',
281 -// url: 'https://img.tukuppt.com/newpreview_music/09/03/72/5c8ad96fbf47328809.mp3'
282 -// },
283 -// {
284 -// id: 5,
285 -// title: '示例音频 5',
286 -// artist: '演唱者 5',
287 -// cover: 'https://cdn.ipadbiz.cn/mlaj/images/zMRLZh40kms.jpg',
288 -// url: 'https://img.tukuppt.com/newpreview_music/09/03/95/5c8af46b01eb138909.mp3'
289 -// },
290 -// {
291 -// id: 6,
292 -// title: '示例音频 6',
293 -// artist: '演唱者 6',
294 -// cover: 'https://cdn.ipadbiz.cn/mlaj/images/zMRLZh40kms.jpg',
295 -// url: 'https://img.tukuppt.com/newpreview_music/09/03/72/5c8ad96fbf47328809.mp3'
296 -// },
297 -// {
298 -// id: 7,
299 -// title: '示例音频 7',
300 -// artist: '演唱者 7',
301 -// cover: 'https://cdn.ipadbiz.cn/mlaj/images/zMRLZh40kms.jpg',
302 -// url: 'https://img.tukuppt.com/newpreview_music/09/03/95/5c8af46b01eb138909.mp3'
303 -// },
304 -// {
305 -// id: 8,
306 -// title: '示例音频 8',
307 -// artist: '演唱者 8',
308 -// cover: 'https://cdn.ipadbiz.cn/mlaj/images/zMRLZh40kms.jpg',
309 -// url: 'https://img.tukuppt.com/newpreview_music/09/03/72/5c8ad96fbf47328809.mp3'
310 -// },
311 -// ]);
312 const audioList = ref([]); 257 const audioList = ref([]);
313 258
314 // 设置页面标题 259 // 设置页面标题
...@@ -357,11 +302,6 @@ const handleLessonClick = async (lesson) => { ...@@ -357,11 +302,6 @@ const handleLessonClick = async (lesson) => {
357 course.value = data; 302 course.value = data;
358 courseFile.value = data.file; 303 courseFile.value = data.file;
359 304
360 - // 音频列表处理
361 - if (data.course_type === 'audio') {
362 - audioList.value = [data.file];
363 - }
364 -
365 // 获取评论列表 305 // 获取评论列表
366 const comment = await getGroupCommentListAPI({ group_id: data.group_id, schedule_id: data.id }); 306 const comment = await getGroupCommentListAPI({ group_id: data.group_id, schedule_id: data.id });
367 if (comment.code) { 307 if (comment.code) {
...@@ -397,7 +337,10 @@ onMounted(async () => { ...@@ -397,7 +337,10 @@ onMounted(async () => {
397 courseFile.value = data.file; 337 courseFile.value = data.file;
398 // 音频列表处理 338 // 音频列表处理
399 if (data.course_type === 'audio') { 339 if (data.course_type === 'audio') {
400 - audioList.value = [data.file]; 340 + audioList.value = data.file.list;
341 + data.file.list.forEach((item, index) => {
342 + item.cover = 'https://cdn.ipadbiz.cn/mlaj/images/audio_d_cover.jpg'
343 + })
401 } 344 }
402 345
403 // 获取评论列表 346 // 获取评论列表
......