From 375c18a6d2713ff19b22093eec57315992d8333f Mon Sep 17 00:00:00 2001
From: Codex Assistant <codex@example.com>
Date: 星期四, 06 十一月 2025 13:33:52 +0800
Subject: [PATCH] 增加评审下载
---
web/src/api/projectReview.js | 103 +++++++++++++++++++++++++++++++--------------------
1 files changed, 63 insertions(+), 40 deletions(-)
diff --git a/web/src/api/projectReview.js b/web/src/api/projectReview.js
index cbfaa9e..1002038 100644
--- a/web/src/api/projectReview.js
+++ b/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
@@ -54,6 +54,7 @@
activityName
projectName
description
+ stageId
submissionFiles {
id
name
@@ -100,12 +101,31 @@
currentJudgeRating(activityPlayerId: $activityPlayerId) {
id
totalScore
- comments
- ratingItems {
- itemId
- itemName
+ status
+ remark
+ items {
+ ratingItemId
+ ratingItemName
score
- maxScore
+ weightedScore
+ }
+ }
+ }
+`
+
+// 鑾峰彇鎸囧畾璇勫鐨勮瘎鍒嗘槑缁�
+const GET_JUDGE_RATING_DETAIL_QUERY = `
+ query GetJudgeRatingDetail($activityPlayerId: ID!, $judgeId: ID!) {
+ judgeRatingDetail(activityPlayerId: $activityPlayerId, judgeId: $judgeId) {
+ id
+ totalScore
+ status
+ remark
+ items {
+ ratingItemId
+ ratingItemName
+ score
+ weightedScore
}
}
}
@@ -121,32 +141,23 @@
// API 鍑芥暟
/**
- * 鑾峰彇杩涜涓殑姣旇禌闃舵鍒楄〃锛坰tate=1涓攑id>0鐨勬瘮璧涢樁娈碉級
- * 鎸夋瘮璧涘垎缁勬帓搴忥紝鏄剧ず鏍煎紡涓�"姣旇禌鍚� + 闃舵鍚�"
+ * 鑾峰彇杩涜涓殑姣旇禌闃舵鍒楄〃
+ * 鍚庣宸茬粡杩囨护浜嗘瘮璧涢樁娈碉紙pid>0涓攕tate=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)
- // 杩囨护鍑簊tate=1涓攑id>0鐨勬瘮璧涢樁娈�
- const stages = data.allActivities.filter(activity =>
- activity.state === 1 && activity.pid > 0
- )
+ // 鍚庣宸茬粡杩囨护浜嗘瘮璧涢樁娈碉紝鐩存帴杩斿洖
+ const activities = result.data.allActivityStages || []
+ console.log('澶勭悊鍚庣殑 activities:', activities)
- // 鎸夋瘮璧汭D(pid)鍒嗙粍鎺掑簭锛岀‘淇濆悓涓�姣旇禌鐨勪笉鍚岄樁娈垫斁鍦ㄤ竴璧�
- stages.sort((a, b) => {
- // 棣栧厛鎸夋瘮璧汭D鎺掑簭
- 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 +166,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 +229,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 +241,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,10 +270,22 @@
*/
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 getJudgeRatingDetail = async (activityPlayerId, judgeId) => {
+ try {
+ const result = await graphqlRequest(GET_JUDGE_RATING_DETAIL_QUERY, { activityPlayerId, judgeId })
+ return result.data.judgeRatingDetail
+ } catch (error) {
+ throw new Error(error.message || '鑾峰彇璇勫璇勫垎鏄庣粏澶辫触')
}
}
@@ -271,8 +294,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 || '鎻愪氦璇勫垎澶辫触')
}
--
Gitblit v1.8.0