// 评委管理 API import { API_CONFIG, graphqlRequest } from '../config/api.ts'; // GraphQL 查询语句 const GET_ALL_JUDGES_QUERY = ` query GetAllJudges { judges { id name description title company phone gender specialties { id name code } avatarUrl } } `; const GET_JUDGE_QUERY = ` query GetJudge($id: ID!) { judge(id: $id) { id name description title company phone gender specialties { id name code } avatarUrl } } `; const SAVE_JUDGE_MUTATION = ` mutation SaveJudge($input: JudgeInput!) { saveJudge(input: $input) { id name phone gender description } } `; const DELETE_JUDGE_MUTATION = ` mutation DeleteJudge($id: ID!) { deleteJudge(id: $id) } `; const GET_TAGS_QUERY = ` query GetTags { tags { id name code category } } `; const GET_TAGS_BY_CATEGORY_QUERY = ` query GetTagsByCategory($category: String!) { tagsByCategory(category: $category) { id name code } } `; const SAVE_MEDIA_MUTATION = ` mutation SaveMedia($input: MediaInput!) { saveMedia(input: $input) { id name path fullUrl } } `; // 使用统一的GraphQL请求函数 // API 函数 export const getAllJudges = async () => { const result = await graphqlRequest(GET_ALL_JUDGES_QUERY); return result.data.judges; }; export const getJudge = async (id) => { const result = await graphqlRequest(GET_JUDGE_QUERY, { id }); return result.data.judge; }; // JudgeApi 对象 export const JudgeApi = { // 获取所有评委 getJudges: async () => { const result = await graphqlRequest(GET_ALL_JUDGES_QUERY); return result.data.judges || []; }, // 获取单个评委 getJudge: async (id) => { const result = await graphqlRequest(GET_JUDGE_QUERY, { id }); return result.data.judge; }, // 搜索评委 searchJudges: async (name) => { const result = await graphqlRequest(` query SearchJudges($name: String!) { searchJudges(name: $name) { id name title company } } `, { name }); return result.data.searchJudges || []; }, // 保存评委 saveJudge: async (input) => { const result = await graphqlRequest(SAVE_JUDGE_MUTATION, { input }); return result.data.saveJudge; }, // 删除评委 deleteJudge: async (id) => { const result = await graphqlRequest(DELETE_JUDGE_MUTATION, { id }); return result.data.deleteJudge; }, // 获取所有标签 getTags: async () => { const result = await graphqlRequest(GET_TAGS_QUERY); return result.data.tags || []; }, // 根据类别获取标签 getTagsByCategory: async (category) => { const result = await graphqlRequest(GET_TAGS_BY_CATEGORY_QUERY, { category }); return result.data.tagsByCategory || []; }, // 保存媒体 saveMedia: async (input) => { const result = await graphqlRequest(SAVE_MEDIA_MUTATION, { input }); return result.data.saveMedia; } }; // COS上传服务(暂时为空,可以后续实现) export const CosUploadService = { uploadFile: async (file) => { // 这里可以实现COS上传逻辑 throw new Error('COS上传功能暂未实现'); } };