course-class.ts 2.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  1. // src/api/course-class.ts
  2. import { request } from '@/utils/request';
  3. // --- 类型定义 ---
  4. // 【变更】班级基本信息 (用于列表显示,如 /class/course/{courseId} 返回的项)
  5. interface ClassBasicInfo {
  6. classId: string | number; // 【变更】根据后端示例
  7. className: string; // 【变更】根据后端示例
  8. // 如果后端在基本信息列表中还返回了其他字段,这里可以添加
  9. // stuNumber?: number; // 如果列表也包含,可以加上
  10. }
  11. // 课程基本信息 (保持不变,已根据课程返回值更新过)
  12. interface CourseBasicInfo {
  13. courseId: string | number;
  14. courseName: string;
  15. teacherIds: string[] | null;
  16. teacherPid: number;
  17. teacherNames: string[];
  18. courseImages: string[] | null;
  19. targetGrade: string | null;
  20. startTime: string | null;
  21. endTime: string | null;
  22. createTime: string | null;
  23. description: string | null;
  24. }
  25. // 【变更】学生列表项的类型
  26. interface StudentListItem {
  27. stuName: string;
  28. officialNumber: string;
  29. state: number; // 假设0或1代表某种状态
  30. }
  31. // 【变更】班级详细信息(包含学生参与列表,如 /class/{classId} 返回的项)
  32. interface ClassDetailsInfo {
  33. classId: string | number;
  34. className: string;
  35. stuNumber: number;
  36. classTime: string;
  37. teacherId: string | number;
  38. studentList: StudentListItem[]; // 【变更】使用定义的学生列表项类型
  39. }
  40. // --- API 接口封装 ---
  41. /**
  42. * 教师 - 查询所有创建课程
  43. * GET /course/all/teacher?teacherPid={teacherPid}
  44. * @param teacherPid 教师ID
  45. */
  46. export const getAllCoursesForTeacherApi = (teacherPid: string | number): Promise<CourseBasicInfo[]> => {
  47. return request<CourseBasicInfo[]>({
  48. url: '/course/all/teacher',
  49. method: 'GET',
  50. params: { teacherPid }
  51. });
  52. };
  53. /**
  54. * 教师 - 根据课程id查找班级信息 (返回列表)
  55. * GET /class/course/{courseId}
  56. * @param courseId 课程ID
  57. */
  58. export const getClassesByCourseIdApi = (courseId: string | number): Promise<ClassBasicInfo[]> => { // 【变更】返回 ClassBasicInfo[]
  59. return request<ClassBasicInfo[]>({
  60. url: `/class/course/${courseId}`,
  61. method: 'GET'
  62. });
  63. };
  64. /**
  65. * 教师-获取自己创建的班级列表信息
  66. * GET /class/teacher/{teacherId}
  67. * @param teacherId 教师ID
  68. */
  69. export const getClassesByTeacherIdApi = (teacherId: string | number): Promise<ClassBasicInfo[]> => { // 【变更】返回 ClassBasicInfo[]
  70. return request<ClassBasicInfo[]>({
  71. url: `/class/teacher/${teacherId}`,
  72. method: 'GET'
  73. });
  74. };
  75. /**
  76. * 教师学生-获取班级详细信息(包含学生参与列表)
  77. * GET /class/{classId}
  78. * @param classId 班级ID
  79. */
  80. export const getClassDetailsApi = (classId: string | number): Promise<ClassDetailsInfo> => { // 【变更】返回 ClassDetailsInfo
  81. return request<ClassDetailsInfo>({
  82. url: `/class/${classId}`,
  83. method: 'GET'
  84. });
  85. };