教室审核方法添加

之前填添加,现在添加上
This commit is contained in:
代海兴
2022-12-26 13:53:03 +08:00
parent f591b151fa
commit 02df5da96a

View File

@@ -1,483 +1,489 @@
/** /**
* 课程的操作,课程的添加,修改,列表查询,课程的审核发布等操作。 * 课程的操作,课程的添加,修改,列表查询,课程的审核发布等操作。
* 针对于管理员,教师的功能 * 针对于管理员,教师的功能
* *
**/ **/
import ajax from '@/utils/xajax.js' import ajax from '@/utils/xajax.js'
/** /**
* 保存课程基本信息,新增和更新都是此方式 * 保存课程基本信息,新增和更新都是此方式
* @param {Object} data * @param {Object} data
*{ *{
course:{ course:{
课程的基本信息,具体字段内容另外提供 课程的基本信息,具体字段内容另外提供
name课程名称 name课程名称
type课程类型10微课21在线课(直播)20:在线课( 录播)30:面授课40:混合式, type课程类型10微课21在线课(直播)20:在线课( 录播)30:面授课40:混合式,
summary摘人 summary摘人
overview 课程简介 overview 课程简介
coverImg封面图 coverImg封面图
sysType系统分类只存储最后一级, sysType系统分类只存储最后一级,
resOwner1:资源归属一级的id resOwner1:资源归属一级的id
resOwner2:资源归属二级的id resOwner2:资源归属二级的id
resOwner3:资源归属三级的id resOwner3:资源归属三级的id
forUsers: 目标人群 forUsers: 目标人群
forScene应用场景 forScene应用场景
openObject 开放权限 openObject 开放权限
value:课程价值 value:课程价值
tags标签多个使用-分隔 tags标签多个使用-分隔
keywords:关键字 keywords:关键字
device: 1PC端可见2移动端可见3多端可见 device: 1PC端可见2移动端可见3多端可见
status: 1:未提交(草稿);2:已提交; status: 1:未提交(草稿);2:已提交;
publishedtrue/false 是否发布 publishedtrue/false 是否发布
enabledtrue/false 启用、停用 enabledtrue/false 启用、停用
isTop: true/false 是否置顶 isTop: true/false 是否置顶
source整数课程来源1:内部2;外部 source整数课程来源1:内部2;外部
}, },
teachers:[ teachers:[
{ {
teacherId:教师的id, teacherId:教师的id,
teacherName:教师的名称 teacherName:教师的名称
} }
] ]
} }
*/ */
const saveBase = function(data) { const saveBase = function(data) {
return ajax.postJson('/xboe/m/course/manage/save', data); return ajax.postJson('/xboe/m/course/manage/save', data);
} }
/** /**
* 仅仅是保存课程信息,不包括教师信息 * 仅仅是保存课程信息,不包括教师信息
* @param {Object} data * @param {Object} data
*/ */
const saveOnlyCourse = function(data) { const saveOnlyCourse = function(data) {
return ajax.postJson('/xboe/m/course/manage/save-only-course', data); return ajax.postJson('/xboe/m/course/manage/save-only-course', data);
} }
/**提交课程*/ /**提交课程*/
const submitCourse = function(data) { const submitCourse = function(data) {
return ajax.postJson('/xboe/m/course/manage/submit', data); return ajax.postJson('/xboe/m/course/manage/submit', data);
} }
/**撤销已提交审核的课程*/ /**撤销已提交审核的课程*/
const revokeSubmit = function(id) { const revokeSubmit = function(id) {
return ajax.post('/xboe/m/course/manage/revoke', {id}); return ajax.post('/xboe/m/course/manage/revoke', {id});
} }
/** /**
* 复制课程 * 复制课程
* @param {Object} id * @param {Object} id
*/ */
const copyCourse = function(id) { const copyCourse = function(id) {
return ajax.post('/xboe/m/course/manage/copy', {id}); return ajax.post('/xboe/m/course/manage/copy', {id});
} }
/* /*
查询课程是否有重复名称 查询课程是否有重复名称
*/ */
const isRedoName=function(){ const isRedoName=function(){
return ajax.get('/xboe/m/course/manage/isRedoName'); return ajax.get('/xboe/m/course/manage/isRedoName');
} }
/* /*
查询当前添加课程是否已有 查询当前添加课程是否已有
courseName 要添加的课程姓名 courseName 要添加的课程姓名
*/ */
const isCourseName=function(courseName,courseId){ const isCourseName=function(courseName,courseId){
return ajax.get(`/xboe/m/course/manage/isCourseName?courseName=${courseName}&courseId=${courseId}`); return ajax.get(`/xboe/m/course/manage/isCourseName?courseName=${courseName}&courseId=${courseId}`);
} }
/** /**
* 查询修改日志,列表,不分页 * 查询修改日志,列表,不分页
* @param {Object} params * @param {Object} params
* { * {
num:数量可以不传默认是10条最新的10条 num:数量可以不传默认是10条最新的10条
courseId:课程的id courseId:课程的id
name: 修改人 name: 修改人
} }
*/ */
const findUpdateLogs = function(params) { const findUpdateLogs = function(params) {
return ajax.post('/xboe/m/course/manage/upldate-logs',params); return ajax.post('/xboe/m/course/manage/upldate-logs',params);
} }
/** /**
* 根据id获取修改的详细信息 * 根据id获取修改的详细信息
* @param {Object} id * @param {Object} id
*/ */
const getUpdateLog = function(id) { const getUpdateLog = function(id) {
return ajax.get('/xboe/m/course/manage/upldate-log-detail?id='+id); return ajax.get('/xboe/m/course/manage/upldate-log-detail?id='+id);
} }
/** /**
* 保存课程的一条学习内容信息,新增和更新都是此方式 * 保存课程的一条学习内容信息,新增和更新都是此方式
* @param {Object} data * @param {Object} data
* { * {
content内容 { content内容 {
courseId,csectionId章节id(微课为空),sortIndex排序顺序微课为空,contentType 内容类型图文41连接52作业60考试61评估62 courseId,csectionId章节id(微课为空),sortIndex排序顺序微课为空,contentType 内容类型图文41连接52作业60考试61评估62
contentName,contentRefId无关联内容时为空此字段内容后台会控制,content具体的内容 contentName,contentRefId无关联内容时为空此字段内容后台会控制,content具体的内容
} }
homework作业信息 单个对象{ homework作业信息 单个对象{
courseIdcontentId上面对象的id后台会控制,name,content,file,deadTime, courseIdcontentId上面对象的id后台会控制,name,content,file,deadTime,
submitMode:1表提交附件2直接填写3表两者都可以 submitMode:1表提交附件2直接填写3表两者都可以
} }
exam考试信息 单个对象 exam考试信息 单个对象
{ {
courseIdcontentId上面对象的id后台会控制,testName,testDuration考试时长, courseIdcontentId上面对象的id后台会控制,testName,testDuration考试时长,
paperType试卷类型 1自定义2使用已有试卷 paperType试卷类型 1自定义2使用已有试卷
paperId试题的id,使用已有试卷时保存选择试卷的id paperId试题的id,使用已有试卷时保存选择试卷的id
showAnalysis是否显示解析showAnswer否显示答案times尝试次数 showAnalysis是否显示解析showAnswer否显示答案times尝试次数
arrange试题排序 0表不乱序,1试题乱序2选项乱序3全部乱序 arrange试题排序 0表不乱序,1试题乱序2选项乱序3全部乱序
scoringType评分方式 1最高一次2最后一次 scoringType评分方式 1最高一次2最后一次
passLine及格线整数 passLine及格线整数
randomMode是否随机模式true/false randomMode是否随机模式true/false
paperContent试卷的内容json存储的对象{items:[]} paperContent试卷的内容json存储的对象{items:[]}
} }
assess评估信息,list 多条记录. assess评估信息,list 多条记录.
[ [
{ courseIdcontentId,assessId评估id一期为空,question问题qType问题类型} { courseIdcontentId,assessId评估id一期为空,question问题qType问题类型}
] ]
} }
*/ */
const saveContent = function(data) { const saveContent = function(data) {
return ajax.postJson('/xboe/m/course/content/save', data); return ajax.postJson('/xboe/m/course/content/save', data);
} }
/** /**
* 更新课程内容的顺序 * 更新课程内容的顺序
* @param {String} cid //课程的id * @param {String} cid //课程的id
* @param {Array} items * @param {Array} items
* [ * [
* { * {
* id:章的id * id:章的id
* index:整数,顺序值 * index:整数,顺序值
* items:[ * items:[
* {id:内容的id,index:顺序值} * {id:内容的id,index:顺序值}
* ] * ]
* } * }
* ] * ]
* @returns * @returns
*/ */
const updateContentOrders = function(cid,items) { const updateContentOrders = function(cid,items) {
return ajax.postJson('/xboe/m/course/content/update-orders/'+cid, items); return ajax.postJson('/xboe/m/course/content/update-orders/'+cid, items);
} }
/** /**
* 课程的详细信息 * 课程的详细信息
* @param {String} id * @param {String} id
*/ */
const detail = function(id) { const detail = function(id) {
return ajax.get('/xboe/m/course/manage/detail?id=' + id); return ajax.get('/xboe/m/course/manage/detail?id=' + id);
} }
/** /**
* 更新内容的名称 * 更新内容的名称
* @param {Object} data * @param {Object} data
* { * {
id:'', id:'',
name:'' name:''
} }
*/ */
const updateContentName = function(data) { const updateContentName = function(data) {
return ajax.post('/xboe/m/course/content/update-name', data); return ajax.post('/xboe/m/course/content/update-name', data);
} }
/** /**
* 删除一条学习内容 * 删除一条学习内容
* @param {Object} data * @param {Object} data
* { * {
id: 内容的id, id: 内容的id,
ctype:对应内容的类型contentType ctype:对应内容的类型contentType
erasable:是否物理删除,此值是课程信息中系统带过来的字段,直接使用它就可以了 erasable:是否物理删除,此值是课程信息中系统带过来的字段,直接使用它就可以了
} }
*/ */
const delContent = function(data) { const delContent = function(data) {
return ajax.post('/xboe/m/course/content/delete', data); return ajax.post('/xboe/m/course/content/delete', data);
} }
/** /**
* 保存课程的章信息,新增和修改保存都是一个 * 保存课程的章信息,新增和修改保存都是一个
* @param {Object} data * @param {Object} data
* courseId课程的id * courseId课程的id
* name章节名称 * name章节名称
description章节说明 description章节说明
parentId 上级id。如果没有可以填“-1”字符串 parentId 上级id。如果没有可以填“-1”字符串
orderIndex显示顺序顺序索引整数 orderIndex显示顺序顺序索引整数
*/ */
const saveSection = function(data) { const saveSection = function(data) {
return ajax.post('/xboe/m/course/content/save-section', data); return ajax.post('/xboe/m/course/content/save-section', data);
} }
/** /**
* 删除章节目录,注意只有目录下没有学习内容时才允许删除 * 删除章节目录,注意只有目录下没有学习内容时才允许删除
* @param {Object} data * @param {Object} data
*/ */
const delSection = function(id) { const delSection = function(id) {
return ajax.post('/xboe/m/course/content/delete-section?id=' + id); return ajax.post('/xboe/m/course/content/delete-section?id=' + id);
} }
/** /**
* 根据课程学习内容的id。获取作业信息只有学习内容是作业时才会有信息 * 根据课程学习内容的id。获取作业信息只有学习内容是作业时才会有信息
* @param {Object} ccid * @param {Object} ccid
*/ */
const getHomework = function(ccid) { const getHomework = function(ccid) {
return ajax.post('/xboe/m/course/content/homework?ccid=' + ccid); return ajax.post('/xboe/m/course/content/homework?ccid=' + ccid);
} }
/** /**
* 根据课程学习内容的id。获取考试信息只有学习内容是考试时才会有信息 * 根据课程学习内容的id。获取考试信息只有学习内容是考试时才会有信息
* @param {Object} ccid * @param {Object} ccid
*/ */
const getExam = function(ccid) { const getExam = function(ccid) {
return ajax.post('/xboe/m/course/content/exam?ccid=' + ccid); return ajax.post('/xboe/m/course/content/exam?ccid=' + ccid);
} }
/** /**
* 根据课程学习内容的id。获取评估信息评估内容可以获取 * 根据课程学习内容的id。获取评估信息评估内容可以获取
* @param {Object} ccid * @param {Object} ccid
*/ */
const getAssess = function(ccid) { const getAssess = function(ccid) {
return ajax.post('/xboe/m/course/content/assess?ccid=' + ccid); return ajax.post('/xboe/m/course/content/assess?ccid=' + ccid);
} }
/** /**
* 管理列表查询 * 管理列表查询
* @param {Object} query * @param {Object} query
* pageIndex:第几页 * pageIndex:第几页
* pageSize:每页多少条 * pageSize:每页多少条
* resOwner1:资源归属一级的id * resOwner1:资源归属一级的id
resOwner2:资源归属二级的id resOwner2:资源归属二级的id
resOwner3:资源归属三级的id resOwner3:资源归属三级的id
types授课方式多个使用 - 分隔 types授课方式多个使用 - 分隔
scenes应用场景多个使用 - 分隔 scenes应用场景多个使用 - 分隔
publishtrue/false 是否发布,空值或不传就是全部 publishtrue/false 是否发布,空值或不传就是全部
aid创建人 aid aid创建人 aid
sysCreateUser: 创建人姓名 sysCreateUser: 创建人姓名
keyword查询关键词 keyword查询关键词
sysTypes系统的分类多级使用 - 分隔,注一期功能是分类的最后一级值,不支持多个的查询 sysTypes系统的分类多级使用 - 分隔,注一期功能是分类的最后一级值,不支持多个的查询
orderField排序字段 id s orderField排序字段 id s
orderAsctrue/false 是否是正序,从小到大 orderAsctrue/false 是否是正序,从小到大
status状态,多个使用 - 分隔 1代表待审核 5代表已审核 1 未提交 2 已提交 5 审核完成 status状态,多个使用 - 分隔 1代表待审核 5代表已审核 1 未提交 2 已提交 5 审核完成
type课程类型10微课21在线课(直播)20:在线课( 录播)30:面授课40:混合式, type课程类型10微课21在线课(直播)20:在线课( 录播)30:面授课40:混合式,
name 课程名称 name 课程名称
*/ */
const pageList = function(query) { const pageList = function(query) {
return ajax.post('/xboe/m/course/manage/pagelist', query); return ajax.post('/xboe/m/course/manage/pagelist', query);
} }
/**计算待审核课程*/ /**计算待审核课程*/
const countWaitAudit = function() { const countWaitAudit = function() {
return ajax.get('/xboe/m/course/manage/wait-audit-num'); return ajax.get('/xboe/m/course/manage/wait-audit-num');
} }
/** /**
* 当前用户需要审核的课程列表 * 当前用户需要审核的课程列表
* @param {Object} query 同pageList * @param {Object} query 同pageList
*/ */
const auditList = function(query) { const auditList = function(query) {
return ajax.post('/xboe/m/course/manage/audit-pagelist', query); return ajax.post('/xboe/m/course/manage/audit-pagelist', query);
} }
/** /**教师需要审核的课程列表*/
* 指定审核人,转审核人 const teacherAuditList = function(query) {
* 点击“转审” 弹出教师查询窗口,查询教师,填写备注,提交,调用此接口 return ajax.post('/xboe/m/course/audit/teacher-course', query);
* @param {Object} data }
* {courseId:课程id,teacherId:指定的审核人教师的id,teacherName:教师名称,remark:备注}
*/ /**
const auditAppoint = function(data) { * 指定审核人,转审核人
return ajax.post('/xboe/m/course/audit/appoint', data); * 点击“转审” 弹出教师查询窗口,查询教师,填写备注,提交,调用此接口
} * @param {Object} data
* {courseId:课程id,teacherId:指定的审核人教师的id,teacherName:教师名称,remark:备注}
/** */
* 获取审核信息,上面教师点击审核课程时,用于查询,上面“转审”时,用户填写的备注信息 const auditAppoint = function(data) {
* @param {courseId:'课程id',teacherId:'可以不填写,系统会查询当前人'} data return ajax.post('/xboe/m/course/audit/appoint', data);
*/ }
const getAuditInfo = function(data) {
return ajax.post('/xboe/m/course/audit/infos', data); /**
} * 获取审核信息,上面教师点击审核课程时,用于查询,上面“转审”时,用户填写的备注信息
* @param {courseId:'课程id',teacherId:'可以不填写,系统会查询当前人'} data
/** */
* 获取审核日志,此功能是为了管理员查看课程的审核日志。 const getAuditInfo = function(data) {
* 为后续查看增加的接口 return ajax.post('/xboe/m/course/audit/infos', data);
* @param {courseId:'课程ID',teacherId:'可以不填写,系统会查询当前人'} data }
*/
const getAuditLogs = function(data) { /**
return ajax.post('/xboe/m/course/audit/logs', data); * 获取审核日志,此功能是为了管理员查看课程的审核日志。
} * 为后续查看增加的接口
* @param {courseId:'课程ID',teacherId:'可以不填写,系统会查询当前人'} data
*/
/** const getAuditLogs = function(data) {
* 管理员的课程审核处理 return ajax.post('/xboe/m/course/audit/logs', data);
* @param {Object} query {id:课程id,title:课程的名称, Boolean pass 是否通过,remark 备注} }
*/
const audit = function(data) {
return ajax.post('/xboe/m/course/manage/audit', data); /**
} * 管理员的课程审核处理
* @param {Object} query {id:课程id,title:课程的名称, Boolean pass 是否通过,remark 备注}
/** */
* 审核记录列表,分页查询 const audit = function(data) {
*/ return ajax.post('/xboe/m/course/manage/audit', data);
const auditPageRecords = function(data) { }
return ajax.post('/xboe/m/course/audit/page-records', data);
} /**
* 审核记录列表,分页查询
/** */
* 审核记录列表要卖课程id查询出审核列记录信息 const auditPageRecords = function(data) {
* { courseId:必须} return ajax.post('/xboe/m/course/audit/page-records', data);
*/ }
const auditCourseRecords = function(data) {
return ajax.post('/xboe/m/course/audit/course-records', data); /**
} * 审核记录列表要卖课程id查询出审核列记录信息
* { courseId:必须}
/** */
* 管理员的课程发布 const auditCourseRecords = function(data) {
* @param {Object} query {ids:课程id,多个使用逗号分隔,title:课程的名称, Boolean pass 是否发布} return ajax.post('/xboe/m/course/audit/course-records', data);
*/ }
const publish = function(data) {
return ajax.post('/xboe/m/course/manage/publish', data); /**
} * 管理员的课程发布
* @param {Object} query {ids:课程id,多个使用逗号分隔,title:课程的名称, Boolean pass 是否发布}
const auditAndPublish=function(data) { */
return ajax.post('/xboe/m/course/manage/audit-publish', data); const publish = function(data) {
} return ajax.post('/xboe/m/course/manage/publish', data);
}
/**
* 设置top const auditAndPublish=function(data) {
* @param {Object} query {ids:课程id,多个使用逗号分隔,title:课程的名称, Boolean top 是否置顶} return ajax.post('/xboe/m/course/manage/audit-publish', data);
*/ }
const setTop = function(data) {
return ajax.post('/xboe/m/course/manage/top', data); /**
} * 设置top
* @param {Object} query {ids:课程id,多个使用逗号分隔,title:课程的名称, Boolean top 是否置顶}
/** */
* 管理员的设置启用停用 const setTop = function(data) {
* @param {Object} query {ids:课程id,多个使用逗号分隔,title:课程的名称, Boolean enabled 是否启用} return ajax.post('/xboe/m/course/manage/top', data);
*/ }
const setEnabled = function(data) {
return ajax.post('/xboe/m/course/manage/enabled', data); /**
} * 管理员的设置启用停用
* @param {Object} query {ids:课程id,多个使用逗号分隔,title:课程的名称, Boolean enabled 是否启用}
/** */
* 管理员的删除课程 const setEnabled = function(data) {
* erasable 此值是课程信息带过来的,直接传就可以 return ajax.post('/xboe/m/course/manage/enabled', data);
* @param {Object} query {id:课程id,多个使用逗号分隔,Boolean erasable 是否物理删除,title:课程的名称, remark 备注} }
*/
const del = function(data) { /**
return ajax.post('/xboe/m/course/manage/delete', data); * 管理员的删除课程
} * erasable 此值是课程信息带过来的,直接传就可以
/* * @param {Object} query {id:课程id,多个使用逗号分隔,Boolean erasable 是否物理删除,title:课程的名称, remark 备注}
详情 */
*/ const del = function(data) {
const detailFew=function(id){ return ajax.post('/xboe/m/course/manage/delete', data);
return ajax.get('/xboe/m/course/portal/detail-few?id=' + id); }
} /*
详情
/* */
直接审核 const detailFew=function(id){
*/ return ajax.get('/xboe/m/course/portal/detail-few?id=' + id);
const sumbits=function(data){ }
return ajax.post('/xboe/m/course/manage/sumbits',data);
} /*
/* 直接审核
教师授课记录 */
*/ const sumbits=function(data){
const teacherCourse=function(teacherId){ return ajax.post('/xboe/m/course/manage/sumbits',data);
return ajax.get('/xboe/m/course/manage/teacher-course?teacherId='+teacherId); }
} /*
/* 教师授课记录
教师授课记录导出 */
@param teacherId 教师id const teacherCourse=function(teacherId){
*/ return ajax.get('/xboe/m/course/manage/teacher-course?teacherId='+teacherId);
const exportTeacherCourse=function(teacherId){ }
return ajax.post('/xboe/m/course/manage/export-teacher-course?teacherId='+teacherId) /*
} 教师授课记录导出
/* @param teacherId 教师id
*待审核课程记录导出 */
* resOwner1:资源归属一级的id const exportTeacherCourse=function(teacherId){
resOwner2:资源归属二级的id return ajax.post('/xboe/m/course/manage/export-teacher-course?teacherId='+teacherId)
resOwner3:资源归属三级的id }
types授课方式多个使用 - 分隔 /*
scenes应用场景多个使用 - 分隔 *待审核课程记录导出
publishtrue/false 是否发布,空值或不传就是全部 * resOwner1:资源归属一级的id
aid创建人 aid resOwner2:资源归属二级的id
sysCreateUser: 创建人姓名 resOwner3:资源归属三级的id
keyword查询关键词 types授课方式多个使用 - 分隔
sysTypes系统的分类,多使用 - 分隔,注一期功能是分类的最后一级值,不支持多个的查询 scenes应用场景,多使用 - 分隔
orderField排序字段 id s publishtrue/false 是否发布,空值或不传就是全部
orderAsctrue/false 是否是正序,从小到大 aid创建人 aid
status状态,多个使用 - 分隔 1代表待审核 5代表已审核 1 未提交 2 已提交 5 审核完成 sysCreateUser: 创建人姓名
type课程类型10微课21在线课(直播)20:在线课( 录播)30:面授课40:混合式, keyword查询关键词
name 课程名称 sysTypes系统的分类多级使用 - 分隔,注一期功能是分类的最后一级值,不支持多个的查询
*/ orderField排序字段 id s
const exportCourseAudit=function(query){ orderAsctrue/false 是否是正序,从小到大
return ajax.post('/xboe/m/course/manage/exportCourseAudit',query); status状态,多个使用 - 分隔 1代表待审核 5代表已审核 1 未提交 2 已提交 5 审核完成
} type课程类型10微课21在线课(直播)20:在线课( 录播)30:面授课40:混合式,
/* name 课程名称
参数同上待审核课程记录导出 */
课程的导出和已审核的课程导出 const exportCourseAudit=function(query){
*/ return ajax.post('/xboe/m/course/manage/exportCourseAudit',query);
const exportCourse=function(query){ }
return ajax.post('/xboe/m/course/manage/exportCourse',query); /*
} 参数同上待审核课程记录导出
课程的导出和已审核的课程导出
//判断受众id是否有关联 */
const queryCrowd=function(query){ const exportCourse=function(query){
return ajax.postJson('/xboe/m/course/manage/queryCrowd',query); return ajax.post('/xboe/m/course/manage/exportCourse',query);
} }
/** //判断受众id是否有关联
* 二次查询 const queryCrowd=function(query){
* @param{ return ajax.postJson('/xboe/m/course/manage/queryCrowd',query);
* ids }
* }
* */ /**
const ids=function (data){ * 二次查询
return ajax.postJson('/xboe/m/course/manage/ids',data); * @param{
} * ids
export default { * }
saveBase, * */
submitCourse, const ids=function (data){
revokeSubmit, return ajax.postJson('/xboe/m/course/manage/ids',data);
copyCourse, }
findUpdateLogs, export default {
getUpdateLog, saveBase,
detail, submitCourse,
saveContent, revokeSubmit,
pageList, copyCourse,
setEnabled, findUpdateLogs,
del, getUpdateLog,
publish, detail,
saveSection, saveContent,
getHomework, pageList,
countWaitAudit, setEnabled,
auditList, del,
auditAppoint, publish,
getAuditInfo, saveSection,
getAuditLogs, getHomework,
audit, countWaitAudit,
auditPageRecords, auditList,
auditCourseRecords, teacherAuditList,
auditAndPublish, auditAppoint,
getAssess, getAuditInfo,
setTop, getAuditLogs,
delSection, audit,
getExam, auditPageRecords,
delContent, auditCourseRecords,
updateContentName, auditAndPublish,
updateContentOrders, getAssess,
saveOnlyCourse, setTop,
isRedoName, delSection,
isCourseName, getExam,
detailFew, delContent,
sumbits, updateContentName,
teacherCourse, updateContentOrders,
exportTeacherCourse, saveOnlyCourse,
exportCourseAudit, isRedoName,
exportCourse, isCourseName,
queryCrowd, detailFew,
ids sumbits,
teacherCourse,
} exportTeacherCourse,
exportCourseAudit,
exportCourse,
queryCrowd,
ids
}