// status-panel.js class StatusPanel { constructor() { this.defaultStatus = { event: "等待事件...", location: { name: "未知位置", description: "等待位置更新..." }, group: [] } this.currentStatus = this.defaultStatus; this.init(); } init() { // 设置默认状态 this.updateAllStatus(this.currentStatus); // 监听WebSocket消息 window.addEventListener('websocket-message', (event) => { const message = event.detail; if (message.type === 'status_update') { this.updateAllStatus(message.data); } if (message.type === 'initial_data' && message.data.status) { this.updateAllStatus(message.data.status); } }); } updateEvent(eventText) { const eventContainer = document.querySelector('#current-event .module-content'); if (eventContainer) { eventContainer.innerHTML = `
${eventText || 'No Event'}
`; } } updateLocation(locationData) { const locationContainer = document.querySelector('#current-location .module-content'); if (locationContainer) { locationContainer.innerHTML = `
${locationData.name}
${locationData.description}
`; } } updateGroup(members) { const groupContainer = document.querySelector('.group-members'); if (groupContainer) { if (members && members.length > 0) { groupContainer.innerHTML = members.map(name => `
${name}
`).join(''); } else { groupContainer.innerHTML = '
Empty Group
'; } } } updateAllStatus(statusData) { this.currentStatus = statusData if (statusData.event !== undefined) this.updateEvent(statusData.event); if (statusData.location) this.updateLocation(statusData.location); if (statusData.group) this.updateGroup(statusData.group); } } const statusPanel = new StatusPanel;