hookehuyr

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

将获取小作业列表的功能从teacher模块迁移到checkin模块,保持接口功能与模块职责的一致性
更新相关接口文档描述,移除teacher模块中不再使用的接口
/*
* @Date: 2025-06-06 09:26:16
* @LastEditors: hookehuyr hookehuyr@gmail.com
* @LastEditTime: 2025-12-11 14:43:44
* @LastEditTime: 2025-12-12 14:47:36
* @FilePath: /mlaj/src/api/checkin.js
* @Description: 签到模块相关接口
*/
......@@ -10,6 +10,7 @@ import { fn, fetch } from './fn'
const Api = {
GET_TASK_LIST: '/srv/?a=task&t=my_list',
GET_TASK_DETAIL: '/srv/?a=task&t=detail',
GET_SUBTASK_LIST: '/srv/?a=subtask&t=list',
TASK_CHECKIN: '/srv/?a=checkin&t=checkin',
TASK_UPLOAD_ADD: '/srv/?a=checkin&t=upload_add',
TASK_UPLOAD_LIST: '/srv/?a=checkin&t=upload_list',
......@@ -24,23 +25,31 @@ const Api = {
}
/**
* @description: 获取签到类型列表
* @param: keyword 搜索课程名称
* @return: data: [{ id 作业id, title 作业名称, begin_date 开始时间, end_date 结束时间, task_type 任务类型 [checkin=签到 | file=上传附件], is_gray 作业是否应该置灰 }]
* @description: 我的大作业列表
* @param: keyword 搜索作业名称
* @return: data: [{ id 大作业id, cover 作业封面, title 大作业名称, begin_date 开始时间, end_date 结束时间, task_type 任务类型 [checkin=签到 | upload=上传附件 | count=计数], is_gray 作业是否应该置灰, is_finish 作业在当前周期是否已经达标 }]
*/
export const getTaskListAPI = (params) => fn(fetch.get(Api.GET_TASK_LIST, params))
/**
* @description: 获取作业详情
* @param: i 作业id
* @description: 作业详情
* @param: i 作业ID
* @param: month 月份
* @param: subtask_id 小作业ID
* @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}] }
* @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}] }
*/
export const getTaskDetailAPI = (params) => fn(fetch.get(Api.GET_TASK_DETAIL, params))
/**
* @description: 小作业列表
* @param task_id 大作业ID
* @param date 日期(用来判断是否可以补卡)
* @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 是否可以补卡}]
*/
export const getSubtaskListAPI = (params) => fn(fetch.get(Api.GET_SUBTASK_LIST, params))
/**
* @description: 签到打卡
* @param task_id 签到作业ID
* @returns
......
/*
* @Date: 2025-06-23 11:46:21
* @LastEditors: hookehuyr hookehuyr@gmail.com
* @LastEditTime: 2025-12-11 15:08:04
* @LastEditTime: 2025-12-12 14:55:03
* @FilePath: /mlaj/src/api/teacher.js
* @Description: 文件描述
*/
......@@ -13,7 +13,6 @@ const Api = {
TEACHER_ADD_TASK: '/srv/?a=task&t=teacher_add',
TEACHER_LIST_TASK: '/srv/?a=task&t=teacher_list',
TEACHER_DETAIL_TASK: '/srv/?a=task&t=teacher_detail',
TEACHER_SUBTASK_LIST: '/srv/?a=subtask&t=list',
STUDENT_LIST: '/srv/?a=user&t=student_list',
STUDENT_DETAIL: '/srv/?a=user&t=student_detail',
STUDENT_STAT: '/srv/?a=user&t=student_stat',
......@@ -59,54 +58,43 @@ export const getTeacherFindSettingsAPI = (params) => fn(fetch.get(Api.TEACHER_FI
export const setTeacherTaskAPI = (params) => fn(fetch.post(Api.TEACHER_ADD_TASK, params))
/**
* 获取老师的作业列表
* 获取老师的作业列表
* @param {*} group_id 课程ID
* @param {*} team_id 大分组ID
* @param {*} subteam_id 小分组ID
* @param {*} limit 条数 100
* @param {*} page 页码 0
* @returns {Object} data {
* @returns array{object} data [{
* id integer 作业id
* title string 作业名称
* cycle string 作业周期 0=本周期 30=每月 7=每周 1=每日
* frequency integer 每周期交作业的次数
* attachment_type array[string] 提交类型 text=文本 image=图片 video=视频 audio=音频
* begin_date string 开始时间
* end_date number 结束时间
* task_type string 任务类型 checkin=签到 file=上传附件
* }
* task_type string 任务类型 checkin=签到 upload=上传附件 count=计数
* }]
*/
export const getTeacherTaskListAPI = (params) => fn(fetch.get(Api.TEACHER_LIST_TASK, params))
/**
* 获取老师作业详情
* 获取老师作业详情
* @param {*} id 作业ID
* @param {*} date 日期。默认是今天 示例值: [""]
* @param {*} subtask_id 小作业ID
* @returns {Object} data {
* id integer 作业id
* id integer 大作业id
* cover string 大作业封面
* title string 大作业名称
* begin_date string 开始时间
* end_date string 结束时间
* task_type string 任务类型 checkin=签到 file=上传附件
* title string 作业名称
* cycle string 作业周期 0=本周期 30=每月 7=每周 1=每日
* frequency integer 每周期交作业的次数
* attachment_type array[string] 提交类型 text=文本 image=图片 video=视频 audio=音频
* task_type string 任务类型 checkin=签到 upload=上传附件 count=计数
* note string 作业描述
* need_commit_count integer 需要提交次数
* real_commit_count integer 提交次数
* need_commit_count integer 应该提交次数
* real_commit_count integer 实际提交次数
* user_list [{id 用户ID, name 姓名, avatar 头像, is_commit 是否提交了作业}]
* 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=音频}]
* }
*/
export const getTeacherTaskDetailAPI = (params) => fn(fetch.get(Api.TEACHER_DETAIL_TASK, params))
/**
* 获取小作业列表
* @param {*} task_id 大作业ID
* @returns {Object} data [{id,title,cycle,frequency,attachment_type,begin_date,end_date,is_finish}]
*/
export const getTeacherSubtaskListAPI = (params) => fn(fetch.get(Api.TEACHER_SUBTASK_LIST, params))
/**
* 获取学员列表
* @param {*} grade_id 年级ID
* @param {*} class_id 班级ID
......
......@@ -184,8 +184,8 @@
<script setup>
import { ref, computed, onMounted, nextTick, reactive, watch } from 'vue'
import { useRoute, useRouter } from 'vue-router'
import { getTaskDetailAPI, getUploadTaskInfoAPI } from "@/api/checkin"
import { getTeacherFindSettingsAPI, getTeacherSubtaskListAPI } from '@/api/teacher'
import { getTaskDetailAPI, getUploadTaskInfoAPI, getSubtaskListAPI } from "@/api/checkin"
import { getTeacherFindSettingsAPI } from '@/api/teacher'
import { useTitle } from '@vueuse/core'
import { useCheckin } from '@/composables/useCheckin'
import AudioPlayer from '@/components/ui/AudioPlayer.vue'
......@@ -797,7 +797,7 @@ onMounted(async () => {
}
// TODO: 获取小作业列表
const subtask_list = await getTeacherSubtaskListAPI({ task_id: route.query.id })
const subtask_list = await getSubtaskListAPI({ task_id: route.query.id })
if (subtask_list.code) {
taskOptions.value = [...subtask_list.data.map(item => ({
text: item.title,
......