feat: 对接赛事列表相关接口文档 更新测试数据

This commit is contained in:
ZhuRui
2026-07-29 16:49:33 +08:00
parent bf09234c8c
commit 444b6f60a5
12 changed files with 1146 additions and 343 deletions
+100
View File
@@ -0,0 +1,100 @@
/**
* 赛事管理 API
* 注意:/admin 前缀已通过 VITE_API_BASE_URL 统一注入(见 .env.*),此文件中只写业务路径。
*/
import { get, post } from '@/utils/request';
import { USE_MOCK, MOCK_DELAY } from '@/config/mock';
import { MOCK_EVENT_DETAIL } from '@/config/mock/eventDetail';
import { buildMockEventListPage } from '@/config/mock/eventList';
import { buildMockSignupListPage } from '@/config/mock/eventSignup';
import type {
EventListQueryParams,
SignupListQueryParams,
ToggleOnlineParams,
ApiResult,
PageData,
TournamentAdminVO,
TournamentAdminInfoVO,
TournamentAdminInfoSignupVO,
} from './types';
export type {
TournamentAdminVO,
TournamentAdminInfoVO,
TournamentAdminInfoSignupVO,
InnerCategoryVO,
EventListQueryParams,
SignupListQueryParams,
ToggleOnlineParams,
PageData,
ApiResult,
} from './types';
/** 模拟延时 */
const delay = (ms: number) => new Promise<void>((resolve) => setTimeout(resolve, ms));
/**
* 赛事列表 - 列表分页
* GET /admin/manager/tm/page → /manager/tm/page
*/
export async function getEventList(
params: EventListQueryParams,
): Promise<ApiResult<PageData<TournamentAdminVO>>> {
if (USE_MOCK) {
await delay(MOCK_DELAY);
const page = Number(params.page) || 1;
const limit = Number(params.limit) || 10;
return {
code: 200,
msg: 'success',
data: buildMockEventListPage(page, limit),
};
}
return get('/manager/tm/page', params as Record<string, any>);
}
/**
* 赛事列表 - 赛事详情
* GET /admin/manager/tm/info → /manager/tm/info
*/
export async function getEventDetail(id: string): Promise<ApiResult<TournamentAdminInfoVO>> {
if (USE_MOCK) {
await delay(MOCK_DELAY);
return {
code: 200,
msg: 'success',
data: { ...MOCK_EVENT_DETAIL },
};
}
return get('/manager/tm/info', { id });
}
/**
* 赛事列表 - 赛事详情 - 人员列表
* GET /admin/manager/tm/info/signupPage → /manager/tm/info/signupPage
*/
export async function getSignupList(
params: SignupListQueryParams,
): Promise<ApiResult<PageData<TournamentAdminInfoSignupVO>>> {
if (USE_MOCK) {
await delay(MOCK_DELAY);
return {
code: 200,
msg: 'success',
data: buildMockSignupListPage(params),
};
}
return get('/manager/tm/info/signupPage', params as Record<string, any>);
}
/**
* 赛事上架 / 下架
* POST /admin/manager/tm/online → /manager/tm/online
* @param params.id 赛事ID
* @param params.online 0=下架,1=上架
*/
export function toggleEventOnline(
params: ToggleOnlineParams,
): Promise<ApiResult<Record<string, never>>> {
return post('/manager/tm/online', params);
}