You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

330 lines
15 KiB
JavaScript

3 years ago
layui.define([ 'form', 'laydate', 'table' ], function(exports) {
var form = layui.form,
laydate = layui.laydate,
table = layui.table,
resourcesInfoTable = null,
courseInfoMap = {},//课程map
zjMap = {},//章节map
selectMap = {},//已经生成过select的map
selectList = "<select lay-filter='select_courseInfoIds'><option value=''>请选择</option>",
courseLabelTypes = Common.getAjax("/jlw/courseInfo/getTreeByCourseLabelTypes.json",{courseLabelTypes:"实务课程类",rankLimit:3}).data; //获取课程数据
$.each(courseLabelTypes,function (key,value){
selectList += '<option value="'+value.courseInfoId+'">'+value.courseInfoName+'</option>';
courseInfoMap[value.courseInfoId] = {courseInfoName:value.courseInfoName,children:value.children};
$.each(value.children,function (k,v){
zjMap[v.courseInfoId] = {courseInfoName:v.courseInfoName,children:v.children};
});
});
selectList += "</select>";
var view ={
init:function(){
this.initTable();
this.initSearchForm();
this.initToolBar();
window.dataReload = function(){
Lib.doSearchForm($("#searchForm"),resourcesInfoTable);
}
},
initTable:function(){
resourcesInfoTable = table.render({
elem : '#resourcesInfoTable',
height : Lib.getTableHeight(),
cellMinWidth: 100,
method : 'post',
even:true,
size:"lg",
url : Common.ctxPath + '/jlw/resourcesInfo/list.json' // 数据接口
,page : Lib.tablePage // 开启分页
,limit : 10,
cols : [ [ // 表头
{
type : 'checkbox'
},
{
field : 'resourcesInfoName', title : '资源名称',align:"center",style:"text-align: left;"
},
{
field : 'courseInfoParentParentName', title : '归属课程',align:"center",width:200, templet: function (d) {
return selectList; //一级
}
},
{
field : 'courseInfoParentName', title : '归属章节',align:"center",width:200, templet: function (d) {
var htm = "<select lay-filter='select_courseInfoIds_1'><option value=''>请选择</option>";
if(!$.isEmpty(d.courseInfoParentId)){
if($.isEmpty(selectMap[d.courseInfoParentId])){
var h = htm;
if(!$.isEmpty(courseInfoMap[d.courseInfoParentParentId])) {
$.each(courseInfoMap[d.courseInfoParentParentId].children, function (key, v) {
h += "<option value='" + v.courseInfoId + "'>" + v.courseInfoName + "</option>";
});
}
selectMap[d.courseInfoParentId] = h + "</select>";
return h;
}else {
return selectMap[d.courseInfoParentId];
}
}else {
return htm + "</select>"; //二级
}
}
},
{
field : 'courseInfoName', title : '归属小节',align:"center",width:200, templet: function (d) {
var htm = "<select lay-filter='select_courseInfoIds_2'><option value=''>请选择</option>";
if(!$.isEmpty(d.courseInfoId)){
if($.isEmpty(selectMap[d.courseInfoId])){
var h = htm;
if(!$.isEmpty(zjMap[d.courseInfoParentId])){
$.each(zjMap[d.courseInfoParentId].children,function (key,v){
h += "<option value='" + v.courseInfoId + "'>" + v.courseInfoName + "</option>";
});
}
selectMap[d.courseInfoId] = h + "</select>";
return h;
}else {
return selectMap[d.courseInfoId];
}
}else {
return htm + "</select>"; //三级
}
}
},
{
field : 'resourcesInfoType', width:150,title : '资源类型',align:"center",templet:function (d){//(1视频 2课件 3附件)
return d.resourcesInfoType == 1?"视频":d.resourcesInfoType == 2?"课件":d.resourcesInfoType == 3?"附件":'-';
3 years ago
}
},
{
field : 'userId',title : '操作', width:180,align:"center", templet: function (d) {
var htm = '<button type="button" class="layui-btn layui-btn-xs" lay-event="edit">编辑</button></a>';
htm += '<button type="button" class="layui-btn layui-btn-xs" lay-event="previewPage">'+(d.resourcesInfoType == 3?'下载':'预览')+'</button></a>';
htm += '<button type="button" class="layui-btn layui-btn-xs" lay-event="del">删除</button></a>';
return htm;
}
}
] ],done: function (res, curr, count) {
$.each(res.data,function (k,v){
$("div[lay-id='resourcesInfoTable'] tbody tr:eq("+k+")").find("select:eq(0)").val(v.courseInfoParentParentId);
$("div[lay-id='resourcesInfoTable'] tbody tr:eq("+k+")").find("select:eq(1)").val(v.courseInfoParentId);
$("div[lay-id='resourcesInfoTable'] tbody tr:eq("+k+")").find("select:eq(2)").val(v.courseInfoId);
});
form.render();
$.each($("td[data-field='courseInfoName']"),function (k,v){
$(this).find("input").val($(this).find("input").context.dataset.content);
});
}
});
table.on('checkbox(resourcesInfoTable)', function(obj){
var resourcesInfo = obj.data;
if(obj.checked){
//按钮逻辑Lib.buttonEnable()
}else{
}
})
},
initSearchForm:function(){
Lib.initSearchForm( $("#searchForm"),resourcesInfoTable,form);
},
initToolBar:function(){
toolbar = {
add : function() { // 获取选中数据
var url = "/jlw/resourcesInfo/add.do";
Common.openDlg(url,"资源管理/新增资源");
},
refresh: function () {//刷新
searchForm.reset();
Lib.doSearchForm($("#searchForm"), resourcesInfoTable, 1);
},
search:function () {
Lib.doSearchForm($("#searchForm"), resourcesInfoTable, 1);
},
allDel:function () {//批量删除
var checkStatus = table.checkStatus('resourcesInfoTable')
,data = checkStatus.data,ids="";
for(var i = 0;i<data.length;i++){
ids += data[i].resourcesInfoId;
if(i < data.length - 1){
ids += ",";
}
}
if($.isEmpty(ids)){
layer.msg("请选择需要删除的数据!", {
offset: ['50%'],
icon: 2,
time: 1500 //2秒关闭如果不配置默认是3秒
});
return;
}
deleteInfo(ids);
},
bindingCourseInfo:function (){//批量绑定课程
var checkStatus = table.checkStatus('resourcesInfoTable')
,data = checkStatus.data,ids="";
for(var i = 0;i<data.length;i++){
ids += data[i].resourcesInfoId;
if(i < data.length - 1){
ids += ",";
}
}
if($.isEmpty(ids)){
layer.msg("请选择需要绑定章节的数据!", {
offset: ['50%'],
icon: 2,
time: 1500 //2秒关闭如果不配置默认是3秒
});
return;
}
bindingCourseInfo(ids);
}
};
$('.ext-toolbar').on('click', function() {
var type = $(this).data('type');
toolbar[type] ? toolbar[type].call(this) : '';
});
}, initTableTool: table.on('tool(resourcesInfoTable)', function (obj) {
var data = obj.data;
if (obj.event === 'edit') {
var url = "/jlw/resourcesInfo/add.do?resourcesInfoId="+data.resourcesInfoId;
Common.openDlg(url,"资源管理/编辑资源");
}else if(obj.event === "del"){
deleteInfo(data.resourcesInfoId);
}else if(obj.event === "previewPage"){
Lib.downloadFile(data);
}
})
}
function deleteInfo(ids){
layer.confirm('是否确定删除数据?', function (index) {
var ret = Common.postAjax("/jlw/resourcesInfo/delete.json", {ids: ids});
layer.msg(ret.code == 0 ? "删除成功!" : ret.msg, {
offset: ['50%'],
icon: ret.code == 0 ? 1 : 2,
time: 1500 //2秒关闭如果不配置默认是3秒
}, function () {
if (ret.code == 0) {
Lib.tableRefresh();
}
});
});
}
//批量绑定章节
function bindingCourseInfo(ids){
layer.open({
type: 1,
title: "批量绑定章节",
shadeClose: true,
btn: ['确定', '关闭'],
btnAlign: 'c',
area: ['620px', '360px'],
content: $("#bindingCourseInfo_dialog"),
success: function (layero, index) {
$("#bindingCourseInfo_dialog select").val("");
$("#bindingCourseInfo_dialog .layui-input-inline").css("width","400px");
form.render();
}, yes: function (index) {
var courseInfoId = $("#bindingCourseInfo_dialog select[name='courseInfoId']").val();
if($.isEmpty(courseInfoId)){
layer.msg("请选择归属小结!");
return ;
}
var ret = Common.postAjax("/jlw/resourcesInfo/setCourseInfoId.json",{courseInfoId:courseInfoId,resourcesInfoIds:ids});
layer.msg(ret.code == 0 ? "绑定成功!" : ret.msg, {
offset: ['50%'],
icon: ret.code == 0 ? 1 : 2,
time: 1500 //2秒关闭如果不配置默认是3秒
}, function () {
if (ret.code == 0) {
Lib.tableRefresh();
layer.close(index);
}
});
}, btn2: function (index, layero) {
layer.close(index);
}
});
}
//选择归属课程 并且根据选择的课程查询章节
form.on('select(select_courseId)', function (obj) {
var this_ = $("#bindingCourseInfo_dialog select[name='chapterId']");
var this_1 = $("#bindingCourseInfo_dialog select[name='courseInfoId']");
this_.empty();
this_.append("<option value=''>请选择</option>");
this_1.empty();
this_1.append("<option value=''>请选择</option>");
if(!$.isEmpty(obj.value)){
$.each(courseInfoMap[obj.value].children,function (key,v){
this_.append("<option value='" + v.courseInfoId + "'>" + v.courseInfoName + "</option>");
});
}
form.render();
});
//选择归属课程 并且根据选择的课程查询章节
form.on('select(select_chapterId)', function (obj) {
var this_ = $("#bindingCourseInfo_dialog select[name='courseInfoId']");
this_.empty();
this_.append("<option value=''>请选择</option>");
if(!$.isEmpty(obj.value)){
$.each(zjMap[obj.value].children,function (key,v){
this_.append("<option value='" + v.courseInfoId + "'>" + v.courseInfoName + "</option>");
});
}
form.render();
});
//选择归属课程 并且根据选择的课程查询章节
form.on('select(select_courseInfoIds)', function (obj) {
var this_ = $(this).parents("td").next().find("select");
this_.empty();
this_.append("<option value=''>请选择</option>");
$(this).parents("td").next().next().find("select").empty();
$(this).parents("td").next().next().find("select").append("<option value=''>请选择</option>");
if(!$.isEmpty(obj.value)){
$.each(courseInfoMap[obj.value].children,function (key,v){
this_.append("<option value='" + v.courseInfoId + "'>" + v.courseInfoName + "</option>");
});
}
form.render();
});
//选择归属课程 并且根据选择的课程查询章节
form.on('select(select_courseInfoIds_1)', function (obj) {
var this_ = $(this).parents("td").next().find("select");
this_.empty();
this_.append("<option value=''>请选择</option>");
if(!$.isEmpty(obj.value)){
$.each(zjMap[obj.value].children,function (key,v){
this_.append("<option value='" + v.courseInfoId + "'>" + v.courseInfoName + "</option>");
});
}
form.render();
});
//选择归属课程 并且根据选择的课程查询章节
form.on('select(select_courseInfoIds_2)', function (obj) {
var r = $(this).parents("td").find("input").context.innerHTML.replace(/&nbsp;/g,"");
$(this).parents("td").find("input").val(r);
var resourcesInfoId = table.cache['resourcesInfoTable'][$(this).parents("tr").attr("data-index")].resourcesInfoId;
if(!$.isEmpty(resourcesInfoId)){
var ret = Common.postAjax("/jlw/resourcesInfo/edit.json",{resourcesInfoId:resourcesInfoId,courseInfoId:obj.value});
layer.msg(ret.code == 0 ? "绑定成功!" : ret.msg, {
offset: ['50%'],
icon: ret.code == 0 ? 1 : 2,
time: 1000 //2秒关闭如果不配置默认是3秒
});
}
});
exports('index',view);
});