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