feat(api, i18n): add agent_node_id to various admin queries and enhance multi-language support
Introduced the agent_node_id field in AdminDrawListQuery, AdminPlayerListQuery, AdminSettlementBatchListQuery, TicketItemsListQuery, and TransferOrderListQuery to improve filtering capabilities. Updated the admin-breadcrumb and admin-sidebar components to include new translations for agent-related terms in English, Nepali, and Chinese, enhancing the overall user experience and multi-language support across the admin interface.
This commit is contained in:
@@ -24,6 +24,7 @@ import enTickets from "@/i18n/locales/en/tickets.json";
|
||||
import enReconcile from "@/i18n/locales/en/reconcile.json";
|
||||
import enReports from "@/i18n/locales/en/reports.json";
|
||||
import enWallet from "@/i18n/locales/en/wallet.json";
|
||||
import enAgents from "@/i18n/locales/en/agents.json";
|
||||
import neAudit from "@/i18n/locales/ne/audit.json";
|
||||
import neAdminUsers from "@/i18n/locales/ne/adminUsers.json";
|
||||
import neAuth from "@/i18n/locales/ne/auth.json";
|
||||
@@ -39,6 +40,7 @@ import neTickets from "@/i18n/locales/ne/tickets.json";
|
||||
import neReconcile from "@/i18n/locales/ne/reconcile.json";
|
||||
import neReports from "@/i18n/locales/ne/reports.json";
|
||||
import neWallet from "@/i18n/locales/ne/wallet.json";
|
||||
import neAgents from "@/i18n/locales/ne/agents.json";
|
||||
import zhAudit from "@/i18n/locales/zh/audit.json";
|
||||
import zhAdminUsers from "@/i18n/locales/zh/adminUsers.json";
|
||||
import zhAuth from "@/i18n/locales/zh/auth.json";
|
||||
@@ -54,12 +56,13 @@ import zhTickets from "@/i18n/locales/zh/tickets.json";
|
||||
import zhReconcile from "@/i18n/locales/zh/reconcile.json";
|
||||
import zhReports from "@/i18n/locales/zh/reports.json";
|
||||
import zhWallet from "@/i18n/locales/zh/wallet.json";
|
||||
import zhAgents from "@/i18n/locales/zh/agents.json";
|
||||
|
||||
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", "audit", "draws", "settlement", "risk", "jackpot", "players", "tickets", "reconcile", "reports", "wallet", "adminUsers", "config"] as const;
|
||||
const namespaces = ["common", "auth", "dashboard", "audit", "draws", "settlement", "risk", "jackpot", "players", "tickets", "reconcile", "reports", "wallet", "adminUsers", "agents", "config"] as const;
|
||||
|
||||
const resources = {
|
||||
en: {
|
||||
@@ -78,6 +81,7 @@ const resources = {
|
||||
audit: enAudit,
|
||||
settlement: enSettlement,
|
||||
wallet: enWallet,
|
||||
agents: enAgents,
|
||||
},
|
||||
ne: {
|
||||
common: neCommon,
|
||||
@@ -95,6 +99,7 @@ const resources = {
|
||||
audit: neAudit,
|
||||
settlement: neSettlement,
|
||||
wallet: neWallet,
|
||||
agents: neAgents,
|
||||
},
|
||||
zh: {
|
||||
common: zhCommon,
|
||||
@@ -112,6 +117,7 @@ const resources = {
|
||||
audit: zhAudit,
|
||||
settlement: zhSettlement,
|
||||
wallet: zhWallet,
|
||||
agents: zhAgents,
|
||||
},
|
||||
} satisfies Record<AdminLanguage, Record<(typeof namespaces)[number], Record<string, unknown>>>;
|
||||
|
||||
|
||||
61
src/i18n/locales/en/agents.json
Normal file
61
src/i18n/locales/en/agents.json
Normal file
@@ -0,0 +1,61 @@
|
||||
{
|
||||
"title": "Agents",
|
||||
"treeTitle": "Agent tree",
|
||||
"detailTitle": "Node details",
|
||||
"selectNode": "Select an agent node from the tree",
|
||||
"loadFailed": "Failed to load agent tree",
|
||||
"siteLabel": "Site",
|
||||
"createChild": "Add child agent",
|
||||
"editNode": "Edit node",
|
||||
"deleteNode": "Delete node",
|
||||
"deleteNodeConfirm": "This action cannot be undone. Make sure the node has no children, users, or roles.",
|
||||
"code": "Code",
|
||||
"name": "Name",
|
||||
"depth": "Depth",
|
||||
"path": "Path",
|
||||
"status": "Status",
|
||||
"isRoot": "Root",
|
||||
"createSuccess": "Created agent {{name}}",
|
||||
"updateSuccess": "Updated {{name}}",
|
||||
"deleteSuccess": "Deleted agent {{name}}",
|
||||
"saveFailed": "Save failed",
|
||||
"codeRequired": "Code and name are required",
|
||||
"tabs": {
|
||||
"overview": "Overview",
|
||||
"roles": "Roles",
|
||||
"users": "Accounts",
|
||||
"delegation": "Delegation ceiling"
|
||||
},
|
||||
"delegation": {
|
||||
"title": "Delegation ceiling",
|
||||
"hint": "Select actions this child agent may grant to its own subordinates. Agent roles cannot exceed this ceiling.",
|
||||
"permission": "Action",
|
||||
"canDelegate": "May delegate further",
|
||||
"save": "Save ceiling",
|
||||
"saveSuccess": "Delegation ceiling saved",
|
||||
"empty": "No actions available to assign",
|
||||
"rootDenied": "Root nodes do not use delegation ceilings"
|
||||
},
|
||||
"roles": {
|
||||
"title": "Agent roles",
|
||||
"create": "Create role",
|
||||
"permissions": "Permissions",
|
||||
"slug": "Slug",
|
||||
"userCount": "Users",
|
||||
"createSuccess": "Created role {{name}}",
|
||||
"updateSuccess": "Updated role {{name}}",
|
||||
"deleteSuccess": "Deleted role {{name}}",
|
||||
"permissionSaveSuccess": "Permissions updated",
|
||||
"readOnlyTemplate": "Read-only template",
|
||||
"permissionSubsetHint": "Only permissions you hold can be assigned"
|
||||
},
|
||||
"users": {
|
||||
"title": "Agent accounts",
|
||||
"create": "Create account",
|
||||
"username": "Username",
|
||||
"password": "Password",
|
||||
"roles": "Roles",
|
||||
"createSuccess": "Created account {{name}}",
|
||||
"roleSaveSuccess": "Roles updated for {{name}}"
|
||||
}
|
||||
}
|
||||
@@ -125,6 +125,11 @@
|
||||
"display": "Player",
|
||||
"sitePlayerId": "Player ID"
|
||||
},
|
||||
"agentColumns": {
|
||||
"agent": "Agent",
|
||||
"filter": "Agent",
|
||||
"filterAll": "All agents"
|
||||
},
|
||||
"toolbar": {
|
||||
"defaultAdmin": "Administrator",
|
||||
"notifications": "Notifications",
|
||||
@@ -155,10 +160,19 @@
|
||||
"settings": "Settings",
|
||||
"account": "Account settings",
|
||||
"integration": "Integration sites",
|
||||
"agents": "Agents",
|
||||
"config": "Operations config"
|
||||
},
|
||||
"sidebar": {
|
||||
"workspace": "Workspace"
|
||||
"workspace": "Workspace",
|
||||
"group": {
|
||||
"overview": "Overview",
|
||||
"agent": "Agent organization",
|
||||
"operations": "Operations",
|
||||
"finance": "Finance & reports",
|
||||
"rules": "Rules & parameters",
|
||||
"platform": "Platform"
|
||||
}
|
||||
},
|
||||
"auth": {
|
||||
"checking": "Checking sign-in status…",
|
||||
|
||||
@@ -178,7 +178,18 @@
|
||||
"loadFailed": "Failed to load system settings",
|
||||
"saveSuccess": "System settings saved",
|
||||
"saveRuntimeSuccess": "Draw and settlement parameters saved",
|
||||
"saveDrawSuccess": "Draw parameters saved",
|
||||
"saveCurrencyFormatSuccess": "Currency display format saved",
|
||||
"saveSettlementSuccess": "Settlement automation saved",
|
||||
"saveFrontendSuccess": "Front-end display settings saved",
|
||||
"sections": {
|
||||
"draw": "Draw schedule and review",
|
||||
"drawDescription": "Controls draw timing, close window, manual review, and cooldown. Only changed fields in this block are submitted.",
|
||||
"currencyFormat": "Currency display format",
|
||||
"currencyFormatDescription": "Decimals and separators for amounts across the site (separate from currency master data).",
|
||||
"settlement": "Settlement automation",
|
||||
"settlementDescription": "Controls whether tick auto-runs settlement, approval, and payout. Only changed fields in this block are submitted."
|
||||
},
|
||||
"saveFailed": "Failed to save system settings",
|
||||
"unsavedChanges": "Unsaved changes",
|
||||
"frontendConfig": "Front-end configuration",
|
||||
@@ -217,6 +228,12 @@
|
||||
"confirmSaveDescription": "This updates draw review, cooldown, auto settlement/approval/payout, and play-rules display. It may affect site-wide operation.",
|
||||
"confirmSaveRuntimeTitle": "Save draw and settlement parameters?",
|
||||
"confirmSaveRuntimeDescription": "This updates draw review, schedule timing, cooldown, and auto settlement/approval/payout. Play-rules HTML is not changed.",
|
||||
"confirmSaveDrawTitle": "Save draw parameters?",
|
||||
"confirmSaveDrawDescription": "This updates draw review, schedule timing, and cooldown in this block only.",
|
||||
"confirmSaveCurrencyFormatTitle": "Save currency display format?",
|
||||
"confirmSaveCurrencyFormatDescription": "This updates decimal places and separators.",
|
||||
"confirmSaveSettlementTitle": "Save settlement automation?",
|
||||
"confirmSaveSettlementDescription": "This updates auto settlement, approval, and payout switches.",
|
||||
"confirmSaveFrontendTitle": "Save front-end display settings?",
|
||||
"confirmSaveFrontendDescription": "This updates play-rules HTML on the player site. Draw and settlement logic are not changed."
|
||||
},
|
||||
|
||||
@@ -29,6 +29,7 @@
|
||||
"granularityDay": "By day",
|
||||
"playBreakdown": "Play breakdown",
|
||||
"playRanking": "Top 5 plays",
|
||||
"agentRanking": "Top 5 agents",
|
||||
"rankingMetricLabel": "Ranking metric",
|
||||
"rankingMetrics": {
|
||||
"bet": "By bet amount",
|
||||
@@ -37,6 +38,7 @@
|
||||
},
|
||||
"periodDistribution": "Period structure",
|
||||
"noPlayData": "No play data in this period",
|
||||
"noAgentData": "No agent data in this period",
|
||||
"periods": {
|
||||
"today": "Today",
|
||||
"last_7_days": "Last 7 days",
|
||||
@@ -90,6 +92,7 @@
|
||||
"batchPendingDraws": "Draws involved",
|
||||
"batchPendingDrawsCount": "{{count}} draws pending",
|
||||
"platformLockedAndCap": "Site locked {{locked}} / cap {{cap}}",
|
||||
"platformCapNotConfigured": "Site locked {{locked}} · cap not configured",
|
||||
"platformOrderAndTicket": "Site-wide {{orders}} orders · {{tickets}} lines",
|
||||
"platformBetTotal": "Lifetime bet",
|
||||
"platformNoFinanceActivity": "No bets site-wide yet",
|
||||
|
||||
@@ -2,10 +2,13 @@
|
||||
"title": "Reconcile",
|
||||
"createTitle": "Create reconcile job",
|
||||
"createDesc": "Manually check abnormal transfers by date range and optional player. Scheduled reconciliation still runs automatically.",
|
||||
"scopeTitle": "Define the reconcile scope",
|
||||
"scopeDescription": "Choose the business type and date range first, then decide whether to narrow it to one player.",
|
||||
"reconcileType": "Reconcile type",
|
||||
"reconcileTypeFixed": "Wallet transfer (main site ⇄ lottery)",
|
||||
"reconcileTypeHint": "Only wallet transfer is currently supported.",
|
||||
"dateRange": "Reconcile date range",
|
||||
"dateRangeHint": "Start with a shorter period to spot concentrated issues before widening the search.",
|
||||
"createTask": "Create reconcile job",
|
||||
"submitting": "Submitting…",
|
||||
"loadFailed": "Failed to load",
|
||||
@@ -20,13 +23,21 @@
|
||||
"createSuccess": "Reconcile job created",
|
||||
"createFailed": "Failed to create job",
|
||||
"noCreatePermission": "Current account cannot create reconcile jobs.",
|
||||
"playerScopeTitle": "Optionally narrow to one player",
|
||||
"playerAllPlayersHint": "If no player is selected, the reconcile job will cover all players in the chosen date range.",
|
||||
"createSummaryAll": "A manual reconcile will run for all players from {{from}} to {{to}}.",
|
||||
"createSummaryPlayer": "A manual reconcile will run for player {{player}} from {{from}} to {{to}}.",
|
||||
"jobsTitle": "Reconcile jobs",
|
||||
"jobsDesc": "Use the action on the right to open paginated item details.",
|
||||
"refresh": "Refresh",
|
||||
"jobNo": "Job no.",
|
||||
"type": "Type",
|
||||
"status": "Status",
|
||||
"itemCount": "Items",
|
||||
"mismatchCount": "Mismatches",
|
||||
"matchedCount": "Matched",
|
||||
"period": "Period",
|
||||
"finishedAt": "Finished at",
|
||||
"createdAt": "Created at",
|
||||
"operate": "Action",
|
||||
"view": "View",
|
||||
@@ -34,6 +45,7 @@
|
||||
"sideARef": "Lottery ref",
|
||||
"sideBRef": "Main site ref",
|
||||
"differenceAmount": "Difference (cent)",
|
||||
"detectedAt": "Detected at",
|
||||
"noDetails": "No details",
|
||||
"playerSearch": "Player (optional)",
|
||||
"playerSearchPlaceholder": "Search by player ID / username / nickname",
|
||||
|
||||
@@ -84,15 +84,109 @@
|
||||
"subtitle": "Results appear below. Export as CSV or Excel.",
|
||||
"empty": "No data. Adjust filters and try again.",
|
||||
"exportableRows": "rows exportable",
|
||||
"summaryScopeHint": "Except for the total record count, the stat cards above summarize the current preview page. Use full CSV/Excel export for full-range numbers.",
|
||||
"scope": {
|
||||
"currentPage": "Current page"
|
||||
},
|
||||
"columns": {
|
||||
"primary": "",
|
||||
"secondary": "",
|
||||
"metricA": "",
|
||||
"metricB": "",
|
||||
"metricC": "",
|
||||
"status": "",
|
||||
"extra": "",
|
||||
"time": ""
|
||||
"primary": "Primary",
|
||||
"secondary": "Secondary",
|
||||
"metricA": "Metric A",
|
||||
"metricB": "Metric B",
|
||||
"metricC": "Metric C",
|
||||
"status": "Status",
|
||||
"extra": "Extra",
|
||||
"time": "Time",
|
||||
"drawProfit": {
|
||||
"primary": "Draw / Batch",
|
||||
"secondary": "Draw / Settlement status",
|
||||
"metricA": "Orders / Tickets",
|
||||
"metricB": "Tickets / Winners",
|
||||
"metricC": "Bet / House P&L",
|
||||
"status": "Payout / Jackpot",
|
||||
"extra": "Batch count",
|
||||
"time": "Finished"
|
||||
},
|
||||
"dailyProfit": {
|
||||
"primary": "Business date",
|
||||
"secondary": "Note",
|
||||
"metricA": "Bet",
|
||||
"metricB": "Payout",
|
||||
"metricC": "House P&L",
|
||||
"status": "Refund",
|
||||
"extra": "Net",
|
||||
"time": "Updated"
|
||||
},
|
||||
"playerWinLoss": {
|
||||
"primary": "Player",
|
||||
"secondary": "Player ID",
|
||||
"metricA": "Bet",
|
||||
"metricB": "Payout",
|
||||
"metricC": "Net win/loss",
|
||||
"status": "Tier",
|
||||
"extra": "Note",
|
||||
"time": "Time"
|
||||
},
|
||||
"playerTransfer": {
|
||||
"primary": "Transfer no.",
|
||||
"secondary": "Player",
|
||||
"metricA": "Direction",
|
||||
"metricB": "Status",
|
||||
"metricC": "Amount",
|
||||
"status": "External ref",
|
||||
"extra": "Failure reason",
|
||||
"time": "Created"
|
||||
},
|
||||
"hotNumberRisk": {
|
||||
"primary": "Number / Log",
|
||||
"secondary": "Draw / Action",
|
||||
"metricA": "Cap / Amount",
|
||||
"metricB": "Locked / Play",
|
||||
"metricC": "Remaining / Ticket",
|
||||
"status": "Sold out / Player",
|
||||
"extra": "Usage / Reason",
|
||||
"time": "Version / Time"
|
||||
},
|
||||
"playDimension": {
|
||||
"primary": "Play",
|
||||
"secondary": "Dimension",
|
||||
"metricA": "Bet",
|
||||
"metricB": "Payout",
|
||||
"metricC": "House P&L",
|
||||
"status": "Share",
|
||||
"extra": "Note",
|
||||
"time": "Time"
|
||||
},
|
||||
"soldOut": {
|
||||
"primary": "Number",
|
||||
"secondary": "Draw",
|
||||
"metricA": "Cap",
|
||||
"metricB": "Locked",
|
||||
"metricC": "Remaining",
|
||||
"status": "Sold out",
|
||||
"extra": "Usage",
|
||||
"time": "Version"
|
||||
},
|
||||
"rebateCommission": {
|
||||
"primary": "Play",
|
||||
"secondary": "Orders",
|
||||
"metricA": "Rebate",
|
||||
"metricB": "Ticket items",
|
||||
"metricC": "Commission",
|
||||
"status": "Rule hit",
|
||||
"extra": "Note",
|
||||
"time": "Time"
|
||||
},
|
||||
"adminAudit": {
|
||||
"primary": "Log ID",
|
||||
"secondary": "Operator type",
|
||||
"metricA": "Operator ID",
|
||||
"metricB": "Module",
|
||||
"metricC": "Action",
|
||||
"status": "Target type",
|
||||
"extra": "IP",
|
||||
"time": "Time"
|
||||
}
|
||||
},
|
||||
"stats": {
|
||||
"records": "Records",
|
||||
@@ -179,7 +273,7 @@
|
||||
},
|
||||
"daily_profit": {
|
||||
"title": "Daily P&L summary",
|
||||
"summary": "Summarize bets, payouts, refunds, P&L, and net amount by date."
|
||||
"summary": "Summarize bet amount, payout, and house P&L by business date. Refund and standalone net amount are not included yet."
|
||||
},
|
||||
"player_win_loss": {
|
||||
"title": "Player win/loss report",
|
||||
|
||||
61
src/i18n/locales/ne/agents.json
Normal file
61
src/i18n/locales/ne/agents.json
Normal file
@@ -0,0 +1,61 @@
|
||||
{
|
||||
"title": "Agents",
|
||||
"treeTitle": "Agent tree",
|
||||
"detailTitle": "Node details",
|
||||
"selectNode": "Select an agent node from the tree",
|
||||
"loadFailed": "Failed to load agent tree",
|
||||
"siteLabel": "Site",
|
||||
"createChild": "Add child agent",
|
||||
"editNode": "Edit node",
|
||||
"deleteNode": "Delete node",
|
||||
"deleteNodeConfirm": "This action cannot be undone. Make sure the node has no children, users, or roles.",
|
||||
"code": "Code",
|
||||
"name": "Name",
|
||||
"depth": "Depth",
|
||||
"path": "Path",
|
||||
"status": "Status",
|
||||
"isRoot": "Root",
|
||||
"createSuccess": "Created agent {{name}}",
|
||||
"updateSuccess": "Updated {{name}}",
|
||||
"deleteSuccess": "Deleted agent {{name}}",
|
||||
"saveFailed": "Save failed",
|
||||
"codeRequired": "Code and name are required",
|
||||
"tabs": {
|
||||
"overview": "Overview",
|
||||
"roles": "Roles",
|
||||
"users": "Accounts",
|
||||
"delegation": "Delegation ceiling"
|
||||
},
|
||||
"delegation": {
|
||||
"title": "Delegation ceiling",
|
||||
"hint": "Select actions this child agent may grant to subordinates.",
|
||||
"permission": "Action",
|
||||
"canDelegate": "May delegate further",
|
||||
"save": "Save ceiling",
|
||||
"saveSuccess": "Delegation ceiling saved",
|
||||
"empty": "No actions available",
|
||||
"rootDenied": "Root nodes do not use delegation ceilings"
|
||||
},
|
||||
"roles": {
|
||||
"title": "Agent roles",
|
||||
"create": "Create role",
|
||||
"permissions": "Permissions",
|
||||
"slug": "Slug",
|
||||
"userCount": "Users",
|
||||
"createSuccess": "Created role {{name}}",
|
||||
"updateSuccess": "Updated role {{name}}",
|
||||
"deleteSuccess": "Deleted role {{name}}",
|
||||
"permissionSaveSuccess": "Permissions updated",
|
||||
"readOnlyTemplate": "Read-only template",
|
||||
"permissionSubsetHint": "Only permissions you hold can be assigned"
|
||||
},
|
||||
"users": {
|
||||
"title": "Agent accounts",
|
||||
"create": "Create account",
|
||||
"username": "Username",
|
||||
"password": "Password",
|
||||
"roles": "Roles",
|
||||
"createSuccess": "Created account {{name}}",
|
||||
"roleSaveSuccess": "Roles updated for {{name}}"
|
||||
}
|
||||
}
|
||||
@@ -125,6 +125,11 @@
|
||||
"display": "खेलाडी",
|
||||
"sitePlayerId": "खेलाडी ID"
|
||||
},
|
||||
"agentColumns": {
|
||||
"agent": "एजेन्ट",
|
||||
"filter": "एजेन्ट",
|
||||
"filterAll": "सबै एजेन्ट"
|
||||
},
|
||||
"toolbar": {
|
||||
"defaultAdmin": "प्रशासक",
|
||||
"notifications": "सूचना",
|
||||
@@ -155,10 +160,19 @@
|
||||
"settings": "सेटिङ",
|
||||
"account": "खाता सेटिङ",
|
||||
"integration": "मुख्य साइट एकीकरण",
|
||||
"agents": "एजेन्ट व्यवस्थापन",
|
||||
"config": "सञ्चालन कन्फिगरेसन"
|
||||
},
|
||||
"sidebar": {
|
||||
"workspace": "कार्यस्थान"
|
||||
"workspace": "कार्यस्थान",
|
||||
"group": {
|
||||
"overview": "सारांश",
|
||||
"agent": "एजेन्ट संगठन",
|
||||
"operations": "दैनिक सञ्चालन",
|
||||
"finance": "वित्त र रिपोर्ट",
|
||||
"rules": "नियम र प्यारामिटर",
|
||||
"platform": "प्लेटफर्म"
|
||||
}
|
||||
},
|
||||
"auth": {
|
||||
"checking": "लगइन स्थिति जाँच हुँदैछ…",
|
||||
|
||||
@@ -29,6 +29,7 @@
|
||||
"granularityDay": "दैनिक",
|
||||
"playBreakdown": "प्ले विभाजन",
|
||||
"playRanking": "शीर्ष ५ प्ले",
|
||||
"agentRanking": "शीर्ष ५ एजेन्ट",
|
||||
"rankingMetricLabel": "रैंकिङ मेट्रिक",
|
||||
"rankingMetrics": {
|
||||
"bet": "बेट रकम",
|
||||
@@ -37,6 +38,7 @@
|
||||
},
|
||||
"periodDistribution": "अवधि संरचना",
|
||||
"noPlayData": "यस अवधिमा प्ले डाटा छैन",
|
||||
"noAgentData": "यस अवधिमा एजेन्ट डाटा छैन",
|
||||
"periods": {
|
||||
"today": "आज",
|
||||
"last_7_days": "पछिल्लो ७ दिन",
|
||||
@@ -90,6 +92,7 @@
|
||||
"batchPendingDraws": "सम्बन्धित ड्रअ",
|
||||
"batchPendingDrawsCount": "{{count}} ड्रअ पेन्डिङ",
|
||||
"platformLockedAndCap": "साइट लक {{locked}} / क्याप {{cap}}",
|
||||
"platformCapNotConfigured": "साइट लक {{locked}} · क्याप कन्फिगर गरिएको छैन",
|
||||
"platformOrderAndTicket": "साइटव्यापी {{orders}} अर्डर · {{tickets}} लाइन",
|
||||
"platformBetTotal": "जम्मा बेट",
|
||||
"platformNoFinanceActivity": "साइटव्यापी अहिले बेट छैन",
|
||||
|
||||
@@ -2,10 +2,13 @@
|
||||
"title": "मिलान",
|
||||
"createTitle": "म्यानुअल मिलान कार्य",
|
||||
"createDesc": "मिति दायरा र वैकल्पिक खेलाडी चयनबाट असामान्य ट्रान्सफर म्यानुअल रूपमा जाँच गर्नुहोस्। scheduled reconciliation स्वतः चलिरहन्छ।",
|
||||
"scopeTitle": "पहिले मिलानको दायरा तय गर्नुहोस्",
|
||||
"scopeDescription": "पहिले व्यवसाय प्रकार र मिति दायरा रोज्नुहोस्, त्यसपछि आवश्यक परे एक खेलाडीमा सीमित गर्नुहोस्।",
|
||||
"reconcileType": "मिलान प्रकार",
|
||||
"reconcileTypeFixed": "वालेट ट्रान्सफर (मुख्य साइट ⇄ लटरी)",
|
||||
"reconcileTypeHint": "हाल वालेट ट्रान्सफर मात्र समर्थित छ।",
|
||||
"dateRange": "मिलान मिति दायरा",
|
||||
"dateRangeHint": "पहिले छोटो समयावधि रोजेर समस्या कहाँ केन्द्रित छ हेर्नुहोस्, त्यसपछि आवश्यक परे दायरा बढाउनुहोस्।",
|
||||
"createTask": "मिलान कार्य सिर्जना",
|
||||
"submitting": "पेश हुँदैछ…",
|
||||
"loadFailed": "लोड असफल भयो",
|
||||
@@ -16,13 +19,21 @@
|
||||
"createSuccess": "मिलान कार्य सिर्जना भयो",
|
||||
"createFailed": "कार्य सिर्जना असफल भयो",
|
||||
"noCreatePermission": "हालको खातासँग मिलान कार्य सिर्जना गर्ने अनुमति छैन।",
|
||||
"playerScopeTitle": "आवश्यक परे एक खेलाडीमा सीमित गर्नुहोस्",
|
||||
"playerAllPlayersHint": "खेलाडी नछानेमा, छनोट गरिएको मिति दायराभित्र सबै खेलाडीका लागि मिलान चलाइनेछ।",
|
||||
"createSummaryAll": "{{from}} देखि {{to}} सम्म सबै खेलाडीका लागि म्यानुअल मिलान चलाइनेछ।",
|
||||
"createSummaryPlayer": "खेलाडी {{player}} का लागि {{from}} देखि {{to}} सम्म म्यानुअल मिलान चलाइनेछ।",
|
||||
"jobsTitle": "मिलान कार्यहरू",
|
||||
"jobsDesc": "दायाँपट्टिको कार्यबाट विवरण खोल्नुहोस्।",
|
||||
"refresh": "रिफ्रेस",
|
||||
"jobNo": "कार्य नं.",
|
||||
"type": "प्रकार",
|
||||
"status": "स्थिति",
|
||||
"itemCount": "विवरण संख्या",
|
||||
"mismatchCount": "असंगति",
|
||||
"matchedCount": "मेल खाएका",
|
||||
"period": "अवधि",
|
||||
"finishedAt": "समाप्त समय",
|
||||
"createdAt": "सिर्जना समय",
|
||||
"operate": "कार्य",
|
||||
"view": "हेर्नुहोस्",
|
||||
@@ -30,6 +41,7 @@
|
||||
"sideARef": "लटरी साइड सन्दर्भ",
|
||||
"sideBRef": "मुख्य साइट सन्दर्भ",
|
||||
"differenceAmount": "अन्तर (cent)",
|
||||
"detectedAt": "फेला परेको समय",
|
||||
"noDetails": "विवरण छैन",
|
||||
"playerSearch": "खेलाडी (वैकल्पिक)",
|
||||
"playerSearchPlaceholder": "player ID / username / nickname बाट खोज्नुहोस्",
|
||||
|
||||
@@ -84,15 +84,109 @@
|
||||
"subtitle": "तल तालिकामा नतिजा देखिन्छ।",
|
||||
"empty": "डाटा छैन।",
|
||||
"exportableRows": "पङ्क्ति निर्यात योग्य",
|
||||
"summaryScopeHint": "कुल रेकर्ड बाहेक माथिका कार्डहरू हालको पूर्वावलोकन पृष्ठको योग हुन्। पूर्ण दायराको संख्या चाहिँ पूर्ण CSV/Excel निर्यात प्रयोग गर्नुहोस्।",
|
||||
"scope": {
|
||||
"currentPage": "हालको पृष्ठ"
|
||||
},
|
||||
"columns": {
|
||||
"primary": "",
|
||||
"secondary": "",
|
||||
"metricA": "",
|
||||
"metricB": "",
|
||||
"metricC": "",
|
||||
"status": "",
|
||||
"extra": "",
|
||||
"time": ""
|
||||
"primary": "मुख्य",
|
||||
"secondary": "सहायक",
|
||||
"metricA": "सूचक A",
|
||||
"metricB": "सूचक B",
|
||||
"metricC": "सूचक C",
|
||||
"status": "स्थिति",
|
||||
"extra": "थप",
|
||||
"time": "समय",
|
||||
"drawProfit": {
|
||||
"primary": "ड्र / ब्याच",
|
||||
"secondary": "ड्र / सेटलमेन्ट स्थिति",
|
||||
"metricA": "अर्डर / टिकट",
|
||||
"metricB": "टिकट / विजेता",
|
||||
"metricC": "बेट / हाउस P&L",
|
||||
"status": "पेआउट / ज्याकपोट",
|
||||
"extra": "ब्याच संख्या",
|
||||
"time": "समाप्त"
|
||||
},
|
||||
"dailyProfit": {
|
||||
"primary": "व्यावसायिक मिति",
|
||||
"secondary": "टिप्पणी",
|
||||
"metricA": "बेट",
|
||||
"metricB": "पेआउट",
|
||||
"metricC": "हाउस P&L",
|
||||
"status": "रिफन्ड",
|
||||
"extra": "नेट",
|
||||
"time": "अपडेट"
|
||||
},
|
||||
"playerWinLoss": {
|
||||
"primary": "खेलाडी",
|
||||
"secondary": "खेलाडी ID",
|
||||
"metricA": "बेट",
|
||||
"metricB": "पेआउट",
|
||||
"metricC": "नेट जित/हार",
|
||||
"status": "स्तर",
|
||||
"extra": "टिप्पणी",
|
||||
"time": "समय"
|
||||
},
|
||||
"playerTransfer": {
|
||||
"primary": "ट्रान्सफर नं.",
|
||||
"secondary": "खेलाडी",
|
||||
"metricA": "दिशा",
|
||||
"metricB": "स्थिति",
|
||||
"metricC": "रकम",
|
||||
"status": "बाह्य सन्दर्भ",
|
||||
"extra": "असफल कारण",
|
||||
"time": "सिर्जना"
|
||||
},
|
||||
"hotNumberRisk": {
|
||||
"primary": "नम्बर / लग",
|
||||
"secondary": "ड्र / कार्य",
|
||||
"metricA": "क्याप / रकम",
|
||||
"metricB": "लक / खेल",
|
||||
"metricC": "बाँकी / टिकट",
|
||||
"status": "सोल्ड आउट / खेलाडी",
|
||||
"extra": "प्रयोग / कारण",
|
||||
"time": "संस्करण / समय"
|
||||
},
|
||||
"playDimension": {
|
||||
"primary": "खेल",
|
||||
"secondary": "आयाम",
|
||||
"metricA": "बेट",
|
||||
"metricB": "पेआउट",
|
||||
"metricC": "हाउस P&L",
|
||||
"status": "अनुपात",
|
||||
"extra": "टिप्पणी",
|
||||
"time": "समय"
|
||||
},
|
||||
"soldOut": {
|
||||
"primary": "नम्बर",
|
||||
"secondary": "ड्र",
|
||||
"metricA": "क्याप",
|
||||
"metricB": "लक",
|
||||
"metricC": "बाँकी",
|
||||
"status": "सोल्ड आउट",
|
||||
"extra": "प्रयोग",
|
||||
"time": "संस्करण"
|
||||
},
|
||||
"rebateCommission": {
|
||||
"primary": "खेल",
|
||||
"secondary": "अर्डर",
|
||||
"metricA": "रिबेट",
|
||||
"metricB": "टिकट आइटम",
|
||||
"metricC": "कमिसन",
|
||||
"status": "नियम मिलान",
|
||||
"extra": "टिप्पणी",
|
||||
"time": "समय"
|
||||
},
|
||||
"adminAudit": {
|
||||
"primary": "लग ID",
|
||||
"secondary": "अपरेटर प्रकार",
|
||||
"metricA": "अपरेटर ID",
|
||||
"metricB": "मोड्युल",
|
||||
"metricC": "कार्य",
|
||||
"status": "लक्ष्य प्रकार",
|
||||
"extra": "IP",
|
||||
"time": "समय"
|
||||
}
|
||||
},
|
||||
"stats": {
|
||||
"records": "रेकर्ड",
|
||||
@@ -179,7 +273,7 @@
|
||||
},
|
||||
"daily_profit": {
|
||||
"title": "दैनिक P&L सारांश",
|
||||
"summary": "मिति अनुसार बेट, पेआउट, रिफन्ड, P&L र नेट रकम सारांश गर्नुहोस्।"
|
||||
"summary": "व्यावसायिक मितिअनुसार बेट रकम, पेआउट र हाउस P&L सारांश गर्नुहोस्। रिफन्ड र छुट्टै नेट रकम अहिले समावेश छैन।"
|
||||
},
|
||||
"player_win_loss": {
|
||||
"title": "खेलाडी जित/हार रिपोर्ट",
|
||||
|
||||
61
src/i18n/locales/zh/agents.json
Normal file
61
src/i18n/locales/zh/agents.json
Normal file
@@ -0,0 +1,61 @@
|
||||
{
|
||||
"title": "代理管理",
|
||||
"treeTitle": "代理树",
|
||||
"detailTitle": "节点详情",
|
||||
"selectNode": "请从左侧选择代理节点",
|
||||
"loadFailed": "加载代理树失败",
|
||||
"siteLabel": "站点",
|
||||
"createChild": "添加下级代理",
|
||||
"editNode": "编辑节点",
|
||||
"deleteNode": "删除节点",
|
||||
"deleteNodeConfirm": "删除后不可恢复,请确认该节点无下级、无账号、无角色绑定。",
|
||||
"code": "编码",
|
||||
"name": "名称",
|
||||
"depth": "层级",
|
||||
"path": "路径",
|
||||
"status": "状态",
|
||||
"isRoot": "根节点",
|
||||
"createSuccess": "已创建代理 {{name}}",
|
||||
"updateSuccess": "已更新 {{name}}",
|
||||
"deleteSuccess": "已删除代理 {{name}}",
|
||||
"saveFailed": "保存失败",
|
||||
"codeRequired": "请填写编码与名称",
|
||||
"tabs": {
|
||||
"overview": "概况",
|
||||
"roles": "角色",
|
||||
"users": "账号",
|
||||
"delegation": "下放权限"
|
||||
},
|
||||
"delegation": {
|
||||
"title": "下放权限上限",
|
||||
"hint": "勾选允许该下级代理继续下放的操作;保存后创建角色时不可超出此范围。",
|
||||
"permission": "操作",
|
||||
"canDelegate": "可继续下放",
|
||||
"save": "保存上限",
|
||||
"saveSuccess": "下放上限已保存",
|
||||
"empty": "暂无可配置的操作",
|
||||
"rootDenied": "根节点无需配置下放上限"
|
||||
},
|
||||
"roles": {
|
||||
"title": "代理角色",
|
||||
"create": "创建角色",
|
||||
"permissions": "权限",
|
||||
"slug": "标识",
|
||||
"userCount": "人数",
|
||||
"createSuccess": "已创建角色 {{name}}",
|
||||
"updateSuccess": "已更新角色 {{name}}",
|
||||
"deleteSuccess": "已删除角色 {{name}}",
|
||||
"permissionSaveSuccess": "权限已更新",
|
||||
"readOnlyTemplate": "只读模板",
|
||||
"permissionSubsetHint": "只能分配您当前拥有的权限"
|
||||
},
|
||||
"users": {
|
||||
"title": "代理账号",
|
||||
"create": "创建账号",
|
||||
"username": "登录名",
|
||||
"password": "密码",
|
||||
"roles": "角色",
|
||||
"createSuccess": "已创建账号 {{name}}",
|
||||
"roleSaveSuccess": "已更新 {{name}} 的角色"
|
||||
}
|
||||
}
|
||||
@@ -125,6 +125,11 @@
|
||||
"display": "玩家",
|
||||
"sitePlayerId": "玩家 ID"
|
||||
},
|
||||
"agentColumns": {
|
||||
"agent": "所属代理",
|
||||
"filter": "代理",
|
||||
"filterAll": "全部代理"
|
||||
},
|
||||
"toolbar": {
|
||||
"defaultAdmin": "管理员",
|
||||
"notifications": "通知",
|
||||
@@ -155,10 +160,19 @@
|
||||
"settings": "系统设置",
|
||||
"account": "账号设置",
|
||||
"integration": "接入站点",
|
||||
"agents": "代理管理",
|
||||
"config": "运营配置"
|
||||
},
|
||||
"sidebar": {
|
||||
"workspace": "工作台"
|
||||
"workspace": "工作台",
|
||||
"group": {
|
||||
"overview": "总览",
|
||||
"agent": "代理组织",
|
||||
"operations": "日常运营",
|
||||
"finance": "资金与报表",
|
||||
"rules": "规则与参数",
|
||||
"platform": "平台管理"
|
||||
}
|
||||
},
|
||||
"auth": {
|
||||
"checking": "正在校验登录状态…",
|
||||
|
||||
@@ -178,7 +178,18 @@
|
||||
"loadFailed": "系统设置加载失败",
|
||||
"saveSuccess": "系统设置已保存",
|
||||
"saveRuntimeSuccess": "开奖与结算参数已保存",
|
||||
"saveDrawSuccess": "开奖参数已保存",
|
||||
"saveCurrencyFormatSuccess": "金额显示格式已保存",
|
||||
"saveSettlementSuccess": "结算自动化参数已保存",
|
||||
"saveFrontendSuccess": "前端展示配置已保存",
|
||||
"sections": {
|
||||
"draw": "开奖节奏与审核",
|
||||
"drawDescription": "控制期号节奏、封盘与开奖后人工审核、冷静期。仅保存本区块内修改过的项。",
|
||||
"currencyFormat": "金额显示格式",
|
||||
"currencyFormatDescription": "全站金额展示的小数位与分隔符,与币种主数据无关。",
|
||||
"settlement": "结算自动化",
|
||||
"settlementDescription": "控制 tick 是否自动结算、审核与派彩。修改后只提交本区块变更项。"
|
||||
},
|
||||
"saveFailed": "系统设置保存失败",
|
||||
"unsavedChanges": "有未保存的更改",
|
||||
"frontendConfig": "前端配置",
|
||||
@@ -217,6 +228,12 @@
|
||||
"confirmSaveDescription": "将更新开奖审核、冷静期、自动结算/审核/派彩及玩法规则展示,可能影响全站运行。",
|
||||
"confirmSaveRuntimeTitle": "确认保存开奖与结算参数?",
|
||||
"confirmSaveRuntimeDescription": "将更新开奖审核、期号节奏、冷静期、自动结算/审核/派彩等,不影响玩法规则 HTML。",
|
||||
"confirmSaveDrawTitle": "确认保存开奖参数?",
|
||||
"confirmSaveDrawDescription": "将更新开奖审核、期号节奏与冷静期等本区块字段。",
|
||||
"confirmSaveCurrencyFormatTitle": "确认保存金额显示格式?",
|
||||
"confirmSaveCurrencyFormatDescription": "将更新小数位与千分位/小数分隔符。",
|
||||
"confirmSaveSettlementTitle": "确认保存结算自动化?",
|
||||
"confirmSaveSettlementDescription": "将更新自动结算、审核与派彩相关开关。",
|
||||
"confirmSaveFrontendTitle": "确认保存前端展示配置?",
|
||||
"confirmSaveFrontendDescription": "将更新玩家端玩法规则页面 HTML,不影响开奖与结算逻辑。"
|
||||
},
|
||||
|
||||
@@ -29,6 +29,7 @@
|
||||
"granularityDay": "按天",
|
||||
"playBreakdown": "玩法拆解 Top",
|
||||
"playRanking": "玩法排行榜 Top 5",
|
||||
"agentRanking": "代理排行榜 Top 5",
|
||||
"rankingMetricLabel": "排行维度",
|
||||
"rankingMetrics": {
|
||||
"bet": "按投注金额",
|
||||
@@ -37,6 +38,7 @@
|
||||
},
|
||||
"periodDistribution": "区间结构对比",
|
||||
"noPlayData": "该区间暂无玩法数据",
|
||||
"noAgentData": "该区间暂无代理数据",
|
||||
"periods": {
|
||||
"today": "今日",
|
||||
"last_7_days": "近 7 天",
|
||||
@@ -90,6 +92,7 @@
|
||||
"batchPendingDraws": "涉及期数",
|
||||
"batchPendingDrawsCount": "{{count}} 期待审",
|
||||
"platformLockedAndCap": "全站已占用 {{locked}} / 封顶 {{cap}}",
|
||||
"platformCapNotConfigured": "全站已占用 {{locked}} · 尚未配置封顶",
|
||||
"platformOrderAndTicket": "全站 {{orders}} 单 · {{tickets}} 笔",
|
||||
"platformBetTotal": "累计投注",
|
||||
"platformNoFinanceActivity": "全站暂无投注",
|
||||
|
||||
@@ -2,10 +2,13 @@
|
||||
"title": "对账",
|
||||
"createTitle": "人工发起对账",
|
||||
"createDesc": "用于按日期范围并可选指定玩家,人工核对异常转账。系统定时对账仍会自动执行。",
|
||||
"scopeTitle": "先定义对账范围",
|
||||
"scopeDescription": "先确定要核对的业务类型和日期区间,再决定是否缩小到单个玩家。",
|
||||
"reconcileType": "对账类型",
|
||||
"reconcileTypeFixed": "钱包划转(主站 ⇄ 彩票)",
|
||||
"reconcileTypeHint": "当前仅支持钱包划转。",
|
||||
"dateRange": "对账日期范围",
|
||||
"dateRangeHint": "建议优先选较短时间段,先看异常是否集中,再按需扩大范围。",
|
||||
"createTask": "创建对账任务",
|
||||
"submitting": "提交中…",
|
||||
"loadFailed": "加载失败",
|
||||
@@ -20,13 +23,21 @@
|
||||
"createSuccess": "已创建对账任务",
|
||||
"createFailed": "创建失败",
|
||||
"noCreatePermission": "当前账号无新建对账任务权限。",
|
||||
"playerScopeTitle": "再决定是否指定玩家",
|
||||
"playerAllPlayersHint": "不选择玩家时,会按日期范围对全量玩家做一次人工对账。",
|
||||
"createSummaryAll": "将对 {{from}} 至 {{to}} 的全量玩家发起人工对账。",
|
||||
"createSummaryPlayer": "将对玩家 {{player}} 在 {{from}} 至 {{to}} 的数据发起人工对账。",
|
||||
"jobsTitle": "对账任务",
|
||||
"jobsDesc": "在右侧操作中查看差异明细与分页。",
|
||||
"refresh": "刷新",
|
||||
"jobNo": "任务号",
|
||||
"type": "类型",
|
||||
"status": "状态",
|
||||
"itemCount": "明细数",
|
||||
"mismatchCount": "异常数",
|
||||
"matchedCount": "一致数",
|
||||
"period": "对账周期",
|
||||
"finishedAt": "完成时间",
|
||||
"createdAt": "创建时间",
|
||||
"operate": "操作",
|
||||
"view": "查看",
|
||||
@@ -34,6 +45,7 @@
|
||||
"sideARef": "彩票侧引用",
|
||||
"sideBRef": "主站侧引用",
|
||||
"differenceAmount": "差额(分)",
|
||||
"detectedAt": "发现时间",
|
||||
"noDetails": "无明细",
|
||||
"playerSearch": "指定玩家(可选)",
|
||||
"playerSearchPlaceholder": "输入玩家 ID / 用户名 / 昵称搜索",
|
||||
|
||||
@@ -84,15 +84,109 @@
|
||||
"subtitle": "查询结果将显示在下方表格,可导出 CSV 或 Excel。",
|
||||
"empty": "暂无数据,请调整筛选条件后重试。",
|
||||
"exportableRows": "行可导出",
|
||||
"summaryScopeHint": "上方统计卡除“记录数”外,默认按当前预览页汇总;需要全量口径请使用“导出 CSV/Excel(全量)”。",
|
||||
"scope": {
|
||||
"currentPage": "当前页"
|
||||
},
|
||||
"columns": {
|
||||
"primary": "",
|
||||
"secondary": "",
|
||||
"metricA": "",
|
||||
"metricB": "",
|
||||
"metricC": "",
|
||||
"status": "",
|
||||
"extra": "",
|
||||
"time": ""
|
||||
"primary": "主字段",
|
||||
"secondary": "辅助字段",
|
||||
"metricA": "指标 A",
|
||||
"metricB": "指标 B",
|
||||
"metricC": "指标 C",
|
||||
"status": "状态",
|
||||
"extra": "补充信息",
|
||||
"time": "时间",
|
||||
"drawProfit": {
|
||||
"primary": "期号 / 批次",
|
||||
"secondary": "期状态 / 结算状态",
|
||||
"metricA": "订单 / 票数",
|
||||
"metricB": "票数 / 中奖数",
|
||||
"metricC": "下注 / 平台盈亏",
|
||||
"status": "派彩 / Jackpot",
|
||||
"extra": "结算批次数",
|
||||
"time": "完成时间"
|
||||
},
|
||||
"dailyProfit": {
|
||||
"primary": "业务日",
|
||||
"secondary": "说明",
|
||||
"metricA": "下注",
|
||||
"metricB": "派彩",
|
||||
"metricC": "平台盈亏",
|
||||
"status": "退款",
|
||||
"extra": "净额",
|
||||
"time": "更新时间"
|
||||
},
|
||||
"playerWinLoss": {
|
||||
"primary": "玩家",
|
||||
"secondary": "玩家 ID",
|
||||
"metricA": "下注",
|
||||
"metricB": "派彩",
|
||||
"metricC": "净输赢",
|
||||
"status": "层级",
|
||||
"extra": "备注",
|
||||
"time": "时间"
|
||||
},
|
||||
"playerTransfer": {
|
||||
"primary": "转账单号",
|
||||
"secondary": "玩家",
|
||||
"metricA": "方向",
|
||||
"metricB": "状态",
|
||||
"metricC": "金额",
|
||||
"status": "外部流水",
|
||||
"extra": "失败原因",
|
||||
"time": "创建时间"
|
||||
},
|
||||
"hotNumberRisk": {
|
||||
"primary": "号码 / 日志",
|
||||
"secondary": "期号 / 动作",
|
||||
"metricA": "封顶 / 金额",
|
||||
"metricB": "已占用 / 玩法",
|
||||
"metricC": "剩余 / 注单",
|
||||
"status": "售罄 / 玩家",
|
||||
"extra": "使用率 / 原因",
|
||||
"time": "版本 / 时间"
|
||||
},
|
||||
"playDimension": {
|
||||
"primary": "玩法",
|
||||
"secondary": "维度",
|
||||
"metricA": "下注",
|
||||
"metricB": "派彩",
|
||||
"metricC": "平台盈亏",
|
||||
"status": "占比",
|
||||
"extra": "备注",
|
||||
"time": "时间"
|
||||
},
|
||||
"soldOut": {
|
||||
"primary": "号码",
|
||||
"secondary": "期号",
|
||||
"metricA": "封顶",
|
||||
"metricB": "已占用",
|
||||
"metricC": "剩余",
|
||||
"status": "是否售罄",
|
||||
"extra": "使用率",
|
||||
"time": "版本"
|
||||
},
|
||||
"rebateCommission": {
|
||||
"primary": "玩法",
|
||||
"secondary": "订单数",
|
||||
"metricA": "回水",
|
||||
"metricB": "注单数",
|
||||
"metricC": "佣金",
|
||||
"status": "配置命中",
|
||||
"extra": "备注",
|
||||
"time": "时间"
|
||||
},
|
||||
"adminAudit": {
|
||||
"primary": "日志 ID",
|
||||
"secondary": "操作者类型",
|
||||
"metricA": "操作者 ID",
|
||||
"metricB": "模块",
|
||||
"metricC": "动作",
|
||||
"status": "目标类型",
|
||||
"extra": "IP",
|
||||
"time": "时间"
|
||||
}
|
||||
},
|
||||
"stats": {
|
||||
"records": "记录数",
|
||||
@@ -179,7 +273,7 @@
|
||||
},
|
||||
"daily_profit": {
|
||||
"title": "每日盈亏汇总",
|
||||
"summary": "按自然日汇总投注、派奖、退款、盈亏和净额。"
|
||||
"summary": "按业务日汇总投注、派彩与平台盈亏,当前不包含退款与单独净额字段。"
|
||||
},
|
||||
"player_win_loss": {
|
||||
"title": "玩家输赢报表",
|
||||
|
||||
Reference in New Issue
Block a user