fix bugs
This commit is contained in:
49
src/api/athlete.js
Normal file
49
src/api/athlete.js
Normal file
@@ -0,0 +1,49 @@
|
||||
/**
|
||||
* 选手管理API接口
|
||||
*/
|
||||
|
||||
import request from '@/utils/request.js'
|
||||
|
||||
export default {
|
||||
/**
|
||||
* 获取选手列表
|
||||
* @param {Object} params 查询参数 { current, size, competitionId, name }
|
||||
* @returns {Promise}
|
||||
*/
|
||||
getAthleteList(params = {}) {
|
||||
return request.get('/martial/athlete/list', {
|
||||
current: params.current || 1,
|
||||
size: params.size || 100,
|
||||
...params
|
||||
})
|
||||
},
|
||||
|
||||
/**
|
||||
* 获取选手详情
|
||||
* @param {String|Number} id 选手ID
|
||||
* @returns {Promise}
|
||||
*/
|
||||
getAthleteDetail(id) {
|
||||
return request.get('/martial/athlete/detail', { id })
|
||||
},
|
||||
|
||||
/**
|
||||
* 新增或修改选手
|
||||
* @param {Object} data 选手数据
|
||||
* @returns {Promise}
|
||||
*/
|
||||
submitAthlete(data) {
|
||||
return request.post('/martial/athlete/submit', data)
|
||||
},
|
||||
|
||||
/**
|
||||
* 删除选手
|
||||
* @param {String|Array} ids 选手ID或ID数组
|
||||
* @returns {Promise}
|
||||
*/
|
||||
removeAthlete(ids) {
|
||||
return request.post('/martial/athlete/remove', {
|
||||
ids: Array.isArray(ids) ? ids.join(',') : ids
|
||||
})
|
||||
}
|
||||
}
|
||||
65
src/api/competition.js
Normal file
65
src/api/competition.js
Normal file
@@ -0,0 +1,65 @@
|
||||
/**
|
||||
* 赛事相关API接口
|
||||
*/
|
||||
|
||||
import request from '@/utils/request.js'
|
||||
|
||||
export default {
|
||||
/**
|
||||
* 获取轮播图列表
|
||||
* @param {Object} params 查询参数
|
||||
* @returns {Promise}
|
||||
*/
|
||||
getBannerList(params = {}) {
|
||||
return request.get('/martial/banner/list', params)
|
||||
},
|
||||
|
||||
/**
|
||||
* 获取赛事列表(分页)
|
||||
* @param {Object} params 查询参数 { current, size, location, status }
|
||||
* @returns {Promise}
|
||||
*/
|
||||
getCompetitionList(params = {}) {
|
||||
return request.get('/martial/competition/list', {
|
||||
current: params.current || 1,
|
||||
size: params.size || 10,
|
||||
...params
|
||||
})
|
||||
},
|
||||
|
||||
/**
|
||||
* 获取赛事详情
|
||||
* @param {String|Number} id 赛事ID
|
||||
* @returns {Promise}
|
||||
*/
|
||||
getCompetitionDetail(id) {
|
||||
return request.get('/martial/competition/detail', { id })
|
||||
},
|
||||
|
||||
/**
|
||||
* 获取比赛项目列表
|
||||
* @param {Object} params 查询参数 { competitionId }
|
||||
* @returns {Promise}
|
||||
*/
|
||||
getProjectList(params = {}) {
|
||||
return request.get('/martial/project/list', params)
|
||||
},
|
||||
|
||||
/**
|
||||
* 获取项目详情
|
||||
* @param {String|Number} id 项目ID
|
||||
* @returns {Promise}
|
||||
*/
|
||||
getProjectDetail(id) {
|
||||
return request.get('/martial/project/detail', { id })
|
||||
},
|
||||
|
||||
/**
|
||||
* 获取赛事规程
|
||||
* @param {String|Number} competitionId 赛事ID
|
||||
* @returns {Promise}
|
||||
*/
|
||||
getCompetitionRules(competitionId) {
|
||||
return request.get('/martial/competition/rules', { competitionId })
|
||||
}
|
||||
}
|
||||
95
src/api/info.js
Normal file
95
src/api/info.js
Normal file
@@ -0,0 +1,95 @@
|
||||
/**
|
||||
* 赛事信息API接口
|
||||
*/
|
||||
|
||||
import request from '@/utils/request.js'
|
||||
|
||||
export default {
|
||||
/**
|
||||
* 获取信息发布列表
|
||||
* @param {Object} params 查询参数 { competitionId, current, size }
|
||||
* @returns {Promise}
|
||||
*/
|
||||
getInfoPublishList(params = {}) {
|
||||
return request.get('/martial/infoPublish/list', {
|
||||
current: params.current || 1,
|
||||
size: params.size || 10,
|
||||
...params
|
||||
})
|
||||
},
|
||||
|
||||
/**
|
||||
* 获取信息详情
|
||||
* @param {String|Number} id 信息ID
|
||||
* @returns {Promise}
|
||||
*/
|
||||
getInfoPublishDetail(id) {
|
||||
return request.get('/martial/infoPublish/detail', { id })
|
||||
},
|
||||
|
||||
/**
|
||||
* 获取活动日程列表
|
||||
* @param {Object} params 查询参数 { competitionId, current, size }
|
||||
* @returns {Promise}
|
||||
*/
|
||||
getActivityScheduleList(params = {}) {
|
||||
return request.get('/martial/activitySchedule/list', {
|
||||
current: params.current || 1,
|
||||
size: params.size || 100,
|
||||
...params
|
||||
})
|
||||
},
|
||||
|
||||
/**
|
||||
* 获取日程详情
|
||||
* @param {String|Number} id 日程ID
|
||||
* @returns {Promise}
|
||||
*/
|
||||
getActivityScheduleDetail(id) {
|
||||
return request.get('/martial/activitySchedule/detail', { id })
|
||||
},
|
||||
|
||||
/**
|
||||
* 获取赛程安排(出场顺序)列表
|
||||
* @param {Object} params 查询参数 { competitionId, current, size }
|
||||
* @returns {Promise}
|
||||
*/
|
||||
getScheduleList(params = {}) {
|
||||
return request.get('/martial/schedule/list', {
|
||||
current: params.current || 1,
|
||||
size: params.size || 100,
|
||||
...params
|
||||
})
|
||||
},
|
||||
|
||||
/**
|
||||
* 获取赛程详情
|
||||
* @param {String|Number} id 赛程ID
|
||||
* @returns {Promise}
|
||||
*/
|
||||
getScheduleDetail(id) {
|
||||
return request.get('/martial/schedule/detail', { id })
|
||||
},
|
||||
|
||||
/**
|
||||
* 获取比赛实况列表
|
||||
* @param {Object} params 查询参数 { competitionId, current, size }
|
||||
* @returns {Promise}
|
||||
*/
|
||||
getLiveUpdateList(params = {}) {
|
||||
return request.get('/martial/liveUpdate/list', {
|
||||
current: params.current || 1,
|
||||
size: params.size || 20,
|
||||
...params
|
||||
})
|
||||
},
|
||||
|
||||
/**
|
||||
* 获取实况详情
|
||||
* @param {String|Number} id 实况ID
|
||||
* @returns {Promise}
|
||||
*/
|
||||
getLiveUpdateDetail(id) {
|
||||
return request.get('/martial/liveUpdate/detail', { id })
|
||||
}
|
||||
}
|
||||
67
src/api/registration.js
Normal file
67
src/api/registration.js
Normal file
@@ -0,0 +1,67 @@
|
||||
/**
|
||||
* 报名相关API接口
|
||||
*/
|
||||
|
||||
import request from '@/utils/request.js'
|
||||
|
||||
export default {
|
||||
/**
|
||||
* 提交报名订单
|
||||
* @param {Object} data 报名数据 { competitionId, projectIds, athleteIds, contactPhone, totalAmount }
|
||||
* @returns {Promise}
|
||||
*/
|
||||
submitRegistration(data) {
|
||||
// 处理数组参数:将数组转换为逗号分隔的字符串
|
||||
const formattedData = {
|
||||
orderNo: data.orderNo,
|
||||
competitionId: data.competitionId,
|
||||
projectIds: Array.isArray(data.projectIds) ? data.projectIds.join(',') : data.projectIds,
|
||||
athleteIds: Array.isArray(data.athleteIds) ? data.athleteIds.join(',') : data.athleteIds,
|
||||
contactPhone: data.contactPhone,
|
||||
totalAmount: data.totalAmount
|
||||
}
|
||||
|
||||
console.log('=== API层转换后的数据 ===')
|
||||
console.log('订单号:', formattedData.orderNo)
|
||||
console.log('转换前 projectIds:', data.projectIds)
|
||||
console.log('转换后 projectIds:', formattedData.projectIds)
|
||||
console.log('转换前 athleteIds:', data.athleteIds)
|
||||
console.log('转换后 athleteIds:', formattedData.athleteIds)
|
||||
console.log('最终发送到后端的完整数据:', formattedData)
|
||||
|
||||
return request.post('/martial/registrationOrder/submit', formattedData)
|
||||
},
|
||||
|
||||
/**
|
||||
* 获取报名订单列表
|
||||
* @param {Object} params 查询参数 { current, size, status }
|
||||
* @returns {Promise}
|
||||
*/
|
||||
getRegistrationList(params = {}) {
|
||||
return request.get('/martial/registrationOrder/list', {
|
||||
current: params.current || 1,
|
||||
size: params.size || 10,
|
||||
...params
|
||||
})
|
||||
},
|
||||
|
||||
/**
|
||||
* 获取报名订单详情
|
||||
* @param {String|Number} id 订单ID
|
||||
* @returns {Promise}
|
||||
*/
|
||||
getRegistrationDetail(id) {
|
||||
return request.get('/martial/registrationOrder/detail', { id })
|
||||
},
|
||||
|
||||
/**
|
||||
* 取消报名
|
||||
* @param {String|Array} ids 订单ID或ID数组
|
||||
* @returns {Promise}
|
||||
*/
|
||||
cancelRegistration(ids) {
|
||||
return request.post('/martial/registrationOrder/remove', {
|
||||
ids: Array.isArray(ids) ? ids.join(',') : ids
|
||||
})
|
||||
}
|
||||
}
|
||||
57
src/api/result.js
Normal file
57
src/api/result.js
Normal file
@@ -0,0 +1,57 @@
|
||||
/**
|
||||
* 成绩相关API接口
|
||||
*/
|
||||
|
||||
import request from '@/utils/request.js'
|
||||
|
||||
export default {
|
||||
/**
|
||||
* 获取成绩列表
|
||||
* @param {String|Number} eventId 赛事ID
|
||||
* @param {Object} params 查询参数 { projectId, current, size }
|
||||
* @returns {Promise}
|
||||
*/
|
||||
getResultList(eventId, params = {}) {
|
||||
return request.get('/martial/result/list', {
|
||||
competitionId: eventId,
|
||||
current: params.current || 1,
|
||||
size: params.size || 100,
|
||||
...params
|
||||
})
|
||||
},
|
||||
|
||||
/**
|
||||
* 获取成绩详情
|
||||
* @param {String|Number} id 成绩ID
|
||||
* @returns {Promise}
|
||||
*/
|
||||
getResultDetail(id) {
|
||||
return request.get('/martial/result/detail', { id })
|
||||
},
|
||||
|
||||
/**
|
||||
* 获取奖牌榜
|
||||
* @param {String|Number} eventId 赛事ID
|
||||
* @param {Object} params 查询参数
|
||||
* @returns {Promise}
|
||||
*/
|
||||
getMedalsList(eventId, params = {}) {
|
||||
return request.get('/martial/medal/list', {
|
||||
competitionId: eventId,
|
||||
...params
|
||||
})
|
||||
},
|
||||
|
||||
/**
|
||||
* 获取评分列表
|
||||
* @param {Object} params 查询参数 { resultId, current, size }
|
||||
* @returns {Promise}
|
||||
*/
|
||||
getScoreList(params = {}) {
|
||||
return request.get('/martial/score/list', {
|
||||
current: params.current || 1,
|
||||
size: params.size || 100,
|
||||
...params
|
||||
})
|
||||
}
|
||||
}
|
||||
103
src/api/schedule.js
Normal file
103
src/api/schedule.js
Normal file
@@ -0,0 +1,103 @@
|
||||
/**
|
||||
* 赛程编排相关API接口
|
||||
*/
|
||||
|
||||
import request from '@/utils/request.js'
|
||||
|
||||
/**
|
||||
* 获取赛程编排结果
|
||||
* @param {Number} competitionId - 赛事ID
|
||||
*/
|
||||
export function getScheduleResult(competitionId) {
|
||||
return request.get('/martial/schedule/result', {
|
||||
params: { competitionId }
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* 触发自动编排
|
||||
* @param {Number} competitionId - 赛事ID
|
||||
*/
|
||||
export function triggerAutoArrange(competitionId) {
|
||||
return request.post('/martial/schedule/auto-arrange', {
|
||||
competitionId
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* 保存编排草稿
|
||||
* @param {Object} data - 编排草稿数据
|
||||
* @param {Number} data.competitionId - 赛事ID
|
||||
* @param {Boolean} data.isDraft - 是否为草稿
|
||||
* @param {Array} data.competitionGroups - 竞赛分组数据
|
||||
*/
|
||||
export function saveDraftSchedule(data) {
|
||||
return request.post('/martial/schedule/save-draft', data)
|
||||
}
|
||||
|
||||
/**
|
||||
* 保存并锁定赛程编排
|
||||
* @param {Number} competitionId - 赛事ID
|
||||
*/
|
||||
export function saveAndLockSchedule(competitionId) {
|
||||
return request.post('/martial/schedule/save-and-lock', {
|
||||
competitionId
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* 移动赛程分组到指定场地和时间段
|
||||
* @param {Object} data - 移动请求数据
|
||||
* @param {Number} data.groupId - 分组ID
|
||||
* @param {Number} data.targetVenueId - 目标场地ID
|
||||
* @param {Number} data.targetTimeSlotIndex - 目标时间段索引
|
||||
*/
|
||||
export function moveScheduleGroup(data) {
|
||||
return request.post('/martial/schedule/move-group', data)
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取调度数据
|
||||
* @param {Object} params - 查询参数
|
||||
* @param {Number} params.competitionId - 赛事ID
|
||||
* @param {Number} params.venueId - 场地ID
|
||||
* @param {Number} params.timeSlotIndex - 时间段索引
|
||||
*/
|
||||
export function getDispatchData(params) {
|
||||
return request.get('/martial/schedule/dispatch-data', {
|
||||
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 function adjustOrder(data) {
|
||||
return request.post('/martial/schedule/adjust-order', data)
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量保存调度
|
||||
* @param {Object} data - 保存调度数据
|
||||
* @param {Number} data.competitionId - 赛事ID
|
||||
* @param {Array} data.adjustments - 调整列表
|
||||
*/
|
||||
export function saveDispatch(data) {
|
||||
return request.post('/martial/schedule/save-dispatch', data)
|
||||
}
|
||||
|
||||
export default {
|
||||
getScheduleResult,
|
||||
triggerAutoArrange,
|
||||
saveDraftSchedule,
|
||||
saveAndLockSchedule,
|
||||
moveScheduleGroup,
|
||||
getDispatchData,
|
||||
adjustOrder,
|
||||
saveDispatch
|
||||
}
|
||||
119
src/api/user.js
Normal file
119
src/api/user.js
Normal file
@@ -0,0 +1,119 @@
|
||||
/**
|
||||
* 用户相关API接口
|
||||
*/
|
||||
|
||||
import request from '@/utils/request.js'
|
||||
import md5 from '@/utils/md5.js'
|
||||
import { base64Encode } from '@/utils/base64.js'
|
||||
|
||||
/**
|
||||
* 用户登录
|
||||
* 使用password模式(无需验证码)
|
||||
*/
|
||||
export function login(data) {
|
||||
// 构建URL参数
|
||||
const params = {
|
||||
tenantId: '000000',
|
||||
username: data.username,
|
||||
password: md5(data.password),
|
||||
grant_type: 'password', // 使用password模式
|
||||
scope: 'all',
|
||||
type: 'account'
|
||||
}
|
||||
|
||||
// 转换为URL查询字符串
|
||||
const queryString = Object.keys(params)
|
||||
.map(key => `${encodeURIComponent(key)}=${encodeURIComponent(params[key])}`)
|
||||
.join('&')
|
||||
|
||||
// 使用saber3客户端凭证
|
||||
const basicAuth = 'Basic ' + base64Encode('saber3:saber3_secret')
|
||||
|
||||
return request.post(`/blade-auth/oauth/token?${queryString}`, null, {
|
||||
header: {
|
||||
'Authorization': basicAuth,
|
||||
'Tenant-Id': '000000'
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* 用户注册
|
||||
*/
|
||||
export function register(data) {
|
||||
return request.post('/blade-system/user/register', {
|
||||
tenantId: '000000',
|
||||
userType: 2, // 2-app
|
||||
account: data.account,
|
||||
password: md5(data.password),
|
||||
phone: data.phone,
|
||||
realName: data.realName,
|
||||
sex: data.sex,
|
||||
code: data.code
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取验证码
|
||||
*/
|
||||
export function getCaptcha(phone) {
|
||||
return request.post('/blade-auth/captcha/send', {
|
||||
phone: phone
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* 刷新Token
|
||||
*/
|
||||
export function refreshToken(refreshToken) {
|
||||
return request.post('/blade-auth/oauth/token', {
|
||||
tenantId: '000000',
|
||||
refresh_token: refreshToken,
|
||||
grant_type: 'refresh_token'
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* 退出登录
|
||||
*/
|
||||
export function logout() {
|
||||
return request.post('/blade-auth/logout')
|
||||
}
|
||||
|
||||
export default {
|
||||
login,
|
||||
register,
|
||||
getCaptcha,
|
||||
refreshToken,
|
||||
logout,
|
||||
|
||||
/**
|
||||
* 获取用户信息
|
||||
* @returns {Promise}
|
||||
*/
|
||||
getUserInfo() {
|
||||
return request.get('/blade-system/user/info')
|
||||
},
|
||||
|
||||
/**
|
||||
* 修改密码
|
||||
* @param {Object} data { oldPassword, newPassword, newPassword1 }
|
||||
* @returns {Promise}
|
||||
*/
|
||||
updatePassword(data) {
|
||||
return request.post('/blade-system/user/update-password', {
|
||||
oldPassword: md5(data.oldPassword),
|
||||
newPassword: md5(data.newPassword),
|
||||
newPassword1: md5(data.newPassword1)
|
||||
})
|
||||
},
|
||||
|
||||
/**
|
||||
* 修改用户基本信息
|
||||
* @param {Object} data 用户信息
|
||||
* @returns {Promise}
|
||||
*/
|
||||
updateUserInfo(data) {
|
||||
return request.post('/blade-system/user/update', data)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user