5fbb1fd1f6
feat(admin): 同步单赛事筛选与排序功能 (从 main 分支)
2026-06-18 17:46:39 +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
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
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
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
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
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
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
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
ef6b15f119
feat: multi-tier agent hierarchy, wallet ledger, and player UX polish
...
Add configurable agent max level and default sub-agent credit ratio, per-agent block direct player login on suspend, admin/agent wallet transaction views, and match detail my-bets section with refreshed player card styling.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-06-10 16:15:34 +08:00
641c92a5f5
feat: internationalize API error responses by locale
...
Add shared error codes with zh/en/ms messages, coded app exceptions,
and locale-aware global filter. Frontends send X-Locale so error text
matches the active UI language.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-06-10 13:36:38 +08:00
03f54ca689
feat: split admin dashboard, improve match ops, and player closed-match UX
...
Admin: add match/player overview sub-nav; refine settlement flow and league
match management UI; improve action button enabled/disabled styles; enhance
logo upload and outright odds sync.
API: expose matchPhase/bettingOpen for closed matches; league publish guards;
settlement preview with auto score save; outright team auto-sync.
Player: watermark for closed/settled states; keep match and bet details visible;
remove default login credentials.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-06-10 13:00:14 +08:00
6124313369
feat: add finance logs page, banner upload, and admin withdraw fix
...
## 财务流水
- 新增 FinanceLogs.vue(/finance-logs):额度流水 + 上下分流水双 Tab,支持时间/代理/玩家/操作人筛选与分页
- 管理员与代理共用页面,API 按角色自动切换(/admin/* 或 /agent/*)
- 侧栏「财务流水」替代原「额度流水」;代理侧栏同步新增入口
- /agent-credit-transactions 重定向至 /finance-logs?tab=credit,旧链接仍可用
- 后端:新增 GET /admin/wallet/transfer-transactions;增强额度/上下分列表筛选
- 代理端:新增 GET /agent/credit-transactions;GET /agent/wallet-transactions 支持分页与筛选
- 修复:管理员下分改为 adminWithdrawFromPlayer(),下分后重算上级代理 usedCredit
## 内容管理 Banner
- Contents.vue:各语言 Banner 支持本地上传、媒体库选择、手动填 URL(≤5MB)
- vite 开发代理 /uploads;生产 nginx 反代 /uploads/ 至 API
## 玩家端 Banner
- BannerCarousel:外链无协议时自动补 https://
- defaultBanner:API 加载中不闪默认图,仅空列表时展示默认 Banner
## 其他
- AgentManager:查看额度流水链接改为 /finance-logs
- i18n:finance.*、nav.finance_logs、content.upload.*(中/英/马来)
未纳入本次提交:.pnpm-store/、release/ 部署包、uploads/banners/ 下测试上传图片
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-06-10 10:10:11 +08:00
df20444be9
feat: refactor agent manager, media library, and player UX
...
- Split admin users page into player/tier-1/tier-2 tabs with affiliation labels and context-specific create dialogs
- Add media library with uploaded_files migration, list/delete unused files API, and admin nav route
- Enforce player username format (alphanumeric 3-32) on frontend and backend via shared package
- Improve admin dialog/panel styling; refine player parlay and match bet card kickoff display
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-06-09 17:56:28 +08:00
d5e7c8edb3
feat: add smoke tests, agent credit ledger, and player cashback page
...
Introduce admin smoke-test suite with API probes, agent credit transaction history, and player cashback records; fix SmokeTestModule DI and polish admin/player UI assets.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-06-09 16:05:48 +08:00
9c6c5e51f3
fix: switch admin to subdomain mode and fix frozen-lockfile build
...
- Remove /admin path prefix (using admin.protdskj.top subdomain instead)
- Change pnpm install to --no-frozen-lockfile for lockfile compatibility
- Simplify admin Nginx config to standard SPA serving
🤖 Generated with [Qoder][https://qoder.com ]
2026-06-09 11:24:40 +08:00
4caedde3fc
chore: optimize image assets and reduce bundle size
...
Compress PNG assets across admin and player apps, removing unused
qianbao.png. Total image size reduced from ~22MB to ~5MB.
🤖 Generated with [Qoder][https://qoder.com ]
2026-06-09 10:51:04 +08:00
b1ef7dc6f9
feat(admin): set /admin base path for reverse proxy deployment
...
Configure Vite base, Vue Router history, axios baseURL and container
Nginx to serve the admin panel under /admin/ path prefix.
🤖 Generated with [Qoder][https://qoder.com ]
2026-06-09 09:18:16 +08:00
0d761db70b
fix(admin,api,player): 返水注单去重、操作日志 i18n 与钱包紧凑金额
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-06-08 16:07:11 +08:00
22535d4c27
fix(admin,api): 上分超额提示而非静默截断,并返回中文业务错误
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-06-08 15:47:45 +08:00
414998ce36
feat(admin,api,player): 代理层级管理、额度上下分与玩家钱包详情
...
新增代理管理器与二级代理体系,完善信用额度/上下分上下文与冻结策略;代理端玩家与子代理管理增强;玩家端新增钱包详情页与交易筛选优化。
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-06-08 15:34:12 +08:00
b2216abd0c
feat(admin,api,player): 返水流程优化、账单详情与数据库重置
...
优化返水预览/确认/作废,新增玩家账变详情与后台一键重置为 seed 数据,并修复 dev 启动时 3000 端口占用。
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-06-08 11:14:22 +08:00
24fa1b275c
feat(admin,api,player): 优胜赛配置、赛事管理重构与玩家端投注体验优化
...
管理端拆分赛事/优胜赛 Tab,新增联赛优胜赔率面板(批量、排序、外侧删除);统一 list-chrome 工具栏对齐与列表页布局;Dashboard 失败重试、Users 操作下拉、小屏侧栏等体验修复。
API 扩展优胜赛与赛事目录接口,完善投注与钱包查询;玩家端重构赛事卡片、串关面板、注单/钱包页,新增注单详情、下注成功动画与下拉刷新。
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-06-08 09:55:56 +08:00
efff7c27e6
feat(admin,api,player): 结算预览分页、统计图表与返水限额
...
完善结算计算与预览 API(含后端分页),加强管理端结算/返水/权限,并优化玩家端投注单与队徽展示。
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-06-05 13:54:33 +08:00
6264b8806c
feat(admin,api,player): smart score solver, disable settlement UI, misc fixes
2026-06-04 17:56:32 +08:00
9fcee31a9a
feat(admin,api,player): settlement stats, team crests, MS fields and list bet summary
2026-06-04 17:30:48 +08:00
cc737e2924
feat(admin,api,player): 赛事分组管理、盘口独立页与多语言展示优化
...
- 管理端按联赛展示单场,新增赛事/单场流程与列表展开状态保持
- 盘口赔率迁至独立页面,保存按钮仅在有修改时高亮
- API 新增联赛列表与子场查询,按 locale 返回队名并修复编译
- 波胆其它选项与促销标签等 i18n 补齐,文案更易懂
2026-06-04 16:25:03 +08:00
a8e4ead618
feat(admin,player,api): 玩家账号密码管理与代理上下分
...
新增玩家头像、可查密码与全局改密/改账号开关;玩家资料页合并账号密码展示;代理直属玩家列表支持自定义上下分。
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-06-04 11:36:53 +08:00
f76728dc3e
feat(admin,player,api): 公共管理与优胜冠军国旗、玩家端内容对接
...
新增公共内容 CRUD 与批量操作;公告滚动合并管理;优胜冠军内置国家选择与单行保存;玩家端统一 usePlayerHome 对接轮播与跑马灯。
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-06-04 10:25:42 +08:00
27580b2479
feat(admin,player,api): 优胜冠军通用管理与界面精简
...
管理端新增冠军盘列表/编辑、展开懒加载与 ECharts 修复;各列表页去掉重复标题。玩家端支持多赛事冠军盘、分批加载与语言切换刷新。API 扩展 outright CRUD 与列表性能优化。
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-06-04 09:17:01 +08:00
9b63d67e7c
feat(player,admin): 钱包卡片与登录页 UI 优化
...
- 玩家端我的页:钱包背景图、银行卡式排版、自定义语言下拉与投注规则折叠
- 管理端登录:左右布局、金边半透明卡片、自定义语言选择
- 修复 API promotePlayerToTier1Agent 返回类型导致编译失败
2026-06-03 16:59:53 +08:00
95abbcb470
feat: 世界杯48强夺冠盘、管理端调赔与项目文档
...
- 固定48强基准数据、同步种子与后台世界杯夺冠页
- 补全 user_preferences 迁移文件;新增启动指南与默认数据说明
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-06-03 16:19:36 +08:00
3b739982a1
feat(admin): 从已有玩家升级代理、修复 i18n 与过期 .js 冲突
...
- 新建一级代理改为选择已有玩家;新建用户可选一级代理
- 操作日志/注单等扁平 key 翻译;清理 src 内误生成 .js,Vite 优先解析 .ts
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-06-03 15:42:15 +08:00
cbfa18d1d3
feat(i18n): 管理端与玩家端三语支持(中/英/马来语)
...
- 管理后台 adminT 文案库、结算与代理端页面、表单校验
- 玩家端 vue-i18n 补全首页/公告/串关与 ms 文案
- Element Plus ms 语言包与共享 locale 工具
2026-06-03 15:05:36 +08:00
80adc0e928
feat(admin): 管理端列表分页、控制台图表与赛事导入
...
- 玩家/代理/赛事/注单/审计列表分页,默认每页 10 条,无页面滚动条布局
- ECharts 控制台概览、注单管理中文化与列宽优化
- zhibo 赛事字段迁移与导入,玩家编辑可改所属代理
- 管理端 API 分页与 dashboard 统计接口
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-06-03 13:49:31 +08:00
31737286b9
refactor(admin): 合并管理后台并移除 apps/agent
...
- 平台与代理共用 apps/admin,统一登录 manage/auth/login
- 按 userType 展示菜单,修复 token 循环跳转
- 删除独立 apps/agent 前端工程
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-06-02 17:50:58 +08:00
b5dca1bfb1
feat(player): 完善 H5 投注端与 API 演示数据
...
- 球赛/串关/优胜冠军、赛事详情、历史投注与个人资料编辑
- 固定顶栏、公告与底栏,仅内容区滚动
- 底部导航与站点 favicon 使用 logo,登录页精简
- API 种子、冠军盘与历史注单增强
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-06-02 17:18:11 +08:00