refactor: 重构奖池配置页面,移除冗余组件,优化加载体验与国际化支持

This commit is contained in:
2026-05-21 16:46:48 +08:00
parent 3ce84af39c
commit 26feed3c4f
29 changed files with 393 additions and 213 deletions

View File

@@ -14,6 +14,7 @@ import {
postAdminRejectSettlementBatch,
} from "@/api/admin-settlement";
import { AdminListPaginationFooter } from "@/components/admin/admin-list-pagination-footer";
import { AdminStatusBadge } from "@/components/admin/admin-status-badge";
import { ModuleScaffold } from "@/components/admin/module-scaffold";
import { Button, buttonVariants } from "@/components/ui/button";
import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card";
@@ -208,13 +209,21 @@ export function SettlementBatchDetailsConsole({ batchId }: Props) {
</p>
</CardHeader>
<CardContent className="grid gap-2 text-sm sm:grid-cols-2">
<p>
<span className="text-muted-foreground">{t("settlementStatus")}</span>{" "}
<span className="font-mono">{settlementStatusText(summary.status, t)}</span>
<p className="flex flex-wrap items-center gap-2">
<span className="text-muted-foreground">{t("settlementStatus")}</span>
<AdminStatusBadge status={summary.status}>
{settlementStatusText(summary.status, t)}
</AdminStatusBadge>
</p>
<p>
<span className="text-muted-foreground">{t("reviewState")}</span>{" "}
<span className="font-mono">{settlementReviewStatusText(summary.review_status, t)}</span>
<p className="flex flex-wrap items-center gap-2">
<span className="text-muted-foreground">{t("reviewState")}</span>
{summary.review_status ? (
<AdminStatusBadge status={summary.review_status}>
{settlementReviewStatusText(summary.review_status, t)}
</AdminStatusBadge>
) : (
<span></span>
)}
</p>
<p>
<span className="text-muted-foreground">{t("ticketTotal")}</span>{" "}

View File

@@ -12,6 +12,7 @@ import {
postAdminRejectSettlementBatch,
} from "@/api/admin-settlement";
import { AdminListPaginationFooter } from "@/components/admin/admin-list-pagination-footer";
import { AdminStatusBadge } from "@/components/admin/admin-status-badge";
import { AdminTableExportButton } from "@/components/admin/admin-table-export-button";
import { ModuleScaffold } from "@/components/admin/module-scaffold";
import { Button, buttonVariants } from "@/components/ui/button";
@@ -270,23 +271,19 @@ export function SettlementBatchesConsole() {
>
{formatAdminMinorUnits(row.platform_profit, row.currency_code ?? "NPR")}
</TableCell>
<TableCell className="text-xs text-muted-foreground">
{settlementReviewStatusText(row.review_status, t)}
<TableCell>
{row.review_status ? (
<AdminStatusBadge status={row.review_status}>
{settlementReviewStatusText(row.review_status, t)}
</AdminStatusBadge>
) : (
<span className="text-sm text-muted-foreground"></span>
)}
</TableCell>
<TableCell>
<span
className={cn(
"rounded px-1.5 py-0.5 text-xs font-medium",
["completed", "paid"].includes(row.status) && "bg-emerald-500/15 text-emerald-800",
row.status === "running" && "bg-amber-500/15 text-amber-900",
row.status === "pending_review" && "bg-blue-500/15 text-blue-800",
row.status === "approved" && "bg-indigo-500/15 text-indigo-800",
row.status === "rejected" && "bg-muted text-muted-foreground",
row.status === "failed" && "bg-destructive/15 text-destructive",
)}
>
<AdminStatusBadge status={row.status}>
{settlementStatusText(row.status, t)}
</span>
</AdminStatusBadge>
</TableCell>
<TableCell>
<div className="flex flex-wrap justify-end gap-1.5">