feat: 新增签到墙、摇一摇等功能及开发环境配置
新功能: - 签到墙页面 (CheckinWallView) 及后端接口 - 摇一摇互动页面 (ShakeView) 及服务 - 头像服务 (avatar.service) - 微信公众号静默授权登录增强 开发环境: - 新增 dev-tunnel skill 用于本地调试 - docker-compose.dev.yml 开发环境配置 - 客户端 .env.development 配置文件 其他改进: - VoteView 投票页面功能增强 - AdminControl 管理控制台更新 - 连接状态管理优化 - 新增马蹄声音效 Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -23,6 +23,7 @@ const AUDIO_TRACKS: Record<string, string> = {
|
||||
lottery: '/screen/audio/lottery.mp3',
|
||||
fanfare: '/screen/audio/fanfare.mp3',
|
||||
award: '/screen/audio/award.mp3',
|
||||
horse: '/screen/audio/horse.mp3', // 第四轮抽奖"属马"专属音效
|
||||
};
|
||||
|
||||
export const useDisplayStore = defineStore('display', () => {
|
||||
@@ -31,7 +32,8 @@ export const useDisplayStore = defineStore('display', () => {
|
||||
const isConnected = ref(false);
|
||||
const isConnecting = ref(false);
|
||||
const onlineUsers = ref(0);
|
||||
const currentMode = ref<'idle' | 'voting' | 'draw' | 'results' | 'lottery_results'>('idle');
|
||||
const currentMode = ref<'idle' | 'voting' | 'draw' | 'results' | 'lottery_results' | 'checkin_wall'>('idle');
|
||||
const eventTitle = ref('公司2026年会');
|
||||
|
||||
// Draw state
|
||||
const isDrawing = ref(false);
|
||||
@@ -131,13 +133,19 @@ export const useDisplayStore = defineStore('display', () => {
|
||||
socketInstance.on(SOCKET_EVENTS.ADMIN_STATE_SYNC as any, (state: AdminState) => {
|
||||
console.log('[Screen] Admin state sync received:', state.systemPhase);
|
||||
|
||||
// Update event title if changed
|
||||
if (state.eventTitle && state.eventTitle !== eventTitle.value) {
|
||||
eventTitle.value = state.eventTitle;
|
||||
}
|
||||
|
||||
// Map SystemPhase to display mode
|
||||
const phaseToMode: Record<SystemPhase, 'idle' | 'voting' | 'draw' | 'results' | 'lottery_results'> = {
|
||||
const phaseToMode: Record<SystemPhase, 'idle' | 'voting' | 'draw' | 'results' | 'lottery_results' | 'checkin_wall'> = {
|
||||
'IDLE': 'idle',
|
||||
'VOTING': 'voting',
|
||||
'LOTTERY': 'draw',
|
||||
'RESULTS': 'results',
|
||||
'LOTTERY_RESULTS': 'lottery_results',
|
||||
'CHECKIN_WALL': 'checkin_wall',
|
||||
};
|
||||
|
||||
const newMode = phaseToMode[state.systemPhase] || 'idle';
|
||||
@@ -247,6 +255,7 @@ export const useDisplayStore = defineStore('display', () => {
|
||||
isConnecting,
|
||||
onlineUsers,
|
||||
currentMode,
|
||||
eventTitle,
|
||||
isDrawing,
|
||||
currentPrize,
|
||||
currentWinner,
|
||||
|
||||
Reference in New Issue
Block a user