From 72377100db90f53708ba71cc3b6f25e1c5a4719e Mon Sep 17 00:00:00 2001 From: hamburger <346002234@qq.com> Date: Wed, 8 Oct 2025 11:25:29 +0800 Subject: [PATCH] =?UTF-8?q?3=20=E6=96=87=E7=AB=A0=E6=92=AD=E6=94=BE?= =?UTF-8?q?=E5=AE=8C=E5=90=8E=E8=87=AA=E5=8A=A8=E6=92=AD=E6=94=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/base/Audio.vue | 5 ++ src/pages/article/BookDetail.vue | 16 +++++- src/pages/article/PracticeArticles.vue | 15 +++++- src/pages/article/components/ArticleAudio.vue | 51 ++++++++++++++++++- 4 files changed, 84 insertions(+), 3 deletions(-) diff --git a/src/components/base/Audio.vue b/src/components/base/Audio.vue index 25bd3726..5711be6a 100644 --- a/src/components/base/Audio.vue +++ b/src/components/base/Audio.vue @@ -119,9 +119,14 @@ const handlePause = () => { isPlaying.value = false; }; +const emit = defineEmits<{ + ended: [] +}>(); + const handleEnded = () => { isPlaying.value = false; currentTime.value = 0; + emit('ended'); }; const handleError = () => { diff --git a/src/pages/article/BookDetail.vue b/src/pages/article/BookDetail.vue index ff8ca796..1f38c074 100644 --- a/src/pages/article/BookDetail.vue +++ b/src/pages/article/BookDetail.vue @@ -33,6 +33,16 @@ let studyLoading = $ref(false) let selectArticle: Article = $ref(getDefaultArticle()) +// 计算当前选中文章的索引 +const currentArticleIndex = computed(() => { + return runtimeStore.editDict.articles.findIndex(article => article.id === selectArticle.id) +}) + +// 处理播放下一个音频 +const handlePlayNext = (nextArticle: Article) => { + selectArticle = nextArticle +} + function handleCheckedChange(val) { selectArticle = val.item } @@ -191,7 +201,11 @@ const totalSpend = $computed(() => {