This commit is contained in:
2025-12-12 17:29:38 +08:00
parent 7d9ac4c8ca
commit 7807f4b3e4
14 changed files with 2476 additions and 51 deletions

103
api/schedule.js Normal file
View 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
}

View File

@@ -3,8 +3,90 @@
*/
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}
@@ -15,11 +97,15 @@ export default {
/**
* 修改密码
* @param {Object} data { oldPassword, newPassword, confirmPassword }
* @param {Object} data { oldPassword, newPassword, newPassword1 }
* @returns {Promise}
*/
updatePassword(data) {
return request.post('/blade-system/user/update-password', data)
return request.post('/blade-system/user/update-password', {
oldPassword: md5(data.oldPassword),
newPassword: md5(data.newPassword),
newPassword1: md5(data.newPassword1)
})
},
/**
@@ -28,6 +114,6 @@ export default {
* @returns {Promise}
*/
updateUserInfo(data) {
return request.post('/blade-system/user/update-info', data)
return request.post('/blade-system/user/update', data)
}
}