refactor(risk, navigation): update risk management redirects and enhance loading states

Changed default redirects in risk management pages to point to the new risk pools section. Removed unused risk lock log components and streamlined the admin reports page with a loading state for better user experience. Added a new DocFigure component for improved documentation visuals and updated localization files to include new figure descriptions.
This commit is contained in:
2026-06-16 13:50:58 +08:00
parent b774e22352
commit a4454a54a4
57 changed files with 981 additions and 1161 deletions

View File

@@ -1,35 +1,25 @@
{
"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.",
"createTitle": "Run reconcile scan",
"createHint": "Scans transfer orders in the selected period, compares lottery wallet ledgers, and checks main-site idempotent records when the wallet API is configured.",
"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…",
"createTask": "Start scan",
"submitting": "Scanning…",
"loadFailed": "Failed to load",
"loadItemsFailed": "Failed to load details",
"periodRequired": "Enter both reconcile start and end dates",
"periodInvalid": "Invalid date range",
"periodOrderInvalid": "End time must be later than or equal to start time",
"confirmCreateTitle": "Create reconcile job?",
"confirmCreateDescription": "Start a manual reconcile for the selected date range{{playerHint}}.",
"confirmCreateTitle": "Start reconcile scan?",
"confirmCreateDescription": "Scan transfer orders in the selected date range{{playerHint}} and generate discrepancy items.",
"confirmCreatePlayer": " for the selected player",
"confirmCreateAllPlayers": " (all players)",
"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}}.",
"createSummaryPending": "Choose a complete reconcile date range before creating a job.",
"confirmCreateAllPlayers": " for all players",
"createSuccess": "Scan finished: {{count}} issue(s) found",
"createSuccessEmpty": "Scan finished: no issues found",
"createFailed": "Scan failed",
"noCreatePermission": "Current account cannot start reconcile scans.",
"jobsTitle": "Reconcile jobs",
"jobsDesc": "Use the action on the right to open discrepancy details and paginated results.",
"refresh": "Refresh",
"jobNo": "Job no.",
"type": "Type",
@@ -41,29 +31,21 @@
"finishedAt": "Finished at",
"createdAt": "Created at",
"operate": "Action",
"view": "View",
"viewDetails": "View discrepancy details",
"detailsTitle": "Discrepancy details",
"sideARef": "Lottery ref",
"sideBRef": "Main site ref",
"differenceAmount": "Difference (cent)",
"transferNo": "Transfer no.",
"walletTxnNo": "Lottery wallet txn",
"mainSiteRef": "Main-site ref",
"mainSiteCheck": "Main-site check",
"differenceAmount": "Difference (minor)",
"itemResult": "Check result",
"diagnosis": "Issue summary",
"suggestedAction": "Suggested action",
"processingStatus": "Processing status",
"quickAccess": "Quick access",
"actions": "Actions",
"openTransferOrder": "Open transfer order",
"openWalletTxn": "Open wallet ledger",
"detectedAt": "Detected at",
"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",
@@ -78,26 +60,13 @@
"itemUnexpectedWalletTxn": "Unexpected wallet ledger",
"itemMissingRefund": "Missing refund ledger",
"itemMissingReversal": "Missing reversal ledger",
"itemMainSiteRecordMissing": "Missing on main site",
"itemMainSiteFailed": "Failed on main site",
"itemResolved": "Resolved",
"itemUnresolved": "Unresolved",
"diagnosisStaleProcessing": "The transfer order has stayed in processing for too long and the system has no final success or failure result.",
"diagnosisPendingReconcile": "The transfer order is marked for manual reconciliation and needs a human-confirmed final result.",
"diagnosisMissingWalletTxn": "The transfer order status moved forward, but the matching lottery wallet ledger entry is missing.",
"diagnosisUnexpectedWalletTxn": "The lottery side contains extra wallet ledger entries that do not match the current transfer status.",
"diagnosisMissingRefund": "The transfer-out failed, but the expected refund ledger entry was not found.",
"diagnosisMissingReversal": "The transfer order was reversed, but the matching reversal ledger entry is missing on the lottery side.",
"diagnosisMatched": "This record is already balanced and needs no further action.",
"diagnosisPendingCheck": "This record still needs manual verification.",
"actionStaleProcessing": "Check whether the main site already debited successfully, then decide whether the lottery side needs a reversal or a compensating entry.",
"actionPendingReconcile": "Open the transfer order first, confirm the main-site outcome, then decide whether to credit, reverse, or close the case.",
"actionMissingWalletTxn": "Open both the transfer order and wallet ledger to confirm whether a compensating wallet entry should be added.",
"actionUnexpectedWalletTxn": "Check for duplicate posting or an incorrect compensation entry, and reverse it if needed.",
"actionMissingRefund": "Confirm whether the main site already refunded the player, then add the lottery-side refund entry or reverse the order.",
"actionMissingReversal": "Confirm the reversal result externally, then add the matching lottery-side reversal ledger entry.",
"actionMatched": "No action needed.",
"actionPendingCheck": "Continue verification with the transfer order and wallet ledger.",
"actionResolved": "This exception has already been handled. Current transfer-order status: {{status}}. Open the transfer order if you want to verify the result.",
"transferStatusSuccess": "Successful",
"transferStatusReversed": "Reversed",
"transferStatusManual": "Case closed"
"mainSiteMatched": "Main site OK",
"mainSiteNotFound": "Not on main site",
"mainSiteFailed": "Main site failed",
"mainSiteUnavailable": "Main site unavailable",
"mainSiteSkipped": "Not checked"
}