// 比赛管理 API import { API_CONFIG, graphqlRequest } from '@/config/api'; // GraphQL 查询语句 const GET_ACTIVITIES_QUERY = ` query GetActivities($page: Int!, $size: Int!, $name: String) { activities(page: $page, size: $size, name: $name) { content { id name description signupDeadline matchTime address playerMax state stateName playerCount createTime ratingScheme { id name } } totalElements page size } } `; const GET_ACTIVITY_QUERY = ` query GetActivity($id: ID!) { activity(id: $id) { id pid name description signupDeadline matchTime address ratingSchemeId playerMax state stateName createTime updateTime ratingScheme { id name totalScore } stages { id name description matchTime address ratingSchemeId playerMax state stateName sortOrder ratingScheme { id name } } judges { id name phone description stageIds } } } `; const GET_ALL_ACTIVITIES_QUERY = ` query GetAllActivities { allActivities { id pid name state stateName sortOrder parent { id name } } } `; const SAVE_ACTIVITY_MUTATION = ` mutation SaveActivity($input: ActivityInput!) { saveActivity(input: $input) { id name description signupDeadline matchTime address ratingSchemeId playerMax state stateName } } `; const DELETE_ACTIVITY_MUTATION = ` mutation DeleteActivity($id: ID!) { deleteActivity(id: $id) } `; // API 函数 export const getActivities = async (page = 0, size = 10, name = '') => { try { const data = await graphqlRequest(GET_ACTIVITIES_QUERY, { page, size, name }); return data.activities; } catch (error) { throw new Error(error.message || '获取比赛列表失败'); } }; export const getActivity = async (id) => { try { const data = await graphqlRequest(GET_ACTIVITY_QUERY, { id }); return data.activity; } catch (error) { throw new Error(error.message || '获取比赛详情失败'); } }; export const getAllActivities = async () => { try { const data = await graphqlRequest(GET_ALL_ACTIVITIES_QUERY); return data.allActivities; } catch (error) { throw new Error(error.message || '获取所有比赛失败'); } }; export const saveActivity = async (activityData) => { try { const data = await graphqlRequest(SAVE_ACTIVITY_MUTATION, { input: activityData }); return data.saveActivity; } catch (error) { throw new Error(error.message || '保存比赛失败'); } }; export const deleteActivity = async (id) => { try { const data = await graphqlRequest(DELETE_ACTIVITY_MUTATION, { id }); return data.deleteActivity; } catch (error) { throw new Error(error.message || '删除比赛失败'); } };