lrj
2 天以前 7ad9c3c93f0cc103347ae2e2429e0122fb512e24
web/src/api/projectReview.js
@@ -2,10 +2,10 @@
// GraphQL 查询语句
// 获取进行中的比赛列表(包括阶段)
const GET_ACTIVE_ACTIVITIES_QUERY = `
  query GetActiveActivities {
    allActivities {
// 获取进行中的比赛阶段列表
const GET_ACTIVITY_STAGES_QUERY = `
  query GetActivityStages {
    allActivityStages {
      id
      pid
      name
@@ -121,32 +121,23 @@
// API 函数
/**
 * 获取进行中的比赛阶段列表(state=1且pid>0的比赛阶段)
 * 按比赛分组排序,显示格式为"比赛名 + 阶段名"
 * 获取进行中的比赛阶段列表
 * 后端已经过滤了比赛阶段(pid>0且state=1),直接返回
 */
export const getActiveActivities = async () => {
  try {
    const data = await graphqlRequest(GET_ACTIVE_ACTIVITIES_QUERY)
    console.log('=== 调用 getActiveActivities ===')
    const result = await graphqlRequest(GET_ACTIVITY_STAGES_QUERY)
    console.log('GraphQL 返回数据:', result)
    
    // 过滤出state=1且pid>0的比赛阶段
    const stages = data.allActivities.filter(activity =>
      activity.state === 1 && activity.pid > 0
    )
    // 后端已经过滤了比赛阶段,直接返回
    const activities = result.data.allActivityStages || []
    console.log('处理后的 activities:', activities)
    
    // 按比赛ID(pid)分组排序,确保同一比赛的不同阶段放在一起
    stages.sort((a, b) => {
      // 首先按比赛ID排序
      if (a.pid !== b.pid) {
        return a.pid - b.pid
      }
      // 同一比赛内按阶段ID排序
      return a.id - b.id
    })
    return stages
    return activities
  } catch (error) {
    console.error('获取活动列表失败:', error)
    throw new Error(error.message || '获取活动列表失败')
    console.error('getActiveActivities 错误:', error)
    throw new Error(error.message || '获取比赛阶段失败')
  }
}
@@ -155,13 +146,13 @@
 */
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(
@@ -218,8 +209,8 @@
 */
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 || '获取项目详情失败')
  }
@@ -230,10 +221,10 @@
 */
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)
@@ -259,8 +250,8 @@
 */
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 || '获取当前评委评分失败')
  }
@@ -271,8 +262,8 @@
 */
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 || '提交评分失败')
  }