feat(integration): 为集成站点与开奖管理新增 AdminPermissionGate 权限控制

使用 AdminPermissionGate 包裹集成站点与开奖相关组件,根据权限进行访问控制。
新增集成管理与开奖管理相关权限常量。
更新相关 UI 组件以适配权限校验逻辑,提升系统安全性与用户体验。
增强国际化支持,在英文、尼泊尔语与中文语言包中新增集成相关文案。
This commit is contained in:
2026-05-27 16:51:48 +08:00
parent 5eabbcf0ee
commit 788c7998eb
24 changed files with 276 additions and 64 deletions

View File

@@ -73,6 +73,8 @@ import {
} from "@/components/ui/table";
import { useAdminCurrencyCatalog } from "@/hooks/use-admin-currency-catalog";
import { useAdminDateTimeFormatter } from "@/hooks/use-admin-datetime-formatter";
import { formatAdminInstant } from "@/lib/admin-datetime";
import { getAdminRequestLocale } from "@/lib/admin-locale";
import { cn } from "@/lib/utils";
import { formatAdminMinorUnits } from "@/lib/money";
import { LotteryApiBizError } from "@/types/api/errors";
@@ -249,6 +251,10 @@ function normalizeFilenamePart(value: string): string {
return value.trim().replace(/[\\/:*?"<>|\s]+/g, "-").replace(/-+/g, "-").replace(/^-|-$/g, "");
}
function formatExportInstant(iso: string | null | undefined): ExportCell {
return formatAdminInstant(iso, { locale: getAdminRequestLocale() });
}
function toCsvValue(value: ExportCell): string {
if (value == null) {
return "";
@@ -369,7 +375,7 @@ function drawRowsFromSummary(summary: AdminDrawFinanceSummaryData): ExportRow[]
total_win_count: batch.total_win_count,
total_payout_amount: batch.total_payout_amount,
total_jackpot_payout_amount: batch.total_jackpot_payout_amount,
finished_at: batch.finished_at,
finished_at: formatExportInstant(batch.finished_at),
})),
];
}
@@ -575,8 +581,8 @@ export function ReportsConsole() {
status: item.status,
external_ref_no: item.external_ref_no,
fail_reason: item.fail_reason,
created_at: item.created_at,
finished_at: item.finished_at,
created_at: formatExportInstant(item.created_at),
finished_at: formatExportInstant(item.finished_at),
}));
setResult({
key: "player_transfer",
@@ -625,7 +631,7 @@ export function ReportsConsole() {
ticket_no: item.ticket_no,
play_code: item.play_code,
player_id: item.player_id,
created_at: item.created_at,
created_at: formatExportInstant(item.created_at),
})),
];
setResult({
@@ -737,7 +743,7 @@ export function ReportsConsole() {
target_id: item.target_id,
ip: item.ip,
user_agent: item.user_agent,
created_at: item.created_at,
created_at: formatExportInstant(item.created_at),
}));
setResult({
key: "admin_audit",