# EduNexus 前端组件API接口文档 ## 按组件类型分类的API接口 ### 1. 认证相关组件 (Auth Components) #### LoginForm组件 - **前端服务**: `authService` - **API调用**: `login(username: string)` - **后端文件**: `auth.controller.ts` - **接口**: `POST /api/auth/login` - **参数**: username, password - **说明**: 用户登录 #### RegisterForm组件 - **前端服务**: `authService` - **API调用**: `register(data: RegisterDto)` - **后端文件**: `auth.controller.ts` - **接口**: `POST /api/auth/register` - **参数**: realName, email, phone, password, gender - **说明**: 用户注册 #### UserProfile组件 - **前端服务**: `authService` - **API调用**: - `me()` - `updateProfile(data: UpdateProfileDto)` - `changePassword(data: ChangePasswordDto)` - **后端文件**: `auth.controller.ts` - **接口**: - `GET /api/auth/me` - `PUT /api/auth/profile` - `POST /api/auth/change-password` - **说明**: 获取用户信息、更新用户资料、修改密码 ### 2. 仪表板组件 (Dashboard Components) #### TeacherDashboard组件 - **前端服务**: - `analyticsService` - `commonService` - **API调用**: - `getClassPerformance()` - `getRadar()` - `getScoreDistribution()` - `getSchedule()` - `getTeacherStats()` - **后端文件**: - `analytics.controller.ts` - `common.controller.ts` - **接口**: - `GET /api/analytics/class-performance` - `GET /api/analytics/radar` - `GET /api/analytics/score-distribution` - `GET /api/schedule` - `GET /api/analytics/teacher-stats` - **说明**: 获取教师统计数据、班级表现、知识图谱、成绩分布、课表 #### StudentDashboard组件 - **前端服务**: - `analyticsService` - `commonService` - **API调用**: - `getStudentGrowth()` - `getStudentRadar()` - `getSchedule()` - **后端文件**: - `analytics.controller.ts` - `common.controller.ts` - **接口**: - `GET /api/analytics/student-growth` - `GET /api/analytics/student-radar` - `GET /api/schedule` - **说明**: 获取学生成长数据、学生能力雷达图、课表 ### 3. 作业管理组件 (Assignment Components) #### TeacherAssignmentList组件 - **前端服务**: `assignmentService` - **API调用**: `getTeachingAssignments()` - **后端文件**: `assignment.controller.ts` - **接口**: `GET /api/assignments/teaching` - **参数**: 无 - **说明**: 获取教师发布的作业列表 #### StudentAssignmentList组件 - **前端服务**: `assignmentService` - **API调用**: `getStudentAssignments()` - **后端文件**: `assignment.controller.ts` - **接口**: `GET /api/assignments/learning` - **参数**: 无 - **说明**: 获取学生需要完成的作业列表 #### CreateAssignmentModal组件 - **前端服务**: `assignmentService` - **API调用**: `publishAssignment(data: any)` - **后端文件**: `assignment.controller.ts` - **接口**: `POST /api/assignments` - **参数**: examId, classId, title, startTime, endTime, allowLateSubmission, autoScoreEnabled - **说明**: 创建并发布作业 #### AssignmentStats组件 - **前端服务**: `assignmentService` - **API调用**: `getAssignmentStats(id: string)` - **后端文件**: `assignment.controller.ts` - **接口**: `GET /api/assignments/:id/stats` - **参数**: assignmentId - **说明**: 获取作业统计数据 ### 4. 考试管理组件 (Exam Components) #### ExamEditor组件 - **前端服务**: - `examService` - `questionService` - **API调用**: - `getExamDetail(id: string)` - `saveExam(exam: ExamDetailDto)` - `search(filter: any)` - **后端文件**: - `exam.controller.ts` - `question.controller.ts` - **接口**: - `GET /api/exams/:id` - `PUT /api/exams/:id/structure` - `POST /api/questions/search` - **说明**: 获取考试详情、保存考试结构、搜索题目 #### ExamList组件 - **前端服务**: `examService` - **API调用**: `getMyExams()` - **后端文件**: `exam.controller.ts` - **接口**: `GET /api/exams` - **参数**: subjectId, status - **说明**: 获取我的考试列表 #### ExamStats组件 - **前端服务**: `examService` - **API调用**: `getStats(id: string)` - **后端文件**: `exam.controller.ts` - **接口**: `GET /api/exams/:id/stats` - **参数**: examId - **说明**: 获取考试统计数据 ### 5. 批改管理组件 (Grading Components) #### GradingBoard组件 - **前端服务**: `gradingService` - **API调用**: - `getSubmissions(assignmentId: string)` - `getPaper(submissionId: string)` - `submitGrade(data: any)` - **后端文件**: `grading.controller.ts` - **接口**: - `GET /api/grading/:assignmentId/list` - `GET /api/grading/submissions/:submissionId` - `POST /api/grading/submissions/:submissionId` - **说明**: 获取作业提交列表、获取答卷详情、提交批改结果 #### SubmissionSidebar组件 - **前端服务**: `gradingService` - **API调用**: `getSubmissions(assignmentId: string)` - **后端文件**: `grading.controller.ts` - **接口**: `GET /api/grading/:assignmentId/list` - **参数**: assignmentId - **说明**: 获取作业提交列表 ### 6. 学生考试组件 (Student Exam Components) #### StudentExamRunner组件 - **前端服务**: `submissionService` - **API调用**: - `getStudentPaper(assignmentId: string)` - `submitExam(data: SubmitExamDto)` - **后端文件**: `submission.controller.ts` - **接口**: - `GET /api/submissions/:assignmentId/paper` - `POST /api/submissions/:assignmentId/submit` - **说明**: 获取学生答题卡、提交答案 #### StudentResult组件 - **前端服务**: `submissionService` - **API调用**: `getSubmissionResult(assignmentId: string)` - **后端文件**: `submission.controller.ts` - **接口**: `GET /api/submissions/:submissionId/result` - **参数**: submissionId - **说明**: 查看考试结果 ### 7. 题库管理组件 (Question Components) #### QuestionCard组件 - **前端服务**: `questionService` - **API调用**: `search(filter: any)` - **后端文件**: `question.controller.ts` - **接口**: `POST /api/questions/search` - **参数**: subjectId, questionType, difficulty, keyword, createdBy, sortBy, page, pageSize - **说明**: 搜索题目 #### QuestionModal组件 - **前端服务**: `questionService` - **API调用**: - `create(data: any)` - `update(id: string, data: any)` - `delete(id: string)` - **后端文件**: `question.controller.ts` - **接口**: - `POST /api/questions` - `PUT /api/questions/:id` - `DELETE /api/questions/:id` - **说明**: 创建、更新、删除题目 #### SubjectSelector组件 - **前端服务**: `curriculumService` - **API调用**: `getSubjects()` - **后端文件**: `curriculum.controller.ts` - **接口**: `GET /api/curriculum/subjects` - **参数**: 无 - **说明**: 获取学科列表 ### 8. 课程管理组件 (Curriculum Components) #### KnowledgeGraph组件 - **前端服务**: `curriculumService` - **API调用**: `getTree(id: string)` - **后端文件**: `curriculum.controller.ts` - **接口**: `GET /api/curriculum/textbooks/:id/tree` - **参数**: id (textbookId或subjectId) - **说明**: 获取教材知识树结构 #### TextbookModal组件 - **前端服务**: `curriculumService` - **API调用**: - `getTextbooksBySubject(subjectId: string)` - `createTextbook(data: any)` - `updateTextbook(id: string, data: any)` - `deleteTextbook(id: string)` - **后端文件**: `curriculum.controller.ts` - **接口**: - `GET /api/curriculum/subjects/:id/textbooks` - `POST /api/curriculum/textbooks` - `PUT /api/curriculum/textbooks/:id` - `DELETE /api/curriculum/textbooks/:id` - **说明**: 获取教材列表、创建、更新、删除教材 #### TreeNode组件 - **前端服务**: `curriculumService` - **API调用**: `getTree(id: string)` - **后端文件**: `curriculum.controller.ts` - **接口**: `GET /api/curriculum/textbooks/:id/tree` - **参数**: id - **说明**: 获取课程树结构 ### 9. 班级管理组件 (Class Components) #### ClassCard组件 - **前端服务**: `orgService` - **API调用**: `getClasses(role?: string)` - **后端文件**: `org.controller.ts` - **接口**: `GET /api/org/classes` - **参数**: role - **说明**: 获取我的班级列表 #### CreateClassModal组件 - **前端服务**: `orgService` - **API调用**: `createClass(data: CreateClassDto)` - **后端文件**: `org.controller.ts` - **接口**: `POST /api/org/classes` - **参数**: name, gradeId - **说明**: 创建新班级 #### JoinClassModal组件 - **前端服务**: `orgService` - **API调用**: `joinClass(inviteCode: string)` - **后端文件**: `org.controller.ts` - **接口**: `POST /api/org/classes/join` - **参数**: inviteCode - **说明**: 通过邀请码加入班级 #### ClassAnalysis组件 - **前端服务**: `orgService` - **API调用**: `getClassMembers(classId: string)` - **后端文件**: `org.controller.ts` - **接口**: `GET /api/org/classes/:id/members` - **参数**: classId - **说明**: 获取班级成员列表 ### 10. 消息组件 (Message Components) #### CreateMessageModal组件 - **前端服务**: `messageService` - **API调用**: - `getMessages()` - `createMessage(data: CreateMessageDto)` - **后端文件**: `common.controller.ts` - **接口**: - `GET /api/messages` - `POST /api/messages` - **说明**: 获取消息列表、创建消息 #### NotificationList组件 - **前端服务**: `messageService` - **API调用**: `getMessages()` - **后端文件**: `common.controller.ts` - **接口**: `GET /api/messages` - **参数**: 无 - **说明**: 获取消息列表 ### 11. 日程组件 (Schedule Components) #### Timetable组件 - **前端服务**: `scheduleService` - **API调用**: `getWeekSchedule()` - **后端文件**: `common.controller.ts` - **接口**: `GET /api/schedule` - **参数**: 无 - **说明**: 获取周日程 #### EventModal组件 - **前端服务**: `scheduleService` - **API调用**: - `addEvent(data: CreateScheduleDto)` - `deleteEvent(id: string)` - **后端文件**: `common.controller.ts` - **接口**: - `POST /api/schedule` - `DELETE /api/schedule/:id` - **说明**: 添加日程、删除日程 ### 12. 设置组件 (Settings Components) #### ProfileSettings组件 - **前端服务**: `authService` - **API调用**: `updateProfile(data: UpdateProfileDto)` - **后端文件**: `auth.controller.ts` - **接口**: `PUT /api/auth/profile` - **参数**: realName, avatarUrl, bio, gender - **说明**: 更新用户资料 #### SecuritySettings组件 - **前端服务**: `authService` - **API调用**: `changePassword(data: ChangePasswordDto)` - **后端文件**: `auth.controller.ts` - **接口**: `POST /api/auth/change-password` - **参数**: oldPassword, newPassword - **说明**: 修改密码 ## 未使用但可能需要的API ### 1. 用户管理 - **前端服务**: `authService` - **API调用**: `updateProfile(data: UpdateProfileDto)` - **后端文件**: `auth.controller.ts` - **接口**: `PUT /api/auth/profile` - **参数**: realName, avatarUrl, bio, gender - **说明**: 更新用户资料 - **使用状态**: 已在ProfileSettings组件中使用 ### 2. 密码管理 - **前端服务**: `authService` - **API调用**: `changePassword(data: ChangePasswordDto)` - **后端文件**: `auth.controller.ts` - **接口**: `POST /api/auth/change-password` - **参数**: oldPassword, newPassword - **说明**: 修改密码 - **使用状态**: 已在SecuritySettings组件中使用 ### 3. 知识点管理 - **前端服务**: `curriculumService` - **API调用**: `createKnowledgePoint(data: any)` - **后端文件**: `curriculum.controller.ts` - **接口**: `POST /api/curriculum/knowledge-points` - **参数**: lessonId, name, difficulty, description - **说明**: 创建知识点 - **使用状态**: 未在前端组件中直接使用 ### 4. 课时管理 - **前端服务**: `curriculumService` - **API调用**: `createLesson(data: any)` - **后端文件**: `curriculum.controller.ts` - **接口**: `POST /api/curriculum/lessons` - **参数**: unitId, name, sortOrder - **说明**: 创建课时 - **使用状态**: 未在前端组件中直接使用 ### 5. 单元管理 - **前端服务**: `curriculumService` - **API调用**: `createUnit(data: any)` - **后端文件**: `curriculum.controller.ts` - **接口**: `POST /api/curriculum/units` - **参数**: textbookId, name, sortOrder - **说明**: 创建单元 - **使用状态**: 未在前端组件中直接使用 ### 6. 消息管理 - **前端服务**: `messageService` - **API调用**: `markAsRead(id: string)` - **后端文件**: `common.controller.ts` - **接口**: `PUT /api/messages/:id/read` - **参数**: id - **说明**: 标记消息为已读 - **使用状态**: 未在前端组件中直接使用 ### 7. 统计分析 - **前端服务**: `analyticsService` - **API调用**: `getClassPerformance()` - **后端文件**: `analytics.controller.ts` - **接口**: `GET /api/analytics/class-performance` - **参数**: 无 - **说明**: 获取班级表现 - **使用状态**: 已在TeacherDashboard组件中使用 ### 8. 学生成长 - **前端服务**: `analyticsService` - **API调用**: `getStudentGrowth()` - **后端文件**: `analytics.controller.ts` - **接口**: `GET /api/analytics/student-growth` - **参数**: 无 - **说明**: 获取学生成长数据 - **使用状态**: 已在StudentDashboard组件中使用 ## API参数类型说明 ### 基础数据类型 - **string**: 文本类型 - **number**: 数字类型 - **boolean**: 布尔类型 - **Date**: 日期类型 - **Array**: 数组类型 - **Object**: 对象类型 ### 特殊类型 - **UserRole**: 'Student' | 'Teacher' | 'Admin' - **QuestionType**: 'SingleChoice' | 'MultipleChoice' | 'TrueFalse' | 'Subjective' | 'FillBlank' - **SubmissionStatus**: 'Pending' | 'Submitted' | 'Graded' | 'Late' - **ExamStatus**: 'Draft' | 'Published' | 'Archived' - **Difficulty**: 1-5 (数字,1为最简单,5为最难) ### 枚举类型 - **NodeType**: 'Group' | 'Question' - **SortOrder**: 数字,表示排序顺序 - **Message Type**: 'System' | 'Teacher' | 'Student' ## 数据格式说明 ### 分页数据格式 ```typescript { items: T[], totalCount: number, pageIndex: number, pageSize: number } ``` ### 树形数据格式 ```typescript { id: string, name: string, children?: TreeNode[] } ``` ### 统计数据格式 ```typescript { total: number, passed: number, average: number, distribution: Array<{ range: string, count: number }> } ``` ## 注意事项 1. **认证**: 大部分API都需要用户认证,需要在请求头中包含JWT token 2. **权限**: 某些API需要特定权限(如教师权限) 3. **分页**: 列表类API通常支持分页,需要传入page和pageSize参数 4. **错误处理**: 前端需要处理各种可能的错误情况,如网络错误、权限不足、数据不存在等 5. **实时更新**: 某些操作(如提交作业)可能需要实时更新界面状态