feat: 添加货币管理功能,更新国际化支持,移除报表相关代码

This commit is contained in:
2026-05-21 16:24:56 +08:00
parent 6ecbaf5fb4
commit 055c613a6d
87 changed files with 1615 additions and 1319 deletions

View File

@@ -12,7 +12,6 @@ import enConfig from "@/i18n/locales/en/config.json";
import enDashboard from "@/i18n/locales/en/dashboard.json";
import enDraws from "@/i18n/locales/en/draws.json";
import enJackpot from "@/i18n/locales/en/jackpot.json";
import enReports from "@/i18n/locales/en/reports.json";
import enRisk from "@/i18n/locales/en/risk.json";
import enSettlement from "@/i18n/locales/en/settlement.json";
import enPlayers from "@/i18n/locales/en/players.json";
@@ -27,7 +26,6 @@ import neConfig from "@/i18n/locales/ne/config.json";
import neDashboard from "@/i18n/locales/ne/dashboard.json";
import neDraws from "@/i18n/locales/ne/draws.json";
import neJackpot from "@/i18n/locales/ne/jackpot.json";
import neReports from "@/i18n/locales/ne/reports.json";
import neRisk from "@/i18n/locales/ne/risk.json";
import neSettlement from "@/i18n/locales/ne/settlement.json";
import nePlayers from "@/i18n/locales/ne/players.json";
@@ -42,7 +40,6 @@ import zhConfig from "@/i18n/locales/zh/config.json";
import zhDashboard from "@/i18n/locales/zh/dashboard.json";
import zhDraws from "@/i18n/locales/zh/draws.json";
import zhJackpot from "@/i18n/locales/zh/jackpot.json";
import zhReports from "@/i18n/locales/zh/reports.json";
import zhRisk from "@/i18n/locales/zh/risk.json";
import zhSettlement from "@/i18n/locales/zh/settlement.json";
import zhPlayers from "@/i18n/locales/zh/players.json";
@@ -54,7 +51,7 @@ export const ADMIN_SUPPORTED_LANGUAGES = ["en", "ne", "zh"] as const;
export type AdminLanguage = (typeof ADMIN_SUPPORTED_LANGUAGES)[number];
export const ADMIN_DEFAULT_LANGUAGE: AdminLanguage = "zh";
const namespaces = ["common", "auth", "dashboard", "reports", "audit", "draws", "settlement", "risk", "jackpot", "players", "tickets", "reconcile", "wallet", "adminUsers", "config"] as const;
const namespaces = ["common", "auth", "dashboard", "audit", "draws", "settlement", "risk", "jackpot", "players", "tickets", "reconcile", "wallet", "adminUsers", "config"] as const;
const resources = {
en: {
@@ -68,7 +65,6 @@ const resources = {
players: enPlayers,
tickets: enTickets,
reconcile: enReconcile,
reports: enReports,
risk: enRisk,
audit: enAudit,
settlement: enSettlement,
@@ -85,7 +81,6 @@ const resources = {
players: nePlayers,
tickets: neTickets,
reconcile: neReconcile,
reports: neReports,
risk: neRisk,
audit: neAudit,
settlement: neSettlement,
@@ -102,7 +97,6 @@ const resources = {
players: zhPlayers,
tickets: zhTickets,
reconcile: zhReconcile,
reports: zhReports,
risk: zhRisk,
audit: zhAudit,
settlement: zhSettlement,

View File

@@ -133,7 +133,6 @@
"jackpot": "Jackpot",
"reconcile": "Reconcile",
"tickets": "Tickets",
"reports": "Reports",
"audit": "Audit Logs",
"settings": "Settings"
},
@@ -141,6 +140,7 @@
"prd.admin_user.manage": "Admin Users · Manage",
"prd.admin_role.manage": "Role Management · Manage",
"prd.users.manage": "Players · Manage",
"prd.currency.manage": "Currency Management · Manage",
"prd.users.view_finance": "Players · View Finance",
"prd.users.view_cs": "Players · View Customer Service Cases",
"prd.player_freeze.manage": "Freeze/Unfreeze Player · Manage",
@@ -162,10 +162,6 @@
"prd.payout.manage": "Payout Confirmation · Manage",
"prd.payout.review": "Payout Confirmation · Review",
"prd.payout.view": "Payout Confirmation · View",
"prd.report.all": "Reports · All",
"prd.report.risk": "Reports · Risk",
"prd.report.finance": "Reports · Finance",
"prd.report.player": "Reports · Single Player",
"prd.audit.all": "Audit Logs · All",
"prd.audit.self": "Audit Logs · Related to Self",
"prd.audit.finance": "Audit Logs · Finance Related"

View File

@@ -62,6 +62,7 @@
"admin_users": "Admin Users",
"admin_roles": "Role Management",
"players": "Players",
"currencies": "Currencies",
"wallet": "Wallet",
"draws": "Draws",
"config": "Configuration",
@@ -70,7 +71,6 @@
"jackpot": "Jackpot",
"reconcile": "Reconcile",
"tickets": "Ticket list",
"reports": "Reports",
"audit": "Audit Logs",
"settings": "Settings"
},

View File

@@ -94,6 +94,54 @@
},
"discard": "Discard changes"
},
"currencies": {
"title": "Currency management",
"description": "Maintain currency master data for admin operations and control whether a currency is enabled or allowed for betting.",
"loading": "Loading currencies…",
"empty": "No currencies yet.",
"loadFailed": "Failed to load currencies",
"createSuccess": "Currency created",
"createFailed": "Failed to create currency",
"updateSuccess": "Currency updated",
"updateFailed": "Failed to update currency",
"deleteSuccess": "Currency {{code}} deleted",
"deleteFailed": "Failed to delete currency",
"actions": {
"create": "Add currency",
"edit": "Edit",
"delete": "Delete",
"openStandalone": "Open dedicated page",
"backToSettings": "Back to settings"
},
"table": {
"code": "Code",
"name": "Name",
"decimals": "Decimals",
"enabled": "Enabled",
"bettable": "Bettable",
"actions": "Actions"
},
"dialog": {
"createTitle": "Add currency",
"editTitle": "Edit currency",
"description": "Currency code is immutable after creation. Disabling a currency also turns off bettable status."
},
"deleteDialog": {
"title": "Delete currency?",
"description": "Delete currency {{code}}? The system blocks deletion when it is still referenced by defaults, wallets, tickets, odds, or jackpot data."
},
"form": {
"code": "Currency code",
"name": "Currency name",
"decimals": "Decimal places",
"enabled": "Enabled status",
"enabledHint": "Disabled currencies should not be used for new business.",
"bettable": "Allow betting",
"bettableHint": "Only enabled currencies can be marked as bettable.",
"required": "Please fill in the required fields",
"decimalInvalid": "Enter a valid decimal place value"
}
},
"play": {
"batchGroups": {
"d2": "2D Global",

View File

@@ -46,7 +46,6 @@
"results": "Results",
"tickets": "Ticket management",
"walletTransactions": "Wallet transactions",
"reports": "Reports",
"auditLogs": "Audit logs"
},
"warnings": {

View File

@@ -1,36 +1,46 @@
{
"title": "Reconcile",
"createTitle": "Create reconcile job",
"createDesc": "Manually check abnormal transfers by period or selected references. Scheduled reconciliation still runs automatically.",
"createDesc": "Manually check abnormal transfers by date range and optional player. Scheduled reconciliation still runs automatically.",
"reconcileType": "Reconcile type",
"walletTransfer": "Wallet transfer (main site ⇄ lottery)",
"startTime": "Start time",
"endTime": "End time",
"scope": "Targets (optional)",
"scopePlaceholder": "One per line: player ID, transfer number, or main-site transaction number.\nLeave empty to check abnormal transfers in the selected period.",
"reconcileTypeFixed": "Wallet transfer (main site ⇄ lottery)",
"reconcileTypeHint": "Only wallet transfer is currently supported.",
"dateRange": "Reconcile date range",
"createTask": "Create reconcile job",
"submitting": "Submitting…",
"loadFailed": "Failed to load",
"loadItemsFailed": "Failed to load details",
"periodRequired": "Enter both reconcile start and end time",
"periodInvalid": "Invalid time range",
"periodRequired": "Enter both reconcile start and end dates",
"periodInvalid": "Invalid date range",
"periodOrderInvalid": "End time must be later than or equal to start time",
"createSuccess": "Reconcile job created",
"createFailed": "Failed to create job",
"noCreatePermission": "Current account cannot create reconcile jobs.",
"jobsTitle": "Reconcile jobs",
"jobsDesc": "Click a row to view paginated item details.",
"jobsDesc": "Use the action on the right to open paginated item details.",
"refresh": "Refresh",
"jobNo": "Job no.",
"type": "Type",
"status": "Status",
"period": "Period",
"createdAt": "Created at",
"operate": "Action",
"view": "View",
"detailsTitle": "Job details",
"sideARef": "Lottery ref",
"sideBRef": "Main site ref",
"differenceAmount": "Difference (cent)",
"noDetails": "No details",
"playerSearch": "Player (optional)",
"playerSearchPlaceholder": "Search by player ID / username / nickname",
"playerSearchHint": "After selection, reconciliation is limited to this player in the chosen date range.",
"playerSearchEmpty": "Enter a keyword to search players.",
"playerNoResults": "No matching players",
"playerChoose": "Choose",
"playerSelected": "Selected player",
"playerSelectedShort": "Selected",
"playerClear": "Clear",
"loadingPlayers": "Searching players…",
"statusCompleted": "Completed",
"statusRunning": "Running",
"statusFailed": "Failed",

View File

@@ -1,45 +0,0 @@
{
"title": "Reports",
"createExport": "Create export",
"reportType": "Report type",
"exportFormat": "Export format",
"filterJson": "filter_json (optional)",
"parseFilterFailed": "Failed to parse filter JSON",
"createSuccess": "Export job created",
"createFailed": "Failed to create job",
"downloadFailed": "Download failed",
"taskList": "Job list",
"jobId": "Job no.",
"type": "Type",
"format": "Format",
"status": "Status",
"output": "Output",
"download": "Download",
"createdAt": "Created at",
"id": "ID",
"empty": "No data",
"formatOptions": {
"csv": "CSV",
"xlsx": "Excel"
},
"statusOptions": {
"pending": "Pending",
"queued": "Queued",
"running": "Running",
"completed": "Completed",
"failed": "Failed"
},
"reportTypes": {
"draw_profit_summary": "Draw profit summary",
"daily_profit_summary": "Daily profit summary",
"player_win_loss": "Player win/loss report",
"wallet_transfer_report": "Wallet transfer report",
"hot_number_risk_report": "Hot number risk report",
"play_dimension_report": "Play dimension report",
"sold_out_number_report": "Sold-out number report",
"rebate_commission_report": "Rebate and commission report",
"audit_operation_report": "Audit operation report",
"wallet_txns_daily": "Wallet transactions daily",
"transfer_orders_daily": "Transfer orders daily"
}
}

View File

@@ -133,7 +133,6 @@
"jackpot": "ज्याकपोट",
"reconcile": "मिलान",
"tickets": "टिकटहरू",
"reports": "रिपोर्टहरू",
"audit": "अडिट लग",
"settings": "सेटिङ"
},
@@ -141,6 +140,7 @@
"prd.admin_user.manage": "प्रशासक सूची · व्यवस्थापन",
"prd.admin_role.manage": "भूमिका व्यवस्थापन · व्यवस्थापन",
"prd.users.manage": "खेलाडी व्यवस्थापन · व्यवस्थापन",
"prd.currency.manage": "मुद्रा व्यवस्थापन · व्यवस्थापन",
"prd.users.view_finance": "खेलाडी व्यवस्थापन · वित्त हेर्नुहोस्",
"prd.users.view_cs": "खेलाडी व्यवस्थापन · ग्राहक सेवा एकल प्रयोगकर्ता",
"prd.player_freeze.manage": "खेलाडी रोक्ने/फुकाउने · व्यवस्थापन",
@@ -162,10 +162,6 @@
"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

@@ -62,6 +62,7 @@
"admin_users": "प्रशासक सूची",
"admin_roles": "भूमिका व्यवस्थापन",
"players": "खेलाडी सूची",
"currencies": "मुद्रा व्यवस्थापन",
"wallet": "वालेट",
"draws": "ड्रअहरू",
"config": "कन्फिगरेसन",
@@ -70,7 +71,6 @@
"jackpot": "Jackpot",
"reconcile": "मिलान",
"tickets": "टिकट सूची",
"reports": "रिपोर्टहरू",
"audit": "अडिट लग",
"settings": "सेटिङ"
},

View File

@@ -94,6 +94,54 @@
},
"discard": "परिवर्तन त्याग्नुहोस्"
},
"currencies": {
"title": "मुद्रा व्यवस्थापन",
"description": "एडमिन सञ्चालनका लागि मुद्रा master data राख्नुहोस् र मुद्रा सक्रिय वा बेटिङका लागि उपलब्ध छ कि छैन नियन्त्रण गर्नुहोस्।",
"loading": "मुद्रा सूची लोड हुँदैछ…",
"empty": "अहिलेसम्म मुद्रा छैन।",
"loadFailed": "मुद्रा सूची लोड गर्न असफल",
"createSuccess": "मुद्रा सिर्जना भयो",
"createFailed": "मुद्रा सिर्जना असफल भयो",
"updateSuccess": "मुद्रा अद्यावधिक भयो",
"updateFailed": "मुद्रा अद्यावधिक गर्न असफल",
"deleteSuccess": "मुद्रा {{code}} मेटाइयो",
"deleteFailed": "मुद्रा मेटाउन असफल",
"actions": {
"create": "मुद्रा थप्नुहोस्",
"edit": "सम्पादन",
"delete": "मेटाउनुहोस्",
"openStandalone": "अलग पृष्ठ खोल्नुहोस्",
"backToSettings": "सेटिङमा फर्कनुहोस्"
},
"table": {
"code": "कोड",
"name": "नाम",
"decimals": "दशमलव स्थान",
"enabled": "सक्रिय",
"bettable": "बेटिङयोग्य",
"actions": "कार्य"
},
"dialog": {
"createTitle": "मुद्रा थप्नुहोस्",
"editTitle": "मुद्रा सम्पादन गर्नुहोस्",
"description": "मुद्रा कोड सिर्जना भएपछि परिवर्तन गर्न मिल्दैन। मुद्रा निष्क्रिय गर्दा bettable पनि स्वतः बन्द हुन्छ।"
},
"deleteDialog": {
"title": "मुद्रा मेटाउने पुष्टि",
"description": "मुद्रा {{code}} मेटाउने? यदि यो मुद्रा default, wallet, ticket, odds वा jackpot डाटामा प्रयोग भएको छ भने प्रणालीले मेटाउन दिँदैन।"
},
"form": {
"code": "मुद्रा कोड",
"name": "मुद्रा नाम",
"decimals": "दशमलव स्थान",
"enabled": "सक्रिय स्थिति",
"enabledHint": "निष्क्रिय मुद्रा नयाँ व्यवसायमा प्रयोग गर्नु हुँदैन।",
"bettable": "बेटिङ अनुमति",
"bettableHint": "सक्रिय मुद्रा मात्र bettable बनाउन सकिन्छ।",
"required": "कृपया आवश्यक फिल्ड भर्नुहोस्",
"decimalInvalid": "मान्य दशमलव स्थान प्रविष्ट गर्नुहोस्"
}
},
"play": {
"batchGroups": {
"d2": "2D ग्लोबल",

View File

@@ -46,7 +46,6 @@
"results": "परिणाम",
"tickets": "टिकट व्यवस्थापन",
"walletTransactions": "वालेट कारोबार",
"reports": "रिपोर्ट",
"auditLogs": "अडिट लग"
},
"warnings": {

View File

@@ -1,36 +1,46 @@
{
"title": "मिलान",
"createTitle": "म्यानुअल मिलान कार्य",
"createDesc": "समय अवधि वा छानिएका सन्दर्भहरूबाट असामान्य ट्रान्सफर म्यानुअल रूपमा जाँच गर्नुहोस्। scheduled reconciliation स्वतः चलिरहन्छ।",
"createDesc": "मिति दायरा र वैकल्पिक खेलाडी चयनबाट असामान्य ट्रान्सफर म्यानुअल रूपमा जाँच गर्नुहोस्। scheduled reconciliation स्वतः चलिरहन्छ।",
"reconcileType": "मिलान प्रकार",
"walletTransfer": "वालेट ट्रान्सफर (मुख्य साइट ⇄ लटरी)",
"startTime": "सुरु समय",
"endTime": "अन्त्य समय",
"scope": "लक्षित सन्दर्भ (वैकल्पिक)",
"scopePlaceholder": "प्रति लाइन एउटा: player ID, transfer no, वा main-site transaction no.\nखाली छोडेमा चयन गरिएको अवधिका असामान्य ट्रान्सफर जाँच हुन्छ।",
"reconcileTypeFixed": "वालेट ट्रान्सफर (मुख्य साइट ⇄ लटरी)",
"reconcileTypeHint": "हाल वालेट ट्रान्सफर मात्र समर्थित छ।",
"dateRange": "मिलान मिति दायरा",
"createTask": "मिलान कार्य सिर्जना",
"submitting": "पेश हुँदैछ…",
"loadFailed": "लोड असफल भयो",
"loadItemsFailed": "विवरण लोड असफल भयो",
"periodRequired": "सुरु र अन्त्य समय दुवै लेख्नुहोस्",
"periodInvalid": "अवैध समय दायरा",
"periodRequired": "सुरु र अन्त्य मिति दुवै लेख्नुहोस्",
"periodInvalid": "अवैध मिति दायरा",
"periodOrderInvalid": "अन्त्य समय सुरु समयभन्दा पछाडि वा बराबर हुनुपर्छ",
"createSuccess": "मिलान कार्य सिर्जना भयो",
"createFailed": "कार्य सिर्जना असफल भयो",
"noCreatePermission": "हालको खातासँग मिलान कार्य सिर्जना गर्ने अनुमति छैन।",
"jobsTitle": "मिलान कार्यहरू",
"jobsDesc": "विवरण हेर्न row क्लिक गर्नुहोस्।",
"jobsDesc": "दायाँपट्टिको कार्यबाट विवरण खोल्नुहोस्।",
"refresh": "रिफ्रेस",
"jobNo": "कार्य नं.",
"type": "प्रकार",
"status": "स्थिति",
"period": "अवधि",
"createdAt": "सिर्जना समय",
"operate": "कार्य",
"view": "हेर्नुहोस्",
"detailsTitle": "कार्य विवरण",
"sideARef": "लटरी साइड सन्दर्भ",
"sideBRef": "मुख्य साइट सन्दर्भ",
"differenceAmount": "अन्तर (cent)",
"noDetails": "विवरण छैन",
"playerSearch": "खेलाडी (वैकल्पिक)",
"playerSearchPlaceholder": "player ID / username / nickname बाट खोज्नुहोस्",
"playerSearchHint": "चयनपछि छनोट गरिएको मिति दायरामा सो खेलाडी मात्र मिलान हुन्छ।",
"playerSearchEmpty": "खेलाडी खोज्न कुञ्जी शब्द लेख्नुहोस्।",
"playerNoResults": "मिल्ने खेलाडी भेटिएन",
"playerChoose": "छान्नुहोस्",
"playerSelected": "छानिएको खेलाडी",
"playerSelectedShort": "छानियो",
"playerClear": "खाली गर्नुहोस्",
"loadingPlayers": "खेलाडी खोजिँदै…",
"statusCompleted": "सम्पन्न",
"statusRunning": "चलिरहेको",
"statusFailed": "असफल",

View File

@@ -1,45 +0,0 @@
{
"title": "रिपोर्ट",
"createExport": "निर्यात सिर्जना",
"reportType": "रिपोर्ट प्रकार",
"exportFormat": "निर्यात ढाँचा",
"filterJson": "फिल्टर JSON (वैकल्पिक)",
"parseFilterFailed": "फिल्टर JSON पार्स गर्न सकिएन",
"createSuccess": "निर्यात कार्य सिर्जना भयो",
"createFailed": "कार्य सिर्जना असफल भयो",
"downloadFailed": "डाउनलोड असफल भयो",
"taskList": "कार्य सूची",
"jobId": "कार्य नं.",
"type": "प्रकार",
"format": "ढाँचा",
"status": "स्थिति",
"output": "आउटपुट",
"download": "डाउनलोड",
"createdAt": "सिर्जना समय",
"id": "ID",
"empty": "डाटा छैन",
"formatOptions": {
"csv": "CSV",
"xlsx": "Excel"
},
"statusOptions": {
"pending": "पेन्डिङ",
"queued": "पर्खाइमा",
"running": "चल्दैछ",
"completed": "सम्पन्न",
"failed": "असफल"
},
"reportTypes": {
"draw_profit_summary": "ड्रअ नाफा सारांश",
"daily_profit_summary": "दैनिक नाफा सारांश",
"player_win_loss": "खेलाडी जित/हार रिपोर्ट",
"wallet_transfer_report": "वालेट ट्रान्सफर रिपोर्ट",
"hot_number_risk_report": "हट नम्बर जोखिम रिपोर्ट",
"play_dimension_report": "प्ले डाइमेन्सन रिपोर्ट",
"sold_out_number_report": "बिक्री समाप्त नम्बर रिपोर्ट",
"rebate_commission_report": "रिबेट र कमिसन रिपोर्ट",
"audit_operation_report": "अडिट अपरेशन रिपोर्ट",
"wallet_txns_daily": "वालेट कारोबार दैनिक",
"transfer_orders_daily": "ट्रान्सफर अर्डर दैनिक"
}
}

View File

@@ -133,7 +133,6 @@
"jackpot": "奖池",
"reconcile": "对账",
"tickets": "玩家注单",
"reports": "报表导出",
"audit": "审计日志",
"settings": "系统设置"
},
@@ -141,6 +140,7 @@
"prd.admin_user.manage": "管理员列表·可管理",
"prd.admin_role.manage": "角色管理·可管理",
"prd.users.manage": "用户管理·可管理",
"prd.currency.manage": "币种管理·可管理",
"prd.users.view_finance": "用户管理·财务查看",
"prd.users.view_cs": "用户管理·客服单用户",
"prd.player_freeze.manage": "冻结/解冻玩家·可管理",
@@ -162,10 +162,6 @@
"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

@@ -62,6 +62,7 @@
"admin_users": "管理列表",
"admin_roles": "角色管理",
"players": "玩家列表",
"currencies": "币种管理",
"wallet": "钱包流水",
"draws": "期号列表",
"config": "运营配置",
@@ -70,7 +71,6 @@
"jackpot": "奖池",
"reconcile": "对账",
"tickets": "注单列表",
"reports": "报表导出",
"audit": "审计日志",
"settings": "系统设置"
},

View File

@@ -94,6 +94,54 @@
},
"discard": "放弃更改"
},
"currencies": {
"title": "币种管理",
"description": "维护后台可用的币种主数据,控制是否启用以及是否允许用于下注。",
"loading": "正在加载币种列表…",
"empty": "暂无币种。",
"loadFailed": "币种列表加载失败",
"createSuccess": "币种已创建",
"createFailed": "币种创建失败",
"updateSuccess": "币种已更新",
"updateFailed": "币种更新失败",
"deleteSuccess": "币种 {{code}} 已删除",
"deleteFailed": "币种删除失败",
"actions": {
"create": "新增币种",
"edit": "编辑",
"delete": "删除",
"openStandalone": "进入独立页面",
"backToSettings": "返回系统设置"
},
"table": {
"code": "代码",
"name": "名称",
"decimals": "小数位",
"enabled": "启用",
"bettable": "可下注",
"actions": "操作"
},
"dialog": {
"createTitle": "新增币种",
"editTitle": "编辑币种",
"description": "币种代码创建后不可修改;禁用币种时会自动关闭“可下注”。"
},
"deleteDialog": {
"title": "确认删除币种",
"description": "确定删除币种 {{code}} 吗?如果该币种已被默认配置、钱包、注单、赔率或奖池引用,系统会阻止删除。"
},
"form": {
"code": "币种代码",
"name": "币种名称",
"decimals": "小数位",
"enabled": "启用状态",
"enabledHint": "关闭后,新业务不应继续使用该币种。",
"bettable": "允许下注",
"bettableHint": "仅启用中的币种才可设置为可下注。",
"required": "请先填写必填字段",
"decimalInvalid": "请输入合法的小数位"
}
},
"play": {
"batchGroups": {
"d2": "2D 全局",

View File

@@ -46,7 +46,6 @@
"results": "开奖结果",
"tickets": "注单管理",
"walletTransactions": "钱包流水",
"reports": "报表中心",
"auditLogs": "审计日志"
},
"warnings": {

View File

@@ -1,36 +1,46 @@
{
"title": "对账",
"createTitle": "人工发起对账",
"createDesc": "用于按时间段或指定单据人工核对异常转账。系统定时对账仍会自动执行。",
"createDesc": "用于按日期范围并可选指定玩家,人工核对异常转账。系统定时对账仍会自动执行。",
"reconcileType": "对账类型",
"walletTransfer": "钱包划转(主站 ⇄ 彩票)",
"startTime": "对账开始时间",
"endTime": "对账结束时间",
"scope": "指定对象(可选)",
"scopePlaceholder": "每行一条:玩家 ID、划转单号或主站流水号。\n留空则核对所选时间段内的异常转账。",
"reconcileTypeFixed": "钱包划转(主站 ⇄ 彩票)",
"reconcileTypeHint": "当前仅支持钱包划转。",
"dateRange": "对账日期范围",
"createTask": "创建对账任务",
"submitting": "提交中…",
"loadFailed": "加载失败",
"loadItemsFailed": "加载明细失败",
"periodRequired": "请填写对账时间范围(开始与结束)",
"periodInvalid": "时间无效,请检查所选日期与时间",
"periodRequired": "请填写对账日期范围(开始与结束)",
"periodInvalid": "日期无效,请检查所选日期",
"periodOrderInvalid": "结束时间需晚于或等于开始时间",
"createSuccess": "已创建对账任务",
"createFailed": "创建失败",
"noCreatePermission": "当前账号无新建对账任务权限。",
"jobsTitle": "对账任务",
"jobsDesc": "点击一行查看差异明细与分页。",
"jobsDesc": "在右侧操作中查看差异明细与分页。",
"refresh": "刷新",
"jobNo": "任务号",
"type": "类型",
"status": "状态",
"period": "对账周期",
"createdAt": "创建时间",
"operate": "操作",
"view": "查看",
"detailsTitle": "任务明细",
"sideARef": "彩票侧引用",
"sideBRef": "主站侧引用",
"differenceAmount": "差额(分)",
"noDetails": "无明细",
"playerSearch": "指定玩家(可选)",
"playerSearchPlaceholder": "输入玩家 ID / 用户名 / 昵称搜索",
"playerSearchHint": "选择后只按该玩家核对所选日期范围内的异常转账。",
"playerSearchEmpty": "请输入关键词后选择玩家。",
"playerNoResults": "暂无匹配玩家",
"playerChoose": "选择",
"playerSelected": "已选玩家",
"playerSelectedShort": "已选",
"playerClear": "清除",
"loadingPlayers": "玩家搜索中…",
"statusCompleted": "已完成",
"statusRunning": "执行中",
"statusFailed": "失败",

View File

@@ -1,45 +0,0 @@
{
"title": "报表",
"createExport": "新建导出",
"reportType": "报表类型",
"exportFormat": "导出格式",
"filterJson": "筛选条件 JSON可选",
"parseFilterFailed": "筛选 JSON 无法解析",
"createSuccess": "已创建导出任务",
"createFailed": "创建失败",
"downloadFailed": "下载失败",
"taskList": "任务列表",
"jobId": "任务号",
"type": "类型",
"format": "格式",
"status": "状态",
"output": "输出",
"download": "下载",
"createdAt": "创建时间",
"id": "ID",
"empty": "无数据",
"formatOptions": {
"csv": "CSV",
"xlsx": "Excel"
},
"statusOptions": {
"pending": "待处理",
"queued": "排队中",
"running": "执行中",
"completed": "已完成",
"failed": "失败"
},
"reportTypes": {
"draw_profit_summary": "期号盈亏",
"daily_profit_summary": "每日盈亏汇总",
"player_win_loss": "玩家输赢报表",
"wallet_transfer_report": "玩家转入转出报表",
"hot_number_risk_report": "热门号码风险报表",
"play_dimension_report": "玩法维度报表",
"sold_out_number_report": "售罄号码报表",
"rebate_commission_report": "佣金回水报表",
"audit_operation_report": "后台操作审计报表",
"wallet_txns_daily": "钱包流水日报",
"transfer_orders_daily": "转账单日报"
}
}