feat: 对接赛事列表相关接口文档 更新测试数据
This commit is contained in:
@@ -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);
|
||||
}
|
||||
@@ -0,0 +1,199 @@
|
||||
/**
|
||||
* 赛事管理 — 类型定义
|
||||
* 对应 OpenAPI: /admin/manager/tm/page
|
||||
*/
|
||||
|
||||
/** 赛事列表项 */
|
||||
export interface TournamentAdminVO {
|
||||
/** 赛事ID */
|
||||
id: string;
|
||||
/** 赛事名称 */
|
||||
name: string;
|
||||
/** 赛事开始时间 */
|
||||
startTimeBegin: string;
|
||||
/** 赛事结束时间 */
|
||||
startTimeEnd: string;
|
||||
/** 赛事省市区,场地区划名称 */
|
||||
venueArea: string;
|
||||
/** 赛事地点名称 */
|
||||
venue: string;
|
||||
/** 是否公开;0=非公开,1=公开 */
|
||||
isPublic: string;
|
||||
/** 是否要求提供证件图片;0=无需,1=需要 */
|
||||
isRequireIdCardImg: string;
|
||||
/** 是否要求提供证件号码;0=无需,1=需要 */
|
||||
isRequireIdCardNo: string;
|
||||
/** 创建人昵称 */
|
||||
createNickname: string;
|
||||
/** 创建人手机号 */
|
||||
createPhone: string;
|
||||
/** 创建时间 */
|
||||
createTime: string;
|
||||
/**
|
||||
* 状态
|
||||
* 优先级:del_flag==1 → 3(已删除);online==0 → 4(已下架);否则取 status
|
||||
* 0=报名中,1=进行中,2=已结束,3=已删除,4=已下架
|
||||
*/
|
||||
status: string;
|
||||
/** 报名人数 */
|
||||
signupCount: string;
|
||||
/** 退赛人数 */
|
||||
dropoutCount: string;
|
||||
/** 赛事规程 */
|
||||
rulesDescr: string;
|
||||
/** 赛事规程图片 */
|
||||
rulesDescrImg: string;
|
||||
/** 赛事规程图片数组 */
|
||||
rulesDescrImgList: string[];
|
||||
}
|
||||
|
||||
/** 赛事列表查询参数 */
|
||||
export interface EventListQueryParams {
|
||||
page?: string;
|
||||
limit?: string;
|
||||
/** 创建时间开始 yyyy-MM-dd */
|
||||
createDate?: string;
|
||||
/** 创建时间结束 yyyy-MM-dd */
|
||||
createDateEnd?: string;
|
||||
/** 赛事时间开始 yyyy-MM-dd */
|
||||
startDate?: string;
|
||||
/** 赛事时间结束 yyyy-MM-dd */
|
||||
startDateEnd?: string;
|
||||
/** 赛事名称 */
|
||||
name?: string;
|
||||
/** 创建人昵称或手机号 */
|
||||
createName?: string;
|
||||
/**
|
||||
* 赛事状态
|
||||
* 不传=全部、0=报名中,1=进行中,2=已结束,3=已删除,4=已下架
|
||||
*/
|
||||
status?: string;
|
||||
/** 市级别城市名称 */
|
||||
areaName?: string;
|
||||
/** 是否公开;0=非公开,1=公开 */
|
||||
isPublic?: string;
|
||||
/** 是否要求提供证件图片;0=无需,1=需要 */
|
||||
idCardImg?: string;
|
||||
/** 是否要求提供证件号码;0=无需,1=需要 */
|
||||
idCardNo?: string;
|
||||
}
|
||||
|
||||
/** 分页数据 */
|
||||
export interface PageData<T> {
|
||||
total: number;
|
||||
list: T[];
|
||||
}
|
||||
|
||||
/** 统一响应包裹 */
|
||||
export interface ApiResult<T> {
|
||||
/** 编码:200表示成功,其他值表示失败 */
|
||||
code: number;
|
||||
/** 消息内容 */
|
||||
msg: string;
|
||||
/** 响应数据 */
|
||||
data: T;
|
||||
}
|
||||
|
||||
// ============================================================
|
||||
// 赛事详情(对应 /manager/tm/info)
|
||||
// ============================================================
|
||||
|
||||
/** 组别信息 */
|
||||
export interface InnerCategoryVO {
|
||||
/** 组别ID */
|
||||
id: string;
|
||||
/** 组别名称 */
|
||||
name: string;
|
||||
/** 组别类型;1=单打,2=双打 */
|
||||
type: string;
|
||||
}
|
||||
|
||||
/** 赛事详情 */
|
||||
export interface TournamentAdminInfoVO {
|
||||
/** 赛事名称 */
|
||||
name: string;
|
||||
/** 赛事开始时间 */
|
||||
startTimeBegin: string;
|
||||
/** 赛事结束时间 */
|
||||
startTimeEnd: string;
|
||||
/** 赛事说明 */
|
||||
descr: string;
|
||||
/** 报名开始时间 */
|
||||
signupTimeBegin: string;
|
||||
/** 报名结束时间 */
|
||||
signupTimeEnd: string;
|
||||
/** 赛事省市区 */
|
||||
venueArea: string;
|
||||
/** 赛事地点名称 */
|
||||
venue: string;
|
||||
/** 场地号 */
|
||||
venueNo: string;
|
||||
/** 是否公开;0=非公开,1=公开 */
|
||||
isPublic: string;
|
||||
/** 是否要求提供证件图片;0=无需,1=需要 */
|
||||
isRequireIdCardImg: string;
|
||||
/** 是否要求提供证件号码;0=无需,1=需要 */
|
||||
isRequireIdCardNo: string;
|
||||
/** 创建时间 */
|
||||
createTime: string;
|
||||
/** 创建人昵称 */
|
||||
createNickname: string;
|
||||
/** 报名人数 */
|
||||
signupCount: string;
|
||||
/** 退赛人数 */
|
||||
dropoutCount: string;
|
||||
/** 允许报名最大人数 */
|
||||
dtotalLimit: string;
|
||||
/** 总对阵数 */
|
||||
matchTotalCount: string;
|
||||
/** 已完成对阵数 */
|
||||
matchCount: string;
|
||||
/** 赛事封面url */
|
||||
img: string;
|
||||
/** 活动公告 */
|
||||
notice: string;
|
||||
/** 组别列表,创建时间倒序 */
|
||||
categoryList: InnerCategoryVO[];
|
||||
/** 分组名称列表,格式 "小组名称(淘汰赛或循环赛)" */
|
||||
groupInfoList: string[];
|
||||
}
|
||||
|
||||
// ============================================================
|
||||
// 人员列表(对应 /manager/tm/info/signupPage)
|
||||
// ============================================================
|
||||
|
||||
/** 报名人员 */
|
||||
export interface TournamentAdminInfoSignupVO {
|
||||
/** 选手名称 */
|
||||
realName: string;
|
||||
/** 选手性别;1=男,2=女 */
|
||||
gender: string;
|
||||
/** 选手手机号 */
|
||||
phone: string;
|
||||
/** 选手身份证 */
|
||||
idCard: string;
|
||||
/** 选手身份证图片 */
|
||||
idCardImg: string;
|
||||
/** 选手身份证图片列表 */
|
||||
idCardImgList: string[];
|
||||
}
|
||||
|
||||
/** 人员列表查询参数 */
|
||||
export interface SignupListQueryParams {
|
||||
page: string;
|
||||
limit: string;
|
||||
/** 组别ID(必填) */
|
||||
categoryId: string;
|
||||
}
|
||||
|
||||
// ============================================================
|
||||
// 上下架(对应 /manager/tm/online)
|
||||
// ============================================================
|
||||
|
||||
/** 上下架请求参数 */
|
||||
export interface ToggleOnlineParams {
|
||||
/** 赛事ID */
|
||||
id: string;
|
||||
/** 0=下架,1=上架 */
|
||||
online: string;
|
||||
}
|
||||
Reference in New Issue
Block a user