From e93e3e02d22d1cc35e04d5801bc56e8ad49133e2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B0=A2=E9=9B=A8=E6=99=B4?= <1207713896@qq.com> Date: Wed, 20 Aug 2025 09:00:29 +0800 Subject: [PATCH] =?UTF-8?q?=E6=88=BF=E9=97=B4=E5=B0=8F=E5=8D=A1=E7=89=87?= =?UTF-8?q?=E5=8F=AF=E4=BB=A5=E8=8E=B7=E5=8F=96=E4=B8=94=E6=AD=A3=E5=B8=B8?= =?UTF-8?q?=E6=98=BE=E7=A4=BA=EF=BC=8C=E5=8A=A0=E5=85=A5=E6=88=BF=E9=97=B4?= =?UTF-8?q?=E7=9A=84=E5=93=8D=E5=BA=94=E9=80=9F=E5=BA=A6=E5=A4=A7=E5=A4=A7?= =?UTF-8?q?=E6=8F=90=E9=AB=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- frontend/src/components/RoomList.vue | 59 +++++++++++++++++----------- 1 file changed, 35 insertions(+), 24 deletions(-) diff --git a/frontend/src/components/RoomList.vue b/frontend/src/components/RoomList.vue index f1f9e54..538fb53 100644 --- a/frontend/src/components/RoomList.vue +++ b/frontend/src/components/RoomList.vue @@ -190,7 +190,7 @@ function handleRoomListUpdated(response) { console.log('Is array?', Array.isArray(response)); console.log('Raw room list response:', JSON.stringify(response, null, 2)); - // 处理两种可能的响应格式 + // 处理多种可能的响应格式 let updatedRooms = []; if (Array.isArray(response)) { // 格式1: 直接返回房间数组 @@ -206,24 +206,28 @@ function handleRoomListUpdated(response) { console.log('Room list updated successfully (data.rooms format)'); } else { console.error('Invalid room list response format:', response); - // 尝试直接渲染原始响应,用于调试 - updatedRooms = [response] || []; + // 尝试从响应中提取房间数据 + updatedRooms = []; } + // 过滤掉无效房间数据 + updatedRooms = updatedRooms.filter(room => room && room.Id !== undefined); + console.log(`Filtered to ${updatedRooms.length} valid rooms`); + console.log(`Total rooms received: ${updatedRooms.length}`); // 显示前3个房间的详细信息 if (updatedRooms.length > 0) { console.log('First 3 rooms details:'); updatedRooms.slice(0, 3).forEach((room, index) => { - console.log(`Room ${index + 1}:`, room); - console.log(`Room ${index + 1} has required fields:`, - 'id' in room ? '✓ id' : '✗ id', - 'name' in room ? '✓ name' : '✗ name', - 'currentPlayers' in room ? '✓ currentPlayers' : '✗ currentPlayers', - 'maxPlayers' in room ? '✓ maxPlayers' : '✗ maxPlayers', - 'status' in room ? '✓ status' : '✗ status' - ); - }); + console.log(`Room ${index + 1}:`, room); + console.log(`Room ${index + 1} has required fields:`, + 'id' in room ? '✓ id' : '✗ id', + 'name' in room ? '✓ name' : '✗ name', + 'currentPlayers' in room || 'CurrentPlayers' in room ? '✓ players' : '✗ players', + 'maxPlayers' in room || 'MaxPlayers' in room ? '✓ maxPlayers' : '✗ maxPlayers', + 'status' in room ? '✓ status' : '✗ status' + ); + }); } // 检查是否有房间数据 @@ -241,10 +245,20 @@ function handleRoomListUpdated(response) { }); } - // 转换房间状态为中文 + // 标准化房间数据,处理大小写问题 updatedRooms = updatedRooms.map(room => ({ ...room, - status: statusMap[room.status] || room.status + // 确保id字段存在 + id: room.Id !== undefined ? room.Id : room.id !== undefined ? room.id : 'unknown-' + Math.random().toString(36).substring(2, 9), + // 确保name字段存在并统一大小写 + name: room.Name !== undefined ? room.Name : room.name !== undefined ? room.name : '未命名房间', + // 统一处理玩家数量属性 + currentPlayers: room.CurrentPlayers !== undefined ? room.CurrentPlayers : room.currentPlayers !== undefined ? room.currentPlayers : 0, + maxPlayers: room.MaxPlayers !== undefined ? room.MaxPlayers : room.maxPlayers !== undefined ? room.maxPlayers : 0, + // 统一处理观战者数量属性 + spectatorsCount: room.SpectatorsCount !== undefined ? room.SpectatorsCount : room.spectatorsCount !== undefined ? room.spectatorsCount : 0, + // 确保status字段存在并转换为中文 + status: statusMap[room.Status] || statusMap[room.status] || '未知状态' })); // 调试:查看满员房间数量和状态 @@ -268,15 +282,6 @@ function handleRoomListUpdated(response) { }, {}); console.log('Room status distribution:', statusCounts); - // 添加调试信息:查看房间初始数据 - console.log('Initial room data before processing:', updatedRooms); - - // 确保每个房间都有currentPlayers字段,默认为0 - updatedRooms = updatedRooms.map(room => ({ - ...room, - currentPlayers: room.CurrentPlayers !== undefined ? room.CurrentPlayers : room.currentPlayers !== undefined ? room.currentPlayers : 0 - })); - // 添加调试信息:查看处理后的房间数据 console.log('Processed room data:', updatedRooms); @@ -463,7 +468,7 @@ function replayGame(roomId) { } .room-card { - background-color: white; + background-color: var(--color-background-soft); border-radius: var(--card-radius); box-shadow: var(--card-shadow); padding: 1.5rem; @@ -522,6 +527,12 @@ function replayGame(roomId) { margin-bottom: 0.3rem; } +.room-spectators { + font-size: 0.875rem; + color: var(--color-text-light-2); + margin-bottom: 0.3rem; +} + .room-status { font-size: 0.75rem; padding: 0.25rem 0.75rem; -- Gitee