feat(player): 新增桌面端 UI 与响应式双端路由架构

- 将原移动端页面重命名为 Mobile*,新增 22 个 Desktop* 视图与 DesktopShell 布局体系
- 路由入口改为 Wrapper 视图,通过 useViewport(≥1024px)自动切换移动/桌面端
- 新增投注单面板、盘口弹层、联赛侧栏、数据表格等桌面组件及独立样式令牌
- 扩展 betSlip store、串关筛选、冠军盘、Toast/悬浮信箱等交互与三语 i18n
- 公告/消息 Hub 拆分移动与桌面实现;API 投注/钱包/充值记录支持 pageSize 分页
This commit is contained in:
2026-06-29 18:01:39 +08:00
parent 9c5e8d6f5c
commit 8a1ba0fd95
116 changed files with 22249 additions and 8693 deletions

View File

@@ -306,13 +306,14 @@ export class PlayerController {
@CurrentUser('locale') locale: string,
@Query('status') status?: string,
@Query('page') page?: string,
@Query('pageSize') pageSize?: string,
@Query('matchId') matchId?: string,
) {
const result = await this.bets.getUserBets(
userId,
status,
page ? parseInt(page, 10) : 1,
20,
pageSize ? parseInt(pageSize, 10) : 20,
matchId ? BigInt(matchId) : undefined,
);
const items = await this.matches.enrichBetsForHistory(result.items, locale);
@@ -347,9 +348,10 @@ export class PlayerController {
async transactions(
@CurrentUser('id') userId: bigint,
@Query('page') page?: string,
@Query('pageSize') pageSize?: string,
@Query('type') type?: string,
) {
const result = await this.wallet.getTransactions(userId, page ? parseInt(page) : 1, 20, type);
const result = await this.wallet.getTransactions(userId, page ? parseInt(page) : 1, pageSize ? parseInt(pageSize) : 20, type);
return jsonResponse(result);
}
@@ -424,10 +426,12 @@ export class PlayerController {
async myDepositOrders(
@CurrentUser('id') userId: bigint,
@Query('page') page?: string,
@Query('pageSize') pageSize?: string,
) {
const result = await this.deposit.getPlayerDepositOrders(
userId,
page ? parseInt(page, 10) : 1,
pageSize ? parseInt(pageSize, 10) : 20,
);
return jsonResponse(result);
}