import { API_CONFIG, graphqlRequest } from '@/config/api' // 使用统一的graphqlRequest函数 // GraphQL查询语句 const GET_PLAYERS_QUERY = ` query GetPlayers($page: Int!, $size: Int!, $name: String) { players(page: $page, size: $size, name: $name) { content { id name phone regionId region { id name } createTime updateTime } totalElements page size } } ` const GET_PLAYER_QUERY = ` query GetPlayer($id: ID!) { player(id: $id) { id name phone regionId region { id name } createTime updateTime } } ` const SAVE_PLAYER_MUTATION = ` mutation SavePlayer($input: PlayerInput!) { savePlayer(input: $input) { id name phone regionId region { id name } createTime updateTime } } ` const DELETE_PLAYER_MUTATION = ` mutation DeletePlayer($id: ID!) { deletePlayer(id: $id) } ` // API函数 export const getPlayers = async (page = 0, size = 10, name = '') => { try { const result = await graphqlRequest(GET_PLAYERS_QUERY, { page, size, name }) return result.data.players } catch (error) { throw new Error(error.message || '获取学员列表失败') } } export const getPlayer = async (id) => { try { const result = await graphqlRequest(GET_PLAYER_QUERY, { id }) return result.data.player } catch (error) { throw new Error(error.message || '获取学员详情失败') } } export const savePlayer = async (playerData) => { try { const result = await graphqlRequest(SAVE_PLAYER_MUTATION, { input: playerData }) return result.data.savePlayer } catch (error) { throw new Error(error.message || '保存学员失败') } } export const deletePlayer = async (id) => { try { const result = await graphqlRequest(DELETE_PLAYER_MUTATION, { id }) return result.data.deletePlayer } catch (error) { throw new Error(error.message || '删除学员失败') } } const GET_APPLICATIONS = ` query GetApplications($name: String, $activityId: ID, $state: Int, $page: Int, $size: Int) { activityPlayerApplications(name: $name, activityId: $activityId, state: $state, page: $page, size: $size) { content { id playerName activityName projectName phone applyTime state } totalElements page size } } ` export const PlayerApi = { getApplications: async (name, activityId, state, page, size) => { const result = await graphqlRequest(GET_APPLICATIONS, { name, activityId, state, page, size }) return result.data.activityPlayerApplications || { content: [], totalElements: 0, page: 1, size: 10 } } }