checkin.js 4.94 KB
/*
 * @Date: 2025-06-06 09:26:16
 * @LastEditors: hookehuyr hookehuyr@gmail.com
 * @LastEditTime: 2025-11-17 14:33:59
 * @FilePath: /mlaj/src/api/checkin.js
 * @Description: 签到模块相关接口
 */
import { fn, fetch } from './fn'

const Api = {
  GET_TASK_LIST: '/srv/?a=task&t=my_list',
  GET_TASK_DETAIL: '/srv/?a=task&t=detail',
  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',
  TASK_UPLOAD_INFO: '/srv/?a=checkin&t=upload_info',
  TASK_UPLOAD_EDIT: '/srv/?a=checkin&t=upload_edit',
  TASK_UPLOAD_DEL: '/srv/?a=checkin&t=upload_del',
  TASK_UPLOAD_LIKE: '/srv/?a=checkin&t=like',
  TASK_UPLOAD_DISLIKE: '/srv/?a=checkin&t=dislike',
  CHECKIN_TEACHER_LIST: '/srv/?a=checkin&t=teacher_list',
  CHECKIN_TEACHER_REVIEW: '/srv/?a=checkin&t=teacher_review',
  CHECKIN_TEACHER_CHECKED_DATES: '/srv/?a=checkin&t=teacher_checked_dates',
}

/**
 * @description: 获取签到类型列表
 * @param: keyword 搜索课程名称
 * @return: data: [{ id 作业id, title 作业名称, begin_date 开始时间, end_date 结束时间, task_type 任务类型 [checkin=签到 | file=上传附件], is_gray 作业是否应该置灰 }]
 */

export const  getTaskListAPI = (params) => fn(fetch.get(Api.GET_TASK_LIST, params))

/**
 * @description: 获取作业详情
 * @param: i 作业id
 * @param: month 月份
 * @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个人的头像 }
 */
export const  getTaskDetailAPI = (params) => fn(fetch.get(Api.GET_TASK_DETAIL, params))

/**
 * @description: 签到打卡
 * @param task_id 签到作业ID
 * @returns
 */
export const  checkinTaskAPI = (params) => fn(fetch.post(Api.TASK_CHECKIN, params))

/**
 * @description: 新增上传打卡
 * @param task_id 上传作业ID
 * @param note 打卡文字
 * @param meta_id[] 附件ID列表
 * @param file_type 上传附件的类型 image=上传图片,video=视频,audio=音频
 * @returns
 */
export const  addUploadTaskAPI = (params) => fn(fetch.post(Api.TASK_UPLOAD_ADD, params))

/**
 * @description: 获取打卡动态列表
 * @param task_id 上传作业ID
 * @param date 日期
 * @param keyword 搜索
 * @param order_by_time asc=正序,desc=倒序。默认为倒序
 * @param limit
 * @param offset
 * @returns
 */
export const  getUploadTaskListAPI = (params) => fn(fetch.post(Api.TASK_UPLOAD_LIST, params))

/**
 * @description: 获取打卡动态详情
 * @param i 打卡动态ID
 * @returns
 */
export const  getUploadTaskInfoAPI = (params) => fn(fetch.get(Api.TASK_UPLOAD_INFO, params))

/**
 * @description: 编辑打卡动态
 * @param i 打卡动态ID
 * @param note 打卡文字
 * @param meta_id[] 附件ID列表
 * @param file_type 上传附件的类型 image=上传图片,video=视频,audio=音频
 * @returns
 */
export const  editUploadTaskInfoAPI = (params) => fn(fetch.get(Api.TASK_UPLOAD_EDIT, params))

/**
 * @description: 删除打卡动态详情
 * @param i 打卡动态ID
 * @returns
 */
export const  delUploadTaskInfoAPI = (params) => fn(fetch.get(Api.TASK_UPLOAD_DEL, params))

/**
 * @description: 给打卡点赞
 * @param checkin_id 打卡动态ID
 * @returns
 */
export const  likeUploadTaskInfoAPI = (params) => fn(fetch.post(Api.TASK_UPLOAD_LIKE, params))

/**
 * @description: 取消点赞
 * @param checkin_id 打卡动态ID
 * @returns
 */
export const  dislikeUploadTaskInfoAPI = (params) => fn(fetch.post(Api.TASK_UPLOAD_DISLIKE, params))

/**
 * @description: 老师查看打卡动态列表
 * @param grade_id 年级ID
 * @param class_id 班级ID
 * @param group_id 课程ID
 * @param team_id 大分组ID
 * @param subteam_id 小分组ID
 * @param date 日期
 * @param keyword 搜索
 * @param order_by_time asc=正序,desc=倒序。默认为倒序
 * @param limit
 * @param offset
 * @returns
 */
export const  getCheckinTeacherListAPI = (params) => fn(fetch.get(Api.CHECKIN_TEACHER_LIST, params))

/**
 * @description: 老师审批打卡
 * @param checkin_id 打卡动态ID
 * @param status 审批状态 5=通过,7=拒绝
 * @returns
 */
export const  checkinTaskReviewAPI = (params) => fn(fetch.post(Api.CHECKIN_TEACHER_REVIEW, params))

/**
 * @description: 老师查看已打卡日期
 * @param grade_id 年级ID
 * @param class_id 班级ID
 * @param group_id 课程ID
 * @param month 月份
 * @param keyword 搜索
 * @returns data: { my_checkin_dates 已打卡日期列表 }
 */
export const  getCheckinTeacherCheckedDatesAPI = (params) => fn(fetch.get(Api.CHECKIN_TEACHER_CHECKED_DATES, params))