This commit is contained in:
@@ -88,7 +88,8 @@ export const saveAndLockSchedule = (competitionId) => {
|
||||
return request({
|
||||
url: '/martial/schedule/save-and-lock',
|
||||
method: 'post',
|
||||
data: { competitionId }
|
||||
data: { competitionId },
|
||||
timeout: 60000 // 设置60秒超时,因为锁定操作可能耗时较长
|
||||
})
|
||||
}
|
||||
|
||||
@@ -103,6 +104,82 @@ export const saveDraftSchedule = (data) => {
|
||||
return request({
|
||||
url: '/martial/schedule/save-draft',
|
||||
method: 'post',
|
||||
data,
|
||||
timeout: 60000 // 设置60秒超时,因为保存草稿可能涉及大量数据
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* 触发自动编排
|
||||
* @param {Number} competitionId - 赛事ID
|
||||
*/
|
||||
export const triggerAutoArrange = (competitionId) => {
|
||||
return request({
|
||||
url: '/martial/schedule/auto-arrange',
|
||||
method: 'post',
|
||||
data: { competitionId },
|
||||
timeout: 60000 // 设置60秒超时,因为自动编排可能耗时较长
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* 移动赛程分组到指定场地和时间段
|
||||
* @param {Object} data - 移动请求数据
|
||||
* @param {Number} data.groupId - 分组ID
|
||||
* @param {Number} data.targetVenueId - 目标场地ID
|
||||
* @param {Number} data.targetTimeSlotIndex - 目标时间段索引
|
||||
*/
|
||||
export const moveScheduleGroup = (data) => {
|
||||
return request({
|
||||
url: '/martial/schedule/move-group',
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
// ==================== 调度功能接口 ====================
|
||||
|
||||
/**
|
||||
* 获取调度数据
|
||||
* @param {Object} params - 查询参数
|
||||
* @param {Number} params.competitionId - 赛事ID
|
||||
* @param {Number} params.venueId - 场地ID
|
||||
* @param {Number} params.timeSlotIndex - 时间段索引
|
||||
*/
|
||||
export const getDispatchData = (params) => {
|
||||
return request({
|
||||
url: '/martial/schedule/dispatch-data',
|
||||
method: 'get',
|
||||
params
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* 调整出场顺序
|
||||
* @param {Object} data - 调整请求数据
|
||||
* @param {Number} data.detailId - 编排明细ID
|
||||
* @param {Number} data.participantId - 参赛者记录ID
|
||||
* @param {String} data.action - 调整动作(move_up/move_down/swap)
|
||||
* @param {Number} data.targetOrder - 目标顺序(交换时使用)
|
||||
*/
|
||||
export const adjustOrder = (data) => {
|
||||
return request({
|
||||
url: '/martial/schedule/adjust-order',
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量保存调度
|
||||
* @param {Object} data - 保存调度数据
|
||||
* @param {Number} data.competitionId - 赛事ID
|
||||
* @param {Array} data.adjustments - 调整列表
|
||||
*/
|
||||
export const saveDispatch = (data) => {
|
||||
return request({
|
||||
url: '/martial/schedule/save-dispatch',
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
@@ -88,6 +88,21 @@ export const exportReferees = (params) => {
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* 导出工作人员名单(Excel)
|
||||
* @param {Object} params - 导出参数
|
||||
* @param {Number} params.competitionId - 赛事ID
|
||||
* @param {String} params.role - 角色类型(可选)
|
||||
*/
|
||||
export const exportStaff = (params) => {
|
||||
return request({
|
||||
url: '/api/blade-martial/export/staff',
|
||||
method: 'get',
|
||||
params,
|
||||
responseType: 'blob'
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* 导出奖牌榜(Excel)
|
||||
* @param {Object} params - 导出参数
|
||||
|
||||
@@ -99,9 +99,8 @@ export const batchSendInvites = (data) => {
|
||||
*/
|
||||
export const resendInvite = (id) => {
|
||||
return request({
|
||||
url: '/api/blade-martial/judgeInvite/resend',
|
||||
method: 'post',
|
||||
params: { id }
|
||||
url: `/api/blade-martial/judgeInvite/resend/${id}`,
|
||||
method: 'post'
|
||||
})
|
||||
}
|
||||
|
||||
@@ -124,14 +123,13 @@ export const replyInvite = (data) => {
|
||||
/**
|
||||
* 取消邀请
|
||||
* @param {Number} id - 邀请ID
|
||||
* @param {String} cancelReason - 取消原因
|
||||
* @param {String} reason - 取消原因
|
||||
*/
|
||||
export const cancelInvite = (id, cancelReason) => {
|
||||
export const cancelInvite = (id, reason) => {
|
||||
return request({
|
||||
url: '/api/blade-martial/judgeInvite/cancel',
|
||||
url: `/api/blade-martial/judgeInvite/cancel/${id}`,
|
||||
method: 'post',
|
||||
params: { id },
|
||||
data: { cancelReason }
|
||||
params: { reason }
|
||||
})
|
||||
}
|
||||
|
||||
@@ -141,9 +139,8 @@ export const cancelInvite = (id, cancelReason) => {
|
||||
*/
|
||||
export const confirmInvite = (id) => {
|
||||
return request({
|
||||
url: '/api/blade-martial/judgeInvite/confirm',
|
||||
method: 'post',
|
||||
params: { id }
|
||||
url: `/api/blade-martial/judgeInvite/confirm/${id}`,
|
||||
method: 'post'
|
||||
})
|
||||
}
|
||||
|
||||
@@ -173,15 +170,14 @@ export const getAcceptedJudges = (competitionId) => {
|
||||
|
||||
/**
|
||||
* 从裁判库导入
|
||||
* @param {Object} data - 导入参数
|
||||
* @param {Number} data.competitionId - 赛事ID
|
||||
* @param {Array} data.judgeIds - 裁判ID数组(从裁判库选择)
|
||||
* @param {Number} competitionId - 赛事ID
|
||||
* @param {String} judgeIds - 裁判ID(逗号分隔)
|
||||
*/
|
||||
export const importFromJudgePool = (data) => {
|
||||
export const importFromJudgePool = (competitionId, judgeIds) => {
|
||||
return request({
|
||||
url: '/api/blade-martial/judgeInvite/import-from-pool',
|
||||
url: '/api/blade-martial/judgeInvite/import/pool',
|
||||
method: 'post',
|
||||
data
|
||||
params: { competitionId, judgeIds }
|
||||
})
|
||||
}
|
||||
|
||||
@@ -201,13 +197,70 @@ export const exportInvites = (params) => {
|
||||
/**
|
||||
* 发送提醒消息
|
||||
* @param {Number} id - 邀请ID
|
||||
* @param {String} reminderMessage - 提醒消息
|
||||
* @param {String} message - 提醒消息
|
||||
*/
|
||||
export const sendReminder = (id, reminderMessage) => {
|
||||
export const sendReminder = (id, message) => {
|
||||
return request({
|
||||
url: '/api/blade-martial/judgeInvite/send-reminder',
|
||||
url: `/api/blade-martial/judgeInvite/reminder/${id}`,
|
||||
method: 'post',
|
||||
params: { id },
|
||||
data: { reminderMessage }
|
||||
params: { message }
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* 生成邀请码
|
||||
* @param {Object} data - 生成参数
|
||||
* @param {Number} data.competitionId - 赛事ID
|
||||
* @param {Number} data.judgeId - 评委ID
|
||||
* @param {String} data.role - 角色(judge/chief_judge)
|
||||
* @param {Number} data.venueId - 场地ID(普通评委必填)
|
||||
* @param {String} data.projects - 项目列表(JSON)
|
||||
* @param {Number} data.expireDays - 过期天数(默认30)
|
||||
*/
|
||||
export const generateInviteCode = (data) => {
|
||||
return request({
|
||||
url: '/api/blade-martial/judgeInvite/generate',
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量生成邀请码
|
||||
* @param {Object} data - 批量生成参数
|
||||
* @param {Number} data.competitionId - 赛事ID
|
||||
* @param {Array} data.judgeIds - 评委ID数组
|
||||
* @param {String} data.role - 角色(默认judge)
|
||||
* @param {Number} data.expireDays - 过期天数(默认30)
|
||||
*/
|
||||
export const batchGenerateInviteCode = (data) => {
|
||||
return request({
|
||||
url: '/api/blade-martial/judgeInvite/generate/batch',
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* 重新生成邀请码
|
||||
* @param {Number} inviteId - 邀请ID
|
||||
*/
|
||||
export const regenerateInviteCode = (inviteId) => {
|
||||
return request({
|
||||
url: `/api/blade-martial/judgeInvite/regenerate/${inviteId}`,
|
||||
method: 'put'
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询评委的邀请码
|
||||
* @param {Number} competitionId - 赛事ID
|
||||
* @param {Number} judgeId - 评委ID
|
||||
*/
|
||||
export const getInviteByJudge = (competitionId, judgeId) => {
|
||||
return request({
|
||||
url: '/api/blade-martial/judgeInvite/byJudge',
|
||||
method: 'get',
|
||||
params: { competitionId, judgeId }
|
||||
})
|
||||
}
|
||||
|
||||
@@ -35,6 +35,30 @@ export const getProjectDetail = (id) => {
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增项目
|
||||
* @param {Object} data - 项目数据
|
||||
*/
|
||||
export const addProject = (data) => {
|
||||
return request({
|
||||
url: '/api/martial/project/save',
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改项目
|
||||
* @param {Object} data - 项目数据
|
||||
*/
|
||||
export const updateProject = (data) => {
|
||||
return request({
|
||||
url: '/api/martial/project/update',
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增或修改项目
|
||||
* @param {Object} data - 项目数据
|
||||
@@ -73,6 +97,31 @@ export const removeProject = (ids) => {
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* 导入项目
|
||||
* @param {Object} data - 导入数据
|
||||
*/
|
||||
export const importProjects = (data) => {
|
||||
return request({
|
||||
url: '/api/martial/project/import',
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* 导出项目
|
||||
* @param {Object} params - 导出参数
|
||||
*/
|
||||
export const exportProjects = (params) => {
|
||||
return request({
|
||||
url: '/api/martial/project/export',
|
||||
method: 'get',
|
||||
params,
|
||||
responseType: 'blob'
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取赛事的项目列表(不分页,用于下拉选择)
|
||||
* @param {Number} competitionId - 赛事ID
|
||||
|
||||
@@ -232,3 +232,42 @@ export const exportResults = (params) => {
|
||||
responseType: 'blob'
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* 导出获奖名单
|
||||
* @param {Object} params - 查询参数
|
||||
*/
|
||||
export const exportAwardList = (params) => {
|
||||
return request({
|
||||
url: '/api/blade-martial/result/export-award',
|
||||
method: 'get',
|
||||
params,
|
||||
responseType: 'blob'
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* 生成单个证书
|
||||
* @param {Object} data - 证书参数
|
||||
*/
|
||||
export const generateCertificate = (data) => {
|
||||
return request({
|
||||
url: '/api/blade-martial/result/certificate/generate',
|
||||
method: 'post',
|
||||
data,
|
||||
responseType: 'blob'
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量生成证书
|
||||
* @param {Object} data - 批量证书参数
|
||||
*/
|
||||
export const batchGenerateCertificates = (data) => {
|
||||
return request({
|
||||
url: '/api/blade-martial/result/certificate/batch-generate',
|
||||
method: 'post',
|
||||
data,
|
||||
responseType: 'blob'
|
||||
})
|
||||
}
|
||||
|
||||
115
src/api/martial/rules.js
Normal file
115
src/api/martial/rules.js
Normal file
@@ -0,0 +1,115 @@
|
||||
import request from '@/axios'
|
||||
|
||||
// 获取赛事列表
|
||||
export const getCompetitionList = (params) => {
|
||||
return request({
|
||||
url: '/api/martial/competition/list',
|
||||
method: 'get',
|
||||
params
|
||||
})
|
||||
}
|
||||
|
||||
// 获取赛事规程(小程序端)
|
||||
export const getCompetitionRules = (params) => {
|
||||
return request({
|
||||
url: '/api/martial/competition/rules',
|
||||
method: 'get',
|
||||
params
|
||||
})
|
||||
}
|
||||
|
||||
// ==================== 附件管理 ====================
|
||||
|
||||
// 获取附件列表
|
||||
export const getAttachmentList = (params) => {
|
||||
return request({
|
||||
url: '/api/martial/competition/rules/attachment/list',
|
||||
method: 'get',
|
||||
params
|
||||
})
|
||||
}
|
||||
|
||||
// 保存附件
|
||||
export const saveAttachment = (data) => {
|
||||
return request({
|
||||
url: '/api/martial/competition/rules/attachment/save',
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
// 删除附件
|
||||
export const removeAttachment = (params) => {
|
||||
return request({
|
||||
url: '/api/martial/competition/rules/attachment/remove',
|
||||
method: 'post',
|
||||
params
|
||||
})
|
||||
}
|
||||
|
||||
// ==================== 章节管理 ====================
|
||||
|
||||
// 获取章节列表
|
||||
export const getChapterList = (params) => {
|
||||
return request({
|
||||
url: '/api/martial/competition/rules/chapter/list',
|
||||
method: 'get',
|
||||
params
|
||||
})
|
||||
}
|
||||
|
||||
// 保存章节
|
||||
export const saveChapter = (data) => {
|
||||
return request({
|
||||
url: '/api/martial/competition/rules/chapter/save',
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
// 删除章节
|
||||
export const removeChapter = (params) => {
|
||||
return request({
|
||||
url: '/api/martial/competition/rules/chapter/remove',
|
||||
method: 'post',
|
||||
params
|
||||
})
|
||||
}
|
||||
|
||||
// ==================== 章节内容管理 ====================
|
||||
|
||||
// 获取章节内容列表
|
||||
export const getContentList = (params) => {
|
||||
return request({
|
||||
url: '/api/martial/competition/rules/content/list',
|
||||
method: 'get',
|
||||
params
|
||||
})
|
||||
}
|
||||
|
||||
// 保存章节内容
|
||||
export const saveContent = (data) => {
|
||||
return request({
|
||||
url: '/api/martial/competition/rules/content/save',
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
// 批量保存章节内容
|
||||
export const batchSaveContents = (data) => {
|
||||
return request({
|
||||
url: '/api/martial/competition/rules/content/batch-save',
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
// 删除章节内容
|
||||
export const removeContent = (params) => {
|
||||
return request({
|
||||
url: '/api/martial/competition/rules/content/remove',
|
||||
method: 'post',
|
||||
params
|
||||
})
|
||||
}
|
||||
Reference in New Issue
Block a user