refactor(StudyDetailPage): 移除测试音频数据并优化音频列表处理
移除不再使用的测试音频数据,优化音频列表处理逻辑,确保音频封面统一
Showing
2 changed files
with
12 additions
and
69 deletions
| 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 | // 获取评论列表 | ... | ... |
-
Please register or login to post a comment