From 2dd45351e59d3ef3b9f0e17ff3615caf5a7def12 Mon Sep 17 00:00:00 2001 From: alger Date: Tue, 20 May 2025 20:57:16 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=B7=BB=E5=8A=A0=E5=AE=9A=E6=97=B6?= =?UTF-8?q?=E5=99=A8=E8=BF=87=E6=9C=9F=E6=A3=80=E6=9F=A5=E5=8A=9F=E8=83=BD?= =?UTF-8?q?=20=E4=BC=98=E5=8C=96=E9=A1=B6=E9=83=A8=E5=AE=9A=E6=97=B6?= =?UTF-8?q?=E7=82=B9=E5=87=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../components/player/SleepTimerTop.vue | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/src/renderer/components/player/SleepTimerTop.vue b/src/renderer/components/player/SleepTimerTop.vue index c83422c..f7572cb 100644 --- a/src/renderer/components/player/SleepTimerTop.vue +++ b/src/renderer/components/player/SleepTimerTop.vue @@ -20,6 +20,22 @@ const { sleepTimer } = storeToRefs(playerStore); const hasActiveSleepTimer = computed(() => playerStore.hasSleepTimerActive); const refreshTrigger = ref(0); +// 检查定时器是否已结束 +const checkTimerExpired = () => { + if (sleepTimer.value.type === 'time' && sleepTimer.value.endTime) { + const now = Date.now(); + if (now >= sleepTimer.value.endTime) { + playerStore.clearSleepTimer(); + } + } +} + +// 在组件挂载时检查定时器状态 +onMounted(() => { + checkTimerExpired(); +}); + + // 倒计时显示 const formattedRemainingTime = computed(() => { // 依赖刷新触发器强制更新 @@ -84,7 +100,7 @@ function stopTimerUpdate() { } const handleShowTimer = () => { - playerStore.showSleepTimer = true; + playerStore.showSleepTimer = !playerStore.showSleepTimer; }; // 播放器卸载时清除定时器