feat(admin): 新增活动管理功能并优化字典组件

- 新增活动管理相关功能,包括活动创建、编辑、删除和状态管理
- 新增 PublishStatus 枚举定义活动发布状态
- 优化字典组件,支持字符串和数字类型的字典值
- 重构业务数据存储逻辑,简化字典数据获取流程
- 新增活动详情页面,支持分组管理和队伍配置
- 集成富文本编辑器用于活动规则编辑
- 优化图片上传组件,支持小图上传模式
- 修复模板管理中的区域选择和分页问题
- 更新 TypeScript 类型定义,完善 API 接口
- 调整主题配置,新增活动状态相关颜色
This commit is contained in:
2026-02-04 18:01:52 +08:00
parent e1a19c48e0
commit ce5ee2a289
39 changed files with 2621 additions and 693 deletions

View File

@ -23,6 +23,14 @@ export function fetchCreateActivity(data: Api.Competition.CreateRoomRequest) {
})
}
/** 获取活动的基础信息 */
export function fetchGetActivityDetail(id: number) {
return request<App.Service.Response<Api.Competition.ActivityDetail>>({
url: `/Base/ActivityMain/GetActivityByID/?ID=${id}`,
method: 'get',
})
}
/** 创建活动队伍 */
export function fetchCreateTeamList(data: Api.Competition.CreateTeamListRequest[]) {
return request<App.Service.Response<Api.Common.CommonResponse>>({
@ -32,6 +40,14 @@ export function fetchCreateTeamList(data: Api.Competition.CreateTeamListRequest[
})
}
/** 根据活动ID获取活动队伍列表 */
export function fetchGetTeamList(id: number) {
return request<App.Service.Response>({
url: `/Base/ActivityMain/GetActivity_TeamsByMainID/?MainID=${id}`,
method: 'get',
})
}
/** 创建活动题目 */
export function fetchCreateQuestion(data: Api.Competition.CreateQuestionRequest[]) {
return request<App.Service.Response<Api.Common.CommonResponse>>({
@ -40,3 +56,87 @@ export function fetchCreateQuestion(data: Api.Competition.CreateQuestionRequest[
data,
})
}
/** 根据活动ID获取活动题目列表 */
export function fetchGetQuestionList(id: number) {
return request<App.Service.Response<Api.Competition.QuestionListRecord[]>>({
url: `/Base/ActivityMain/GetActivity_QuestionByActivityID?ID=${id}`,
method: 'get',
})
}
/** 获取活动列表 */
export function fetchGetActivityList() {
return request<App.Service.Response>({
url: '/Base/ActivityMain/Activity_MainList',
method: 'get',
})
}
/** 新增活动 (包括基础信息、房间、队伍、题目) */
export function fetchCreateCompetition(data: any) {
return request<App.Service.Response<Api.Common.CommonResponse>>({
url: '/Base/ActivityMain/AddActivityAllData',
method: 'post',
data,
})
}
/** 根据活动id查询分组列表 */
export function fetchGetGroupList(id: string) {
return request<App.Service.Response>({
url: `/Base/ActivityMain/GetActivity_TeamGroupByMainID?ActivityID=${id}`,
method: 'get',
})
}
/** 根据组id查询队伍列表 */
export function fetchGetTeamListByGroupId(GroupID: number) {
return request<App.Service.Response<Api.Competition.TeamListRecord[]>>({
url: `/Base/ActivityMain/GetActivity_TeamsByTeamGroupID?GroupID=${GroupID}`,
method: 'get',
})
}
/** 更新活动基础信息 */
export function fetchUpdateActivity(data: Api.Competition.ActivityDetail) {
return request<App.Service.Response<Api.Common.CommonResponse>>({
url: '/Base/ActivityMain/UpdateActivity',
method: 'post',
data,
})
}
/** 更新活动队伍 */
export function fetchUpdateTeamList(data: Api.Competition.CreateTeamListRequest[]) {
return request<App.Service.Response<Api.Common.CommonResponse>>({
url: '/Base/ActivityMain/UpdateActivity_TeamList',
method: 'post',
data,
})
}
/** 更新活动题目 */
export function fetchUpdateQuestion(data: Api.Competition.QuestionListRecord[]) {
return request<App.Service.Response<Api.Common.CommonResponse>>({
url: '/Base/ActivityMain/AddOrUpdateActivity_Question',
method: 'post',
data,
})
}
/** 删除活动 */
export function fetchDeleteActivity(id: number) {
return request<App.Service.Response<Api.Common.CommonResponse>>({
url: `/Base/ActivityMain/DeleteActivity?ID=${id}`,
method: 'post',
})
}
/** 更新活动状态 */
export function fetchUpdatePublishStatus(id: number, status: number) {
return request<App.Service.Response<Api.Common.CommonResponse>>({
url: `/Base/ActivityMain/UpdateActivityStatus?ActivityID=${id}&status=${status}`,
method: 'post',
})
}

View File

@ -57,3 +57,14 @@ export function deleteDictionaryItem(DicUIID: number) {
data: { DicUIID },
})
}
/** 根据字典value查询字典项 */
export function getDictionaryItemListByDicID(DicValue: string) {
return request<Api.Common.CommonResponse>({
url: `/Base/ActivityMain/GetDictionaryListUITypeByDicValue/?DicValue=${DicValue}`,
method: 'get',
params: {
DicValue,
},
})
}