课程设置

beetlsql3-dev
姚丹ab 2 years ago
parent ddecb80eb1
commit 65804ea5f5

@ -133,6 +133,21 @@ public class CourseInfoController{
return view; return view;
} }
/**
*@author
*@data 2022/11/23
*/
//跳转至课程配置页面
@GetMapping(MODEL + "/courseConfigureNew.do")
@Function("courseInfo.add")
@ResponseBody
public ModelAndView courseConfigureNew(Long courseInfoId) {
ModelAndView view = new ModelAndView("/jlw/courseInfo/courseConfigureNew.html");
CourseInfo courseInfo = courseInfoService.queryById(courseInfoId);
view.addObject("courseInfo", courseInfo);
return view;
}
/* 后台接口 */ /* 后台接口 */
@PostMapping(MODEL + "/list.json") @PostMapping(MODEL + "/list.json")

@ -57,9 +57,9 @@ layui.define([ 'form', 'laydate', 'table' ], function(exports) {
}, },
{ {
field : 'userId',width:300,title : '操作',align:"center", templet: function (d) { field : 'userId',width:300,title : '操作',align:"center", templet: function (d) {
var htm = '<a class="layui-table-link" lay-event="edit">编辑</a>'; /*var htm = '<a class="layui-table-link" lay-event="edit">编辑</a>';*/
htm += '<a class="layui-table-link" lay-event="courseConfigure">课程配置</a>'; var htm = '<a class="layui-table-link" lay-event="courseConfigure">课程配置</a>';
htm += '<a class="layui-table-link" lay-event="editStatus">'+(d.courseInfoStatus == 1?"用":"启用")+'</a>'; htm += '<a class="layui-table-link" lay-event="editStatus">'+(d.courseInfoStatus == 1?"用":"启用")+'</a>';
htm += '<a class="layui-table-link" lay-event="del">删除</a>'; htm += '<a class="layui-table-link" lay-event="del">删除</a>';
return htm; return htm;
} }
@ -119,10 +119,10 @@ layui.define([ 'form', 'laydate', 'table' ], function(exports) {
}); });
}else if(obj.event === "courseConfigure"){ //跳转至课程配置 }else if(obj.event === "courseConfigure"){ //跳转至课程配置
if(data.courseInfoStatus == 1){ if(data.courseInfoStatus == 1){
Common.info("课程配置时,请先用课程。配置完成后再启用课程") Common.info("课程配置时,请先用课程。配置完成后再启用课程")
return; return;
} }
var url = "/jlw/courseInfo/courseConfigurePage.do?courseInfoId="+data.courseInfoId; var url = "/jlw/courseInfo/courseConfigureNew.do?courseInfoId="+data.courseInfoId;
Common.openDlg(url,""); Common.openDlg(url,"");
}else if(obj.event === "editStatus"){ //启用 }else if(obj.event === "editStatus"){ //启用
var param = { var param = {
@ -136,7 +136,7 @@ layui.define([ 'form', 'laydate', 'table' ], function(exports) {
//修改状态 //修改状态
function editCourseInfoStatus(param){ function editCourseInfoStatus(param){
layer.confirm('是否确定<span style=\'color: red;\'> '+(param.courseInfoStatus == 1?"启用":"用")+' </span>该课程?', function (index) { layer.confirm('是否确定<span style=\'color: red;\'> '+(param.courseInfoStatus == 1?"启用":"用")+' </span>该课程?', function (index) {
layer.close(index); layer.close(index);
var ret = Common.postAjax("/jlw/courseInfo/edit.json",param); var ret = Common.postAjax("/jlw/courseInfo/edit.json",param);
layer.msg(ret.code == 0?"操作成功!":ret.msg, { layer.msg(ret.code == 0?"操作成功!":ret.msg, {

@ -147,7 +147,7 @@ layui.define(['laydate', 'layer', 'form', 'table', 'treetable', 'element'], func
treeSpid: '0', //最上级的父级id treeSpid: '0', //最上级的父级id
treeIdName: 'teacherOpenCourseScheduleSessionClassId', //id字段的名称 treeIdName: 'teacherOpenCourseScheduleSessionClassId', //id字段的名称
treePidName: 'teacherOpenCourseScheduleSessionClassParentId', //父级节点字段 treePidName: 'teacherOpenCourseScheduleSessionClassParentId', //父级节点字段
treeDefaultClose: false, //是否默认折叠 treeDefaultClose: true, //是否默认折叠
treeLinkage: true, //父级展开时是否自动展开所有子级 treeLinkage: true, //父级展开时是否自动展开所有子级
data: classRoomTableData data: classRoomTableData
/*,page : Lib.tablePage // 开启分页*/ /*,page : Lib.tablePage // 开启分页*/
@ -317,6 +317,7 @@ layui.define(['laydate', 'layer', 'form', 'table', 'treetable', 'element'], func
' </div>\n' + ' </div>\n' +
' </div>' ' </div>'
, btn: ['确定', '关闭'] , btn: ['确定', '关闭']
, shadeClose:true
, yes: function (index, layero) { , yes: function (index, layero) {
let param = { let param = {
"teacherOpenCourseScheduleSessionClassName": $("#addRoom input[name='teacherOpenCourseScheduleSessionClassName']").val(), "teacherOpenCourseScheduleSessionClassName": $("#addRoom input[name='teacherOpenCourseScheduleSessionClassName']").val(),
@ -347,6 +348,7 @@ layui.define(['laydate', 'layer', 'form', 'table', 'treetable', 'element'], func
'</div>\n' + '</div>\n' +
'</div>' '</div>'
, btn: ['确定', '关闭'] , btn: ['确定', '关闭']
, shadeClose:true
, success:function () { , success:function () {
$("#editRoom input[name='teacherOpenCourseScheduleSessionClassName']").val(data.teacherOpenCourseScheduleSessionClassName) $("#editRoom input[name='teacherOpenCourseScheduleSessionClassName']").val(data.teacherOpenCourseScheduleSessionClassName)
} }

@ -0,0 +1,305 @@
<!--# layout("/common/layout.html",{"jsBase":"/js/jlw/courseInfo/"}){ -->
<link rel="stylesheet" type="text/css" href="${ctxPath}/css/plugin.css?v=${jsVer}" media="all"/>
<style>
.layui-table a {
margin-right: 10px;
}
.shiping {
color: red;
border: 2px solid red;
border-radius: 5px;
margin: 3px;
}
.ppt {
color: #01AAED;
border: 2px solid #01AAED;
border-radius: 5px;
padding: 3px;
}
.pdf {
color: #FFB800;
border: 2px solid #FFB800;
border-radius: 5px;
padding: 3px;
}
.lianjie {
color: #009688;
border: 2px solid #009688;
border-radius: 5px;
padding: 3px;
}
.tupian {
color: #2F4056;
border: 2px solid #2F4056;
border-radius: 5px;
padding: 3px;
}
</style>
<input name="courseInfoId" type="hidden" value="${courseInfo.courseInfoId}"/>
<div class="layui-row" style="margin: 0 auto;">
<a class="layui-btn layui-btn-primary" id="addButton-cancel" style="margin-bottom: 10px;">返回</a>
<a class="layui-btn bg_button" id="addButton" style="margin-bottom: 10px;">新增章目录</a>
<a class="layui-btn" id="foldTrue" style="margin-bottom: 10px;">全部展开</a>
<a class="layui-btn layui-bg-gray" id="foldFalse" style="margin-bottom: 10px;">全部折叠</a>
</div>
<table id="courseInfoTable" lay-filter="courseInfoTable"></table>
<!--# } -->
<script type="text/javascript" src="${ctxPath}/plugins/xm-select.js?v=${jsVer}"></script>
<script>
layui.define(function (exports) { //提示组件也可以依赖其它组件layui.define('jquery', callback);
exports('treetable');
});
//调用
layui.config({
base: Common.ctxPath + '/plugins/treetable-lay/' //假设这是treetable.js所在的目录 可以把你需要扩展的js插件都放在一个文件夹内
}).extend({ //设定组件别名
treetable: 'treetable'
});
layui.define(['form', 'transfer', 'table', 'tree', "laytpl", 'element', 'upload', 'treetable'], function (exports) {
var form = layui.form,
transfer = layui.transfer,
upload = layui.upload,
laytpl = layui.laytpl,
table = layui.table,
tree = layui.tree,
element = layui.element,
treetable = layui.treetable;
var courseInfoParentId = $("input[name='courseInfoId']").val();
var courseInfoTable = function () {
var ret = Common.getAjax("/jlw/courseInfo/getCourseResources.json", {courseInfoId: courseInfoParentId});
var data = ret.data;
if (ret.code == 0) {
ret.data.forEach(item => {
item.resourcesInfo.forEach(function (e, i) {
e.courseInfoParentId = e.courseInfoId;
e.courseInfoId = 0;
e.courseInfoName = "资源名称:" + e.resourcesInfoName;
data.push(e);
})
});
}
treetable.render({
elem: '#courseInfoTable',
height: Lib.getTableHeight(1),
cellMinWidth: 100,
data: data,
treeColIndex: 0, //树形图标显示在第几列
treeSpid: courseInfoParentId, //最上级的父级id
treeIdName: 'courseInfoId', //id字段的名称
treePidName: 'courseInfoParentId', //父级节点字段
treeDefaultClose: true, //是否默认折叠
treeLinkage: true //父级展开时是否自动展开所有子级
, limit: 1000
, parseData: function (res) { //将原始数据解析成 table 组件所规定的数据
return {
"code": res.status, //解析接口状态
"msg": res.message, //解析提示文本
"count": res.total, //解析数据长度
"data": res.rows.item //解析数据列表
};
}
, cols: [[ // 表头
/* {
field: 'LAY_TABLE_INDEX',
title: '序号',
align: "center",
},*/
{
field: 'courseInfoName',
title: '目录名称',
},
{
field: 'resourcesInfoType',
title: '资源类型',
align: "center",
templet: function (d) {
//资源类型(1视频 2PPT 3PDF 4链接 5图片)
var css = '';
var value = "";
if (d.resourcesInfoType === 1) {
value = "视频";
css = "shiping";
} else if (d.resourcesInfoType === 2) {
value = "PPT";
css = "ppt";
} else if (d.resourcesInfoType === 3) {
value = "PDF";
css = "pdf";
} else if (d.resourcesInfoType === 4) {
value = "链接";
css = "lianjie";
} else if (d.resourcesInfoType === 5) {
value = "图片";
css = "tupian";
}
return '<span class=' + css + '>' + value + '</span>';
}
},
{
field: 'courseInfoId',
title: '操作',
templet: function (d) {
var htm = '';
if (d.courseInfoType === 2) {
htm += '<a class="layui-table-link" lay-event="add">添加子章节</a>';
} else if (d.courseInfoType === 3) {
htm += '<a class="layui-table-link" lay-event="updateResources">上传资源</a>';
htm += '<a class="layui-table-link" lay-event="addLine">添加链接</a>';
htm += '<a class="layui-table-link" lay-event="addWP">添加图文</a>';
}
if (!$.isEmpty(d.resourcesInfoType)) {
htm += '<a class="layui-table-link" lay-event="look">查看</a>';
htm += '<a class="layui-table-link" lay-event="update">上传</a>';
}
htm += '<a class="layui-table-link" lay-event="edit">编辑</a>';
htm += '<a class="layui-table-link" lay-event="del">删除</a>';
htm += '<a class="layui-table-link" lay-event="move">拖动</a>';
if (!$.isEmpty(d.resourcesInfoType)) {
htm += '<a class="layui-table-link" lay-event="moveUp">上移</a>';
htm += '<a class="layui-table-link" lay-event="moveDown">下移</a>';
}
return htm;
}
}
]]
});
};
courseInfoTable();
/*新增章目录*/
$("#addButton").click(function () {
var param = {
courseInfoParentId: courseInfoParentId,
courseInfoType: 2,
courseInfoStatus: 1,
courseInfoName: "未命名"
};
postCourseInfo("",param);
});
/*返回*/
$("#addButton-cancel").click(function () {
parent.Lib.tableRefresh();
Lib.closeFrame();
});
//全部展开
$("#foldTrue").click(function () {
treetable.expandAll('#courseInfoTable');
});
//全部折叠
$("#foldFalse").click(function () {
treetable.foldAll('#courseInfoTable');
});
table.on('tool(courseInfoTable)', function (obj) {
var data = obj.data;
var courseInfoId = data.courseInfoId;
if (obj.event === 'add') {//添加子章节
var param = {
courseInfoParentId: courseInfoId,
courseInfoType: 3,
courseInfoStatus: 1,
courseInfoName: "未命名"
};
postCourseInfo("",param);
}else if (obj.event === 'updateResources') {//上传资源
}else if (obj.event === 'addLine') {//添加链接
}else if (obj.event === 'addWP') {//添加图文
}else if (obj.event === 'look') {//查看
}else if (obj.event === 'update') {//上传
}else if(obj.event === 'edit'){
layer.open({
title: "编辑目录名称"
, content: '<div class="layui-inline" id="editName">\n' +
'<label class="layui-form-label">目录名称</label>\n' +
'<div class="layui-input-inline">\n' +
'<input type="text" id="courseInfoName" name="courseInfoName" class="layui-input" >\n' +
'</div>\n' +
'</div>'
, btn: ['确定', '关闭']
, shadeClose:true
, success:function () {
$("#editRoom input[name='courseInfoName']").val(data.courseInfoName)
}
, yes: function (index, layero) {
let param = {
"courseInfoId":courseInfoId,
"courseInfoName": $("#editName input[name='courseInfoName']").val(),
};
layer.close(index);
postCourseInfo(courseInfoId, param);
},
btn2: function (index, layero) {
layer.close(index);
}
});
}else if (obj.event === 'del') {
layer.confirm('是否确定删除该信息?', function (index) {
layer.load();
var ret = Common.postAjax("/jlw/courseInfo/delete.json",{ids:courseInfoId});
layer.msg(ret.code == 0 ? "删除成功!" : ret.msg, {
offset: ['50%'],
icon: ret.code == 0 ? 1 : 2,
time: 1500 //2秒关闭如果不配置默认是3秒
}, function () {
courseInfoTable();
if (ret.code == 0) {
Lib.tableRefresh();
layer.closeAll();
}
});
});
/*if(courseInfoParentId != data.courseInfoParentId){
}else {
layer.msg("删除失败!不能删除根节点!", {
offset: ['50%'],
icon: 2,
time: 2000 //2秒关闭如果不配置默认是3秒
});
courseInfoTable();
}*/
}else if (obj.event === 'move') {//拖动
}else if (obj.event === 'moveUp') {//上移
}else if (obj.event === 'moveDown') {//下移
}
});
function postCourseInfo(id, param) {
layer.load();
setTimeout(function () {
var url = "/jlw/courseInfo/add.json";
if (!$.isEmpty(id)) {
url = "/jlw/courseInfo/edit.json";
}
var ret = Common.postAjax(url, param);
if (ret.code == 0) {
courseInfoTable();
}
layer.msg(ret.code == 0 ? "操作成功!" : ret.msg, {
offset: ['50%'],
icon: ret.code == 0 ? 1 : 2,
time: 1500 //2秒关闭如果不配置默认是3秒
}, function () {
layer.closeAll();
if (ret.code == 0) {
Lib.tableRefresh();
}
});
}, 50);
}
});
</script>
Loading…
Cancel
Save