diff --git a/src/components/baseLayouts/Lobby.vue b/src/components/baseLayouts/Lobby.vue index a68f2e8..6532190 100644 --- a/src/components/baseLayouts/Lobby.vue +++ b/src/components/baseLayouts/Lobby.vue @@ -51,7 +51,7 @@ import { storeToRefs } from 'pinia' const statusFilters = [ { key: 'all', label: '全部' }, { key: 'waiting', label: '等待中' }, - { key: 'playing', label: '进行中' }, + { key: 'playing', label: '进行中' } ] const activeFilter = ref('all') @@ -76,206 +76,314 @@ const ALL_ROOMS: Record = { /* ---- 贪吃蛇 ---- */ snake: [ { - id: 'snake-001', name: '桌 01', gameIcon: '🐍', gameId: 'snake', + id: 'snake-001', + name: '桌 01', + gameIcon: '🐍', + gameId: 'snake', maxPlayers: 4, players: [ { avatar: avatarUrl('小龙'), nickname: '小龙' }, - { avatar: avatarUrl('阿蟒'), nickname: '阿蟒' }, + { avatar: avatarUrl('阿蟒'), nickname: '阿蟒' } ], - status: 'waiting', statusText: '等待中', stakes: 300, mode: '经典模式', - creatorName: '小龙', + status: 'waiting', + statusText: '等待中', + stakes: 300, + mode: '经典模式', + creatorName: '小龙' }, { - id: 'snake-002', name: '桌 02', gameIcon: '🐍', gameId: 'snake', + id: 'snake-002', + name: '桌 02', + gameIcon: '🐍', + gameId: 'snake', maxPlayers: 4, players: [ { avatar: avatarUrl('闪电'), nickname: '闪电' }, { avatar: avatarUrl('疾风'), nickname: '疾风' }, { avatar: avatarUrl('游侠'), nickname: '游侠' }, - { avatar: avatarUrl('幻影'), nickname: '幻影' }, + { avatar: avatarUrl('幻影'), nickname: '幻影' } ], - status: 'playing', statusText: '进行中', stakes: 500, mode: '道具模式', - creatorName: '闪电', + status: 'playing', + statusText: '进行中', + stakes: 500, + mode: '道具模式', + creatorName: '闪电' }, { - id: 'snake-003', name: '桌 03', gameIcon: '🐍', gameId: 'snake', + id: 'snake-003', + name: '桌 03', + gameIcon: '🐍', + gameId: 'snake', maxPlayers: 4, - players: [ - { avatar: avatarUrl('青蛇'), nickname: '青蛇' }, - ], - status: 'waiting', statusText: '等待中', stakes: 200, mode: '加速模式', - creatorName: '青蛇', + players: [{ avatar: avatarUrl('青蛇'), nickname: '青蛇' }], + status: 'waiting', + statusText: '等待中', + stakes: 200, + mode: '加速模式', + creatorName: '青蛇' }, { - id: 'snake-004', name: '桌 04', gameIcon: '🐍', gameId: 'snake', + id: 'snake-004', + name: '桌 04', + gameIcon: '🐍', + gameId: 'snake', maxPlayers: 4, players: [], - status: 'waiting', statusText: '等待中', stakes: 100, mode: '经典模式', - creatorName: '毒牙', + status: 'waiting', + statusText: '等待中', + stakes: 100, + mode: '经典模式', + creatorName: '毒牙' }, { - id: 'snake-005', name: '桌 05', gameIcon: '🐍', gameId: 'snake', + id: 'snake-005', + name: '桌 05', + gameIcon: '🐍', + gameId: 'snake', maxPlayers: 4, players: [ { avatar: avatarUrl('巨蟒'), nickname: '巨蟒' }, { avatar: avatarUrl('灵蛇'), nickname: '灵蛇' }, - { avatar: avatarUrl('毒牙'), nickname: '毒牙' }, + { avatar: avatarUrl('毒牙'), nickname: '毒牙' } ], - status: 'waiting', statusText: '等待中', stakes: 400, mode: '道具模式', - creatorName: '巨蟒', - }, + status: 'waiting', + statusText: '等待中', + stakes: 400, + mode: '道具模式', + creatorName: '巨蟒' + } ], /* ---- 俄罗斯方块 ---- */ tetris: [ { - id: 'tetris-001', name: '桌 01', gameIcon: '🧊', gameId: 'tetris', + id: 'tetris-001', + name: '桌 01', + gameIcon: '🧊', + gameId: 'tetris', maxPlayers: 2, - players: [ - { avatar: avatarUrl('方块大师'), nickname: '方块大师' }, - ], - status: 'waiting', statusText: '等待中', stakes: 300, mode: '1v1 对战', - creatorName: '方块大师', + players: [{ avatar: avatarUrl('方块大师'), nickname: '方块大师' }], + status: 'waiting', + statusText: '等待中', + stakes: 300, + mode: '1v1 对战', + creatorName: '方块大师' }, { - id: 'tetris-002', name: '桌 02', gameIcon: '🧊', gameId: 'tetris', + id: 'tetris-002', + name: '桌 02', + gameIcon: '🧊', + gameId: 'tetris', maxPlayers: 2, players: [ { avatar: avatarUrl('极速下落'), nickname: '极速下落' }, - { avatar: avatarUrl('消行高手'), nickname: '消行高手' }, + { avatar: avatarUrl('消行高手'), nickname: '消行高手' } ], - status: 'playing', statusText: '进行中', stakes: 500, mode: '竞速模式', - creatorName: '极速下落', + status: 'playing', + statusText: '进行中', + stakes: 500, + mode: '竞速模式', + creatorName: '极速下落' }, { - id: 'tetris-003', name: '桌 03', gameIcon: '🧊', gameId: 'tetris', + id: 'tetris-003', + name: '桌 03', + gameIcon: '🧊', + gameId: 'tetris', maxPlayers: 2, players: [], - status: 'waiting', statusText: '等待中', stakes: 150, mode: '1v1 对战', - creatorName: '堆叠王者', + status: 'waiting', + statusText: '等待中', + stakes: 150, + mode: '1v1 对战', + creatorName: '堆叠王者' }, { - id: 'tetris-004', name: '桌 04', gameIcon: '🧊', gameId: 'tetris', + id: 'tetris-004', + name: '桌 04', + gameIcon: '🧊', + gameId: 'tetris', maxPlayers: 2, - players: [ - { avatar: avatarUrl('T旋大师'), nickname: 'T旋大师' }, - ], - status: 'waiting', statusText: '等待中', stakes: 200, mode: '1v1 对战', - creatorName: 'T旋大师', + players: [{ avatar: avatarUrl('T旋大师'), nickname: 'T旋大师' }], + status: 'waiting', + statusText: '等待中', + stakes: 200, + mode: '1v1 对战', + creatorName: 'T旋大师' }, { - id: 'tetris-005', name: '桌 05', gameIcon: '🧊', gameId: 'tetris', + id: 'tetris-005', + name: '桌 05', + gameIcon: '🧊', + gameId: 'tetris', maxPlayers: 2, players: [ { avatar: avatarUrl('连击王'), nickname: '连击王' }, - { avatar: avatarUrl('消除者'), nickname: '消除者' }, + { avatar: avatarUrl('消除者'), nickname: '消除者' } ], - status: 'playing', statusText: '进行中', stakes: 400, mode: '竞速模式', - creatorName: '连击王', - }, + status: 'playing', + statusText: '进行中', + stakes: 400, + mode: '竞速模式', + creatorName: '连击王' + } ], /* ---- 五子棋 ---- */ gomoku: [ { - id: 'gomoku-001', name: '桌 01', gameIcon: '🎯', gameId: 'gomoku', + id: 'gomoku-001', + name: '桌 01', + gameIcon: '⚫', + gameId: 'gomoku', maxPlayers: 2, - players: [ - { avatar: avatarUrl('棋圣'), nickname: '棋圣' }, - ], - status: 'waiting', statusText: '等待中', stakes: 200, mode: '无禁手', - creatorName: '棋圣', + players: [{ avatar: avatarUrl('棋圣'), nickname: '棋圣' }], + status: 'waiting', + statusText: '等待中', + stakes: 200, + mode: '无禁手', + creatorName: '棋圣' }, { - id: 'gomoku-002', name: '桌 02', gameIcon: '🎯', gameId: 'gomoku', + id: 'gomoku-002', + name: '桌 02', + gameIcon: '⚫', + gameId: 'gomoku', maxPlayers: 2, players: [ { avatar: avatarUrl('黑白子'), nickname: '黑白子' }, - { avatar: avatarUrl('五连珠'), nickname: '五连珠' }, + { avatar: avatarUrl('五连珠'), nickname: '五连珠' } ], - status: 'playing', statusText: '进行中', stakes: 400, mode: '有禁手', - creatorName: '黑白子', + status: 'playing', + statusText: '进行中', + stakes: 400, + mode: '有禁手', + creatorName: '黑白子' }, { - id: 'gomoku-003', name: '桌 03', gameIcon: '🎯', gameId: 'gomoku', + id: 'gomoku-003', + name: '桌 03', + gameIcon: '⚫', + gameId: 'gomoku', maxPlayers: 2, players: [], - status: 'waiting', statusText: '等待中', stakes: 100, mode: '无禁手', - creatorName: '落子无悔', + status: 'waiting', + statusText: '等待中', + stakes: 100, + mode: '无禁手', + creatorName: '落子无悔' }, { - id: 'gomoku-004', name: '桌 04', gameIcon: '🎯', gameId: 'gomoku', + id: 'gomoku-004', + name: '桌 04', + gameIcon: '⚫', + gameId: 'gomoku', maxPlayers: 2, - players: [ - { avatar: avatarUrl('天元'), nickname: '天元' }, - ], - status: 'waiting', statusText: '等待中', stakes: 300, mode: '有禁手', - creatorName: '天元', + players: [{ avatar: avatarUrl('天元'), nickname: '天元' }], + status: 'waiting', + statusText: '等待中', + stakes: 300, + mode: '有禁手', + creatorName: '天元' }, { - id: 'gomoku-005', name: '桌 05', gameIcon: '🎯', gameId: 'gomoku', + id: 'gomoku-005', + name: '桌 05', + gameIcon: '⚫', + gameId: 'gomoku', maxPlayers: 2, players: [ { avatar: avatarUrl('先手必胜'), nickname: '先手必胜' }, - { avatar: avatarUrl('后手无敌'), nickname: '后手无敌' }, + { avatar: avatarUrl('后手无敌'), nickname: '后手无敌' } ], - status: 'playing', statusText: '进行中', stakes: 500, mode: '有禁手', - creatorName: '先手必胜', - }, + status: 'playing', + statusText: '进行中', + stakes: 500, + mode: '有禁手', + creatorName: '先手必胜' + } ], /* ---- 猜数字 ---- */ 'guess-number': [ { - id: 'guess-001', name: '桌 01', gameIcon: '🔢', gameId: 'guess-number', + id: 'guess-001', + name: '桌 01', + gameIcon: '🔢', + gameId: 'guess-number', maxPlayers: 4, players: [ { avatar: avatarUrl('逻辑怪'), nickname: '逻辑怪' }, - { avatar: avatarUrl('推理王'), nickname: '推理王' }, + { avatar: avatarUrl('推理王'), nickname: '推理王' } ], - status: 'waiting', statusText: '等待中', stakes: 200, mode: '经典模式', - creatorName: '逻辑怪', + status: 'waiting', + statusText: '等待中', + stakes: 200, + mode: '经典模式', + creatorName: '逻辑怪' }, { - id: 'guess-002', name: '桌 02', gameIcon: '🔢', gameId: 'guess-number', + id: 'guess-002', + name: '桌 02', + gameIcon: '🔢', + gameId: 'guess-number', maxPlayers: 4, players: [ { avatar: avatarUrl('秒猜'), nickname: '秒猜' }, { avatar: avatarUrl('心算'), nickname: '心算' }, - { avatar: avatarUrl('直觉'), nickname: '直觉' }, + { avatar: avatarUrl('直觉'), nickname: '直觉' } ], - status: 'waiting', statusText: '等待中', stakes: 300, mode: '限时模式', - creatorName: '秒猜', + status: 'waiting', + statusText: '等待中', + stakes: 300, + mode: '限时模式', + creatorName: '秒猜' }, { - id: 'guess-003', name: '桌 03', gameIcon: '🔢', gameId: 'guess-number', + id: 'guess-003', + name: '桌 03', + gameIcon: '🔢', + gameId: 'guess-number', maxPlayers: 4, - players: [ - { avatar: avatarUrl('数字猎人'), nickname: '数字猎人' }, - ], - status: 'waiting', statusText: '等待中', stakes: 150, mode: '经典模式', - creatorName: '数字猎人', + players: [{ avatar: avatarUrl('数字猎人'), nickname: '数字猎人' }], + status: 'waiting', + statusText: '等待中', + stakes: 150, + mode: '经典模式', + creatorName: '数字猎人' }, { - id: 'guess-004', name: '桌 04', gameIcon: '🔢', gameId: 'guess-number', + id: 'guess-004', + name: '桌 04', + gameIcon: '🔢', + gameId: 'guess-number', maxPlayers: 4, players: [ { avatar: avatarUrl('密码破解'), nickname: '密码破解' }, { avatar: avatarUrl('枚举大师'), nickname: '枚举大师' }, { avatar: avatarUrl('二分法'), nickname: '二分法' }, - { avatar: avatarUrl('穷举王'), nickname: '穷举王' }, + { avatar: avatarUrl('穷举王'), nickname: '穷举王' } ], - status: 'playing', statusText: '进行中', stakes: 500, mode: '限时模式', - creatorName: '密码破解', + status: 'playing', + statusText: '进行中', + stakes: 500, + mode: '限时模式', + creatorName: '密码破解' }, { - id: 'guess-005', name: '桌 05', gameIcon: '🔢', gameId: 'guess-number', + id: 'guess-005', + name: '桌 05', + gameIcon: '🔢', + gameId: 'guess-number', maxPlayers: 4, players: [], - status: 'waiting', statusText: '等待中', stakes: 100, mode: '经典模式', - creatorName: '神秘数字', - }, - ], + status: 'waiting', + statusText: '等待中', + stakes: 100, + mode: '经典模式', + creatorName: '神秘数字' + } + ] } /** 当前游戏的房间列表 */