diff --git a/packages/client-mobile/src/views/VoteView.vue b/packages/client-mobile/src/views/VoteView.vue index 84de9d8..3bcf428 100644 --- a/packages/client-mobile/src/views/VoteView.vue +++ b/packages/client-mobile/src/views/VoteView.vue @@ -68,8 +68,11 @@ onMounted(() => { {{ connectionStore.userName || '访客' }} 退出 - -

节目投票

+ + + + {{ votingStatusMessage }} +
@@ -136,12 +139,30 @@ onMounted(() => { min-width: 60px; } -.page-title { - font-size: $font-size-lg; - font-weight: bold; - color: $color-text-inverse; - text-align: center; +.voting-status { + display: flex; + align-items: center; + justify-content: center; + gap: 6px; flex: 1; + font-size: $font-size-sm; + color: rgba(255, 255, 255, 0.6); + + &.active { + color: #22c55e; + } +} + +.status-dot { + width: 6px; + height: 6px; + border-radius: 50%; + background: rgba(255, 255, 255, 0.4); + + &.pulsing { + background: #22c55e; + animation: pulse-dot 1.5s ease-in-out infinite; + } } .user-name { @@ -201,5 +222,10 @@ onMounted(() => { flex-direction: column; gap: $spacing-lg; } + +@keyframes pulse-dot { + 0%, 100% { opacity: 1; box-shadow: 0 0 0 0 rgba(34, 197, 94, 0.4); } + 50% { opacity: 0.8; box-shadow: 0 0 0 4px rgba(34, 197, 94, 0); } +}