feat: 统一管理端多语言、配置与票据/结算页面重构

This commit is contained in:
2026-05-20 16:27:06 +08:00
parent 37b13278ef
commit 08a11a1589
81 changed files with 2059 additions and 490 deletions

View File

@@ -60,7 +60,7 @@
},
"roleTable": {
"name": "角色",
"slug": "标识",
"slug": "角色编码",
"type": "类型",
"status": "状态",
"users": "关联用户",
@@ -85,7 +85,7 @@
"createTitle": "新增角色",
"editTitle": "编辑角色",
"description": "角色用于归拢后台功能权限,再分配给管理员账号。",
"slug": "角色标识",
"slug": "角色编码",
"name": "角色名称",
"descriptionLabel": "角色说明",
"status": "状态"
@@ -118,5 +118,56 @@
"roleDelete": {
"confirmTitle": "删除角色",
"confirmDescription": "确认删除角色 {{name}}"
},
"permissionGroups": {
"all": "全部权限",
"dashboard": "仪表盘",
"admin_users": "管理列表",
"admin_roles": "角色管理",
"players": "玩家列表",
"wallet": "钱包流水",
"draws": "期号列表",
"config": "运营配置",
"risk": "风控",
"settlement": "结算",
"jackpot": "奖池",
"reconcile": "对账",
"tickets": "玩家注单",
"reports": "报表导出",
"audit": "审计日志",
"settings": "系统设置"
},
"permissionNames": {
"prd.admin_user.manage": "管理员列表·可管理",
"prd.admin_role.manage": "角色管理·可管理",
"prd.users.manage": "用户管理·可管理",
"prd.users.view_finance": "用户管理·财务查看",
"prd.users.view_cs": "用户管理·客服单用户",
"prd.player_freeze.manage": "冻结/解冻玩家·可管理",
"prd.wallet_reconcile.manage": "钱包对账·可管理",
"prd.wallet_reconcile.view": "钱包对账·查看",
"prd.wallet_reconcile.view_cs": "钱包对账·客服单用户",
"prd.wallet_adjust.manage": "补单/冲正·可管理",
"prd.draw_result.manage": "开奖结果录入·可管理",
"prd.draw_result.view": "开奖结果·查看",
"prd.draw_reopen.manage": "开奖结果重开·可管理",
"prd.play_switch.manage": "玩法开关·可管理",
"prd.odds.manage": "赔率配置·可管理",
"prd.risk_cap.manage": "封顶配置·可管理",
"prd.risk_cap.view": "封顶配置·查看",
"prd.rebate.manage": "佣金/回水·可管理",
"prd.rebate.view": "佣金/回水·查看",
"prd.jackpot.manage": "奖池配置·可管理",
"prd.jackpot.view": "奖池配置·查看",
"prd.payout.manage": "派彩确认·可管理",
"prd.payout.review": "派彩确认·可审核",
"prd.payout.view": "派彩确认·查看",
"prd.report.all": "报表·全部",
"prd.report.risk": "报表·风控",
"prd.report.finance": "报表·财务",
"prd.report.player": "报表·单用户",
"prd.audit.all": "审计日志·全部",
"prd.audit.self": "审计日志·自身相关",
"prd.audit.finance": "审计日志·资金相关"
}
}

View File

@@ -1,10 +1,10 @@
{
"title": "审计日志",
"moduleCode": "模块编码",
"actionCode": "动作编码",
"moduleCode": "模块",
"actionCode": "动作",
"operatorType": "操作者类型",
"exactMatch": "精确匹配",
"operatorTypePlaceholder": "如 admin / system",
"exactMatch": "请输入完整名称",
"operatorTypePlaceholder": "如管理员、系统",
"operator": "操作者",
"module": "模块",
"action": "动作",

View File

@@ -46,6 +46,9 @@
"errors": {
"loadFailed": "加载失败"
},
"table": {
"id": "ID"
},
"toolbar": {
"defaultAdmin": "管理员",
"notifications": "通知",
@@ -64,9 +67,9 @@
"config": "运营配置",
"risk": "风控",
"settlement": "结算",
"jackpot": "Jackpot",
"jackpot": "奖池",
"reconcile": "对账",
"tickets": "玩家注单",
"tickets": "注单列表",
"reports": "报表导出",
"audit": "审计日志",
"settings": "系统设置"

View File

@@ -5,15 +5,14 @@
"sidebarTitle": "运营配置导航",
"groups": {
"betting": "投注与展示",
"risk_wallet": "风控与资金"
"risk": "风控"
},
"items": {
"plays": "玩法与限额",
"odds": "赔率",
"rebate": "佣金 / 回水",
"jackpot": "Jackpot 奖池",
"risk-cap": "赔付封顶",
"wallet": "钱包阈值"
"jackpot": "奖池配置",
"risk-cap": "赔付封顶"
}
},
"versionStatus": {
@@ -70,6 +69,31 @@
},
"discard": "放弃更改"
},
"system": {
"title": "开奖与结算运行参数",
"runtimeTitle": "全局运行参数",
"runtimeIntro1": "这里放不属于玩法版本、赔率版本、风控版本的全局系统参数。它们会直接影响钱包转账、任务开关或系统运行策略。",
"runtimeIntro2": "玩法、赔率、回水、封顶仍然统一放在“运营配置”里管理;系统设置只承接跨模块的运行参数,避免后台入口职责重叠。",
"description": "用于控制 RNG 开奖后的审核流转、冷静期时长和系统自动结算行为。这些参数属于全局运行策略,不跟随玩法/赔率版本发布。",
"loadFailed": "系统设置加载失败",
"saveSuccess": "系统设置已保存",
"saveFailed": "系统设置保存失败",
"fields": {
"manualReview": "开奖结果必须人工审核",
"cooldownMinutes": "冷静期时长(分钟)",
"autoSettlement": "自动执行结算"
},
"hints": {
"manualReview": "开启后RNG 开奖结果会先进入待审核,必须由后台人工发布。",
"cooldownMinutes": "结果发布后等待多久再进入 settling。填 0 表示发布后直接进入结算。",
"autoSettlement": "关闭后tick 不会自动跑结算,只能由后台手工执行。"
},
"states": {
"enabled": "已开启",
"disabled": "已关闭"
},
"discard": "放弃更改"
},
"play": {
"batchGroups": {
"d2": "2D 全局",
@@ -78,7 +102,165 @@
"big-small": "Big / Small",
"position": "位置类玩法",
"box": "包号类玩法",
"jackpot": "Jackpot"
"jackpot": "奖池"
},
"validation": {
"minMaxInvalid": "{{playCode}}:最小下注额不能大于最大下注额"
},
"publishFailed": "发布失败",
"createDraftSuccess": "已创建草稿 v{{version}}",
"createDraftFailed": "创建草稿失败",
"ruleSavedLocal": "规则文案已写入本地草稿,记得保存草稿后再发布。",
"deleteFailed": "删除失败",
"activeVersion": "当前生效版本 v{{version}}",
"readOnlyHint": "当前限额与规则为只读,请先创建草稿。",
"batchSwitchesTitle": "批量开关",
"batchSwitchesDesc": "这里只会修改当前草稿;保存并发布后,玩家下注表会按新配置刷新。",
"readOnlyDraftHint": "当前版本为只读,请先创建草稿。",
"batchEnabledCount": "{{enabledCount}}/{{total}} 已开启",
"noPlayTypes": "暂无玩法",
"actions": {
"enable": "开启",
"disable": "关闭",
"ruleText": "规则文案"
},
"table": {
"playCode": "玩法编码",
"category": "分类",
"status": "状态",
"displayName": "显示名称",
"order": "排序",
"minBet": "最小下注",
"maxBet": "最大下注",
"actions": "操作"
},
"states": {
"enabled": "开启",
"disabled": "关闭",
"readOnly": "只读"
},
"aria": {
"enablePlay": "切换 {{playCode}} 启用状态"
},
"ruleDialog": {
"title": "规则文案(中文)",
"description": "玩法 {{playCode}};修改内容只会暂存到草稿,保存并发布后才会生效。",
"fieldLabel": "中文规则文案",
"apply": "应用到草稿"
}
},
"odds": {
"tabs": {
"all": "全部"
},
"category": "分类",
"playType": "玩法类型",
"noPlayTypes": "该分类下暂无玩法。",
"sheetDescription": "选择一个版本在此查看;非草稿版本可以回滚成新的草稿。",
"activeVersionPrefix": "当前生效版本:",
"readOnlyHint": "当前版本为只读,请先创建草稿后再修改赔率。",
"loadingDetails": "正在加载详情…",
"multiplier": "倍数 x{{value}} · {{currency}}",
"missingScopeRow": "缺少 {{scope}} 对应行,请检查种子或版本数据。",
"rebateRate": "回水比例 (%)",
"rebateRateHint": "会把 rebate_rate 写入该玩法下所有奖级范围。",
"publishFailed": "发布失败",
"createDraftSuccess": "已创建草稿 v{{version}}",
"createDraftFailed": "创建草稿失败",
"rollbackSuccess": "已从 v{{fromVersion}} 克隆出新草稿 v{{version}}",
"rollbackFailed": "回滚失败",
"deleteFailed": "删除失败",
"rollbackDialog": {
"title": "确认回滚",
"description": "系统会基于版本 v{{version}} 克隆出新的草稿,不会直接覆盖当前生效版本。",
"confirm": "确认回滚"
},
"publishDialog": {
"title": "确认发布赔率版本?",
"description": "新赔率会立即影响后续新注单;已成功下注的历史注单仍按各自保存的赔率快照结算。",
"confirm": "确认发布",
"columns": {
"prizeScope": "奖级范围",
"currentActive": "当前生效",
"afterPublish": "发布后"
}
}
},
"rebate": {
"sheetDescription": "回水配置存放在赔率草稿版本中,与赔率共用同一套版本记录。",
"publishLabel": "发布",
"publishSuccess": "已发布带回水的赔率版本",
"publishFailed": "发布失败",
"createDraftSuccess": "已创建草稿 v{{version}}",
"createDraftFailed": "创建草稿失败",
"deleteFailed": "删除失败",
"editingVersion": "当前编辑版本 v{{version}} · {{status}}",
"readOnlyHint": "修改回水前请先创建草稿。",
"fields": {
"d2": "2D 回水比例 (%)",
"d3": "3D 回水比例 (%)",
"d4": "4D 回水比例 (%)"
},
"winEnjoy": {
"label": "中奖注单也应用回水",
"description": "这是预留字段,后续可和风控、结算规则对齐后再真正落库存储。"
},
"effectiveTime": "生效时间(当前赔率生效版本)"
},
"riskCap": {
"validation": {
"requireAtLeastOne": "至少需要一条封顶配置",
"defaultGreaterThanZero": "默认封顶金额必须大于 0",
"numberMustBe4Digits": "号码必须为 4 位数字:{{number}}",
"enterValidCapAmount": "请输入有效的封顶金额"
},
"publishFailed": "发布失败",
"createDraftSuccess": "已创建草稿 v{{version}}",
"createDraftFailed": "创建草稿失败",
"savedLocalDraft": "已写入本地草稿,记得保存草稿后再发布。",
"deleteFailed": "删除失败",
"effectiveAt": "生效时间:{{value}}",
"note": "备注:{{value}}",
"readOnlyHint": "当前为只读,请先创建草稿。",
"readOnly": "只读",
"defaultCap": {
"title": "默认封顶",
"description": "没有单独特殊封顶的号码,统一使用这条默认封顶模板。",
"fieldLabel": "封顶金额(最小单位)"
},
"specialCaps": {
"title": "特殊封顶"
},
"loadingDetails": "正在加载详情…",
"noDetailRows": "暂无明细行。",
"table": {
"number": "号码",
"capAmount": "封顶金额",
"used": "已占用",
"remaining": "剩余额度",
"soldOut": "售罄",
"ratio": "占比",
"actions": "操作"
},
"occupancy": {
"title": "全号码占用视图",
"description": "这里还是占位视图,筛选和导出后续还需要接入真实注单汇总;下方数据目前仍来自当前草稿列表。",
"searchLabel": "搜索号码",
"searchPlaceholder": "例如 8888",
"filterPending": "售罄 / 高风险预设筛选尚未接入",
"exportPending": "CSV 导出尚未接入"
},
"actions": {
"update": "更新",
"addSpecialCap": "+ 新增特殊封顶",
"filterPresets": "筛选预设…",
"exportCsv": "导出 CSV",
"close": "关闭"
},
"syncDialog": {
"title": "同步默认封顶",
"description": "默认封顶模板将被设为 {{value}}。这次只会修改草稿,确认后仍需保存并发布。",
"confirm": "确认"
}
}
}

View File

@@ -5,7 +5,7 @@
"todayBetTotal": "当期投注总额",
"currentDrawFinanceSummary": "当前大厅期财务汇总",
"currentPayout": "当期派彩",
"payoutSummary": "中奖派彩 + Jackpot",
"payoutSummary": "中奖派彩 + 奖池",
"currentProfit": "当期平台盈亏",
"profitFormula": "投注 派彩(近似)",
"currentDraw": "当前期号",

View File

@@ -1,6 +1,6 @@
{
"title": "奖池",
"configTitle": "Jackpot 奖池配置",
"configTitle": "奖池配置",
"loadFailed": "加载失败",
"saveSuccess": "已保存",
"saveFailed": "保存失败",
@@ -29,14 +29,24 @@
"drawNo": "期号",
"optional": "可选",
"apply": "应用",
"payoutRecords": "Jackpot 派彩记录",
"contributionRecords": "Jackpot 蓄水记录",
"subnavLabel": "Jackpot 子导航",
"payoutRecords": "奖池派彩记录",
"contributionRecords": "奖池蓄水记录",
"recordsPage": {
"title": "奖池记录",
"description": "派彩记录与奖池蓄水流水"
},
"subnavLabel": "奖池子导航",
"subnavPools": "奖池配置",
"subnavRecords": "记录",
"payoutLoadFailed": "派彩记录加载失败",
"contributionLoadFailed": "蓄水记录加载失败",
"trigger": "触发",
"triggerTypes": {
"threshold": "达到爆池阈值",
"forced_gap": "连续未爆强制触发",
"play_combo": "指定玩法组合触发",
"manual": "手动触发"
},
"payoutAmount": "派彩额",
"winnerCount": "中奖人数",
"time": "时间",

View File

@@ -3,7 +3,7 @@
"createExport": "新建导出",
"reportType": "报表类型",
"exportFormat": "导出格式",
"filterJson": "filter_json(可选)",
"filterJson": "筛选条件 JSON(可选)",
"parseFilterFailed": "筛选 JSON 无法解析",
"createSuccess": "已创建导出任务",
"createFailed": "创建失败",
@@ -18,6 +18,17 @@
"createdAt": "创建时间",
"id": "ID",
"empty": "无数据",
"formatOptions": {
"csv": "CSV",
"xlsx": "Excel"
},
"statusOptions": {
"pending": "待处理",
"queued": "排队中",
"running": "执行中",
"completed": "已完成",
"failed": "失败"
},
"reportTypes": {
"draw_profit_summary": "期号盈亏",
"daily_profit_summary": "每日盈亏汇总",

View File

@@ -18,7 +18,7 @@
"winCount": "中奖笔数",
"payoutTotal": "派彩合计",
"platformProfit": "盈亏",
"jackpot": "Jackpot",
"jackpot": "奖池",
"finishedAt": "完成时间",
"details": "明细",
"approve": "审核通过",
@@ -36,7 +36,7 @@
"ticketTotal": "注单数",
"winTotal": "中奖笔数",
"payoutAmount": "派彩合计",
"jackpotPayout": "Jackpot 划出",
"jackpotPayout": "奖池划出",
"profitFormula": "盈亏 = 总实扣 - 总派彩",
"startedAt": "开始",
"endedAt": "结束",
@@ -58,6 +58,7 @@
"matchedTier": "匹配档",
"regularPayout": "常规派彩",
"loadingDetails": "加载明细…",
"invalidBatchId": "无效的结算批次编号",
"statusOptions": {
"all": "不限",
"running": "进行中",
@@ -67,5 +68,10 @@
"paid": "已派奖",
"completed": "已完成",
"failed": "失败"
},
"reviewStatusOptions": {
"pending": "待审核",
"approved": "已通过",
"rejected": "已驳回"
}
}

View File

@@ -1,19 +1,43 @@
{
"title": "注单",
"playerTicketQuery": "玩家注单查询",
"playerId": "玩家 ID",
"invalidPlayerId": "请输入有效玩家 ID",
"drawNoOptional": "期号 draw_no可选",
"title": "注单列表",
"playerTicketQuery": "注单查询",
"playerId": "玩家 ID / 账号",
"invalidPlayerId": "请输入有效玩家 ID 或账号",
"playerIdPlaceholder": "留空显示全部,可输入玩家 ID 或账号",
"drawNoOptional": "期号(可选)",
"drawNoPlaceholder": "如 20260520-001",
"numberKeyword": "号码 / 注单号 / 订单号",
"numberKeywordPlaceholder": "支持按号码、注单号、订单号搜索",
"placedDateRange": "下单日期范围",
"query": "查询",
"resetFilters": "重置筛选",
"refreshCurrentPage": "刷新当前页",
"loadFailed": "加载失败",
"ticketNo": "注单号",
"player": "玩家",
"orderNo": "订单号",
"drawNo": "期号",
"playCode": "玩法",
"number": "号码",
"betAmount": "下注",
"actualDeduct": "实扣",
"status": "状态",
"failReason": "失败原因",
"winAmount": "中奖"
"winAmount": "中奖",
"placedAt": "下单时间",
"updatedAt": "更新时间",
"statusFilterLabel": "状态筛选",
"statusHint": "可多选,留空表示全部状态",
"statusSelectedCount": "已选 {{count}} 项",
"statusOptions": {
"all": "全部",
"pending_confirm": "待确认",
"partial_pending_confirm": "部分待确认",
"success": "已投注成功",
"failed": "投注失败",
"pending_payout": "待派奖",
"settled_win": "已中奖结算",
"settled_lose": "已未中奖结算"
},
"allTickets": "全部注单"
}