From ba94ceae1315174798ae1967ef62268c6d16cd5b Mon Sep 17 00:00:00 2001
From: Codex Assistant <codex@example.com>
Date: 星期一, 06 十月 2025 22:07:06 +0800
Subject: [PATCH] feat: 评审与活动相关改动 - backend(GraphQL): Activity schema 增加 updateActivityState(id, state);实现 resolver/service 仅更新 state=2 作为逻辑删除 - backend(GraphQL): region.graphqls 新增 Query leafRegions - backend(GraphQL): player.graphqls 的 projectReviewApplications 增加可选参数 regionId - backend(Service): listProjectReviewApplications 绑定 regionId 参数,修复 QueryParameterException - frontend(web): 新增 api/activity.js 的 updateActivityState 并接入 activity-list 删除逻辑 - frontend(web): review-list.vue 权限仅校验登录,移除角色限制;查询参数修正为 name/regionId - frontend(web): 删除未引用的 ActivityList.vue - frontend(web): projectReviewNew.js GraphQL 查询增加 name 参数

---
 web/src/api/activity.js |  104 ++++++++++++++++++++++++++++++---------------------
 1 files changed, 61 insertions(+), 43 deletions(-)

diff --git a/web/src/api/activity.js b/web/src/api/activity.js
index bd78df0..8c42f87 100644
--- a/web/src/api/activity.js
+++ b/web/src/api/activity.js
@@ -1,11 +1,11 @@
 // 姣旇禌绠$悊 API
 
-import { API_CONFIG, graphqlRequest } from '@/config/api';
+import { API_CONFIG, graphqlRequest } from '@/config/api'
 
 // GraphQL 鏌ヨ璇彞
 const GET_ACTIVITIES_QUERY = `
-  query GetActivities($page: Int!, $size: Int!, $name: String) {
-    activities(page: $page, size: $size, name: $name) {
+  query GetActivities($page: Int!, $size: Int!, $name: String, $state: Int) {
+    activities(page: $page, size: $size, name: $name, state: $state) {
       content {
         id
         name
@@ -13,22 +13,19 @@
         signupDeadline
         matchTime
         address
+        playerCount
         playerMax
         state
         stateName
-        playerCount
         createTime
-        ratingScheme {
-          id
-          name
-        }
+        updateTime
       }
       totalElements
       page
       size
     }
   }
-`;
+`
 
 const GET_ACTIVITY_QUERY = `
   query GetActivity($id: ID!) {
@@ -41,6 +38,7 @@
       matchTime
       address
       ratingSchemeId
+      playerCount
       playerMax
       state
       stateName
@@ -58,6 +56,7 @@
         matchTime
         address
         ratingSchemeId
+        playerCount
         playerMax
         state
         stateName
@@ -76,7 +75,7 @@
       }
     }
   }
-`;
+`
 
 const GET_ALL_ACTIVITIES_QUERY = `
   query GetAllActivities {
@@ -94,7 +93,7 @@
       }
     }
   }
-`;
+`
 
 const SAVE_ACTIVITY_MUTATION = `
   mutation SaveActivity($input: ActivityInput!) {
@@ -111,65 +110,84 @@
       stateName
     }
   }
-`;
+`
 
 const DELETE_ACTIVITY_MUTATION = `
   mutation DeleteActivity($id: ID!) {
     deleteActivity(id: $id)
   }
-`;
+`
+
+const UPDATE_ACTIVITY_STATE_MUTATION = `
+  mutation UpdateActivityState($id: ID!, $state: Int!) {
+    updateActivityState(id: $id, state: $state)
+  }
+`
 
 // API 鍑芥暟
-export const getActivities = async (page = 0, size = 10, name = '') => {
+export const getActivities = async (page = 0, size = 10, name = '', state) => {
   try {
-    const data = await graphqlRequest(GET_ACTIVITIES_QUERY, { page, size, name });
-    return data.activities;
+    const variables = {
+      page,
+      size,
+      name
+    }
+
+    if (state !== undefined && state !== null && state !== '') {
+      variables.state = Number(state)
+    }
+
+    const result = await graphqlRequest(GET_ACTIVITIES_QUERY, variables)
+    return result.data.activities
   } catch (error) {
-    throw new Error(error.message || '鑾峰彇姣旇禌鍒楄〃澶辫触');
+    console.error('鑾峰彇姣旇禌鍒楄〃澶辫触:', error)
+    throw new Error(error && error.message ? error.message : '鑾峰彇姣旇禌鍒楄〃澶辫触')
   }
-};
+}
 
 export const getActivity = async (id) => {
   try {
-    const data = await graphqlRequest(GET_ACTIVITY_QUERY, { id });
-    return data.activity;
+    const result = await graphqlRequest(GET_ACTIVITY_QUERY, { id })
+    return result.data.activity
   } catch (error) {
-    throw new Error(error.message || '鑾峰彇姣旇禌璇︽儏澶辫触');
+    throw new Error(error && error.message ? error.message : '鑾峰彇姣旇禌璇︽儏澶辫触')
   }
-};
+}
 
 export const getAllActivities = async () => {
   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;
+    const result = await graphqlRequest(GET_ALL_ACTIVITIES_QUERY)
+    return result.data.allActivities
   } catch (error) {
-    console.error('=== getAllActivities API璋冪敤澶辫触 ===');
-    console.error('閿欒璇︽儏:', error);
-    console.error('閿欒娑堟伅:', error.message);
-    throw new Error(error.message || '鑾峰彇鎵�鏈夋瘮璧涘け璐�');
+    console.error('鑾峰彇鎵�鏈夋瘮璧涘け璐�:', error)
+    throw new Error(error && error.message ? error.message : '鑾峰彇鎵�鏈夋瘮璧涘け璐�')
   }
-};
+}
 
 export const saveActivity = async (activityData) => {
   try {
-    const data = await graphqlRequest(SAVE_ACTIVITY_MUTATION, { input: activityData });
-    return data.saveActivity;
+    const data = await graphqlRequest(SAVE_ACTIVITY_MUTATION, { input: activityData })
+    return data.data.saveActivity
   } catch (error) {
-    throw new Error(error.message || '淇濆瓨姣旇禌澶辫触');
+    console.error('淇濆瓨姣旇禌澶辫触:', error)
+    throw new Error(error && error.message ? error.message : '淇濆瓨姣旇禌澶辫触')
   }
-};
+}
 
 export const deleteActivity = async (id) => {
   try {
-    const data = await graphqlRequest(DELETE_ACTIVITY_MUTATION, { id });
-    return data.deleteActivity;
+    const data = await graphqlRequest(DELETE_ACTIVITY_MUTATION, { id })
+    return data.data.deleteActivity
   } catch (error) {
-    throw new Error(error.message || '鍒犻櫎姣旇禌澶辫触');
+    throw new Error(error && error.message ? error.message : '鍒犻櫎姣旇禌澶辫触')
   }
-};
\ No newline at end of file
+}
+
+export const updateActivityState = async (id, state) => {
+  try {
+    const data = await graphqlRequest(UPDATE_ACTIVITY_STATE_MUTATION, { id, state })
+    return data.data.updateActivityState
+  } catch (error) {
+    throw new Error(error && error.message ? error.message : '鏇存柊姣旇禌鐘舵�佸け璐�')
+  }
+}
\ No newline at end of file

--
Gitblit v1.8.0