lrj
22 小时以前 dc643ba44fd2a426263015491268a0f0d6b4671d
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,21 @@
// API 函数
/**
 * 获取进行中的比赛阶段列表(state=1且pid>0的比赛阶段)
 * 按比赛分组排序,显示格式为"比赛名 + 阶段名"
 * 获取进行中的比赛阶段列表
 * 后端已经过滤了比赛阶段(pid>0且state=1),直接返回
 */
export const getActiveActivities = async () => {
  try {
    const data = await graphqlRequest(GET_ACTIVE_ACTIVITIES_QUERY)
    const data = await graphqlRequest(GET_ACTIVITY_STAGES_QUERY)
    
    // 过滤出state=1且pid>0的比赛阶段
    const stages = data.allActivities.filter(activity =>
      activity.state === 1 && activity.pid > 0
    )
    // 后端已经过滤了比赛阶段,直接返回
    const activities = data.allActivityStages || []
    
    // 按比赛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
    console.log('获取到的比赛阶段:', activities)
    return activities
  } catch (error) {
    console.error('获取活动列表失败:', error)
    throw new Error(error.message || '获取活动列表失败')
    console.error('获取比赛阶段失败:', error)
    throw new Error(error.message || '获取比赛阶段失败')
  }
}