This commit is contained in:
2025-11-30 12:14:27 +08:00
parent 0d4bbcd1f2
commit 4e26a5089c
32 changed files with 5605 additions and 226 deletions

92
src/api/martial/banner.js Normal file
View File

@@ -0,0 +1,92 @@
import request from '@/axios';
// ==================== 轮播图管理接口 ====================
/**
* 轮播图分页查询
* @param {Number} current - 当前页,默认1
* @param {Number} size - 每页条数,默认10
* @param {Object} params - 查询参数
*/
export const getBannerList = (current, size, params) => {
return request({
url: '/api/blade-martial/banner/list',
method: 'get',
params: {
current,
size,
...params
}
})
}
/**
* 获取轮播图详情
* @param {Number} id - 轮播图主键ID
*/
export const getBannerDetail = (id) => {
return request({
url: '/api/blade-martial/banner/detail',
method: 'get',
params: { id }
})
}
/**
* 新增轮播图
* @param {Object} data - 轮播图数据
*/
export const addBanner = (data) => {
return request({
url: '/api/blade-martial/banner/save',
method: 'post',
data
})
}
/**
* 修改轮播图
* @param {Object} data - 轮播图数据
*/
export const updateBanner = (data) => {
return request({
url: '/api/blade-martial/banner/update',
method: 'post',
data
})
}
/**
* 删除轮播图
* @param {String} ids - 轮播图ID,多个用逗号分隔
*/
export const removeBanner = (ids) => {
return request({
url: '/api/blade-martial/banner/remove',
method: 'post',
params: { ids }
})
}
/**
* 获取启用的轮播图列表(小程序端使用)
*/
export const getActiveBannerList = () => {
return request({
url: '/api/blade-martial/banner/active-list',
method: 'get'
})
}
/**
* 修改轮播图状态
* @param {Number} id - 轮播图ID
* @param {Number} status - 状态0-禁用 1-启用)
*/
export const updateBannerStatus = (id, status) => {
return request({
url: '/api/blade-martial/banner/update-status',
method: 'post',
params: { id, status }
})
}

View File

@@ -255,3 +255,89 @@ export const removeVenue = (ids) => {
params: { ids }
})
}
// ==================== 赛事管理接口 ====================
/**
* 新增赛事
* @param {Object} data - 赛事数据
* @param {String} data.competitionName - 赛事名称
* @param {String} data.organizer - 主办单位
* @param {String} data.location - 地区
* @param {String} data.venue - 详细地点
* @param {String} data.registrationStartTime - 报名开始时间
* @param {String} data.registrationEndTime - 报名结束时间
* @param {String} data.competitionStartTime - 比赛开始时间
* @param {String} data.competitionEndTime - 比赛结束时间
* @param {String} data.introduction - 赛事简介
* @param {Array} data.posterImages - 宣传图片
* @param {String} data.contactPerson - 联系人
* @param {String} data.contactPhone - 联系电话
* @param {String} data.contactEmail - 联系邮箱
* @param {String} data.rules - 竞赛规则
* @param {String} data.requirements - 参赛要求
* @param {String} data.awards - 奖项设置
* @param {Array} data.regulationFiles - 规程文件
* @param {Array} data.schedule - 活动日程
*/
export const addCompetition = (data) => {
return request({
url: '/api/blade-martial/competition/save',
method: 'post',
data
})
}
/**
* 赛事列表查询
* @param {Number} current - 当前页
* @param {Number} size - 每页条数
* @param {Object} params - 查询参数
*/
export const getCompetitionList = (current, size, params) => {
return request({
url: '/api/blade-martial/competition/list',
method: 'get',
params: {
current,
size,
...params
}
})
}
/**
* 获取赛事详情
* @param {Number} id - 赛事ID
*/
export const getCompetitionDetail = (id) => {
return request({
url: '/api/blade-martial/competition/detail',
method: 'get',
params: { id }
})
}
/**
* 修改赛事
* @param {Object} data - 赛事数据
*/
export const updateCompetition = (data) => {
return request({
url: '/api/blade-martial/competition/update',
method: 'post',
data
})
}
/**
* 删除赛事
* @param {String} ids - 赛事ID,多个用逗号分隔
*/
export const removeCompetition = (ids) => {
return request({
url: '/api/blade-martial/competition/remove',
method: 'post',
params: { ids }
})
}

View File

@@ -0,0 +1,142 @@
import request from '@/axios';
// ==================== 参赛选手管理接口 ====================
/**
* 参赛选手分页查询
* @param {Number} competitionId - 赛事ID
* @param {Number} current - 当前页,默认1
* @param {Number} size - 每页条数,默认10
* @param {Object} params - 查询参数
*/
export const getParticipantList = (competitionId, current, size, params = {}) => {
return request({
url: '/api/blade-martial/participant/list',
method: 'get',
params: {
competitionId,
current,
size,
...params
}
})
}
/**
* 获取参赛选手详情
* @param {Number} id - 选手主键ID
*/
export const getParticipantDetail = (id) => {
return request({
url: '/api/blade-martial/participant/detail',
method: 'get',
params: { id }
})
}
/**
* 新增参赛选手
* @param {Object} data - 选手数据
* @param {Number} data.competitionId - 赛事ID
* @param {String} data.playerName - 选手姓名
* @param {Number} data.gender - 性别1-男2-女)
* @param {Number} data.age - 年龄
* @param {String} data.contactPhone - 联系电话
* @param {String} data.organization - 所属单位
* @param {String} data.idCard - 身份证号
* @param {String} data.projectName - 参赛项目
* @param {String} data.category - 组别
* @param {Number} data.orderNum - 出场顺序
* @param {String} data.introduction - 选手简介
* @param {Array} data.attachments - 附件列表
* @param {String} data.remark - 备注
*/
export const addParticipant = (data) => {
return request({
url: '/api/blade-martial/participant/save',
method: 'post',
data
})
}
/**
* 修改参赛选手
* @param {Object} data - 选手数据
*/
export const updateParticipant = (data) => {
return request({
url: '/api/blade-martial/participant/update',
method: 'post',
data
})
}
/**
* 删除参赛选手
* @param {String} ids - 选手ID,多个用逗号分隔
*/
export const removeParticipant = (ids) => {
return request({
url: '/api/blade-martial/participant/remove',
method: 'post',
params: { ids }
})
}
/**
* 更新出场顺序
* @param {Number} id - 选手ID
* @param {Number} orderNum - 出场顺序
*/
export const updateOrder = (id, orderNum) => {
return request({
url: '/api/blade-martial/participant/update-order',
method: 'post',
params: { id, orderNum }
})
}
/**
* 批量导入参赛选手
* @param {Number} competitionId - 赛事ID
* @param {File} file - Excel文件
*/
export const importParticipants = (competitionId, file) => {
const formData = new FormData()
formData.append('competitionId', competitionId)
formData.append('file', file)
return request({
url: '/api/blade-martial/participant/import',
method: 'post',
data: formData,
headers: {
'Content-Type': 'multipart/form-data'
}
})
}
/**
* 导出参赛选手名单
* @param {Number} competitionId - 赛事ID
*/
export const exportParticipants = (competitionId) => {
return request({
url: '/api/blade-martial/participant/export',
method: 'get',
params: { competitionId },
responseType: 'blob'
})
}
/**
* 批量更新出场顺序
* @param {Array} data - 选手顺序数据 [{id: 1, orderNum: 1}, {id: 2, orderNum: 2}]
*/
export const batchUpdateOrder = (data) => {
return request({
url: '/api/blade-martial/participant/batch-update-order',
method: 'post',
data
})
}

View File

@@ -0,0 +1,91 @@
import request from '@/axios';
// ==================== 评委管理接口 ====================
/**
* 评委分页查询
* @param {Number} current - 当前页,默认1
* @param {Number} size - 每页条数,默认10
* @param {Object} params - 查询参数
* @param {String} params.keyword - 关键词搜索(姓名/手机号)
* @param {Number} params.refereeType - 裁判类型1-主裁判2-普通裁判)
*/
export const getRefereeList = (current, size, params) => {
return request({
url: '/api/blade-martial/referee/list',
method: 'get',
params: {
current,
size,
...params
}
})
}
/**
* 获取评委详情
* @param {Number} id - 评委主键ID
*/
export const getRefereeDetail = (id) => {
return request({
url: '/api/blade-martial/referee/detail',
method: 'get',
params: { id }
})
}
/**
* 新增评委
* @param {Object} data - 评委数据
* @param {String} data.name - 姓名
* @param {Number} data.gender - 性别1-男2-女)
* @param {String} data.phone - 手机号
* @param {String} data.idCard - 身份证号
* @param {Number} data.refereeType - 裁判类型1-主裁判2-普通裁判)
* @param {String} data.level - 等级/职称
* @param {String} data.specialty - 擅长项目
* @param {String} data.remark - 备注
*/
export const addReferee = (data) => {
return request({
url: '/api/blade-martial/referee/save',
method: 'post',
data
})
}
/**
* 修改评委
* @param {Object} data - 评委数据
*/
export const updateReferee = (data) => {
return request({
url: '/api/blade-martial/referee/update',
method: 'post',
data
})
}
/**
* 删除评委
* @param {String} ids - 评委ID,多个用逗号分隔
*/
export const removeReferee = (ids) => {
return request({
url: '/api/blade-martial/referee/remove',
method: 'post',
params: { ids }
})
}
/**
* 获取可用评委列表(用于下拉选择)
* @param {Number} refereeType - 裁判类型(可选)
*/
export const getAvailableReferees = (refereeType) => {
return request({
url: '/api/blade-martial/referee/available',
method: 'get',
params: { refereeType }
})
}

84
src/api/martial/score.js Normal file
View File

@@ -0,0 +1,84 @@
import request from '@/axios';
// ==================== 评分管理接口 ====================
/**
* 评分分页查询
* @param {Number} current - 当前页,默认1
* @param {Number} size - 每页条数,默认10
* @param {Object} params - 查询参数
*/
export const getScoreList = (current, size, params) => {
return request({
url: '/api/blade-martial/score/list',
method: 'get',
params: {
current,
size,
...params
}
})
}
/**
* 获取评分详情
* @param {Number} id - 评分主键ID
*/
export const getScoreDetail = (id) => {
return request({
url: '/api/blade-martial/score/detail',
method: 'get',
params: { id }
})
}
/**
* 获取选手的所有裁判评分
* @param {Number} playerId - 选手ID
* @param {Number} projectId - 比赛项目ID
*/
export const getPlayerScores = (playerId, projectId) => {
return request({
url: '/api/blade-martial/score/player-scores',
method: 'get',
params: { playerId, projectId }
})
}
/**
* 导出评分数据
* @param {Object} params - 查询参数
*/
export const exportScores = (params) => {
return request({
url: '/api/blade-martial/score/export',
method: 'get',
params,
responseType: 'blob'
})
}
/**
* 获取场地列表
* @param {Number} competitionId - 赛事ID
*/
export const getVenueList = (competitionId) => {
return request({
url: '/api/blade-martial/venue/list',
method: 'get',
params: { competitionId }
})
}
/**
* 获取比赛项目列表
* @param {Number} competitionId - 赛事ID
* @param {Number} venueId - 场地ID可选
*/
export const getProjectList = (competitionId, venueId) => {
return request({
url: '/api/blade-martial/project/list',
method: 'get',
params: { competitionId, venueId }
})
}