lrj
2 天以前 c61d4fe27c97d2ecc907756aa571a4ef14a7b9b6
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
const GRAPHQL_ENDPOINT = '/api/graphql'
 
async function graphqlRequest(query, variables = {}) {
  const response = await fetch(GRAPHQL_ENDPOINT, {
    method: 'POST',
    headers: { 'Content-Type': 'application/json' },
    body: JSON.stringify({ query, variables })
  })
  if (!response.ok) {
    const text = await response.text()
    throw new Error(`HTTP ${response.status}: ${text}`)
  }
  const result = await response.json()
  if (result.errors) throw new Error(result.errors.map(e => e.message).join('\n'))
  return result.data
}
 
const GET_ACTIVITY_PLAYER_DETAIL = `
  query GetActivityPlayerDetail($id: ID!) {
    activityPlayerDetail(id: $id) {
      id
      playerInfo {
        id
        name
        phone
        description
        avatarUrl
      }
      activityName
      description
      submissionFiles {
        id
        name
        url
        fileExt
        fileSize
        mediaType
      }
      ratingForm {
        schemeId
        schemeName
        items {
          id
          name
          maxScore
          orderNo
        }
        totalMaxScore
      }
    }
  }
`
 
/**
 * 获取比赛报名详情(用于评分)
 */
export function getActivityPlayerDetail(id) {
  return graphqlRequest(GET_ACTIVITY_PLAYER_DETAIL, { id })
}
 
const SAVE_ACTIVITY_PLAYER_RATING = `
  mutation SaveActivityPlayerRating($input: ActivityPlayerRatingInput!) {
    saveActivityPlayerRating(input: $input)
  }
`
 
/**
 * 保存比赛报名评分
 */
export function saveActivityPlayerRating(input) {
  return graphqlRequest(SAVE_ACTIVITY_PLAYER_RATING, { input })
}