hookehuyr

refactor(api): 将小作业列表接口从teacher模块移至checkin模块

将获取小作业列表的功能从teacher模块迁移到checkin模块,保持接口功能与模块职责的一致性
更新相关接口文档描述,移除teacher模块中不再使用的接口
1 /* 1 /*
2 * @Date: 2025-06-06 09:26:16 2 * @Date: 2025-06-06 09:26:16
3 * @LastEditors: hookehuyr hookehuyr@gmail.com 3 * @LastEditors: hookehuyr hookehuyr@gmail.com
4 - * @LastEditTime: 2025-12-11 14:43:44 4 + * @LastEditTime: 2025-12-12 14:47:36
5 * @FilePath: /mlaj/src/api/checkin.js 5 * @FilePath: /mlaj/src/api/checkin.js
6 * @Description: 签到模块相关接口 6 * @Description: 签到模块相关接口
7 */ 7 */
...@@ -10,6 +10,7 @@ import { fn, fetch } from './fn' ...@@ -10,6 +10,7 @@ import { fn, fetch } from './fn'
10 const Api = { 10 const Api = {
11 GET_TASK_LIST: '/srv/?a=task&t=my_list', 11 GET_TASK_LIST: '/srv/?a=task&t=my_list',
12 GET_TASK_DETAIL: '/srv/?a=task&t=detail', 12 GET_TASK_DETAIL: '/srv/?a=task&t=detail',
13 + GET_SUBTASK_LIST: '/srv/?a=subtask&t=list',
13 TASK_CHECKIN: '/srv/?a=checkin&t=checkin', 14 TASK_CHECKIN: '/srv/?a=checkin&t=checkin',
14 TASK_UPLOAD_ADD: '/srv/?a=checkin&t=upload_add', 15 TASK_UPLOAD_ADD: '/srv/?a=checkin&t=upload_add',
15 TASK_UPLOAD_LIST: '/srv/?a=checkin&t=upload_list', 16 TASK_UPLOAD_LIST: '/srv/?a=checkin&t=upload_list',
...@@ -24,23 +25,31 @@ const Api = { ...@@ -24,23 +25,31 @@ const Api = {
24 } 25 }
25 26
26 /** 27 /**
27 - * @description: 获取签到类型列表 28 + * @description: 我的大作业列表
28 - * @param: keyword 搜索课程名称 29 + * @param: keyword 搜索作业名称
29 - * @return: data: [{ id 作业id, title 作业名称, begin_date 开始时间, end_date 结束时间, task_type 任务类型 [checkin=签到 | file=上传附件], is_gray 作业是否应该置灰 }] 30 + * @return: data: [{ id 大作业id, cover 作业封面, title 大作业名称, begin_date 开始时间, end_date 结束时间, task_type 任务类型 [checkin=签到 | upload=上传附件 | count=计数], is_gray 作业是否应该置灰, is_finish 作业在当前周期是否已经达标 }]
30 */ 31 */
31 32
32 export const getTaskListAPI = (params) => fn(fetch.get(Api.GET_TASK_LIST, params)) 33 export const getTaskListAPI = (params) => fn(fetch.get(Api.GET_TASK_LIST, params))
33 34
34 /** 35 /**
35 - * @description: 获取作业详情 36 + * @description: 作业详情
36 - * @param: i 作业id 37 + * @param: i 作业ID
37 * @param: month 月份 38 * @param: month 月份
38 * @param: subtask_id 小作业ID 39 * @param: subtask_id 小作业ID
39 - * @returns data: { id 作业id, title 作业名称, note 作业描述, frequency 交作业的频次, cycle 交作业的周期 {0=本周期 | 30=每月 | 7=每周 | 1=每日}, attachment_type 上传附件的类型 [text=文本 image=图片 video=视频 audio=音频], begin_date 开始时间, end_date 结束时间, task_type 任务类型 [checkin=签到 | file=上传附件], is_gray 作业是否应该置灰, my_checkin_dates 我在日历中打过卡的日期, target_number 打卡的目标数量, checkin_number 已经打卡的数量, checkin_avatars 最后打卡的10个人的头像, subtask_list 小作业列表 [{id,title,cycle,frequency,attachment_type,begin_date,end_date,is_finish}] } 40 + * @returns data: { id 大作业id, cover 封面图, title 大作业名称, note 大作业描述, frequency 交作业的频次, cycle 交作业的周期 {0=本周期 | 30=每月 | 7=每周 | 1=每日}, attachment_type 上传附件的类型 [text=文本 image=图片 video=视频 audio=音频], begin_date 开始时间, end_date 结束时间, task_type 任务类型 [checkin=签到 | upload=上传附件 | count=计数], is_gray 作业是否应该置灰, is_finish 作业在当前周期是否已经达标, my_checkin_dates[] 我在日历中打过卡的日期, makeup_checkin_dates[] 我在日历中,可以补卡的日期, target_number 打卡的目标数量, checkin_number 已经打卡的数量, checkin_avatars 最后打卡的10个人的头像, subtask_list 小作业列表 [{id,title,cycle,frequency,attachment_type,begin_date,end_date,is_finish}] }
40 */ 41 */
41 export const getTaskDetailAPI = (params) => fn(fetch.get(Api.GET_TASK_DETAIL, params)) 42 export const getTaskDetailAPI = (params) => fn(fetch.get(Api.GET_TASK_DETAIL, params))
42 43
43 /** 44 /**
45 + * @description: 小作业列表
46 + * @param task_id 大作业ID
47 + * @param date 日期(用来判断是否可以补卡)
48 + * @returns data: [{id 作业id,title 作业名称 ,cycle 作业周期 [0=本周期 | 30=每月 | 7=每周 | 1=每日],frequency 交作业的频次,attachment_type 上传附件的类型 [text=文本 image=图片 video=视频 audio=音频],begin_date 开始时间,end_date 结束时间,is_finish 作业在当前周期是否已经达标, is_gray 作业是否应该置灰, is_makeup 是否可以补卡}]
49 + */
50 +export const getSubtaskListAPI = (params) => fn(fetch.get(Api.GET_SUBTASK_LIST, params))
51 +
52 +/**
44 * @description: 签到打卡 53 * @description: 签到打卡
45 * @param task_id 签到作业ID 54 * @param task_id 签到作业ID
46 * @returns 55 * @returns
......
1 /* 1 /*
2 * @Date: 2025-06-23 11:46:21 2 * @Date: 2025-06-23 11:46:21
3 * @LastEditors: hookehuyr hookehuyr@gmail.com 3 * @LastEditors: hookehuyr hookehuyr@gmail.com
4 - * @LastEditTime: 2025-12-11 15:08:04 4 + * @LastEditTime: 2025-12-12 14:55:03
5 * @FilePath: /mlaj/src/api/teacher.js 5 * @FilePath: /mlaj/src/api/teacher.js
6 * @Description: 文件描述 6 * @Description: 文件描述
7 */ 7 */
...@@ -13,7 +13,6 @@ const Api = { ...@@ -13,7 +13,6 @@ const Api = {
13 TEACHER_ADD_TASK: '/srv/?a=task&t=teacher_add', 13 TEACHER_ADD_TASK: '/srv/?a=task&t=teacher_add',
14 TEACHER_LIST_TASK: '/srv/?a=task&t=teacher_list', 14 TEACHER_LIST_TASK: '/srv/?a=task&t=teacher_list',
15 TEACHER_DETAIL_TASK: '/srv/?a=task&t=teacher_detail', 15 TEACHER_DETAIL_TASK: '/srv/?a=task&t=teacher_detail',
16 - TEACHER_SUBTASK_LIST: '/srv/?a=subtask&t=list',
17 STUDENT_LIST: '/srv/?a=user&t=student_list', 16 STUDENT_LIST: '/srv/?a=user&t=student_list',
18 STUDENT_DETAIL: '/srv/?a=user&t=student_detail', 17 STUDENT_DETAIL: '/srv/?a=user&t=student_detail',
19 STUDENT_STAT: '/srv/?a=user&t=student_stat', 18 STUDENT_STAT: '/srv/?a=user&t=student_stat',
...@@ -59,54 +58,43 @@ export const getTeacherFindSettingsAPI = (params) => fn(fetch.get(Api.TEACHER_FI ...@@ -59,54 +58,43 @@ export const getTeacherFindSettingsAPI = (params) => fn(fetch.get(Api.TEACHER_FI
59 export const setTeacherTaskAPI = (params) => fn(fetch.post(Api.TEACHER_ADD_TASK, params)) 58 export const setTeacherTaskAPI = (params) => fn(fetch.post(Api.TEACHER_ADD_TASK, params))
60 59
61 /** 60 /**
62 - * 获取老师的作业列表 61 + * 获取老师的作业列表
63 * @param {*} group_id 课程ID 62 * @param {*} group_id 课程ID
64 * @param {*} team_id 大分组ID 63 * @param {*} team_id 大分组ID
65 * @param {*} subteam_id 小分组ID 64 * @param {*} subteam_id 小分组ID
66 * @param {*} limit 条数 100 65 * @param {*} limit 条数 100
67 * @param {*} page 页码 0 66 * @param {*} page 页码 0
68 - * @returns {Object} data { 67 + * @returns array{object} data [{
69 * id integer 作业id 68 * id integer 作业id
70 * title string 作业名称 69 * title string 作业名称
71 - * cycle string 作业周期 0=本周期 30=每月 7=每周 1=每日
72 - * frequency integer 每周期交作业的次数
73 - * attachment_type array[string] 提交类型 text=文本 image=图片 video=视频 audio=音频
74 * begin_date string 开始时间 70 * begin_date string 开始时间
75 * end_date number 结束时间 71 * end_date number 结束时间
76 - * task_type string 任务类型 checkin=签到 file=上传附件 72 + * task_type string 任务类型 checkin=签到 upload=上传附件 count=计数
77 - * } 73 + * }]
78 */ 74 */
79 export const getTeacherTaskListAPI = (params) => fn(fetch.get(Api.TEACHER_LIST_TASK, params)) 75 export const getTeacherTaskListAPI = (params) => fn(fetch.get(Api.TEACHER_LIST_TASK, params))
80 76
81 /** 77 /**
82 - * 获取老师作业详情 78 + * 获取老师作业详情
83 * @param {*} id 作业ID 79 * @param {*} id 作业ID
84 - * @param {*} date 日期。默认是今天 示例值: [""] 80 + * @param {*} subtask_id 小作业ID
85 * @returns {Object} data { 81 * @returns {Object} data {
86 - * id integer 作业id 82 + * id integer 大作业id
83 + * cover string 大作业封面
84 + * title string 大作业名称
87 * begin_date string 开始时间 85 * begin_date string 开始时间
88 * end_date string 结束时间 86 * end_date string 结束时间
89 - * task_type string 任务类型 checkin=签到 file=上传附件 87 + * task_type string 任务类型 checkin=签到 upload=上传附件 count=计数
90 - * title string 作业名称
91 - * cycle string 作业周期 0=本周期 30=每月 7=每周 1=每日
92 - * frequency integer 每周期交作业的次数
93 - * attachment_type array[string] 提交类型 text=文本 image=图片 video=视频 audio=音频
94 * note string 作业描述 88 * note string 作业描述
95 - * need_commit_count integer 需要提交次数 89 + * need_commit_count integer 应该提交次数
96 - * real_commit_count integer 提交次数 90 + * real_commit_count integer 实际提交次数
97 * user_list [{id 用户ID, name 姓名, avatar 头像, is_commit 是否提交了作业}] 91 * user_list [{id 用户ID, name 姓名, avatar 头像, is_commit 是否提交了作业}]
92 + * subtask_list [{id 小作业ID, title 小作业名称, begin_date 开始时间, end_date 结束时间, note string 作业描述, cycle string 作业周期 0=本周期 30=每月 7=每周 1=每日, frequency integer 每周期交作业的次数, attachment_type array[string] 提交类型 text=文本 image=图片 video=视频 audio=音频}]
98 * } 93 * }
99 */ 94 */
100 export const getTeacherTaskDetailAPI = (params) => fn(fetch.get(Api.TEACHER_DETAIL_TASK, params)) 95 export const getTeacherTaskDetailAPI = (params) => fn(fetch.get(Api.TEACHER_DETAIL_TASK, params))
101 96
102 /** 97 /**
103 - * 获取小作业列表
104 - * @param {*} task_id 大作业ID
105 - * @returns {Object} data [{id,title,cycle,frequency,attachment_type,begin_date,end_date,is_finish}]
106 - */
107 -export const getTeacherSubtaskListAPI = (params) => fn(fetch.get(Api.TEACHER_SUBTASK_LIST, params))
108 -
109 -/**
110 * 获取学员列表 98 * 获取学员列表
111 * @param {*} grade_id 年级ID 99 * @param {*} grade_id 年级ID
112 * @param {*} class_id 班级ID 100 * @param {*} class_id 班级ID
......
...@@ -184,8 +184,8 @@ ...@@ -184,8 +184,8 @@
184 <script setup> 184 <script setup>
185 import { ref, computed, onMounted, nextTick, reactive, watch } from 'vue' 185 import { ref, computed, onMounted, nextTick, reactive, watch } from 'vue'
186 import { useRoute, useRouter } from 'vue-router' 186 import { useRoute, useRouter } from 'vue-router'
187 -import { getTaskDetailAPI, getUploadTaskInfoAPI } from "@/api/checkin" 187 +import { getTaskDetailAPI, getUploadTaskInfoAPI, getSubtaskListAPI } from "@/api/checkin"
188 -import { getTeacherFindSettingsAPI, getTeacherSubtaskListAPI } from '@/api/teacher' 188 +import { getTeacherFindSettingsAPI } from '@/api/teacher'
189 import { useTitle } from '@vueuse/core' 189 import { useTitle } from '@vueuse/core'
190 import { useCheckin } from '@/composables/useCheckin' 190 import { useCheckin } from '@/composables/useCheckin'
191 import AudioPlayer from '@/components/ui/AudioPlayer.vue' 191 import AudioPlayer from '@/components/ui/AudioPlayer.vue'
...@@ -797,7 +797,7 @@ onMounted(async () => { ...@@ -797,7 +797,7 @@ onMounted(async () => {
797 } 797 }
798 798
799 // TODO: 获取小作业列表 799 // TODO: 获取小作业列表
800 - const subtask_list = await getTeacherSubtaskListAPI({ task_id: route.query.id }) 800 + const subtask_list = await getSubtaskListAPI({ task_id: route.query.id })
801 if (subtask_list.code) { 801 if (subtask_list.code) {
802 taskOptions.value = [...subtask_list.data.map(item => ({ 802 taskOptions.value = [...subtask_list.data.map(item => ({
803 text: item.title, 803 text: item.title,
......