| | |
| | | */ |
| | | export const getActiveActivities = async () => { |
| | | try { |
| | | const data = await graphqlRequest(GET_ACTIVITY_STAGES_QUERY) |
| | | console.log('=== 调用 getActiveActivities ===') |
| | | const result = await graphqlRequest(GET_ACTIVITY_STAGES_QUERY) |
| | | console.log('GraphQL 返回数据:', result) |
| | | |
| | | // 后端已经过滤了比赛阶段,直接返回 |
| | | const activities = data.allActivityStages || [] |
| | | const activities = result.data.allActivityStages || [] |
| | | console.log('处理后的 activities:', activities) |
| | | |
| | | console.log('获取到的比赛阶段:', activities) |
| | | return activities |
| | | } catch (error) { |
| | | console.error('获取比赛阶段失败:', error) |
| | | console.error('getActiveActivities 错误:', error) |
| | | throw new Error(error.message || '获取比赛阶段失败') |
| | | } |
| | | } |
| | |
| | | */ |
| | | export const getCompetitionProjects = async (activityId, page = 0, size = 10) => { |
| | | try { |
| | | const data = await graphqlRequest(GET_COMPETITION_PROJECTS_QUERY, { |
| | | const result = await graphqlRequest(GET_COMPETITION_PROJECTS_QUERY, { |
| | | activityId, |
| | | page, |
| | | size |
| | | }) |
| | | |
| | | const projects = data.activityPlayerApplications || [] |
| | | const projects = result.data.activityPlayerApplications || [] |
| | | |
| | | // 为每个项目获取评分统计 |
| | | const enrichedProjects = await Promise.all( |
| | |
| | | */ |
| | | export const getProjectDetail = async (id) => { |
| | | try { |
| | | const data = await graphqlRequest(GET_PROJECT_DETAIL_QUERY, { id }) |
| | | return data.activityPlayerDetail |
| | | const result = await graphqlRequest(GET_PROJECT_DETAIL_QUERY, { id }) |
| | | return result.data.activityPlayerDetail |
| | | } catch (error) { |
| | | throw new Error(error.message || '获取项目详情失败') |
| | | } |
| | |
| | | */ |
| | | export const getRatingStats = async (activityPlayerId) => { |
| | | try { |
| | | const data = await graphqlRequest(GET_RATING_STATS_QUERY, { activityPlayerId }) |
| | | const result = await graphqlRequest(GET_RATING_STATS_QUERY, { activityPlayerId }) |
| | | |
| | | const ratings = data.judgeRatingsForPlayer || [] |
| | | const averageScore = data.averageScoreForPlayer || 0 |
| | | const ratings = result.data.judgeRatingsForPlayer || [] |
| | | const averageScore = result.data.averageScoreForPlayer || 0 |
| | | |
| | | // 只计算已评分的评委 |
| | | const ratedJudges = ratings.filter(rating => rating.hasRated) |
| | |
| | | */ |
| | | export const getCurrentJudgeRating = async (activityPlayerId) => { |
| | | try { |
| | | const data = await graphqlRequest(GET_CURRENT_JUDGE_RATING_QUERY, { activityPlayerId }) |
| | | return data.currentJudgeRating |
| | | const result = await graphqlRequest(GET_CURRENT_JUDGE_RATING_QUERY, { activityPlayerId }) |
| | | return result.data.currentJudgeRating |
| | | } catch (error) { |
| | | throw new Error(error.message || '获取当前评委评分失败') |
| | | } |
| | |
| | | */ |
| | | export const submitRating = async (ratingInput) => { |
| | | try { |
| | | const data = await graphqlRequest(SUBMIT_RATING_MUTATION, { input: ratingInput }) |
| | | return data.saveActivityPlayerRating |
| | | const result = await graphqlRequest(SUBMIT_RATING_MUTATION, { input: ratingInput }) |
| | | return result.data.saveActivityPlayerRating |
| | | } catch (error) { |
| | | throw new Error(error.message || '提交评分失败') |
| | | } |