2
0
Эх сурвалжийг харах

两个组件现在都统一使用client/mobile/api/classroom_data.ts中的API方法

yourname 6 сар өмнө
parent
commit
7c27290171

+ 9 - 7
client/mobile/components/Exam/ExamCard.tsx

@@ -4,8 +4,11 @@ import { useSearchParams } from "react-router";
 import dayjs from 'dayjs';
 import { message } from 'antd';
 import { useSocketClient } from './hooks/useSocketClient.ts';
+import { ClassroomDataAPI } from '../../api/classroom_data.ts';
+import { ClassroomStatus } from '../../../share/types_stock.ts';
 import type { ExamSocketRoomMessage } from './types.ts';
-import type { AnswerRecord, ClassroomData, Answer } from './types.ts';
+import type { AnswerRecord, Answer } from './types.ts';
+import type { ClassroomData } from '../../../share/types_stock.ts';
 
 
 
@@ -33,13 +36,12 @@ export default function ExamCard() {
     queryKey: ['classroom', classroom],
     queryFn: async () => {
       if (!classroom) return null;
-      const response = await fetch(`/api/v1/classroom?classroom_no=${classroom}`);
-      const data = await response.json();
-      if (!data.success) {
-        message.error(data.message || '获取教室数据失败');
+      const response = await ClassroomDataAPI.getClassroomDatas({ classroom_no: classroom });
+      if (!response.data?.length) {
+        message.error('获取教室数据失败');
         return null;
       }
-      return data.data?.[0] as ClassroomData || null;
+      return response.data[0] || null;
     },
     enabled: !!classroom
   });
@@ -49,7 +51,7 @@ export default function ExamCard() {
       globalThis.location.href = '/exam';
       return;
     }
-    if (classroomData && classroomData.status !== "1") {
+    if (classroomData && classroomData.status !== ClassroomStatus.OPEN) {
       message.error('该教室已关闭');
       globalThis.location.href = '/exam';
       return;

+ 10 - 9
client/mobile/components/Exam/ExamIndex.tsx

@@ -3,6 +3,8 @@ import { useQuery } from '@tanstack/react-query';
 import { useNavigate, useSearchParams } from "react-router";
 import dayjs from 'dayjs';
 import { message } from 'antd';
+import { ClassroomDataAPI } from '../../api/classroom_data.ts';
+import { ClassroomStatus } from '../../../share/types_stock.ts';
 
 // 昵称输入页面
 function ExamIndex() {
@@ -15,19 +17,18 @@ function ExamIndex() {
     queryKey: ['classroom', classroom],
     queryFn: async () => {
       if (!classroom) return null;
-      const response = await fetch(`/api/v1/classroom?classroom_no=${classroom}`);
-      const data = await response.json();
-      if (!data.success) {
-        message.error(data.message || '获取教室数据失败');
+      const response = await ClassroomDataAPI.getClassroomDatas({ classroom_no: classroom });
+      if (!response.data?.length) {
+        message.error('获取教室数据失败');
         return null;
       }
-      return data.data?.[0] || null;
+      return response.data[0] || null;
     },
     enabled: !!classroom
   });
 
   useEffect(() => {
-    if (classroomData && classroomData.status !== "1") {
+    if (classroomData && classroomData.status !== ClassroomStatus.OPEN) {
       message.error('该教室已关闭');
     }
   }, [classroomData]);
@@ -45,7 +46,7 @@ function ExamIndex() {
       message.error('教室不存在');
       return;
     }
-    if (classroomData.status !== "1") {
+    if (classroomData.status !== ClassroomStatus.OPEN) {
       message.error('该教室已关闭');
       return;
     }
@@ -85,9 +86,9 @@ function ExamIndex() {
 
         <button
           onClick={handleJoinTraining}
-          disabled={!classroomData || classroomData.status !== "1"}
+          disabled={!classroomData || classroomData.status !== ClassroomStatus.OPEN}
           className={`w-full px-8 py-3 text-lg font-medium text-white rounded-lg focus:outline-none focus:ring-2 focus:ring-offset-2 transition-colors ${
-            !classroomData || classroomData.status !== "1"
+            !classroomData || classroomData.status !== ClassroomStatus.OPEN
               ? 'bg-gray-400 cursor-not-allowed'
               : 'bg-blue-500 hover:bg-blue-600 focus:ring-blue-500'
           }`}