feat: add Admin Control Panel, voting status check, and router security

Admin Control Panel:
- Add full AdminControl.vue with 3 sections (Voting, Lottery, Global)
- Add AdminLogin.vue with access code gate (20268888)
- Add admin.ts store with state persistence
- Add admin.types.ts with state machine types
- Add router guards for /admin/director-console

Voting System Fixes:
- Add voting status check before accepting votes (VOTING_CLOSED error)
- Fix client to display server error messages
- Fix button disabled logic to prevent ambiguity in paused state
- Auto-generate userId on connect to fix UNAUTHORIZED error

Big Screen Enhancements:
- Add LiveVotingView.vue with particle system
- Add LotteryMachine.ts with 3-stage animation (Galaxy/Storm/Reveal)
- Add useSocketClient.ts composable
- Fix MainDisplay.vue SCSS syntax error
- Add admin state sync listener in display store

Server Updates:
- Add admin.service.ts for state management
- Add isVotingOpen() and getVotingStatus() methods
- Add admin socket event handlers

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
empty
2026-01-15 15:34:37 +08:00
parent e7397d22a9
commit 30cd29d45d
45 changed files with 7791 additions and 715 deletions

View File

@@ -1,4 +1,4 @@
@import './variables.scss';
@use './variables.scss' as *;
* {
margin: 0;
@@ -25,6 +25,35 @@ html, body {
background-clip: text;
}
// Liquid Gold shimmer effect
.liquid-gold {
font-family: 'Noto Serif SC', 'Ma Shan Zheng', serif;
background: linear-gradient(
90deg,
$color-gold-dark 0%,
$color-gold 25%,
$color-gold-light 50%,
$color-gold 75%,
$color-gold-dark 100%
);
background-size: 200% 100%;
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
background-clip: text;
animation: shimmer 3s ease-in-out infinite;
text-shadow: none;
filter: drop-shadow(0 0 20px rgba($color-gold, 0.4));
}
@keyframes shimmer {
0%, 100% {
background-position: 200% center;
}
50% {
background-position: 0% center;
}
}
// Red glow text
.glow-text {
text-shadow: $glow-red;

View File

@@ -1,17 +1,20 @@
// Guochao Red & Gold Theme for Big Screen
// Guochao Red & Gold Theme for Big Screen - Cinematic Edition
// Primary colors
$color-primary: #c41230;
// Primary colors (Dan-sha Red)
$color-primary: #c21f30;
$color-primary-light: #e8384f;
$color-primary-dark: #9a0e26;
$color-gold: #d4a84b;
$color-gold-light: #f0c96a;
$color-gold-dark: #b8923f;
// Gold palette (Champagne Gold)
$color-gold: #f0c239;
$color-gold-light: #ffd966;
$color-gold-dark: #d4a84b;
$color-gold-deep: #b8923f;
// Background
// Cinematic background
$color-bg-dark: #0a0a0a;
$color-bg-gradient: linear-gradient(180deg, #1a0a0a 0%, #0a0a0a 50%, #0a0510 100%);
$color-bg-wine: #2a0a0e;
$color-bg-gradient: linear-gradient(180deg, #2a0a0e 0%, #1a0808 50%, #0a0505 100%);
// Text
$color-text-light: #ffffff;