diff --git a/reading-platform-frontend/src/api/generated/index.ts b/reading-platform-frontend/src/api/generated/index.ts index 805dc0d..f263c1a 100644 --- a/reading-platform-frontend/src/api/generated/index.ts +++ b/reading-platform-frontend/src/api/generated/index.ts @@ -7,6 +7,7 @@ */ import type { BasicSettingsUpdateRequest, + BatchStudentRecordsRequest, BindStudentParams, ChangePasswordParams, CheckConflictParams, @@ -32,6 +33,7 @@ import type { GetAllCoursesParams, GetAllStudentsParams, GetCalendarViewDataParams, + GetChildLessonsParams, GetClassPageParams, GetClassStudents1Params, GetClassStudentsParams, @@ -98,6 +100,7 @@ import type { StudentCreateRequest, StudentRecordRequest, StudentUpdateRequest, + TaskCompleteRequest, TaskCreateRequest, TaskFeedbackRequest, TaskSubmitRequest, @@ -111,7 +114,6 @@ import type { UpdateBasicSettings1Body, UpdateClassTeacherBody, UpdateNotificationSettings1Body, - UpdateProfileRequest, UpdateSecuritySettings1Body, UpdateSettings1Body, UpdateStorageSettingsBody, @@ -853,76 +855,6 @@ const submitTask = ( ); } -/** - * @summary Get growth record by ID - */ -const getGrowthRecord2 = ( - id: number, - ) => { - return customMutator( - {url: `/v1/parent/growth-records/${id}`, method: 'GET', - responseType: 'blob' - }, - ); - } - -/** - * @summary Update growth record - */ -const updateGrowthRecord2 = ( - id: number, - growthRecordUpdateRequest: GrowthRecordUpdateRequest, - ) => { - return customMutator( - {url: `/v1/parent/growth-records/${id}`, method: 'PUT', - headers: {'Content-Type': 'application/json', }, - data: growthRecordUpdateRequest, - responseType: 'blob' - }, - ); - } - -/** - * @summary Delete growth record - */ -const deleteGrowthRecord2 = ( - id: number, - ) => { - return customMutator( - {url: `/v1/parent/growth-records/${id}`, method: 'DELETE', - responseType: 'blob' - }, - ); - } - -/** - * @summary 获取当前用户信息 - */ -const getCurrentUser = ( - - ) => { - return customMutator( - {url: `/v1/auth/profile`, method: 'GET', - responseType: 'blob' - }, - ); - } - -/** - * @summary 修改个人信息 - */ -const updateProfile = ( - updateProfileRequest: UpdateProfileRequest, - ) => { - return customMutator( - {url: `/v1/auth/profile`, method: 'PUT', - headers: {'Content-Type': 'application/json', }, - data: updateProfileRequest, - responseType: 'blob' - }, - ); - } - /** * @summary 查询主题详情 */ @@ -1666,12 +1598,12 @@ const saveStudentRecord = ( */ const batchSaveStudentRecords = ( id: number, - studentRecordRequest: StudentRecordRequest[], + batchStudentRecordsRequest: BatchStudentRecordsRequest, ) => { return customMutator( {url: `/v1/teacher/lessons/${id}/students/batch-records`, method: 'POST', headers: {'Content-Type': 'application/json', }, - data: studentRecordRequest, + data: batchStudentRecordsRequest, responseType: 'blob' }, ); @@ -2182,14 +2114,17 @@ const assignStudents = ( } /** - * @summary 完成任务(旧接口,兼容使用) + * @summary 完成任务(旧接口,兼容使用,支持 JSON body) */ const completeTask = ( id: number, - params: CompleteTaskParams, + taskCompleteRequest: TaskCompleteRequest, + params?: CompleteTaskParams, ) => { return customMutator( {url: `/v1/parent/tasks/${id}/complete`, method: 'POST', + headers: {'Content-Type': 'application/json', }, + data: taskCompleteRequest, params, responseType: 'blob' }, @@ -2222,21 +2157,6 @@ const markAllAsRead1 = ( ); } -/** - * @summary Create growth record - */ -const createGrowthRecord2 = ( - growthRecordCreateRequest: GrowthRecordCreateRequest, - ) => { - return customMutator( - {url: `/v1/parent/growth-records`, method: 'POST', - headers: {'Content-Type': 'application/json', }, - data: growthRecordCreateRequest, - responseType: 'blob' - }, - ); - } - /** * 当 Token 即将过期时刷新 * @summary 刷新 WebOffice Token @@ -3541,7 +3461,7 @@ const getSchoolCourse = ( } /** - * @summary 获取我的任务列表 + * @summary 获取我的任务列表(聚合多孩子任务) */ const getMyTasks = ( params?: GetMyTasksParams, @@ -3568,7 +3488,7 @@ const getTask1 = ( } /** - * @summary 获取孩子的任务列表 + * @summary 获取孩子的任务列表(含完成信息与教师评价) */ const getTasksByStudent = ( studentId: number, @@ -3648,6 +3568,19 @@ const getUnreadCount1 = ( ); } +/** + * @summary Get growth record by ID + */ +const getGrowthRecord2 = ( + id: number, + ) => { + return customMutator( + {url: `/v1/parent/growth-records/${id}`, method: 'GET', + responseType: 'blob' + }, + ); + } + /** * @summary Get growth records by student ID */ @@ -3704,6 +3637,21 @@ const getChild = ( ); } +/** + * @summary Get child lesson records (reading history) + */ +const getChildLessons = ( + id: number, + params?: GetChildLessonsParams, + ) => { + return customMutator( + {url: `/v1/parent/children/${id}/lessons`, method: 'GET', + params, + responseType: 'blob' + }, + ); + } + /** * @summary Get child growth records */ @@ -3761,6 +3709,19 @@ const getOssToken = ( ); } +/** + * @summary 获取当前用户信息 + */ +const getCurrentUser = ( + + ) => { + return customMutator( + {url: `/v1/auth/profile`, method: 'GET', + responseType: 'blob' + }, + ); + } + /** * @summary 获取租户统计信息 */ @@ -3936,7 +3897,7 @@ const deleteFile = ( ); } -return {getTask,updateTask,deleteTask,updateFeedback,submitFeedback,getTemplate,updateTemplate,deleteTemplate,getSchedule,updateSchedule,cancelSchedule,getLesson,updateLesson,getLessonProgress,saveLessonProgress,getGrowthRecord,updateGrowthRecord,deleteGrowthRecord,getTeacher,updateTeacher,deleteTeacher,getTemplate1,updateTemplate1,deleteTemplate1,getStudent,updateStudent,deleteStudent,getSettings,updateSettings,getSecuritySettings,updateSecuritySettings,getNotificationSettings,updateNotificationSettings,getBasicSettings,updateBasicSettings,getSchedule1,updateSchedule1,cancelSchedule1,getParent,updateParent,deleteParent,getGrowthRecord1,updateGrowthRecord1,deleteGrowthRecord1,getClass,updateClass,deleteClass,updateClassTeacher,removeClassTeacher,updateSubmission,submitTask,getGrowthRecord2,updateGrowthRecord2,deleteGrowthRecord2,getCurrentUser,updateProfile,findOne,update,_delete,reorder,getTenant,updateTenant,deleteTenant,updateTenantStatus,updateTenantQuota,getAllSettings,updateSettings1,getStorageSettings,updateStorageSettings,getSecuritySettings1,updateSecuritySettings1,getNotificationSettings1,updateNotificationSettings1,getBasicSettings1,updateBasicSettings1,findLibrary,updateLibrary,deleteLibrary,findItem,updateItem,deleteItem,getCourse1,updateCourse,deleteCourse,reorderSteps,findOne1,update1,delete1,updateStep,removeStep,reorder1,findOne2,update2,delete2,setPackages,getTaskPage,createTask,getTemplates,createTemplate,createFromTemplate,getSchedules,createSchedule,markAsRead,markAllAsRead,getMyLessons,createLesson,saveStudentRecord,batchSaveStudentRecords,startLesson,getLessonFeedback,submitFeedback1,completeLesson,cancelLesson,createLessonFromSchedule,startLessonFromSchedule,getGrowthRecordPage,createGrowthRecord,getTeacherPage,createTeacher,resetPassword,getTemplates1,createTemplate1,getStudentPage,createStudent,getSchedules1,createSchedule1,checkConflict,batchCreateSchedules,createSchedulesByClasses,getParentPage,createParent,bindStudent,unbindStudent,resetPassword1,renewCollection,getGrowthRecordPage1,createGrowthRecord1,getClassPage,createClass,getClassTeachers1,assignTeachers,getClassStudents1,assignStudents,completeTask,markAsRead1,markAllAsRead1,createGrowthRecord2,refreshToken,uploadFile,refreshToken1,logout,login,changePassword,findAll,create,getTenantPage,createTenant,resetTenantPassword,findAllLibraries,createLibrary,findAllItems,createItem,batchDeleteItems,getCoursePage1,createCourse,submitCourse,rejectCourse,publishCourse,archiveCourse,findAll1,create1,findSteps,createStep,page,create2,withdraw,submit,republish,reject,publish,archive,getWeeklyStats,getTodayLessons,getTaskCompletions,getCompletionDetail,getDefaultTemplate,getAllStudents,getTodaySchedules,getTimetable,getRecommendedCourses,getMyNotifications,getNotification,getUnreadCount,getStudentRecords,getTodayLessons1,getLessonTrend,getFeedbacks,getFeedbackStats,getDashboard,getCoursePage,getCourse,getAllCourses,getCourseUsage,getClasses,getClassTeachers,getClassStudents,getDefaultTemplate1,getSchoolStats,getActiveTeachers,getLessonTrend1,getCourseUsageStats,getCourseDistribution,getRecentActivities,getTimetable1,getCoursePackageLessonTypes,getCalendarViewData,getTeacherReports,getStudentReports,getOverview,getCourseReports,getTaskList,getTaskDetail,getTaskCompletions1,getStatistics,getCompletionDetail1,getParentChildren,findTenantCollections,getPackagesByCollection,getPackageCourses,getPackageInfo,getPackageUsage,getLogList,getLogDetail,getLogStats,getFeedbacks1,getFeedbackStats1,exportTeacherStats,exportStudentStats,exportLessons,exportGrowthRecords,getSchoolCourses,getSchoolCourse,getMyTasks,getTask1,getTasksByStudent,getCompletionDetail2,getFeedback,getMyNotifications1,getNotification1,getUnreadCount1,getGrowthRecordsByStudent,getRecentGrowthRecords,getMyChildren,getChild,getChildGrowth,generateEditToken,generateReadOnlyToken,getOssToken,getTenantStats,getAllActiveTenants,getStats,getTrendData,getActiveTenants,getPopularCourses,getRecentActivities1,getTenantDefaults,getStats1,getAllPublishedCourses,findByType,getAllPublishedCollections,deleteFile}}; +return {getTask,updateTask,deleteTask,updateFeedback,submitFeedback,getTemplate,updateTemplate,deleteTemplate,getSchedule,updateSchedule,cancelSchedule,getLesson,updateLesson,getLessonProgress,saveLessonProgress,getGrowthRecord,updateGrowthRecord,deleteGrowthRecord,getTeacher,updateTeacher,deleteTeacher,getTemplate1,updateTemplate1,deleteTemplate1,getStudent,updateStudent,deleteStudent,getSettings,updateSettings,getSecuritySettings,updateSecuritySettings,getNotificationSettings,updateNotificationSettings,getBasicSettings,updateBasicSettings,getSchedule1,updateSchedule1,cancelSchedule1,getParent,updateParent,deleteParent,getGrowthRecord1,updateGrowthRecord1,deleteGrowthRecord1,getClass,updateClass,deleteClass,updateClassTeacher,removeClassTeacher,updateSubmission,submitTask,findOne,update,_delete,reorder,getTenant,updateTenant,deleteTenant,updateTenantStatus,updateTenantQuota,getAllSettings,updateSettings1,getStorageSettings,updateStorageSettings,getSecuritySettings1,updateSecuritySettings1,getNotificationSettings1,updateNotificationSettings1,getBasicSettings1,updateBasicSettings1,findLibrary,updateLibrary,deleteLibrary,findItem,updateItem,deleteItem,getCourse1,updateCourse,deleteCourse,reorderSteps,findOne1,update1,delete1,updateStep,removeStep,reorder1,findOne2,update2,delete2,setPackages,getTaskPage,createTask,getTemplates,createTemplate,createFromTemplate,getSchedules,createSchedule,markAsRead,markAllAsRead,getMyLessons,createLesson,saveStudentRecord,batchSaveStudentRecords,startLesson,getLessonFeedback,submitFeedback1,completeLesson,cancelLesson,createLessonFromSchedule,startLessonFromSchedule,getGrowthRecordPage,createGrowthRecord,getTeacherPage,createTeacher,resetPassword,getTemplates1,createTemplate1,getStudentPage,createStudent,getSchedules1,createSchedule1,checkConflict,batchCreateSchedules,createSchedulesByClasses,getParentPage,createParent,bindStudent,unbindStudent,resetPassword1,renewCollection,getGrowthRecordPage1,createGrowthRecord1,getClassPage,createClass,getClassTeachers1,assignTeachers,getClassStudents1,assignStudents,completeTask,markAsRead1,markAllAsRead1,refreshToken,uploadFile,refreshToken1,logout,login,changePassword,findAll,create,getTenantPage,createTenant,resetTenantPassword,findAllLibraries,createLibrary,findAllItems,createItem,batchDeleteItems,getCoursePage1,createCourse,submitCourse,rejectCourse,publishCourse,archiveCourse,findAll1,create1,findSteps,createStep,page,create2,withdraw,submit,republish,reject,publish,archive,getWeeklyStats,getTodayLessons,getTaskCompletions,getCompletionDetail,getDefaultTemplate,getAllStudents,getTodaySchedules,getTimetable,getRecommendedCourses,getMyNotifications,getNotification,getUnreadCount,getStudentRecords,getTodayLessons1,getLessonTrend,getFeedbacks,getFeedbackStats,getDashboard,getCoursePage,getCourse,getAllCourses,getCourseUsage,getClasses,getClassTeachers,getClassStudents,getDefaultTemplate1,getSchoolStats,getActiveTeachers,getLessonTrend1,getCourseUsageStats,getCourseDistribution,getRecentActivities,getTimetable1,getCoursePackageLessonTypes,getCalendarViewData,getTeacherReports,getStudentReports,getOverview,getCourseReports,getTaskList,getTaskDetail,getTaskCompletions1,getStatistics,getCompletionDetail1,getParentChildren,findTenantCollections,getPackagesByCollection,getPackageCourses,getPackageInfo,getPackageUsage,getLogList,getLogDetail,getLogStats,getFeedbacks1,getFeedbackStats1,exportTeacherStats,exportStudentStats,exportLessons,exportGrowthRecords,getSchoolCourses,getSchoolCourse,getMyTasks,getTask1,getTasksByStudent,getCompletionDetail2,getFeedback,getMyNotifications1,getNotification1,getUnreadCount1,getGrowthRecord2,getGrowthRecordsByStudent,getRecentGrowthRecords,getMyChildren,getChild,getChildLessons,getChildGrowth,generateEditToken,generateReadOnlyToken,getOssToken,getCurrentUser,getTenantStats,getAllActiveTenants,getStats,getTrendData,getActiveTenants,getPopularCourses,getRecentActivities1,getTenantDefaults,getStats1,getAllPublishedCourses,findByType,getAllPublishedCollections,deleteFile}}; export type GetTaskResult = NonNullable['getTask']>>> export type UpdateTaskResult = NonNullable['updateTask']>>> export type DeleteTaskResult = NonNullable['deleteTask']>>> @@ -3988,11 +3949,6 @@ export type UpdateClassTeacherResult = NonNullable['removeClassTeacher']>>> export type UpdateSubmissionResult = NonNullable['updateSubmission']>>> export type SubmitTaskResult = NonNullable['submitTask']>>> -export type GetGrowthRecord2Result = NonNullable['getGrowthRecord2']>>> -export type UpdateGrowthRecord2Result = NonNullable['updateGrowthRecord2']>>> -export type DeleteGrowthRecord2Result = NonNullable['deleteGrowthRecord2']>>> -export type GetCurrentUserResult = NonNullable['getCurrentUser']>>> -export type UpdateProfileResult = NonNullable['updateProfile']>>> export type FindOneResult = NonNullable['findOne']>>> export type UpdateResult = NonNullable['update']>>> export type _DeleteResult = NonNullable['_delete']>>> @@ -4083,7 +4039,6 @@ export type AssignStudentsResult = NonNullable['completeTask']>>> export type MarkAsRead1Result = NonNullable['markAsRead1']>>> export type MarkAllAsRead1Result = NonNullable['markAllAsRead1']>>> -export type CreateGrowthRecord2Result = NonNullable['createGrowthRecord2']>>> export type RefreshTokenResult = NonNullable['refreshToken']>>> export type UploadFileResult = NonNullable['uploadFile']>>> export type RefreshToken1Result = NonNullable['refreshToken1']>>> @@ -4187,14 +4142,17 @@ export type GetFeedbackResult = NonNullable['getMyNotifications1']>>> export type GetNotification1Result = NonNullable['getNotification1']>>> export type GetUnreadCount1Result = NonNullable['getUnreadCount1']>>> +export type GetGrowthRecord2Result = NonNullable['getGrowthRecord2']>>> export type GetGrowthRecordsByStudentResult = NonNullable['getGrowthRecordsByStudent']>>> export type GetRecentGrowthRecordsResult = NonNullable['getRecentGrowthRecords']>>> export type GetMyChildrenResult = NonNullable['getMyChildren']>>> export type GetChildResult = NonNullable['getChild']>>> +export type GetChildLessonsResult = NonNullable['getChildLessons']>>> export type GetChildGrowthResult = NonNullable['getChildGrowth']>>> export type GenerateEditTokenResult = NonNullable['generateEditToken']>>> export type GenerateReadOnlyTokenResult = NonNullable['generateReadOnlyToken']>>> export type GetOssTokenResult = NonNullable['getOssToken']>>> +export type GetCurrentUserResult = NonNullable['getCurrentUser']>>> export type GetTenantStatsResult = NonNullable['getTenantStats']>>> export type GetAllActiveTenantsResult = NonNullable['getAllActiveTenants']>>> export type GetStatsResult = NonNullable['getStats']>>> diff --git a/reading-platform-frontend/src/api/generated/model/batchStudentRecordsRequest.ts b/reading-platform-frontend/src/api/generated/model/batchStudentRecordsRequest.ts new file mode 100644 index 0000000..769332b --- /dev/null +++ b/reading-platform-frontend/src/api/generated/model/batchStudentRecordsRequest.ts @@ -0,0 +1,16 @@ +/** + * Generated by orval v8.5.3 🍺 + * Do not edit manually. + * Reading Platform API + * Reading Platform Backend Service API Documentation + * OpenAPI spec version: 1.0.0 + */ +import type { StudentRecordRequest } from './studentRecordRequest'; + +/** + * 批量保存学生记录请求 + */ +export interface BatchStudentRecordsRequest { + /** 记录列表 */ + records: StudentRecordRequest[]; +} diff --git a/reading-platform-frontend/src/api/generated/model/childInfoResponse.ts b/reading-platform-frontend/src/api/generated/model/childInfoResponse.ts new file mode 100644 index 0000000..00f0922 --- /dev/null +++ b/reading-platform-frontend/src/api/generated/model/childInfoResponse.ts @@ -0,0 +1,29 @@ +/** + * Generated by orval v8.5.3 🍺 + * Do not edit manually. + * Reading Platform API + * Reading Platform Backend Service API Documentation + * OpenAPI spec version: 1.0.0 + */ +import type { ClassInfo } from './classInfo'; + +/** + * 家长端孩子列表响应 + */ +export interface ChildInfoResponse { + /** 学生ID */ + id?: number; + /** 姓名 */ + name?: string; + /** 性别 */ + gender?: string; + /** 出生日期 */ + birthDate?: string; + /** 与家长关系:FATHER/MOTHER/GRANDFATHER/GRANDMOTHER/OTHER */ + relationship?: string; + /** 阅读次数(student_record 数量) */ + readingCount?: number; + /** 上课次数(lesson 记录数) */ + lessonCount?: number; + class?: ClassInfo; +} diff --git a/reading-platform-frontend/src/api/generated/model/childProfileResponse.ts b/reading-platform-frontend/src/api/generated/model/childProfileResponse.ts new file mode 100644 index 0000000..d14cb19 --- /dev/null +++ b/reading-platform-frontend/src/api/generated/model/childProfileResponse.ts @@ -0,0 +1,31 @@ +/** + * Generated by orval v8.5.3 🍺 + * Do not edit manually. + * Reading Platform API + * Reading Platform Backend Service API Documentation + * OpenAPI spec version: 1.0.0 + */ +import type { ClassInfo } from './classInfo'; +import type { StatsInfo } from './statsInfo'; + +/** + * 家长端孩子详情响应 + */ +export interface ChildProfileResponse { + /** 学生ID */ + id?: number; + /** 姓名 */ + name?: string; + /** 性别 */ + gender?: string; + /** 出生日期 */ + birthDate?: string; + /** 与家长关系 */ + relationship?: string; + /** 阅读次数 */ + readingCount?: number; + /** 上课次数 */ + lessonCount?: number; + stats?: StatsInfo; + class?: ClassInfo; +} diff --git a/reading-platform-frontend/src/api/generated/model/completeTaskParams.ts b/reading-platform-frontend/src/api/generated/model/completeTaskParams.ts index d7beb15..c2f447d 100644 --- a/reading-platform-frontend/src/api/generated/model/completeTaskParams.ts +++ b/reading-platform-frontend/src/api/generated/model/completeTaskParams.ts @@ -7,7 +7,7 @@ */ export type CompleteTaskParams = { -studentId: number; +studentId?: number; content?: string; attachments?: string; }; diff --git a/reading-platform-frontend/src/api/generated/model/courseInfo.ts b/reading-platform-frontend/src/api/generated/model/courseInfo.ts new file mode 100644 index 0000000..1b89b2d --- /dev/null +++ b/reading-platform-frontend/src/api/generated/model/courseInfo.ts @@ -0,0 +1,17 @@ +/** + * Generated by orval v8.5.3 🍺 + * Do not edit manually. + * Reading Platform API + * Reading Platform Backend Service API Documentation + * OpenAPI spec version: 1.0.0 + */ + +/** + * 关联课程信息 + */ +export interface CourseInfo { + /** 课程ID */ + id?: number; + /** 课程名称 */ + name?: string; +} diff --git a/reading-platform-frontend/src/api/generated/model/getChildLessonsParams.ts b/reading-platform-frontend/src/api/generated/model/getChildLessonsParams.ts new file mode 100644 index 0000000..423f26d --- /dev/null +++ b/reading-platform-frontend/src/api/generated/model/getChildLessonsParams.ts @@ -0,0 +1,12 @@ +/** + * Generated by orval v8.5.3 🍺 + * Do not edit manually. + * Reading Platform API + * Reading Platform Backend Service API Documentation + * OpenAPI spec version: 1.0.0 + */ + +export type GetChildLessonsParams = { +pageNum?: number; +pageSize?: number; +}; diff --git a/reading-platform-frontend/src/api/generated/model/getMyNotifications1Params.ts b/reading-platform-frontend/src/api/generated/model/getMyNotifications1Params.ts index fd065a5..be3e3b2 100644 --- a/reading-platform-frontend/src/api/generated/model/getMyNotifications1Params.ts +++ b/reading-platform-frontend/src/api/generated/model/getMyNotifications1Params.ts @@ -10,4 +10,5 @@ export type GetMyNotifications1Params = { pageNum?: number; pageSize?: number; isRead?: number; +notificationType?: string; }; diff --git a/reading-platform-frontend/src/api/generated/model/getTaskPageParams.ts b/reading-platform-frontend/src/api/generated/model/getTaskPageParams.ts index 4f0c74c..bdafab8 100644 --- a/reading-platform-frontend/src/api/generated/model/getTaskPageParams.ts +++ b/reading-platform-frontend/src/api/generated/model/getTaskPageParams.ts @@ -11,5 +11,6 @@ pageNum?: number; pageSize?: number; keyword?: string; type?: string; +taskType?: string; status?: string; }; diff --git a/reading-platform-frontend/src/api/generated/model/growthRecordForParentResponse.ts b/reading-platform-frontend/src/api/generated/model/growthRecordForParentResponse.ts new file mode 100644 index 0000000..80454a4 --- /dev/null +++ b/reading-platform-frontend/src/api/generated/model/growthRecordForParentResponse.ts @@ -0,0 +1,29 @@ +/** + * Generated by orval v8.5.3 🍺 + * Do not edit manually. + * Reading Platform API + * Reading Platform Backend Service API Documentation + * OpenAPI spec version: 1.0.0 + */ +import type { ClassInfo } from './classInfo'; + +/** + * 家长端成长档案响应 + */ +export interface GrowthRecordForParentResponse { + /** ID */ + id?: number; + /** 标题 */ + title?: string; + /** 内容 */ + content?: string; + /** 图片URL列表 */ + images?: string[]; + /** 记录日期 */ + recordDate?: string; + /** 记录类型 */ + recordType?: string; + /** 创建时间 */ + createdAt?: string; + class?: ClassInfo; +} diff --git a/reading-platform-frontend/src/api/generated/model/index.ts b/reading-platform-frontend/src/api/generated/model/index.ts index 5849451..764f5b4 100644 --- a/reading-platform-frontend/src/api/generated/model/index.ts +++ b/reading-platform-frontend/src/api/generated/model/index.ts @@ -12,6 +12,7 @@ export * from './addClassTeacherDto'; export * from './addPackageToCollectionParams'; export * from './adminStatsControllerGetActiveTenantsParams'; export * from './adminStatsControllerGetPopularCoursesParams'; +export * from './adminStatsControllerGetRecentActivitiesParams'; export * from './approveCourseDto'; export * from './approveCourseDtoChecklist'; export * from './basicSettingsResponse'; @@ -19,11 +20,14 @@ export * from './basicSettingsUpdateRequest'; export * from './batchCreateSchedulesBody'; export * from './batchStudentRecordsDto'; export * from './batchStudentRecordsDtoRecordsItem'; +export * from './batchStudentRecordsRequest'; export * from './bindStudentParams'; export * from './calendarViewResponse'; export * from './calendarViewResponseSchedules'; export * from './changePasswordParams'; export * from './checkConflictParams'; +export * from './childInfoResponse'; +export * from './childProfileResponse'; export * from './classCreateRequest'; export * from './classInfo'; export * from './classResponse'; @@ -40,6 +44,7 @@ export * from './courseCollectionResponse'; export * from './courseControllerFindAllParams'; export * from './courseControllerGetReviewListParams'; export * from './courseCreateRequest'; +export * from './courseInfo'; export * from './courseLesson'; export * from './courseLessonCreateRequest'; export * from './courseLessonResponse'; @@ -48,13 +53,11 @@ export * from './coursePackageControllerFindAllParams'; export * from './coursePackageCourseItem'; export * from './coursePackageItem'; export * from './coursePackageResponse'; -export * from './coursePackageVO'; export * from './coursePageQueryRequest'; export * from './courseRejectRequest'; export * from './courseReportResponse'; export * from './courseResponse'; export * from './courseUpdateRequest'; -export * from './courseUsageVO'; export * from './createClassDto'; export * from './createCollectionRequest'; export * from './createFromSourceDto'; @@ -100,6 +103,7 @@ export * from './getActiveTenantsParams'; export * from './getAllCoursesParams'; export * from './getAllStudentsParams'; export * from './getCalendarViewDataParams'; +export * from './getChildLessonsParams'; export * from './getClassPageParams'; export * from './getClassStudents1Params'; export * from './getClassStudentsParams'; @@ -122,6 +126,10 @@ export * from './getParentPageParams'; export * from './getPopularCourses200'; export * from './getPopularCourses200DataItem'; export * from './getPopularCoursesParams'; +export * from './getRecentActivities1200'; +export * from './getRecentActivities1200DataItem'; +export * from './getRecentActivities1Params'; +export * from './getRecentActivitiesParams'; export * from './getRecentGrowthRecordsParams'; export * from './getSchedules1Params'; export * from './getSchedulesParams'; @@ -144,6 +152,7 @@ export * from './grantCollectionRequest'; export * from './grantRequest'; export * from './growthRecord'; export * from './growthRecordCreateRequest'; +export * from './growthRecordForParentResponse'; export * from './growthRecordResponse'; export * from './growthRecordUpdateRequest'; export * from './immTokenVo'; @@ -159,10 +168,12 @@ export * from './lessonFeedbackDtoActivitiesDone'; export * from './lessonFeedbackDtoStepFeedbacks'; export * from './lessonFeedbackRequest'; export * from './lessonFeedbackResponse'; +export * from './lessonInfo'; export * from './lessonProgressDto'; export * from './lessonProgressDtoProgressData'; export * from './lessonProgressRequest'; export * from './lessonProgressRequestProgressData'; +export * from './lessonRecordResponse'; export * from './lessonResponse'; export * from './lessonStep'; export * from './lessonStepCreateRequest'; @@ -178,6 +189,7 @@ export * from './loginDto'; export * from './loginRequest'; export * from './loginResponse'; export * from './notification'; +export * from './notificationForParentResponse'; export * from './notificationResponse'; export * from './notificationSettingsResponse'; export * from './notificationSettingsUpdateRequest'; @@ -201,11 +213,14 @@ export * from './pageResultCourseCollectionResponse'; export * from './pageResultCoursePackageResponse'; export * from './pageResultCourseResponse'; export * from './pageResultGrowthRecord'; +export * from './pageResultGrowthRecordForParentResponse'; export * from './pageResultGrowthRecordResponse'; export * from './pageResultLesson'; export * from './pageResultLessonFeedbackResponse'; +export * from './pageResultLessonRecordResponse'; export * from './pageResultLessonResponse'; export * from './pageResultNotification'; +export * from './pageResultNotificationForParentResponse'; export * from './pageResultNotificationResponse'; export * from './pageResultOperationLogResponse'; export * from './pageResultParent'; @@ -222,6 +237,7 @@ export * from './pageResultTask'; export * from './pageResultTaskCompletionDetailResponse'; export * from './pageResultTaskResponse'; export * from './pageResultTaskTemplateResponse'; +export * from './pageResultTaskWithCompletionResponse'; export * from './pageResultTeacher'; export * from './pageResultTeacherResponse'; export * from './pageResultTenant'; @@ -233,6 +249,8 @@ export * from './parentStudentResponse'; export * from './parentUpdateRequest'; export * from './popularCourseItemResponse'; export * from './popularCoursesQueryRequest'; +export * from './recentActivitiesQueryRequest'; +export * from './recentActivityItemResponse'; export * from './refreshTokenRequest'; export * from './rejectCourseDto'; export * from './rejectCourseDtoChecklist'; @@ -251,6 +269,7 @@ export * from './resourceLibraryResponse'; export * from './resourceLibraryUpdateRequest'; export * from './resultBasicSettingsResponse'; export * from './resultCalendarViewResponse'; +export * from './resultChildProfileResponse'; export * from './resultClassResponse'; export * from './resultClazz'; export * from './resultConflictCheckResult'; @@ -264,6 +283,7 @@ export * from './resultCourseResponse'; export * from './resultDto'; export * from './resultDtoData'; export * from './resultGrowthRecord'; +export * from './resultGrowthRecordForParentResponse'; export * from './resultGrowthRecordResponse'; export * from './resultImmTokenVo'; export * from './resultLesson'; @@ -273,6 +293,7 @@ export * from './resultLessonResponse'; export * from './resultLessonStep'; export * from './resultLessonStepResponse'; export * from './resultListActiveTenantItemResponse'; +export * from './resultListChildInfoResponse'; export * from './resultListClassResponse'; export * from './resultListClassTeacherResponse'; export * from './resultListClazz'; @@ -282,11 +303,10 @@ export * from './resultListCourseLesson'; export * from './resultListCourseLessonResponse'; export * from './resultListCoursePackage'; export * from './resultListCoursePackageResponse'; -export * from './resultListCoursePackageVO'; export * from './resultListCourseReportResponse'; export * from './resultListCourseResponse'; -export * from './resultListCourseUsageVO'; export * from './resultListGrowthRecord'; +export * from './resultListGrowthRecordForParentResponse'; export * from './resultListGrowthRecordResponse'; export * from './resultListLesson'; export * from './resultListLessonResponse'; @@ -297,13 +317,12 @@ export * from './resultListMapStringObject'; export * from './resultListMapStringObjectDataItem'; export * from './resultListParentStudentResponse'; export * from './resultListPopularCourseItemResponse'; +export * from './resultListRecentActivityItemResponse'; export * from './resultListSchedulePlanResponse'; export * from './resultListStudent'; export * from './resultListStudentRecordResponse'; export * from './resultListStudentReportResponse'; export * from './resultListStudentResponse'; -export * from './resultListTeacherLessonTrendVO'; -export * from './resultListTeacherLessonVO'; export * from './resultListTeacherReportResponse'; export * from './resultListTeacherResponse'; export * from './resultListTenantPackage'; @@ -318,6 +337,7 @@ export * from './resultMapStringObjectData'; export * from './resultMapStringString'; export * from './resultMapStringStringData'; export * from './resultNotification'; +export * from './resultNotificationForParentResponse'; export * from './resultNotificationResponse'; export * from './resultNotificationSettingsResponse'; export * from './resultObject'; @@ -336,11 +356,14 @@ export * from './resultPageResultCourseCollectionResponse'; export * from './resultPageResultCoursePackageResponse'; export * from './resultPageResultCourseResponse'; export * from './resultPageResultGrowthRecord'; +export * from './resultPageResultGrowthRecordForParentResponse'; export * from './resultPageResultGrowthRecordResponse'; export * from './resultPageResultLesson'; export * from './resultPageResultLessonFeedbackResponse'; +export * from './resultPageResultLessonRecordResponse'; export * from './resultPageResultLessonResponse'; export * from './resultPageResultNotification'; +export * from './resultPageResultNotificationForParentResponse'; export * from './resultPageResultNotificationResponse'; export * from './resultPageResultOperationLogResponse'; export * from './resultPageResultParent'; @@ -357,6 +380,7 @@ export * from './resultPageResultTask'; export * from './resultPageResultTaskCompletionDetailResponse'; export * from './resultPageResultTaskResponse'; export * from './resultPageResultTaskTemplateResponse'; +export * from './resultPageResultTaskWithCompletionResponse'; export * from './resultPageResultTeacher'; export * from './resultPageResultTeacherResponse'; export * from './resultPageResultTenant'; @@ -377,6 +401,7 @@ export * from './resultStatsTrendResponse'; export * from './resultString'; export * from './resultStudent'; export * from './resultStudentRecordResponse'; +export * from './resultStudentRecordsResponse'; export * from './resultStudentResponse'; export * from './resultTask'; export * from './resultTaskCompletionDetailResponse'; @@ -384,16 +409,13 @@ export * from './resultTaskFeedbackResponse'; export * from './resultTaskResponse'; export * from './resultTaskTemplateResponse'; export * from './resultTeacher'; -export * from './resultTeacherDashboardResponse'; export * from './resultTeacherResponse'; -export * from './resultTeacherWeeklyStatsResponse'; export * from './resultTenant'; export * from './resultTenantResponse'; export * from './resultTheme'; export * from './resultThemeResponse'; export * from './resultTimetableResponse'; export * from './resultTokenResponse'; -export * from './resultUpdateProfileResponse'; export * from './resultUserInfoResponse'; export * from './resultVoid'; export * from './resultVoidData'; @@ -413,6 +435,8 @@ export * from './securitySettingsResponse'; export * from './securitySettingsUpdateRequest'; export * from './statsControllerGetActiveTeachersParams'; export * from './statsControllerGetLessonTrendParams'; +export * from './statsControllerGetRecentActivitiesParams'; +export * from './statsInfo'; export * from './statsResponse'; export * from './statsTrendResponse'; export * from './stepCreateRequest'; @@ -422,20 +446,25 @@ export * from './studentInfo'; export * from './studentRecordDto'; export * from './studentRecordRequest'; export * from './studentRecordResponse'; +export * from './studentRecordsResponse'; export * from './studentReportResponse'; export * from './studentResponse'; export * from './studentUpdateRequest'; +export * from './studentWithRecordResponse'; export * from './submitCourseDto'; export * from './task'; +export * from './taskCompleteRequest'; export * from './taskCompletionDetailResponse'; export * from './taskCreateRequest'; export * from './taskFeedbackRequest'; export * from './taskFeedbackResponse'; +export * from './taskInfo'; export * from './taskResponse'; export * from './taskSubmitRequest'; export * from './taskTemplateCreateRequest'; export * from './taskTemplateResponse'; export * from './taskUpdateRequest'; +export * from './taskWithCompletionResponse'; export * from './teacher'; export * from './teacherCourseControllerFindAllParams'; export * from './teacherCourseControllerGetAllStudentsParams'; @@ -444,17 +473,12 @@ export * from './teacherCourseControllerGetLessonTrendParams'; export * from './teacherCourseControllerGetTeacherSchedulesParams'; export * from './teacherCourseControllerGetTeacherTimetableParams'; export * from './teacherCreateRequest'; -export * from './teacherDashboardResponse'; export * from './teacherFeedbackControllerFindAllParams'; -export * from './teacherLessonTrendVO'; -export * from './teacherLessonVO'; export * from './teacherReportResponse'; export * from './teacherResponse'; export * from './teacherResponseClassNames'; -export * from './teacherStats'; export * from './teacherTaskControllerGetMonthlyStatsParams'; export * from './teacherUpdateRequest'; -export * from './teacherWeeklyStatsResponse'; export * from './tenant'; export * from './tenantControllerFindAllPackageType'; export * from './tenantControllerFindAllParams'; @@ -480,8 +504,6 @@ export * from './updateLessonDto'; export * from './updateLibraryDto'; export * from './updateNotificationSettings1Body'; export * from './updateNotificationSettingsBody'; -export * from './updateProfileRequest'; -export * from './updateProfileResponse'; export * from './updateResourceItemDto'; export * from './updateSchedule1Body'; export * from './updateScheduleBody'; diff --git a/reading-platform-frontend/src/api/generated/model/lessonInfo.ts b/reading-platform-frontend/src/api/generated/model/lessonInfo.ts new file mode 100644 index 0000000..85bc603 --- /dev/null +++ b/reading-platform-frontend/src/api/generated/model/lessonInfo.ts @@ -0,0 +1,19 @@ +/** + * Generated by orval v8.5.3 🍺 + * Do not edit manually. + * Reading Platform API + * Reading Platform Backend Service API Documentation + * OpenAPI spec version: 1.0.0 + */ + +/** + * 课时简要信息 + */ +export interface LessonInfo { + /** 课时 ID */ + id?: number; + /** 状态 */ + status?: string; + /** 班级名称 */ + className?: string; +} diff --git a/reading-platform-frontend/src/api/generated/model/lessonRecordResponse.ts b/reading-platform-frontend/src/api/generated/model/lessonRecordResponse.ts new file mode 100644 index 0000000..3b9647e --- /dev/null +++ b/reading-platform-frontend/src/api/generated/model/lessonRecordResponse.ts @@ -0,0 +1,29 @@ +/** + * Generated by orval v8.5.3 🍺 + * Do not edit manually. + * Reading Platform API + * Reading Platform Backend Service API Documentation + * OpenAPI spec version: 1.0.0 + */ +import type { LessonInfo } from './lessonInfo'; + +/** + * 家长端阅读记录响应 + */ +export interface LessonRecordResponse { + /** 记录ID(student_record.id) */ + id?: number; + lesson?: LessonInfo; + /** 专注度评分 */ + focus?: number; + /** 参与度评分 */ + participation?: number; + /** 兴趣度评分 */ + interest?: number; + /** 理解度评分 */ + understanding?: number; + /** 备注 */ + notes?: string; + /** 创建时间 */ + createdAt?: string; +} diff --git a/reading-platform-frontend/src/api/generated/model/notificationForParentResponse.ts b/reading-platform-frontend/src/api/generated/model/notificationForParentResponse.ts new file mode 100644 index 0000000..417fd7d --- /dev/null +++ b/reading-platform-frontend/src/api/generated/model/notificationForParentResponse.ts @@ -0,0 +1,27 @@ +/** + * Generated by orval v8.5.3 🍺 + * Do not edit manually. + * Reading Platform API + * Reading Platform Backend Service API Documentation + * OpenAPI spec version: 1.0.0 + */ + +/** + * 家长端通知响应 + */ +export interface NotificationForParentResponse { + /** ID */ + id?: number; + /** 标题 */ + title?: string; + /** 内容 */ + content?: string; + /** 是否已读 */ + isRead?: boolean; + /** 阅读时间 */ + readAt?: string; + /** 创建时间 */ + createdAt?: string; + /** 通知类型 */ + notificationType?: string; +} diff --git a/reading-platform-frontend/src/api/generated/model/pageResultGrowthRecordForParentResponse.ts b/reading-platform-frontend/src/api/generated/model/pageResultGrowthRecordForParentResponse.ts new file mode 100644 index 0000000..490b6e7 --- /dev/null +++ b/reading-platform-frontend/src/api/generated/model/pageResultGrowthRecordForParentResponse.ts @@ -0,0 +1,16 @@ +/** + * Generated by orval v8.5.3 🍺 + * Do not edit manually. + * Reading Platform API + * Reading Platform Backend Service API Documentation + * OpenAPI spec version: 1.0.0 + */ +import type { GrowthRecordForParentResponse } from './growthRecordForParentResponse'; + +export interface PageResultGrowthRecordForParentResponse { + list?: GrowthRecordForParentResponse[]; + total?: number; + pageNum?: number; + pageSize?: number; + pages?: number; +} diff --git a/reading-platform-frontend/src/api/generated/model/pageResultLessonRecordResponse.ts b/reading-platform-frontend/src/api/generated/model/pageResultLessonRecordResponse.ts new file mode 100644 index 0000000..5eb4d59 --- /dev/null +++ b/reading-platform-frontend/src/api/generated/model/pageResultLessonRecordResponse.ts @@ -0,0 +1,16 @@ +/** + * Generated by orval v8.5.3 🍺 + * Do not edit manually. + * Reading Platform API + * Reading Platform Backend Service API Documentation + * OpenAPI spec version: 1.0.0 + */ +import type { LessonRecordResponse } from './lessonRecordResponse'; + +export interface PageResultLessonRecordResponse { + list?: LessonRecordResponse[]; + total?: number; + pageNum?: number; + pageSize?: number; + pages?: number; +} diff --git a/reading-platform-frontend/src/api/generated/model/pageResultNotificationForParentResponse.ts b/reading-platform-frontend/src/api/generated/model/pageResultNotificationForParentResponse.ts new file mode 100644 index 0000000..9785d7a --- /dev/null +++ b/reading-platform-frontend/src/api/generated/model/pageResultNotificationForParentResponse.ts @@ -0,0 +1,16 @@ +/** + * Generated by orval v8.5.3 🍺 + * Do not edit manually. + * Reading Platform API + * Reading Platform Backend Service API Documentation + * OpenAPI spec version: 1.0.0 + */ +import type { NotificationForParentResponse } from './notificationForParentResponse'; + +export interface PageResultNotificationForParentResponse { + list?: NotificationForParentResponse[]; + total?: number; + pageNum?: number; + pageSize?: number; + pages?: number; +} diff --git a/reading-platform-frontend/src/api/generated/model/pageResultTaskWithCompletionResponse.ts b/reading-platform-frontend/src/api/generated/model/pageResultTaskWithCompletionResponse.ts new file mode 100644 index 0000000..7f8bccc --- /dev/null +++ b/reading-platform-frontend/src/api/generated/model/pageResultTaskWithCompletionResponse.ts @@ -0,0 +1,16 @@ +/** + * Generated by orval v8.5.3 🍺 + * Do not edit manually. + * Reading Platform API + * Reading Platform Backend Service API Documentation + * OpenAPI spec version: 1.0.0 + */ +import type { TaskWithCompletionResponse } from './taskWithCompletionResponse'; + +export interface PageResultTaskWithCompletionResponse { + list?: TaskWithCompletionResponse[]; + total?: number; + pageNum?: number; + pageSize?: number; + pages?: number; +} diff --git a/reading-platform-frontend/src/api/generated/model/resultChildProfileResponse.ts b/reading-platform-frontend/src/api/generated/model/resultChildProfileResponse.ts new file mode 100644 index 0000000..1502fa4 --- /dev/null +++ b/reading-platform-frontend/src/api/generated/model/resultChildProfileResponse.ts @@ -0,0 +1,14 @@ +/** + * Generated by orval v8.5.3 🍺 + * Do not edit manually. + * Reading Platform API + * Reading Platform Backend Service API Documentation + * OpenAPI spec version: 1.0.0 + */ +import type { ChildProfileResponse } from './childProfileResponse'; + +export interface ResultChildProfileResponse { + code?: number; + message?: string; + data?: ChildProfileResponse; +} diff --git a/reading-platform-frontend/src/api/generated/model/resultGrowthRecordForParentResponse.ts b/reading-platform-frontend/src/api/generated/model/resultGrowthRecordForParentResponse.ts new file mode 100644 index 0000000..f7d8c37 --- /dev/null +++ b/reading-platform-frontend/src/api/generated/model/resultGrowthRecordForParentResponse.ts @@ -0,0 +1,14 @@ +/** + * Generated by orval v8.5.3 🍺 + * Do not edit manually. + * Reading Platform API + * Reading Platform Backend Service API Documentation + * OpenAPI spec version: 1.0.0 + */ +import type { GrowthRecordForParentResponse } from './growthRecordForParentResponse'; + +export interface ResultGrowthRecordForParentResponse { + code?: number; + message?: string; + data?: GrowthRecordForParentResponse; +} diff --git a/reading-platform-frontend/src/api/generated/model/resultListChildInfoResponse.ts b/reading-platform-frontend/src/api/generated/model/resultListChildInfoResponse.ts new file mode 100644 index 0000000..7fe8987 --- /dev/null +++ b/reading-platform-frontend/src/api/generated/model/resultListChildInfoResponse.ts @@ -0,0 +1,14 @@ +/** + * Generated by orval v8.5.3 🍺 + * Do not edit manually. + * Reading Platform API + * Reading Platform Backend Service API Documentation + * OpenAPI spec version: 1.0.0 + */ +import type { ChildInfoResponse } from './childInfoResponse'; + +export interface ResultListChildInfoResponse { + code?: number; + message?: string; + data?: ChildInfoResponse[]; +} diff --git a/reading-platform-frontend/src/api/generated/model/resultListGrowthRecordForParentResponse.ts b/reading-platform-frontend/src/api/generated/model/resultListGrowthRecordForParentResponse.ts new file mode 100644 index 0000000..8529161 --- /dev/null +++ b/reading-platform-frontend/src/api/generated/model/resultListGrowthRecordForParentResponse.ts @@ -0,0 +1,14 @@ +/** + * Generated by orval v8.5.3 🍺 + * Do not edit manually. + * Reading Platform API + * Reading Platform Backend Service API Documentation + * OpenAPI spec version: 1.0.0 + */ +import type { GrowthRecordForParentResponse } from './growthRecordForParentResponse'; + +export interface ResultListGrowthRecordForParentResponse { + code?: number; + message?: string; + data?: GrowthRecordForParentResponse[]; +} diff --git a/reading-platform-frontend/src/api/generated/model/resultNotificationForParentResponse.ts b/reading-platform-frontend/src/api/generated/model/resultNotificationForParentResponse.ts new file mode 100644 index 0000000..26b324b --- /dev/null +++ b/reading-platform-frontend/src/api/generated/model/resultNotificationForParentResponse.ts @@ -0,0 +1,14 @@ +/** + * Generated by orval v8.5.3 🍺 + * Do not edit manually. + * Reading Platform API + * Reading Platform Backend Service API Documentation + * OpenAPI spec version: 1.0.0 + */ +import type { NotificationForParentResponse } from './notificationForParentResponse'; + +export interface ResultNotificationForParentResponse { + code?: number; + message?: string; + data?: NotificationForParentResponse; +} diff --git a/reading-platform-frontend/src/api/generated/model/resultPageResultGrowthRecordForParentResponse.ts b/reading-platform-frontend/src/api/generated/model/resultPageResultGrowthRecordForParentResponse.ts new file mode 100644 index 0000000..04d50f5 --- /dev/null +++ b/reading-platform-frontend/src/api/generated/model/resultPageResultGrowthRecordForParentResponse.ts @@ -0,0 +1,14 @@ +/** + * Generated by orval v8.5.3 🍺 + * Do not edit manually. + * Reading Platform API + * Reading Platform Backend Service API Documentation + * OpenAPI spec version: 1.0.0 + */ +import type { PageResultGrowthRecordForParentResponse } from './pageResultGrowthRecordForParentResponse'; + +export interface ResultPageResultGrowthRecordForParentResponse { + code?: number; + message?: string; + data?: PageResultGrowthRecordForParentResponse; +} diff --git a/reading-platform-frontend/src/api/generated/model/resultPageResultLessonRecordResponse.ts b/reading-platform-frontend/src/api/generated/model/resultPageResultLessonRecordResponse.ts new file mode 100644 index 0000000..23c421c --- /dev/null +++ b/reading-platform-frontend/src/api/generated/model/resultPageResultLessonRecordResponse.ts @@ -0,0 +1,14 @@ +/** + * Generated by orval v8.5.3 🍺 + * Do not edit manually. + * Reading Platform API + * Reading Platform Backend Service API Documentation + * OpenAPI spec version: 1.0.0 + */ +import type { PageResultLessonRecordResponse } from './pageResultLessonRecordResponse'; + +export interface ResultPageResultLessonRecordResponse { + code?: number; + message?: string; + data?: PageResultLessonRecordResponse; +} diff --git a/reading-platform-frontend/src/api/generated/model/resultPageResultNotificationForParentResponse.ts b/reading-platform-frontend/src/api/generated/model/resultPageResultNotificationForParentResponse.ts new file mode 100644 index 0000000..cb9a975 --- /dev/null +++ b/reading-platform-frontend/src/api/generated/model/resultPageResultNotificationForParentResponse.ts @@ -0,0 +1,14 @@ +/** + * Generated by orval v8.5.3 🍺 + * Do not edit manually. + * Reading Platform API + * Reading Platform Backend Service API Documentation + * OpenAPI spec version: 1.0.0 + */ +import type { PageResultNotificationForParentResponse } from './pageResultNotificationForParentResponse'; + +export interface ResultPageResultNotificationForParentResponse { + code?: number; + message?: string; + data?: PageResultNotificationForParentResponse; +} diff --git a/reading-platform-frontend/src/api/generated/model/resultPageResultTaskWithCompletionResponse.ts b/reading-platform-frontend/src/api/generated/model/resultPageResultTaskWithCompletionResponse.ts new file mode 100644 index 0000000..7ceff43 --- /dev/null +++ b/reading-platform-frontend/src/api/generated/model/resultPageResultTaskWithCompletionResponse.ts @@ -0,0 +1,14 @@ +/** + * Generated by orval v8.5.3 🍺 + * Do not edit manually. + * Reading Platform API + * Reading Platform Backend Service API Documentation + * OpenAPI spec version: 1.0.0 + */ +import type { PageResultTaskWithCompletionResponse } from './pageResultTaskWithCompletionResponse'; + +export interface ResultPageResultTaskWithCompletionResponse { + code?: number; + message?: string; + data?: PageResultTaskWithCompletionResponse; +} diff --git a/reading-platform-frontend/src/api/generated/model/resultStudentRecordsResponse.ts b/reading-platform-frontend/src/api/generated/model/resultStudentRecordsResponse.ts new file mode 100644 index 0000000..0d3b90a --- /dev/null +++ b/reading-platform-frontend/src/api/generated/model/resultStudentRecordsResponse.ts @@ -0,0 +1,14 @@ +/** + * Generated by orval v8.5.3 🍺 + * Do not edit manually. + * Reading Platform API + * Reading Platform Backend Service API Documentation + * OpenAPI spec version: 1.0.0 + */ +import type { StudentRecordsResponse } from './studentRecordsResponse'; + +export interface ResultStudentRecordsResponse { + code?: number; + message?: string; + data?: StudentRecordsResponse; +} diff --git a/reading-platform-frontend/src/api/generated/model/statsInfo.ts b/reading-platform-frontend/src/api/generated/model/statsInfo.ts new file mode 100644 index 0000000..bb27a46 --- /dev/null +++ b/reading-platform-frontend/src/api/generated/model/statsInfo.ts @@ -0,0 +1,19 @@ +/** + * Generated by orval v8.5.3 🍺 + * Do not edit manually. + * Reading Platform API + * Reading Platform Backend Service API Documentation + * OpenAPI spec version: 1.0.0 + */ + +/** + * 统计信息 + */ +export interface StatsInfo { + /** 阅读记录数 */ + lessonRecords?: number; + /** 成长档案数 */ + growthRecords?: number; + /** 任务完成数 */ + taskCompletions?: number; +} diff --git a/reading-platform-frontend/src/api/generated/model/studentRecordsResponse.ts b/reading-platform-frontend/src/api/generated/model/studentRecordsResponse.ts new file mode 100644 index 0000000..e5735f8 --- /dev/null +++ b/reading-platform-frontend/src/api/generated/model/studentRecordsResponse.ts @@ -0,0 +1,18 @@ +/** + * Generated by orval v8.5.3 🍺 + * Do not edit manually. + * Reading Platform API + * Reading Platform Backend Service API Documentation + * OpenAPI spec version: 1.0.0 + */ +import type { LessonInfo } from './lessonInfo'; +import type { StudentWithRecordResponse } from './studentWithRecordResponse'; + +/** + * 课后记录列表响应 + */ +export interface StudentRecordsResponse { + lesson?: LessonInfo; + /** 学生列表(含记录) */ + students?: StudentWithRecordResponse[]; +} diff --git a/reading-platform-frontend/src/api/generated/model/studentWithRecordResponse.ts b/reading-platform-frontend/src/api/generated/model/studentWithRecordResponse.ts new file mode 100644 index 0000000..c59256d --- /dev/null +++ b/reading-platform-frontend/src/api/generated/model/studentWithRecordResponse.ts @@ -0,0 +1,21 @@ +/** + * Generated by orval v8.5.3 🍺 + * Do not edit manually. + * Reading Platform API + * Reading Platform Backend Service API Documentation + * OpenAPI spec version: 1.0.0 + */ +import type { StudentRecordResponse } from './studentRecordResponse'; + +/** + * 学生及其课后记录 + */ +export interface StudentWithRecordResponse { + /** 学生 ID */ + id?: number; + /** 学生姓名 */ + name?: string; + /** 性别 */ + gender?: string; + record?: StudentRecordResponse; +} diff --git a/reading-platform-frontend/src/api/generated/model/taskCompleteRequest.ts b/reading-platform-frontend/src/api/generated/model/taskCompleteRequest.ts new file mode 100644 index 0000000..7e19a55 --- /dev/null +++ b/reading-platform-frontend/src/api/generated/model/taskCompleteRequest.ts @@ -0,0 +1,19 @@ +/** + * Generated by orval v8.5.3 🍺 + * Do not edit manually. + * Reading Platform API + * Reading Platform Backend Service API Documentation + * OpenAPI spec version: 1.0.0 + */ + +/** + * 任务完成请求 + */ +export interface TaskCompleteRequest { + /** 学生ID */ + studentId: number; + /** 完成内容/反馈 */ + content?: string; + /** 附件 */ + attachments?: string; +} diff --git a/reading-platform-frontend/src/api/generated/model/taskCreateRequest.ts b/reading-platform-frontend/src/api/generated/model/taskCreateRequest.ts index e5638a0..5543d3e 100644 --- a/reading-platform-frontend/src/api/generated/model/taskCreateRequest.ts +++ b/reading-platform-frontend/src/api/generated/model/taskCreateRequest.ts @@ -16,14 +16,20 @@ export interface TaskCreateRequest { description?: string; /** 任务类型:reading-阅读,homework-作业,activity-活动 */ type?: string; + /** 任务类型(前端兼容 taskType) */ + taskType?: string; /** 关联绘本名称(手动填写) */ relatedBookName?: string; /** 课程 ID */ courseId?: number; + /** 课程 ID(前端兼容 relatedCourseId) */ + relatedCourseId?: number; /** 开始日期 */ startDate?: string; /** 截止日期 */ dueDate?: string; + /** 截止日期(前端兼容 endDate) */ + endDate?: string; /** 附件(JSON 数组) */ attachments?: string; /** 目标类型:class-班级,student-学生 */ diff --git a/reading-platform-frontend/src/api/generated/model/taskInfo.ts b/reading-platform-frontend/src/api/generated/model/taskInfo.ts new file mode 100644 index 0000000..dba5259 --- /dev/null +++ b/reading-platform-frontend/src/api/generated/model/taskInfo.ts @@ -0,0 +1,29 @@ +/** + * Generated by orval v8.5.3 🍺 + * Do not edit manually. + * Reading Platform API + * Reading Platform Backend Service API Documentation + * OpenAPI spec version: 1.0.0 + */ +import type { CourseInfo } from './courseInfo'; + +/** + * 任务基本信息 + */ +export interface TaskInfo { + /** 任务ID */ + id?: number; + /** 任务标题 */ + title?: string; + /** 任务描述 */ + description?: string; + /** 任务类型 */ + taskType?: string; + /** 开始日期 */ + startDate?: string; + /** 截止日期 */ + endDate?: string; + /** 关联绘本名称 */ + relatedBookName?: string; + course?: CourseInfo; +} diff --git a/reading-platform-frontend/src/api/generated/model/taskResponse.ts b/reading-platform-frontend/src/api/generated/model/taskResponse.ts index 0996511..2dfe9a0 100644 --- a/reading-platform-frontend/src/api/generated/model/taskResponse.ts +++ b/reading-platform-frontend/src/api/generated/model/taskResponse.ts @@ -36,6 +36,10 @@ export interface TaskResponse { status?: string; /** 附件 */ attachments?: string; + /** 目标类型:CLASS-班级,STUDENT-学生 */ + targetType?: string; + /** 目标 IDs(班级或学生) */ + targetIds?: number[]; /** 创建时间 */ createdAt?: string; /** 更新时间 */ diff --git a/reading-platform-frontend/src/api/generated/model/taskUpdateRequest.ts b/reading-platform-frontend/src/api/generated/model/taskUpdateRequest.ts index 5150f5a..24413bc 100644 --- a/reading-platform-frontend/src/api/generated/model/taskUpdateRequest.ts +++ b/reading-platform-frontend/src/api/generated/model/taskUpdateRequest.ts @@ -16,6 +16,14 @@ export interface TaskUpdateRequest { description?: string; /** 任务类型 */ type?: string; + /** 任务类型(前端兼容 taskType) */ + taskType?: string; + /** 关联绘本名称 */ + relatedBookName?: string; + /** 课程 ID */ + courseId?: number; + /** 课程 ID(前端兼容 relatedCourseId) */ + relatedCourseId?: number; /** 开始日期 */ startDate?: string; /** 截止日期 */ @@ -24,4 +32,8 @@ export interface TaskUpdateRequest { status?: string; /** 附件(JSON 数组) */ attachments?: string; + /** 目标类型:CLASS-班级,STUDENT-学生 */ + targetType?: string; + /** 目标 IDs */ + targetIds?: number[]; } diff --git a/reading-platform-frontend/src/api/generated/model/taskWithCompletionResponse.ts b/reading-platform-frontend/src/api/generated/model/taskWithCompletionResponse.ts new file mode 100644 index 0000000..7c8044a --- /dev/null +++ b/reading-platform-frontend/src/api/generated/model/taskWithCompletionResponse.ts @@ -0,0 +1,33 @@ +/** + * Generated by orval v8.5.3 🍺 + * Do not edit manually. + * Reading Platform API + * Reading Platform Backend Service API Documentation + * OpenAPI spec version: 1.0.0 + */ +import type { TaskFeedbackResponse } from './taskFeedbackResponse'; +import type { TaskInfo } from './taskInfo'; + +/** + * 家长端任务列表响应(含完成信息) + */ +export interface TaskWithCompletionResponse { + /** 任务ID */ + id?: number; + /** 完成状态:PENDING-待提交/SUBMITTED-已提交/REVIEWED-已评价 */ + status?: string; + /** 提交时间 */ + submittedAt?: string; + /** 评价时间 */ + reviewedAt?: string; + /** 照片URL列表 */ + photos?: string[]; + /** 视频URL */ + videoUrl?: string; + /** 语音URL */ + audioUrl?: string; + /** 阅读心得/完成内容 */ + content?: string; + teacherFeedback?: TaskFeedbackResponse; + task?: TaskInfo; +} diff --git a/reading-platform-frontend/src/api/parent.ts b/reading-platform-frontend/src/api/parent.ts index 5e821c8..34babff 100644 --- a/reading-platform-frontend/src/api/parent.ts +++ b/reading-platform-frontend/src/api/parent.ts @@ -92,6 +92,7 @@ export interface TaskSubmitRequest { // 带完成信息的任务(兼容旧接口) export interface TaskWithCompletion { id: number; + studentId?: number; // 学生ID,多孩子聚合时用于标识任务归属 status: TaskCompletionStatus; completedAt?: string; feedback?: string; @@ -154,23 +155,41 @@ export const getChildProfile = (childId: number): Promise => export const getChildLessons = ( childId: number, - params?: { pageNum?: number; pageSize?: number } + params?: { pageNum?: number; pageSize?: number; page?: number } ): Promise<{ items: LessonRecord[]; total: number; page: number; pageSize: number }> => - http.get(`/v1/parent/children/${childId}/lessons`, { params }); + http.get<{ list: LessonRecord[]; total: number; pageNum: number; pageSize: number }>(`/v1/parent/children/${childId}/lessons`, { + params: { pageNum: params?.pageNum ?? params?.page ?? 1, pageSize: params?.pageSize ?? 10 }, + }).then(res => ({ + items: res.list || [], + total: res.total || 0, + page: res.pageNum || 1, + pageSize: res.pageSize || 10, + })); // ==================== 任务 API ==================== +/** 获取我的任务列表(聚合多孩子任务,无 childId 时使用) */ +export const getMyTasks = ( + params?: { pageNum?: number; pageSize?: number; status?: string } +): Promise<{ items: TaskWithCompletion[]; total: number; page: number; pageSize: number }> => + http.get<{ list: TaskWithCompletion[]; total: number; pageNum: number; pageSize: number }>('/v1/parent/tasks', { params }).then(res => ({ + items: res.list || [], + total: res.total || 0, + page: res.pageNum || 1, + pageSize: res.pageSize || 10, + })); + +/** 获取指定孩子的任务列表 */ export const getChildTasks = ( childId: number, params?: { pageNum?: number; pageSize?: number; status?: string } ): Promise<{ items: TaskWithCompletion[]; total: number; page: number; pageSize: number }> => - http.get<{ list: TaskWithCompletion[]; total: number; pageNum: number; pageSize: number }>(`/v1/parent/tasks/student/${childId}`, { params }) - .then(res => ({ - items: res.list || [], - total: res.total || 0, - page: res.pageNum || 1, - pageSize: res.pageSize || 10, - })); + http.get<{ list: TaskWithCompletion[]; total: number; pageNum: number; pageSize: number }>(`/v1/parent/tasks/student/${childId}`, { params }).then(res => ({ + items: res.list || [], + total: res.total || 0, + page: res.pageNum || 1, + pageSize: res.pageSize || 10, + })); // 提交任务完成(新版) export const submitTaskCompletion = ( @@ -233,8 +252,18 @@ export const getNotifications = ( unreadCount: number; page: number; pageSize: number; -}> => - http.get<{ list: Notification[]; total: number; pageNum: number; pageSize: number }>('/v1/parent/notifications', { params }) +}> => { + const queryParams: Record = { + pageNum: params?.pageNum ?? 1, + pageSize: params?.pageSize ?? 10, + }; + if (params?.isRead !== undefined) { + queryParams.isRead = params.isRead ? 1 : 0; + } + if (params?.notificationType) { + queryParams.notificationType = params.notificationType; + } + return http.get<{ list: Notification[]; total: number; pageNum: number; pageSize: number }>('/v1/parent/notifications', { params: queryParams }) .then(res => ({ items: res.list || [], total: res.total || 0, @@ -242,6 +271,7 @@ export const getNotifications = ( page: res.pageNum || 1, pageSize: res.pageSize || 10, })); +}; export const getUnreadCount = (): Promise => http.get('/v1/parent/notifications/unread-count').then(res => res || 0); diff --git a/reading-platform-frontend/src/api/school.ts b/reading-platform-frontend/src/api/school.ts index 3ed0ad0..dceec74 100644 --- a/reading-platform-frontend/src/api/school.ts +++ b/reading-platform-frontend/src/api/school.ts @@ -1273,8 +1273,13 @@ export const getParents = (params?: ParentQueryParams) => export const getParent = (id: number) => http.get(`/v1/school/parents/${id}`); -export const createParent = (data: CreateParentDto) => - http.post('/v1/school/parents', data); +export const createParent = (data: CreateParentDto) => { + const { loginAccount, ...rest } = data; + return http.post('/v1/school/parents', { + ...rest, + username: loginAccount, + }); +}; export const updateParent = (id: number, data: UpdateParentDto) => http.put(`/v1/school/parents/${id}`, data); @@ -1286,8 +1291,8 @@ export const resetParentPassword = (id: number) => http.post<{ tempPassword: string }>(`/v1/school/parents/${id}/reset-password`); export const getParentChildren = async (parentId: number): Promise => { - const parent = await http.get(`/v1/school/parents/${parentId}`); - return parent.children || []; + const list = await http.get(`/v1/school/parents/${parentId}/children`); + return Array.isArray(list) ? list : []; }; export const addChildToParent = (parentId: number, data: AddChildDto) => diff --git a/reading-platform-frontend/src/api/teacher.ts b/reading-platform-frontend/src/api/teacher.ts index 5f241ea..0b4d2a4 100644 --- a/reading-platform-frontend/src/api/teacher.ts +++ b/reading-platform-frontend/src/api/teacher.ts @@ -122,6 +122,7 @@ export function getTeacherStudents(params?: { pageNum?: number; pageSize?: numbe } // 获取班级学生列表 +// 后端返回 { list, total, pageNum, pageSize, classInfo },前端统一为 { items, total, page, pageSize, class } export function getTeacherClassStudents(classId: number, params?: { pageNum?: number; pageSize?: number; keyword?: string }): Promise<{ items: Array<{ id: number; @@ -151,7 +152,13 @@ export function getTeacherClassStudents(classId: number, params?: { pageNum?: nu pageSize: params?.pageSize, keyword: params?.keyword, }, - }) as any; + }).then((res: any) => ({ + items: res?.list ?? res?.items ?? [], + total: res?.total ?? 0, + page: res?.pageNum ?? res?.page ?? 1, + pageSize: res?.pageSize ?? 10, + class: res?.classInfo ?? res?.class, + })); } // 获取班级教师列表 diff --git a/reading-platform-frontend/src/views/parent/DashboardView.vue b/reading-platform-frontend/src/views/parent/DashboardView.vue index 75d0cde..611b00b 100644 --- a/reading-platform-frontend/src/views/parent/DashboardView.vue +++ b/reading-platform-frontend/src/views/parent/DashboardView.vue @@ -11,9 +11,15 @@

关注孩子的阅读成长,陪伴每一步进步!

@@ -22,15 +28,12 @@
-

我的孩子

+

+ 我的孩子 +

-
+
{{ child.name.charAt(0) }} @@ -43,8 +46,12 @@
{{ child.class?.name || '未分班' }}
- {{ child.readingCount }} 次阅读 - {{ child.lessonCount }} 节课 + + {{ child.readingCount }} 次阅读 + + + {{ child.lessonCount }} 节课 +
@@ -62,11 +69,13 @@
-

最近任务

+

+ 最近任务 +

查看全部
-
+
{{ getStatusText(task.status) }}
@@ -87,7 +96,9 @@
-

成长档案

+

+ 成长档案 +

查看全部
@@ -126,7 +137,7 @@ import { RightOutlined, InboxOutlined, } from '@ant-design/icons-vue'; -import { getChildren, type ChildInfo } from '@/api/parent'; +import { getChildren, getMyTasks, getChildGrowthRecords, type ChildInfo, type TaskWithCompletion } from '@/api/parent'; import dayjs from 'dayjs'; const router = useRouter(); @@ -153,8 +164,8 @@ const getRelationshipText = (relationship: string) => { const statusMap: Record = { PENDING: { text: '待完成', class: 'status-pending' }, - IN_PROGRESS: { text: '进行中', class: 'status-progress' }, - COMPLETED: { text: '已完成', class: 'status-completed' }, + SUBMITTED: { text: '已提交', class: 'status-progress' }, + REVIEWED: { text: '已评价', class: 'status-completed' }, }; const getStatusText = (status: string) => statusMap[status]?.text || status; @@ -171,11 +182,13 @@ const goToChildDetail = (childId: number) => { }; const goToTasks = () => { - router.push('/parent/tasks'); + router.push('/parent/tasks'); // 任务页支持聚合视图,无需 childId }; const goToGrowth = () => { - router.push('/parent/growth'); + // 成长档案需要指定孩子,有孩子时传第一个 + const childId = children.value[0]?.id; + router.push(childId ? `/parent/growth?childId=${childId}` : '/parent/growth'); }; const loadData = async () => { @@ -184,9 +197,16 @@ const loadData = async () => { const data = await getChildren(); children.value = data; - // 如果有孩子,加载第一个孩子的任务和成长记录 + // 加载最近任务(聚合多孩子) + const tasksRes = await getMyTasks({ pageNum: 1, pageSize: 5 }); + recentTasks.value = tasksRes.items || []; + + // 加载第一个孩子的最近成长档案 if (data.length > 0) { - // 这里可以加载任务和成长记录 + const growthRes = await getChildGrowthRecords(data[0].id, { pageNum: 1, pageSize: 4 }); + recentGrowth.value = growthRes.items || []; + } else { + recentGrowth.value = []; } } catch (error: any) { message.error(error.response?.data?.message || '加载数据失败'); @@ -212,6 +232,7 @@ $primary-light: #f6ffed; $primary-dark: #389e0d; .parent-dashboard { + // 欢迎横幅 .welcome-banner { background: linear-gradient(135deg, $primary-color 0%, #73d13d 100%); @@ -550,6 +571,7 @@ $primary-dark: #389e0d; .task-content, .growth-content { + .task-title, .growth-title { font-size: 13px; diff --git a/reading-platform-frontend/src/views/parent/LayoutView.vue b/reading-platform-frontend/src/views/parent/LayoutView.vue index c7f0038..6628004 100644 --- a/reading-platform-frontend/src/views/parent/LayoutView.vue +++ b/reading-platform-frontend/src/views/parent/LayoutView.vue @@ -1,14 +1,8 @@