Commit Graph

88 Commits

Author SHA1 Message Date
mars
ecfea51545 feat(theme-4): fix dark backgrounds, quick bet, inbox spacing, customer service theme 2026-07-09 18:03:57 +08:00
dcf9afacd6 fix(player): 修复主题分支网站图标不显示
favicon.svg 原外链 /logo.png 浏览器无法加载;改为内嵌 base64

index.html 增加 logo.png 作为 favicon 回退;theme-3 theme-color 对齐 #0F2027
2026-06-23 16:30:36 +08:00
00b32af5fe feat(catalog): 玩家端隐藏已结算赛事与冠军盘联赛
- listPublished/listUpcomingPublished 排除 SETTLED 及冠军盘已结算联赛

- outright.listForPlayer 仅返回 PUBLISHED

- 首页 todayMatches 过滤 SETTLED;管理端已结算冠军盘隐藏下架按钮

- 补充 matches/outright 单测
2026-06-23 15:03:01 +08:00
0c5541fc57 fix(player): login footer layout, lang switcher z-index, profile.settings i18n; dev Vite proxy reads API PORT 2026-06-23 14:41:15 +08:00
9cef985974 fix(player): captcha canvas colors follow theme CSS variables (theme-4) 2026-06-23 14:35:50 +08:00
c4d5ab228b fix(admin): 恢复 Settlement adminSelectionLabel 导入并修正 walletRemarkLabel 类型 2026-06-23 13:59:51 +08:00
a3e8958406 sync(theme-4): 从 main 同步优胜赛结算态与钱包流水展示优化
- checkout shared/api/admin 自 d3c2114
- player: outright 结算态逻辑、wallet txAmountClass、i18n 新增 key(保留海军蓝主题样式)
2026-06-23 13:53:20 +08:00
9972e4e7d1 sync(admin): 从 main 同步列表布局、滚动固定与侧栏选中
checkout main: App.vue, ManageLayout, AgentManager, Matches, LeagueMatches*, AgentDirectPlayersView
2026-06-22 16:52:30 +08:00
2cb84c2c72 sync(theme-4): 同步 main Admin 菜单权限修复与 i18n 2026-06-22 16:23:40 +08:00
cffad00652 sync(theme-4): 同步 main 最新 API/Admin 与玩家端逻辑
从 main 同步站内信手动发送、媒体库选择、列表子路由重构等 API/Admin 改动;玩家端仅合并 ADMIN_CUSTOM 富文本、消息预览与充值截图压缩逻辑,保留 theme-4 样式。
2026-06-22 14:12:40 +08:00
5fbb1fd1f6 feat(admin): 同步单赛事筛选与排序功能 (从 main 分支) 2026-06-18 17:46:39 +08:00
b0dc56db1c style: remove bottom customer service float button unread badge on theme-4 2026-06-18 17:37:01 +08:00
36cc0a095a feat: align homepage banner navigation and default banner logic with main 2026-06-18 17:31:09 +08:00
1f0f1547f7 fix(admin): 发版 chunk 自动刷新、nginx 缓存策略与审计页 i18n
lazy route 加载失败时刷新入口;index.html 不缓存;补全 audit.col.operator/ip 等拆包遗漏 key。
2026-06-18 16:59:54 +08:00
8da730762b perf(admin): 实现切页即时导航与列表 loading 壳
非阻塞 session 刷新、侧边栏 chunk 预取、KeepAlive 对齐,以及按 tab 延迟加载重型列表页。
2026-06-18 16:47:27 +08:00
ca482b1916 feat(admin): 将新增赛事按钮移至联赛操作栏,并移除列表下方的旧按钮 2026-06-18 15:41:47 +08:00
929352bc62 perf(admin): 优化管理端页面切换性能与包体积 (同步自 main)
- 阶段 A: 增加 KeepAlive 缓存高频列表页,改用 onActivated 进行后台静默刷新,优化 tab 切换与 HomeEntry 闪屏

- 阶段 B: beforeEach 守卫在 TTL 内走同步快速路径,api 请求拦截器缓存 token 避免重复解析 JWT

- 阶段 C: 引入 unplugin 插件启用 Element Plus 组件按需加载,清理 App.vue 中 960+ 行冗余暗色主题 CSS

- i18n 拆包: 将三语文案包提取为独立懒加载 chunks,主包体积从 209KB 减少至 99KB (降低 53%)
2026-06-18 15:32:16 +08:00
f8ff8d961e fix(player): 冠军盘弹窗支持赔率变更轮询与确认下注
- 打开弹窗后定时拉取最新赔率并展示变更提示
- 赔率变动时按钮切换为「接受变更并下注」,提交前自动锁定新版本
- 接口返回 ODDS_CHANGED 时刷新赔率并引导用户重新确认
2026-06-18 13:54:44 +08:00
46155018ce feat(player): 重构客服悬浮入口与设置抽屉,优化消息页交互
- 新增可拖拽悬浮客服按钮,支持贴边吸附与位置记忆
- 顶部栏改为设置抽屉入口,将语言/规则/登出等从个人页迁出
- 余额芯片集成用户头像,移除独立头像菜单
- 消息列表去掉冗余未读白点,统一消息页返回导航
- 补充 profile.settings 多语言文案

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-18 13:32:37 +08:00
fce2333322 fix(player-theme4): hide main header and marquee on messages page to make it full screen 2026-06-18 10:10:46 +08:00
5c5aa7e55a feat(theme-4): sync inbox/announcements/presence/deposit from main 2026-06-18 10:08:03 +08:00
d3ca8498fb feat(player/admin/api): 玩家端暗色极简主题重构与盘口单串关修复
## 管理端 / API(Bug 修复)
- matches.service:getAdminMatchDetail 返回 markets 时补充 allowSingle、allowParlay 字段
- MatchMarketsPanel:mapMarkets 从接口读取单关/串关开关,不再硬编码为 true
- match-form.ts:AdminMarket 类型补充 allowSingle、allowParlay

## 玩家端 — 全局主题(styles.css / index.html / site.webmanifest)
- 海军暗色 + 白色强调 token,卡片高光渐变(--gradient-card)
- 下拉/弹窗实底不透明(--dropdown-bg: #0A2540)
- 统一 sub-toolbar、status-ribbon、filter-tab 等全局样式
- theme-color 同步为 #001A33

## 玩家端 — 布局与壳层
- MainLayout:详情子页去顶栏/公告,sub-toolbar 全宽铺底
- WalletBalanceCard(新):个人页钱包卡片(反水 + 未结算)
- walletStats.ts(新):钱包统计逻辑抽取

## 玩家端 — 赛事 / 投注
- MatchDetailView:顶栏 8px 顶距、卡片全宽(--detail-gutter-x: 0)
- 盘口状态标签(暂停/已关闭)、去掉 MarketTypeTile 右侧箭头
- VsBadge(新):纯文字 VS,删除 vs.png
- isMarketLocked:仅关单关但允许串关时仍可点击,支持串关流程
- BetSlipDrawer:仅串关盘口禁用单关提交并提示 slip_parlay_only_hint
- betSlip:SlipItem 增加 allowSingle 字段
- MatchBetCard / LeagueAccordionItem:45° 待开赛角标,去掉展开左侧白边
- OutrightEventSection:去掉展开时左侧白色选中条
- FootballView:加大左右边距、筛选栏去 sticky、选中态增强
- BannerCarousel:恢复原始全宽轮播

## 玩家端 — 钱包 / 个人 / 认证 / 其他页面
- WalletView:移除顶部钱包卡片,保留账单列表
- ProfileView:保留 WalletBalanceCard
- 充值/账单/注单/登录注册等页面配色与间距统一
- 公告标签、余额面板、语言切换、区号选择等弹层改为实底

## 国际化
- zh-CN / en-US / ms-MY:新增 slip_parlay_only_hint(仅串关盘口提示)

## 资产
- 更新 banner.svg、empty-matches.svg 配色
- 删除 vs.png

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-17 11:00:25 +08:00
f34fe54489 fix(player): ????????????????
?????????????????+??+?????????????????????????????????/???????????????

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-16 16:25:27 +08:00
06d85953ba feat(player): 新增长页面一键回到顶部按钮
- 在 MainLayout 主滚动区挂载浮动回顶按钮,投注列表与赛事详情等长页通用

- 滚动超过阈值后显示,支持平滑回顶与底部导航避让

- 补充中/英/马来语文案 common.back_to_top

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-16 10:07:09 +08:00
2a8b8415e7 feat: 赛事管理操作日志与审计页体验优化
- API 为赛事/联赛/盘口/赔率/冠军盘写操作写入 CATALOG 审计日志,并新增 catalog-audit-logs 接口

- 管理端将赛事日志独立至赛事管理子页,通用操作日志排除 CATALOG 模块

- 统一赛事子页 list-chrome 布局与面包屑;修复操作日志页表格滚动与分页不可见问题

- 补充中英文/马来语文案及 UAT 验收项 SEC013/SEC014

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-16 10:00:24 +08:00
567ec9ec8a feat: 管理端 RBAC 权限体系与员工管理
新增多角色权限控制(赛事/财务/客服管理员),支持员工 CRUD、路由菜单按权限显隐、审计日志范围过滤;登录返回角色与权限列表。玩家端赛事列表增加静默刷新避免图片闪烁。Seed 补充演示员工账号与充值相关权限。附带 RBAC/审计范围单元测试及 UAT 文档更新。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-15 17:52:39 +08:00
be5b4a4921 优化 Docker 镜像打包脚本并修复管理端赛事操作列布局
- 打包脚本默认 tag 改为 latest,支持 --service 单服务构建/导出
- 新增 api/player/admin 三个独立 bat,更新文档与 manifest
- 联赛赛事面板操作列加宽、横向滚动与按钮换行,避免操作按钮被裁切

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-15 16:35:49 +08:00
afb5c5437e feat: 充值订单审计与重新申请,优化赛事展示和余额刷新
- 新增 deposit_order_audit_logs 表,记录提交/审批/拒绝/撤销/重提全链路
- 管理端充值单页增加审计历史;玩家端充值历史支持时间线与重新申请
- 已拒绝订单可原单号重提;撤销入账使用 PLAYER_DEPOSIT_REVERSAL 并加强幂等
- 结算后清除热门标记,允许归档已结算赛事,完善今日赛事时区窗口
- 足球页今日/早盘独立折叠;资料与余额在进入钱包/个人页及下注后自动刷新
- 补充投注玩法、结算返水规则文档;新增 smoke/settlement CLI 脚本

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-15 14:52:05 +08:00
wchino
73a94e6be3 部署优化 2026-06-13 22:16:14 +08:00
wchino
21dd9957f0 refactor: update match time utilities and improve local match window logic
- Introduced new functions `isInLocalTodayMatchWindow` and `isAfterLocalTodayMatchWindow` to enhance match time checks.
- Replaced the deprecated `dayKeyInTimeZone` function with `isInLocalTodayMatchWindow` in the PlayerController.
- Updated related tests and utility exports to reflect the new naming conventions.
- Improved handling of local match windows in various components for better accuracy.
2026-06-13 18:20:26 +08:00
wchino
7b33d9f9fa 重构 2026-06-13 17:38:25 +08:00
e7e938f261 feat: WC2026 赛事 seed、生产上线初始化脚本与目录归档
重构 seed 为 WC2026 72 场小组赛与 48 强优胜盘;新增 production 模式仅保留 admin 与赛事示例;提供 prod-init-db 全量重置脚本;管理端 i18n 分包与赛事归档能力。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-12 18:17:00 +08:00
8f14e85ebd fix(player): 走马灯滚动周期调整为 18 秒
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-12 14:12:43 +08:00
cb9a1e8708 feat: 短信调试日志、Tawk 客服、手机号校验放宽与 Docker 文档
API
- 短信发码/验码/创蓝全链路结构化日志(手机号脱敏)
- 新增 SMS_DEBUG_LOG_CODE,联调时可输出验证码与 sessionId(对应创蓝批次号)
- 注册成功、短信找回密码成功写入审计相关日志
- 放宽手机号归一化:移除区号白名单与 10~15 位长度限制

Player
- 公告走马灯滚动周期调整为 35 秒
- 在线客服接入 Tawk.to(tawk.html),登录用户透传昵称/头像/ID
- 三语补充 support.connecting 文案

部署与文档
- docker-compose 与 .env.docker.example 增加 SMS_DEBUG_LOG_CODE
- 新增 docs/短信调试与日志说明.md、docs/docker 镜像构建导出脚本与说明
- Docker 部署指南补充镜像构建文档链接
- .gitignore 忽略 thebet365-images.tar 与 docker-build.log

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-12 14:08:00 +08:00
ff89c31b51 feat(player): 玩家端短信找回密码
支持手机号验证码重置密码,重置成功后跳转登录页;SMS 增加 reset_password 场景与 purpose 隔离。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-12 13:12:00 +08:00
e140861a2b fix(player): 移除钱包与充值页银行卡芯片装饰
去掉 ProfileView、RechargeView 中的 bank-card-chip 元素及样式。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-12 11:31:14 +08:00
bc5b8e0950 perf(assets): Player/Admin 静态图改用 WebP,vs 保留 PNG
Player 端 banner/bg/card/h5bg 等改为 webp 并移除旧 png;Admin 登录背景改 webp;vs 对阵图仍用 png。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-12 11:16:51 +08:00
312c3c5816 feat(player): 注册账号、登录双模式与移动端性能优化
注册必填 7-32 位账号,手机号区号/本地号分存;登录默认账号模式并支持切换手机号登录;Player i18n 拆包与赛事接口优化。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-12 10:56:51 +08:00
83f0f380c5 chore: 将本地密钥 env 文件加入 gitignore
忽略 apps/api/.env 与 .env.docker,并从仓库移除已跟踪的 API 本地配置。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-12 10:30:11 +08:00
db28390be9 feat(player): 接入创蓝短信手机注册与登录页优化
新增 SMS 验证码注册、8 国手机号选择与 Redis 频控;优化登录/注册 UI 及图形验证码样式。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-12 10:25:59 +08:00
168aecfd5c feat(admin): 公共管理列表添加分页
后端 listForAdmin 支持 page/pageSize 分页查询,控制器接收分页参数并校验边界,前端 Contents 页面添加 el-pagination 组件并同步分页状态。

🤖 Generated with [Qoder][https://qoder.com]
2026-06-12 09:31:38 +08:00
5a15159ff3 fix(admin): 修复公共内容展示时段与编辑表单时区不一致
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-12 09:24:25 +08:00
283252c841 fix(admin): 生产环境隐藏并禁用自动化测试
侧栏与路由按服务端 NODE_ENV 控制;可通过 ALLOW_SMOKE_TESTS=true 临时开启。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-11 17:52:07 +08:00
e469611138 fix(settlement): 要求封盘后才能结算并优化预览流程
封盘前禁止录入比分与生成预览;待结算未确认前可解除封盘。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-11 17:49:34 +08:00
03e72ca9b2 feat: 开户备注、账单展示优化与后台代理管理增强
- 新增初始上分备注(日常上分/开户赠金/自定义)及前后台校验与展示

- 优化钱包流水类型与备注显示,区分管理员/代理/玩家上下分

- 修复登录后语言被后端覆盖的问题,登录时同步当前语言到服务端

- 后台代理/玩家表格操作栏重构,充值订单增加备注列

- 前台个人中心、充值、账单与验证码组件体验优化

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-11 17:23:58 +08:00
10485ecfaf feat: 手动充值、邀请码注册与后台管理增强
新增玩家手动充值全流程(收款方式配置、充值下单/审核、钱包上分),
支持邀请码注册、邀请历史与专属返水率;完善后台代理/玩家管理与响应式操作栏,
并补充前台注册、充值页及多语言错误码。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-11 12:20:11 +08:00
618fb49511 fix(player): 修复登录页「继续浏览」跳转到需登录页的死循环
跳过登录时仅允许进入首页、投注页或赛事详情等公开页面,避免 redirect 指向钱包/个人中心时被路由守卫拦截而停留在登录页。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-11 09:47:24 +08:00
844727c82e feat: 前台匿名浏览、登录引导、客服入口与返水增强
前台:
- 未登录可浏览首页/赛事/赔率,下注等操作弹出登录引导(去登录/继续浏览)
- 顶部新增客服入口与 iframe 弹窗
- 登录页支持暂不登录返回浏览

API:
- 首页/赛事/冠军盘接口改为公开访问,支持 X-Locale 头
- JWT 守卫支持可选认证

返水:
- 注单新增 is_cashbacked 字段,发放时自动标记
- 预览展示玩家余额,明确平台直发不从代理扣款
- 后台注单列表与玩家历史展示回水状态

其他:
- 串关禁止同场重复选号(SAME_MATCH)
- 补充结算资金流分析文档

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-11 09:36:44 +08:00
785fa4416d perf(player): 优化 Tab 切换性能并改进投注历史展示
- 主 Tab 启用 keep-alive,恢复各页滚动位置,避免切页重复加载与重复请求
- 首页数据缓存、余额/头像共用 profile 缓存,冠军盘与串关面板按需加载
- 球赛与串关列表新增「仅显示待开赛」筛选
- 重构历史注单卡片,展示注单类型、赔率与日期

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-10 17:33:06 +08:00
a8ee28fcce feat: replace watermarks with corner tags, improve parlay layout and admin polish
- MatchDetailView: replace StatusWatermark with top-right solid status tags, remove match-hero background image
- ParlayPanel: replace StatusWatermark with corner tags, improve toggle button style and layout spacing, fix overflow clipping
- Admin: wallet ledger dialog, agent manager, and player page refinements

🤖 Generated with [Qoder][https://qoder.com]
2026-06-10 16:24:01 +08:00