Files
learning-system-portal/src/api/modules/course.js
670788339 8228b33cb0 提示
2025-11-10 18:49:54 +08:00

495 lines
14 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
/**
* 课程的操作,课程的添加,修改,列表查询,课程的审核发布等操作。
* 针对于管理员,教师的功能
*
**/
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: 1PC端可见2移动端可见3多端可见
status: 1:未提交(草稿);2:已提交;
publishedtrue/false 是否发布
enabledtrue/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作业信息 单个对象{
courseIdcontentId上面对象的id后台会控制,name,content,file,deadTime,
submitMode:1表提交附件2直接填写3表两者都可以
}
exam考试信息 单个对象
{
courseIdcontentId上面对象的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 多条记录.
[
{ courseIdcontentId,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应用场景多个使用 - 分隔
publishtrue/false 是否发布,空值或不传就是全部
aid创建人 aid
sysCreateUser: 创建人姓名
keyword查询关键词
sysTypes系统的分类多级使用 - 分隔,注一期功能是分类的最后一级值,不支持多个的查询
orderField排序字段 id s
orderAsctrue/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应用场景多个使用 - 分隔
publishtrue/false 是否发布,空值或不传就是全部
aid创建人 aid
sysCreateUser: 创建人姓名
keyword查询关键词
sysTypes系统的分类多级使用 - 分隔,注一期功能是分类的最后一级值,不支持多个的查询
orderField排序字段 id s
orderAsctrue/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
}