feat(competition): 实现比赛创建功能并集成后端API

- 新增比赛创建页面,包含基本信息、组别管理和题目配置三个步骤
- 添加 OSS 图片上传组件,支持海报上传到阿里云OSS
- 集成后端API:获取房间列表、创建活动、创建队伍和创建题目
- 优化表单数据绑定和验证逻辑,使用防抖减少频繁更新
- 修复组别管理Excel导入的数据填充问题
- 更新类型定义,添加CommonResponse和比赛相关接口类型
This commit is contained in:
2026-01-29 18:03:13 +08:00
parent 82b1dd7ebe
commit beaaee72b4
13 changed files with 493 additions and 147 deletions

View File

@ -0,0 +1,42 @@
import { request } from '../request'
/** 房间相关接口 */
export function fetchGetRoomList() {
return request<App.Service.Response<Api.Competition.Room[]>>({
url: '/Base/ActivityMain/GetActivity_RoomList',
method: 'get',
})
}
// 现在服务端把活动新建弄成了三个接口:
// 1. 创建活动
// 2. 创建活动房间
// 3. 创建活动队伍
// 但是业务要求最后一步创建
/** 创建活动基础信息 */
export function fetchCreateActivity(data: Api.Competition.CreateRoomRequest) {
return request<App.Service.Response<Api.Common.CommonResponse>>({
url: '/Base/ActivityMain/AddActivity',
method: 'post',
data,
})
}
/** 创建活动队伍 */
export function fetchCreateTeamList(data: Api.Competition.CreateTeamListRequest[]) {
return request<App.Service.Response<Api.Common.CommonResponse>>({
url: '/Base/ActivityMain/AddActivity_TeamList',
method: 'post',
data,
})
}
/** 创建活动题目 */
export function fetchCreateQuestion(data: Api.Competition.CreateQuestionRequest[]) {
return request<App.Service.Response<Api.Common.CommonResponse>>({
url: '/Base/ActivityMain/AddOrUpdateActivity_Question',
method: 'post',
data,
})
}