feat(dashboard, i18n): 增强玩家身份信息展示并完善多语言支持

更新仪表盘相关组件,采用新的玩家身份信息字段(Player Identity Columns),提升数据展示的清晰度与可读性。
优化奖池记录(Jackpot Records)中的玩家信息展示方式,便于快速识别玩家身份。
改进结算明细(Settlement Details)页面的玩家身份展示,提升数据追踪与核对效率。
更新玩家注单(Player Tickets)与钱包交易(Wallet Transactions)相关界面,统一使用新的玩家身份信息展示逻辑。
在英文、尼泊尔语与中文语言包中新增玩家相关术语翻译,增强多语言支持。
提升系统整体用户体验,确保各模块中的玩家信息展示更加一致、直观。
This commit is contained in:
2026-06-01 17:25:22 +08:00
parent 2716591164
commit a4e7a2d228
18 changed files with 310 additions and 98 deletions

View File

@@ -15,6 +15,7 @@ import {
} from "@/api/admin-wallet";
import { AdminDateRangeField } from "@/components/admin/admin-date-range-field";
import { AdminListPaginationFooter } from "@/components/admin/admin-list-pagination-footer";
import { AdminPlayerIdentityCells, AdminPlayerIdentityHeads } from "@/components/admin/admin-player-identity-columns";
import { AdminRowActionsMenu } from "@/components/admin/admin-row-actions-menu";
import { AdminTableExportButton } from "@/components/admin/admin-table-export-button";
import { AdminStatusBadge } from "@/components/admin/admin-status-badge";
@@ -542,7 +543,7 @@ export function TransferOrdersPanel(): React.ReactElement {
<TableRow>
<TableHead className="min-w-0 max-w-[14rem]">{t("localTransferNo")}</TableHead>
<TableHead className="min-w-0 max-w-[12rem]">{t("externalRefNo")}</TableHead>
<TableHead className="whitespace-nowrap">{t("playerAccount")}</TableHead>
<AdminPlayerIdentityHeads />
<TableHead className="w-14">{t("direction")}</TableHead>
<TableHead className="whitespace-nowrap">{t("amount")}</TableHead>
<TableHead className="whitespace-nowrap">{t("status")}</TableHead>
@@ -555,7 +556,7 @@ export function TransferOrdersPanel(): React.ReactElement {
<TableBody>
{data.items.length === 0 ? (
<TableRow>
<TableCell colSpan={10} className="text-muted-foreground">
<TableCell colSpan={12} className="text-muted-foreground">
{t("states.noData", { ns: "common" })}
</TableCell>
</TableRow>
@@ -568,13 +569,7 @@ export function TransferOrdersPanel(): React.ReactElement {
<TableCell className="min-w-0 max-w-[12rem] align-top whitespace-normal">
<CellMonoId value={row.external_ref_no} copyHint={t("copyExternalRefNo")} />
</TableCell>
<TableCell className="text-xs">
#{row.player_id}
<br />
<span className="text-muted-foreground">
{row.site_player_id ?? row.username ?? "—"}
</span>
</TableCell>
<AdminPlayerIdentityCells row={row} />
<TableCell>{row.direction}</TableCell>
<TableCell className="tabular-nums">
{formatAdminMinorUnits(row.amount, row.currency_code)}
@@ -852,7 +847,7 @@ export function WalletTxnsPanel(): React.ReactElement {
<TableRow>
<TableHead className="min-w-0 max-w-[14rem]">{t("txnNo")}</TableHead>
<TableHead className="min-w-0 max-w-[12rem]">{t("externalRefNo")}</TableHead>
<TableHead className="whitespace-nowrap">{t("playerAccount")}</TableHead>
<AdminPlayerIdentityHeads />
<TableHead className="whitespace-nowrap">{t("type")}</TableHead>
<TableHead className="whitespace-nowrap">{t("amount")}</TableHead>
<TableHead className="whitespace-nowrap">{t("status")}</TableHead>
@@ -863,7 +858,7 @@ export function WalletTxnsPanel(): React.ReactElement {
<TableBody>
{data.items.length === 0 ? (
<TableRow>
<TableCell colSpan={8} className="text-muted-foreground">
<TableCell colSpan={10} className="text-muted-foreground">
{t("states.noData", { ns: "common" })}
</TableCell>
</TableRow>
@@ -876,13 +871,7 @@ export function WalletTxnsPanel(): React.ReactElement {
<TableCell className="min-w-0 max-w-[12rem] align-top whitespace-normal">
<CellMonoId value={row.external_ref_no} copyHint={t("copyExternalTxnRefNo")} />
</TableCell>
<TableCell className="min-w-0 text-xs">
#{row.player_id}
<br />
<span className="text-muted-foreground">
{row.site_player_id ?? row.username ?? "—"}
</span>
</TableCell>
<AdminPlayerIdentityCells row={row} />
<TableCell className="min-w-0 text-xs">{row.biz_type}</TableCell>
<TableCell className="tabular-nums text-xs">
{row.amount} ({row.direction === 1 ? t("in") : t("out")})