feat(integration): 新增 site_code 支持并增强玩家与注单管理界面

在后台玩家与注单相关 API 中新增 site_code 参数,支持按站点筛选数据。
更新 PlayersConsole 与 PlayerTicketsConsole UI 组件,新增站点选择筛选功能。
增强国际化支持,在英文与中文语言包中新增站点相关文案。
优化配置中心页面,新增跳转至集成站点管理的入口,提升后台导航体验。
This commit is contained in:
2026-05-27 13:36:44 +08:00
parent e87229c1b7
commit 5eabbcf0ee
17 changed files with 1126 additions and 3 deletions

View File

@@ -0,0 +1,66 @@
import { adminRequest } from "@/lib/admin-http";
import { API_V1_PREFIX } from "./paths";
import type {
AdminIntegrationSiteConnectivityResult,
AdminIntegrationSiteCreatePayload,
AdminIntegrationSiteDetail,
AdminIntegrationSiteListData,
AdminIntegrationSiteParameterSheet,
AdminIntegrationSiteUpdatePayload,
AdminIntegrationSiteWithSecrets,
} from "@/types/api/admin-integration-site";
const A = `${API_V1_PREFIX}/admin`;
export async function getAdminIntegrationSites(): Promise<AdminIntegrationSiteListData> {
return adminRequest.get<AdminIntegrationSiteListData>(`${A}/integration-sites`);
}
export async function getAdminIntegrationSite(id: number): Promise<AdminIntegrationSiteDetail> {
return adminRequest.get<AdminIntegrationSiteDetail>(`${A}/integration-sites/${id}`);
}
export async function postAdminIntegrationSite(
body: AdminIntegrationSiteCreatePayload,
): Promise<AdminIntegrationSiteWithSecrets> {
return adminRequest.post<AdminIntegrationSiteWithSecrets>(`${A}/integration-sites`, body);
}
export async function putAdminIntegrationSite(
id: number,
body: AdminIntegrationSiteUpdatePayload,
): Promise<AdminIntegrationSiteDetail> {
return adminRequest.put<AdminIntegrationSiteDetail>(`${A}/integration-sites/${id}`, body);
}
export async function postAdminIntegrationSiteRotateSecrets(
id: number,
): Promise<AdminIntegrationSiteWithSecrets> {
return adminRequest.post<AdminIntegrationSiteWithSecrets>(
`${A}/integration-sites/${id}/rotate-secrets`,
{},
);
}
export async function postAdminIntegrationSiteConnectivityTest(
id: number,
body: { site_player_id: string; currency_code?: string },
): Promise<AdminIntegrationSiteConnectivityResult> {
return adminRequest.post<AdminIntegrationSiteConnectivityResult>(
`${A}/integration-sites/${id}/connectivity-test`,
body,
);
}
export async function getAdminIntegrationSiteExport(
id: number,
format: "json" | "csv" = "json",
): Promise<AdminIntegrationSiteParameterSheet> {
return adminRequest.get<AdminIntegrationSiteParameterSheet>(
`${A}/integration-sites/${id}/export`,
{ params: { format } },
);
}

View File

@@ -17,6 +17,7 @@ export async function getAdminPlayers(params?: {
per_page?: number;
keyword?: string;
status?: number;
site_code?: string;
}): Promise<AdminPlayerListData> {
return adminRequest.get<AdminPlayerListData>(`${A}/players`, { params });
}

View File

@@ -11,6 +11,7 @@ export type TicketItemsListQuery = {
per_page?: number;
player_id?: number;
player_account?: string;
site_code?: string;
draw_no?: string;
status?: string[];
number?: string;