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

♻️ refactor(exam): 重构教室数据API调用方式

- 替换ClassroomDataAPI为classroomDataClient,统一API调用方式
- 修改ExamCard.tsx中的API调用逻辑,处理响应状态码和JSON解析
- 更新ExamIndex.tsx中的API调用逻辑,添加状态码检查和错误处理
- 移除类型导入语句中的.ts扩展名,符合模块导入规范
yourname 5 сар өмнө
parent
commit
cec0577859

+ 9 - 6
src/client/mobile/components/Exam/ExamCard.tsx

@@ -4,10 +4,10 @@ import { useSearchParams, useNavigate } from "react-router";
 import dayjs from 'dayjs';
 import { message } from 'antd';
 import { useSocketClient } from './hooks/useSocketClient';
-import { ClassroomDataAPI } from '../../api/classroom_data.ts';
+import { classroomDataClient } from '@/client/api';
 import { ClassroomStatus } from '@/share/types_stock';
-import type { QuizState } from './types.ts';
-import type { AnswerRecord, Answer } from './types.ts';
+import type { QuizState } from './types';
+import type { AnswerRecord, Answer } from './types';
 import { useAuth } from '@/client/mobile/hooks/AuthProvider';
 
 
@@ -35,12 +35,15 @@ export default function ExamCard() {
     queryKey: ['classroom', classroom],
     queryFn: async () => {
       if (!classroom) return null;
-      const response = await ClassroomDataAPI.getClassroomDatas({ classroom_no: classroom });
-      if (!response.data?.length) {
+      const response = await classroomDataClient.$get({
+        query: { classroom_no: classroom }
+      });
+      if (response.status !== 200) {
         message.error('获取教室数据失败');
         return null;
       }
-      return response.data[0] || null;
+      const data = await response.json();
+      return data.data[0] || null;
     },
     enabled: !!classroom
   });

+ 14 - 5
src/client/mobile/components/Exam/ExamIndex.tsx

@@ -2,8 +2,8 @@ import React, { useState, useCallback } from 'react';
 import { useNavigate } from "react-router";
 import dayjs from 'dayjs';
 import { message } from 'antd';
-import { ClassroomDataAPI } from '../../api/classroom_data.ts';
-import { ClassroomStatus } from '@/share/types_stock';
+import { classroomDataClient } from '@/client/api';
+import { ClassroomStatus, type ClassroomData } from '@/share/types_stock';
 
 // 教室号输入页面
 function ExamIndex() {
@@ -21,15 +21,24 @@ function ExamIndex() {
 
     try {
       setIsLoading(true);
-      const response = await ClassroomDataAPI.getClassroomDatas({ classroom_no: classroom });
+      const response = await classroomDataClient.$get({
+        query: { classroom_no: classroom }
+      });
       
-      if (!response.data?.length) {
+      if (response.status !== 200) {
+        message.error('获取教室数据失败');
+        setClassroomData(null);
+        return;
+      }
+      
+      const result = await response.json();
+      if (!result.data?.length) {
         message.error('教室不存在');
         setClassroomData(null);
         return;
       }
 
-      const data = response.data[0];
+      const data = result.data[0];
       setClassroomData(data);
 
       if (data.status !== ClassroomStatus.OPEN) {