import React, { useState, useCallback } from 'react'; import { useNavigate } from "react-router"; import type { ClassroomData } from '../../../share/types_stock.ts'; import dayjs from 'dayjs'; import { message } from 'antd'; import { ClassroomDataAPI } from '../../api/classroom_data.ts'; import { ClassroomStatus } from '../../../share/types_stock.ts'; // 教室号输入页面 function ExamIndex() { const [classroom, setClassroom] = useState(''); const navigate = useNavigate(); const [classroomData, setClassroomData] = useState(null); const [isLoading, setIsLoading] = useState(false); const handleJoinTraining = useCallback(async () => { if (!classroom) { message.error('教室号不能为空'); return; } try { setIsLoading(true); const response = await ClassroomDataAPI.getClassroomDatas({ classroom_no: classroom }); if (!response.data?.length) { message.error('教室不存在'); setClassroomData(null); return; } const data = response.data[0]; setClassroomData(data); if (data.status !== ClassroomStatus.OPEN) { message.error('该教室已关闭'); return; } // 将教室号作为参数传递到答题页 navigate(`/mobile/exam/card?classroom=${classroom}`); } catch (error) { message.error('获取教室数据失败'); setClassroomData(null); } finally { setIsLoading(false); } }, [navigate, classroom]); if (isLoading) { return
加载中...
; } return (

股票训练答题卡系统

{classroom ? `教室号: ${classroom}` : '请输入教室号开始答题'}

{classroomData && (

训练日期: {dayjs(classroomData.training_date).format('YYYY-MM-DD')}

代码: {classroomData.code}

)}
setClassroom(e.target.value)} placeholder="请输入教室号" className="w-full px-4 py-3 text-lg border border-gray-300 rounded-lg focus:outline-none focus:ring-2 focus:ring-blue-500" />
); } export default ExamIndex;