refactor: 更新管理端页面元数据,统一国际化支持,移除冗余代码

This commit is contained in:
2026-05-21 17:27:52 +08:00
parent 26feed3c4f
commit e8a5507411
77 changed files with 1669 additions and 732 deletions

View File

@@ -38,6 +38,7 @@ import {
} from "@/components/ui/table";
import { useAdminCurrencyCatalog } from "@/hooks/use-admin-currency-catalog";
import { useAdminDateTimeFormatter } from "@/hooks/use-admin-datetime-formatter";
import { useExportLabels } from "@/hooks/use-export-labels";
import { formatAdminMinorUnits } from "@/lib/money";
import { LotteryApiBizError } from "@/types/api/errors";
import type {
@@ -214,6 +215,7 @@ function canManuallyProcessTransferOrder(row: {
export function TransferOrdersPanel(): React.ReactElement {
const { t } = useTranslation(["wallet", "common"]);
const exportLabels = useExportLabels("walletTransferOrders");
useAdminCurrencyCatalog();
const formatTs = useAdminDateTimeFormatter();
const [data, setData] = useState<AdminTransferOrderListData | null>(null);
@@ -401,8 +403,8 @@ export function TransferOrdersPanel(): React.ReactElement {
<div className="flex flex-wrap gap-2">
<AdminTableExportButton
tableId="wallet-transfer-orders-table"
filename="钱包转账订单"
sheetName="转账订单"
filename={exportLabels.filename}
sheetName={exportLabels.sheetName}
/>
<Button type="button" size="sm" onClick={() => runSearch()}>
{t("search")}
@@ -535,6 +537,7 @@ export function TransferOrdersPanel(): React.ReactElement {
export function WalletTxnsPanel(): React.ReactElement {
const { t } = useTranslation(["wallet", "common"]);
const exportLabels = useExportLabels("walletTransactions");
const formatTs = useAdminDateTimeFormatter();
const [data, setData] = useState<AdminWalletTxnListData | null>(null);
const [loading, setLoading] = useState(true);
@@ -725,8 +728,8 @@ export function WalletTxnsPanel(): React.ReactElement {
<div className="flex flex-wrap gap-2">
<AdminTableExportButton
tableId="wallet-transactions-table"
filename="钱包流水"
sheetName="钱包流水"
filename={exportLabels.filename}
sheetName={exportLabels.sheetName}
/>
<Button type="button" size="sm" onClick={() => runSearch()}>
{t("search")}
@@ -824,6 +827,7 @@ export function WalletTxnsPanel(): React.ReactElement {
export function PlayerWalletPanel(): React.ReactElement {
const { t } = useTranslation(["wallet", "common"]);
const exportLabels = useExportLabels("playerWallets");
useAdminCurrencyCatalog();
const [playerId, setPlayerId] = useState("");
const [result, setResult] = useState<AdminPlayerWalletsData | null>(null);
@@ -870,8 +874,8 @@ export function PlayerWalletPanel(): React.ReactElement {
</div>
<AdminTableExportButton
tableId="player-wallet-table"
filename="玩家钱包"
sheetName="玩家钱包"
filename={exportLabels.filename}
sheetName={exportLabels.sheetName}
/>
<Button type="button" onClick={() => void query()} disabled={loading}>
{loading ? t("querying") : t("query")}