From a2057da8fa8e444532e27cd0a026c33184294cc7 Mon Sep 17 00:00:00 2001
From: Azure <983547216@qq.com>
Date: Thu, 18 Jun 2026 12:20:11 +0800
Subject: [PATCH] =?UTF-8?q?feat:=20=E6=B8=B8=E6=88=8F=E5=A4=A7=E5=8E=85?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
components.d.ts | 4 +
src/components/baseLayouts/GameList.vue | 52 +--
src/components/baseLayouts/Lobby.vue | 449 +++++++++++++++++++++
src/components/baseLayouts/TableCard.vue | 489 +++++++++++++++++++++++
src/layouts/BaseLayout.vue | 23 +-
src/stores/modules/baseLayout.ts | 6 +-
6 files changed, 973 insertions(+), 50 deletions(-)
create mode 100644 src/components/baseLayouts/Lobby.vue
create mode 100644 src/components/baseLayouts/TableCard.vue
diff --git a/components.d.ts b/components.d.ts
index 6a2a88a..660abe8 100644
--- a/components.d.ts
+++ b/components.d.ts
@@ -24,8 +24,10 @@ declare module 'vue' {
ElPopover: typeof import('element-plus/es')['ElPopover']
ElTooltip: typeof import('element-plus/es')['ElTooltip']
GameList: typeof import('./src/components/baseLayouts/GameList.vue')['default']
+ Lobby: typeof import('./src/components/baseLayouts/Lobby.vue')['default']
RouterLink: typeof import('vue-router')['RouterLink']
RouterView: typeof import('vue-router')['RouterView']
+ TableCard: typeof import('./src/components/baseLayouts/TableCard.vue')['default']
UserBar: typeof import('./src/components/baseLayouts/UserBar.vue')['default']
}
}
@@ -44,7 +46,9 @@ declare global {
const ElPopover: typeof import('element-plus/es')['ElPopover']
const ElTooltip: typeof import('element-plus/es')['ElTooltip']
const GameList: typeof import('./src/components/baseLayouts/GameList.vue')['default']
+ const Lobby: typeof import('./src/components/baseLayouts/Lobby.vue')['default']
const RouterLink: typeof import('vue-router')['RouterLink']
const RouterView: typeof import('vue-router')['RouterView']
+ const TableCard: typeof import('./src/components/baseLayouts/TableCard.vue')['default']
const UserBar: typeof import('./src/components/baseLayouts/UserBar.vue')['default']
}
\ No newline at end of file
diff --git a/src/components/baseLayouts/GameList.vue b/src/components/baseLayouts/GameList.vue
index 9b3fedd..203c374 100644
--- a/src/components/baseLayouts/GameList.vue
+++ b/src/components/baseLayouts/GameList.vue
@@ -54,46 +54,32 @@ interface GameInfo {
/** 游戏列表数据 */
const games: GameInfo[] = [
{
- id: 'basketball',
- icon: '🏀',
- name: '篮球对决',
- description: '实时篮球对战游戏,与全球玩家同场竞技',
- gameplay: '使用方向键移动球员,空格键投篮。每场比赛5分钟,得分多者获胜。支持1v1、3v3模式。'
+ id: 'snake',
+ icon: '🐍',
+ name: '贪吃蛇',
+ description: '经典贪吃蛇竞技,在狭小空间内争夺生存权',
+ gameplay: '方向键控制蛇的移动,吃到食物变长。撞墙或其他蛇的身体即死亡,最后存活的玩家获胜。'
},
{
- id: 'football',
- icon: '⚽',
- name: '足球竞技',
- description: '热血足球比赛,组建你的梦之队',
- gameplay: 'WASD控制球员移动,J键传球,K键射门。11人制比赛,配合战术赢得胜利。'
+ id: 'tetris',
+ icon: '🧊',
+ name: '俄罗斯方块',
+ description: '经典下落消除,与对手一较高下',
+ gameplay: '方向键移动和旋转方块,填满横排即可消除。同时向对手发送干扰行,坚持到最后的玩家获胜。'
},
{
- id: 'racing',
- icon: '🏎️',
- name: '极速赛车',
- description: '极限竞速,漂移过弯超越对手',
- gameplay: '方向键控制方向,Shift键加速漂移。多种赛道可选,挑战最快圈速记录。'
- },
- {
- id: 'chess',
- icon: '♟️',
- name: '策略棋牌',
- description: '经典棋牌合集,运筹帷幄决胜千里',
- gameplay: '包含围棋、象棋、五子棋等多种棋类。支持人机对战和在线匹配两种模式。'
- },
- {
- id: 'shooting',
+ id: 'gomoku',
icon: '🎯',
- name: '射击战场',
- description: '团队战术射击,配合队友夺取胜利',
- gameplay: '鼠标瞄准,左键射击,R键换弹。多种武器和地图,5v5团队竞技模式。'
+ name: '五子棋',
+ description: '黑白对弈,先连成五子者胜',
+ gameplay: '鼠标点击落子,黑白双方轮流在棋盘上放置棋子。先在横、竖、斜任意方向连成五子的一方获胜。'
},
{
- id: 'arena',
- icon: '🏆',
- name: '竞技场',
- description: '综合竞技平台,参与锦标赛赢取奖励',
- gameplay: '每日举办多场锦标赛,涵盖各类型游戏。积累积分提升段位,赢取丰厚奖励。'
+ id: 'guess-number',
+ icon: '🔢',
+ name: '猜数字',
+ description: '逻辑推理对战,猜中对方的秘密数字',
+ gameplay: '每轮输入猜测的数字组合,系统会提示位置和数字正确的数量。率先猜中对手数字组合的玩家获胜。'
}
]
diff --git a/src/components/baseLayouts/Lobby.vue b/src/components/baseLayouts/Lobby.vue
new file mode 100644
index 0000000..a68f2e8
--- /dev/null
+++ b/src/components/baseLayouts/Lobby.vue
@@ -0,0 +1,449 @@
+
+ 暂无符合条件的房间 换个筛选条件,或者自己创建一个房间吧
+