lrj
16 小时以前 dc643ba44fd2a426263015491268a0f0d6b4671d
web/src/api/activity.js
@@ -1,6 +1,6 @@
// 比赛管理 API
const GRAPHQL_ENDPOINT = 'http://localhost:8080/api/graphql';
import { API_CONFIG, graphqlRequest } from '@/config/api';
// GraphQL 查询语句
const GET_ACTIVITIES_QUERY = `
@@ -61,6 +61,7 @@
        playerMax
        state
        stateName
        sortOrder
        ratingScheme {
          id
          name
@@ -85,6 +86,8 @@
      name
      state
      stateName
      sortOrder
      playerCount
      parent {
        id
        name
@@ -118,95 +121,55 @@
// API 函数
export const getActivities = async (page = 0, size = 10, name = '') => {
  const response = await fetch(GRAPHQL_ENDPOINT, {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json',
    },
    body: JSON.stringify({
      query: GET_ACTIVITIES_QUERY,
      variables: { page, size, name }
    })
  });
  const result = await response.json();
  if (result.errors) {
    throw new Error(result.errors[0].message);
  try {
    const data = await graphqlRequest(GET_ACTIVITIES_QUERY, { page, size, name });
    return data.activities;
  } catch (error) {
    throw new Error(error.message || '获取比赛列表失败');
  }
  return result.data.activities;
};
export const getActivity = async (id) => {
  const response = await fetch(GRAPHQL_ENDPOINT, {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json',
    },
    body: JSON.stringify({
      query: GET_ACTIVITY_QUERY,
      variables: { id }
    })
  });
  const result = await response.json();
  if (result.errors) {
    throw new Error(result.errors[0].message);
  try {
    const data = await graphqlRequest(GET_ACTIVITY_QUERY, { id });
    return data.activity;
  } catch (error) {
    throw new Error(error.message || '获取比赛详情失败');
  }
  return result.data.activity;
};
export const getAllActivities = async () => {
  const response = await fetch(GRAPHQL_ENDPOINT, {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json',
    },
    body: JSON.stringify({
      query: GET_ALL_ACTIVITIES_QUERY
    })
  });
  const result = await response.json();
  if (result.errors) {
    throw new Error(result.errors[0].message);
  try {
    console.log('=== getAllActivities API调用开始 ===');
    console.log('GraphQL查询:', GET_ALL_ACTIVITIES_QUERY);
    const data = await graphqlRequest(GET_ALL_ACTIVITIES_QUERY);
    console.log('GraphQL返回的原始数据:', data);
    console.log('data.allActivities:', data.allActivities);
    return data.allActivities;
  } catch (error) {
    console.error('=== getAllActivities API调用失败 ===');
    console.error('错误详情:', error);
    console.error('错误消息:', error.message);
    throw new Error(error.message || '获取所有比赛失败');
  }
  return result.data.allActivities;
};
export const saveActivity = async (activityData) => {
  const response = await fetch(GRAPHQL_ENDPOINT, {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json',
    },
    body: JSON.stringify({
      query: SAVE_ACTIVITY_MUTATION,
      variables: { input: activityData }
    })
  });
  const result = await response.json();
  if (result.errors) {
    throw new Error(result.errors[0].message);
  try {
    const data = await graphqlRequest(SAVE_ACTIVITY_MUTATION, { input: activityData });
    return data.saveActivity;
  } catch (error) {
    throw new Error(error.message || '保存比赛失败');
  }
  return result.data.saveActivity;
};
export const deleteActivity = async (id) => {
  const response = await fetch(GRAPHQL_ENDPOINT, {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json',
    },
    body: JSON.stringify({
      query: DELETE_ACTIVITY_MUTATION,
      variables: { id }
    })
  });
  const result = await response.json();
  if (result.errors) {
    throw new Error(result.errors[0].message);
  try {
    const data = await graphqlRequest(DELETE_ACTIVITY_MUTATION, { id });
    return data.deleteActivity;
  } catch (error) {
    throw new Error(error.message || '删除比赛失败');
  }
  return result.data.deleteActivity;
};