import axiosInstance from './axiosConfig'; // const API_BASE_URL = 'http://zybdatasupport.online:8000' // 不再需要 // // 创建 axios 实例 // 不再需要 // const axiosInstance = axios.create({ // baseURL: API_BASE_URL, // headers: { // 'Content-Type': 'application/json', // 'Accept': 'application/json', // 'X-Requested-With': 'XMLHttpRequest' // }, // timeout: 10000 // }) // // 设置请求拦截器,自动添加 token // 不再需要 // axiosInstance.interceptors.request.use( // config => { // const token = localStorage.getItem('access_token') // if (token) { // config.headers.Authorization = `Bearer ${token}` // } // return config // }, // error => { // return Promise.reject(error) // } // ) // // 添加响应拦截器 // 不再需要 // axiosInstance.interceptors.response.use( // response => response, // error => { // if (error.response) { // console.error('请求错误:', { // status: error.response.status, // data: error.response.data, // config: error.config // }) // } else if (error.request) { // console.error('网络错误:', error.request) // } else { // console.error('请求配置错误:', error.message) // } // return Promise.reject(error) // } // ) /** * 添加赛事 * @param {Object} tournamentData - 赛事数据 * @param {string} tournamentData.name - 赛事名称 * @param {string} tournamentData.format - 赛事类型(single, double, count) * @param {string} tournamentData.organizer - 组织者 * @param {string} tournamentData.qq_code - QQ号 * @param {string} tournamentData.status - 状态(prepare, finish, starting) * @param {string} tournamentData.start_time - 开始时间(格式年/月/日,例2025/05/24) * @param {string} tournamentData.end_time - 结束时间(格式年/月/日,例2025/05/24) * @returns {Promise} 返回添加赛事的响应数据 */ export const addTournament = async (tournamentData) => { try { const response = await axiosInstance.post('/tournament/add', tournamentData) return response.data } catch (error) { console.error('添加赛事失败:', { status: error.response?.status, data: error.response?.data, message: error.message }) throw error } } /** * 获取赛事列表 * @returns {Promise} 返回赛事列表数据 */ export const getTournamentList = async () => { try { const response = await axiosInstance.get('/tournament/getlist') return response.data } catch (error) { console.error('获取赛事列表失败:', { status: error.response?.status, data: error.response?.data, message: error.message }) throw error } } // 更新赛事 export const updateTournament = async (id, data) => { try { console.log('更新赛事,发送数据:', data) const response = await axiosInstance.put(`/tournament/update/${id}`, { name: data.name, format: data.format, organizer: data.organizer, qq_code: data.qq_code, start_time: data.start_time, end_time: data.end_time, status: data.status }) return response.data } catch (error) { console.error('更新赛事失败:', error) if (error.response) { console.error('错误详情:', { status: error.response.status, data: error.response.data, headers: error.response.headers, config: error.config }) // 如果有详细的错误信息,抛出它 if (error.response.data?.detail) { throw new Error(error.response.data.detail) } } throw error } } // 删除赛事 export const deleteTournament = async (id) => { try { const response = await axiosInstance.delete(`/tournament/delete/${id}`) return response.data } catch (error) { console.error('删除赛事失败:', error) throw error } } // 添加报名结果 export const addSignUpResult = async (data) => { try { const response = await axiosInstance.post('/tournament/signup_result/add', { tournament_id: parseInt(data.tournament_id), tournament_name: data.tournament_name, team_name: data.team_name, sign_name: data.sign_name.trim(), win: '0', lose: '0', status: 'tie' }) return response.data } catch (error) { console.error('请求错误:', error) if (error.response?.data?.detail) { throw new Error(error.response.data.detail) } throw error } } // 获取参赛结果列表 export const getSignUpResultList = async () => { try { const response = await axiosInstance.get('/tournament/signup_result/getlist') return response.data } catch (error) { console.error('获取参赛结果列表失败:', { status: error.response?.status, data: error.response?.data, message: error.message }) throw error } } // 更新参赛结果 export const updateSignUpResult = async (id, data) => { try { // // 更新报名信息 (这部分逻辑根据您的要求被注释掉) // console.log('更新报名信息...') // await axiosInstance.put(`/tournament/signup/update/${id}`, { // tournament_id: parseInt(data.tournament_id), // type: data.team_name ? 'teamname' : 'individual', // teamname: data.team_name || '', // faction: data.faction || 'random', // username: data.sign_name, // qq: data.qq || '' // }) // console.log('报名信息更新成功') // 更新报名结果 console.log('更新报名结果...') await axiosInstance.put(`/tournament/signup_result/update/${id}`, { tournament_id: parseInt(data.tournament_id), tournament_name: data.tournament_name, team_name: data.team_name || null, sign_name: data.sign_name, win: data.win || '0', lose: data.lose || '0', status: data.status || 'tie' }) console.log('报名结果更新成功') return { success: true } } catch (error) { console.error('更新参赛结果失败:', { status: error.response?.status, data: error.response?.data, message: error.message }) throw error } } // 删除参赛选手 export const deleteSignUpResult = async (id) => { try { // 删除报名结果 console.log('删除报名结果...') await axiosInstance.delete(`/tournament/signup_result/delete/${id}`) console.log('报名结果删除成功') // // 删除报名信息 (这部分逻辑根据您的要求被注释掉) // console.log('删除报名信息...') // await axiosInstance.delete(`/tournament/signup/delete/${id}`) // console.log('报名信息删除成功') return { success: true } } catch (error) { console.error('删除参赛选手失败:', { status: error.response?.status, data: error.response?.data, message: error.message }) throw error } } // 添加报名 export const addSignUp = async (data) => { try { console.log('开始报名流程,数据:', data) // 调用报名 API console.log('调用报名 API...') await axiosInstance.post('/tournament/signup/add', { tournament_id: data.id, type: data.type, teamname: data.team_name || '', faction: data.faction || 'random', username: data.sign_name, qq: data.qq || '' }) console.log('报名 API 调用成功') // 调用报名结果 API console.log('调用报名结果 API...') await axiosInstance.post('/tournament/signup_result/add', { tournament_id: data.id, tournament_name: data.tournament_name, team_name: data.team_name || null, sign_name: data.sign_name, win: '0', lose: '0', status: 'tie' }) console.log('报名结果 API 调用成功') return { signup: { success: true }, result: { success: true } } } catch (error) { console.error('报名请求错误:', { message: error.message, response: error.response?.data, status: error.response?.status, config: error.config }) // 如果是服务器返回的错误信息,直接使用 if (error.response?.data?.detail) { throw new Error(error.response.data.detail) } // 其他错误,包装成更友好的错误信息 throw new Error('报名失败,请检查网络连接后重试') } }