refactor: 使用管理员日期时间格式化器更新请求和完成时间的显示

This commit is contained in:
2026-05-09 15:32:04 +08:00
parent 4ace3151e6
commit f19cdb48ad
3 changed files with 76 additions and 13 deletions

View File

@@ -24,6 +24,7 @@ import {
TableRow,
} from "@/components/ui/table";
import { Tabs, TabsContent, TabsList, TabsTrigger } from "@/components/ui/tabs";
import { useAdminDateTimeFormatter } from "@/hooks/use-admin-datetime-formatter";
import { LotteryApiBizError } from "@/types/api/errors";
import type {
AdminPlayerWalletsData,
@@ -36,11 +37,6 @@ function formatMinorUnits(minor: number, currencyCode: string): string {
return `${major.toFixed(2)} ${currencyCode}`;
}
function formatTs(iso: string | null | undefined): string {
if (!iso) return "—";
return iso.replace("T", " ").slice(0, 19);
}
/** 长单号/流水号:单行截断;点击复制全文,悬停可看全文 */
function CellMonoId({
value,
@@ -164,6 +160,7 @@ export function WalletConsole(): React.ReactElement {
}
function TransferOrdersPanel(): React.ReactElement {
const formatTs = useAdminDateTimeFormatter();
const [data, setData] = useState<AdminTransferOrderListData | null>(null);
const [loading, setLoading] = useState(true);
const [err, setErr] = useState<string | null>(null);
@@ -324,8 +321,12 @@ function TransferOrdersPanel(): React.ReactElement {
<TableHead className="w-14"></TableHead>
<TableHead className="whitespace-nowrap"></TableHead>
<TableHead className="whitespace-nowrap"></TableHead>
<TableHead className="whitespace-nowrap"></TableHead>
<TableHead className="whitespace-nowrap"></TableHead>
<TableHead className="min-w-0 whitespace-normal leading-tight">
</TableHead>
<TableHead className="min-w-0 whitespace-normal leading-tight">
</TableHead>
<TableHead className="w-24"></TableHead>
</TableRow>
</TableHeader>
@@ -359,10 +360,10 @@ function TransferOrdersPanel(): React.ReactElement {
<TableCell>
<Badge variant={statusBadgeVariant(row.status)}>{row.status}</Badge>
</TableCell>
<TableCell className="whitespace-nowrap text-xs text-muted-foreground">
<TableCell className="min-w-0 whitespace-normal font-mono text-[11px] leading-snug text-muted-foreground">
{formatTs(row.created_at)}
</TableCell>
<TableCell className="whitespace-nowrap text-xs text-muted-foreground">
<TableCell className="min-w-0 whitespace-normal font-mono text-[11px] leading-snug text-muted-foreground">
{formatTs(row.finished_at)}
</TableCell>
<TableCell className="text-xs text-muted-foreground"></TableCell>
@@ -406,6 +407,7 @@ function TransferOrdersPanel(): React.ReactElement {
}
function WalletTxnsPanel(): React.ReactElement {
const formatTs = useAdminDateTimeFormatter();
const [data, setData] = useState<AdminWalletTxnListData | null>(null);
const [loading, setLoading] = useState(true);
const [err, setErr] = useState<string | null>(null);
@@ -576,8 +578,12 @@ function WalletTxnsPanel(): React.ReactElement {
<TableHead className="whitespace-nowrap"></TableHead>
<TableHead className="whitespace-nowrap"></TableHead>
<TableHead className="whitespace-nowrap"></TableHead>
<TableHead className="whitespace-nowrap"></TableHead>
<TableHead className="whitespace-nowrap"></TableHead>
<TableHead className="min-w-0 whitespace-normal leading-tight">
</TableHead>
<TableHead className="min-w-0 whitespace-normal leading-tight">
</TableHead>
<TableHead className="w-24"></TableHead>
</TableRow>
</TableHeader>
@@ -611,10 +617,10 @@ function WalletTxnsPanel(): React.ReactElement {
<TableCell>
<Badge variant={statusBadgeVariant(row.status)}>{row.status}</Badge>
</TableCell>
<TableCell className="whitespace-nowrap text-xs text-muted-foreground">
<TableCell className="min-w-0 whitespace-normal font-mono text-[11px] leading-snug text-muted-foreground">
{formatTs(row.created_at)}
</TableCell>
<TableCell className="whitespace-nowrap text-xs text-muted-foreground">
<TableCell className="min-w-0 whitespace-normal font-mono text-[11px] leading-snug text-muted-foreground">
{formatTs(row.updated_at)}
</TableCell>
<TableCell className="text-xs text-muted-foreground"></TableCell>