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 htmY = '<optgroup label="应用课程类">', htmL = '<optgroup label="理论课程类">', htmK = '<optgroup label="考证课程类">', htmO = '<optgroup label="开课课程类">', currentAuthCourseInfoDetails = Common.getAjax("/jlw/universitiesCollegesJurisdictionCurriculumResources/getCourseSystemOAndUniversities.json").data; /*// 应用课程类 var applicationCourseList = currentAuthCourseInfoDetails.applicationCourseList || []; // 理论课程类 var theoryCourseList = currentAuthCourseInfoDetails.theoryCourseList || []; // 考证课程类 var textualResearchCourseList = currentAuthCourseInfoDetails.textualResearchCourseList || [];*/ // 应用课程类 var applicationCourseList = []; // 理论课程类 var theoryCourseList = []; // 考证课程类 var textualResearchCourseList = []; // 理论课程类+开课课程 var openCourseList = []; function childCourseList(courseInfoId,courseInfoType,sourceType){ var data = Common.getAjax("/jlw/courseInfo/getChapterSystemOAndUniversities.json", { courseInfoParentId: courseInfoId, courseInfoType:courseInfoType, sourceType:sourceType }).data;//获取课程数据 return data } currentAuthCourseInfoDetails.forEach(function(e,i){ if(e.sourceType == 2){ if(e.courseLabelType == '考证课程类'){ textualResearchCourseList.push(e); }else if(e.courseLabelType == '理论课程类'){ theoryCourseList.push(e); }else if(e.courseLabelType == '应用课程类'){ applicationCourseList.push(e); } }else if(e.sourceType == 1){ openCourseList.push(e) } }); var selectList ="<select lay-filter='select_courseInfoIds_'><option value=''>请选择</option>"; for (let currentAuthCourseInfoDetail of applicationCourseList) { htmY += '<option value="' + (currentAuthCourseInfoDetail.courseInfoId || '-1')+'" status="'+currentAuthCourseInfoDetail.sourceType+'">' + (currentAuthCourseInfoDetail.courseInfoName || '未查询到数据') + '</option>'; } for (let currentAuthCourseInfoDetail of theoryCourseList) { htmL += '<option value="'+ (currentAuthCourseInfoDetail.courseInfoId || '-1')+'" status="'+currentAuthCourseInfoDetail.sourceType+'">'+ (currentAuthCourseInfoDetail.courseInfoName || '未查询到数据') +'</option>'; } for (let currentAuthCourseInfoDetail of textualResearchCourseList) { htmK += '<option value="'+ (currentAuthCourseInfoDetail.courseInfoId || '-1') + '" status="'+currentAuthCourseInfoDetail.sourceType+'">'+ (currentAuthCourseInfoDetail.courseInfoName || '未查询到数据') +'</option>'; } for (let currentAuthCourseInfoDetail of openCourseList) { htmO += '<option value="'+ (currentAuthCourseInfoDetail.courseInfoId || '-1') +'" status="'+currentAuthCourseInfoDetail.sourceType+'">'+ (currentAuthCourseInfoDetail.courseInfoName || '未查询到数据') +'</option>'; } if($("#isUser").val() === "true"){ selectList += htmY + '</optgroup>' + htmK + '</optgroup>' + htmL + '</optgroup>' + htmO + '</optgroup>' + "</select>"; //console.log($("#isUser").val()) }else { selectList+= htmL + '</optgroup>' + htmO + '</optgroup>' + "</select>"; } function selectedHandler(val,val1) { return val == val1 ? 'selected = "selected"' : ''; } /*$.each(courseLabelTypes, function (key, value) { courseInfoMap[value.courseInfoId] = {courseInfoName: value.courseInfoName, children: value.children}; $.each(value.children, function (k, v) { zjMap[v.courseInfoId] = {courseInfoName: v.courseInfoName, children: v.children}; }); });*/ 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: '归属课程', templet: function (d) { return selectList; //一级 } }, { field: 'courseInfoParentName', title: '归属章节', align: "center", templet: function (d) { var htm = "<select lay-filter='select_courseInfoIds_1'><option value=''>请选择</option>"; if (!$.isEmpty(d.courseInfoParentId)) { if ($.isEmpty(selectMap[d.courseInfoParentParentId])) { var h = htm; var courseInfoChildtList = childCourseList(d.courseInfoParentParentId,2,d.sourceType); if (!$.isEmpty(courseInfoChildtList)) { courseInfoMap[d.courseInfoParentParentId] = courseInfoChildtList; $.each(courseInfoChildtList, function (key, v) { h += "<option value='" + v.courseInfoId + "'>" + v.courseInfoName + "</option>"; }); } selectMap[d.courseInfoParentParentId] = h + "</select>"; return h; } else { return selectMap[d.courseInfoParentParentId]; } } 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.courseInfoParentId])) { var h = htm; var courseInfoChildtChildList = childCourseList(d.courseInfoParentId,3,d.sourceType); if (!$.isEmpty(courseInfoChildtChildList)) { zjMap[d.courseInfoParentId] = courseInfoChildtChildList; $.each(courseInfoChildtChildList, 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: 'addTypeText', title: '来源', align: "center" }, /*{ field: 'orgIdText', title: '上传院校', align: "center" },*/ { field: 'resourcesInfoType', title: '资源类型', align: "center", templet: function (d) {//(1视频 2PPT 3PDF) var text = d.resourcesInfoType == 1 ? "视频" : d.resourcesInfoType == 2 ? "PPT" : d.resourcesInfoType == 3 ? "PDF" : d.resourcesInfoType == 4 ? "链接" : d.resourcesInfoType == 5 ? "图文" : '-'; return '<span class="textType">' + text + '</span>'; } }, { field: 'userId', title: '操作', align: "center", field: 'right', templet: function (d) { var htm = '<a class="layui-table-link" lay-event="edit">编辑</a>'; // htm += '<a class="layui-table-link" lay-event="previewPage" >' + (d.resourcesInfoType == 3 ? '下载' : '预览') + '</a>'; if(d.resourcesInfoType == 4){ htm += '<a class="layui-table-link" href="'+d.resourcesInfoContent+'" target="_blank" >预览</a>'; }else { htm += '<a class="layui-table-link" lay-event="previewPage" >预览</a>'; } htm += '<a class="layui-table-link" lay-event="del">删除</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); }else if(obj.event === "look"){ var url = data.resourcesInfoContent; var name = data.resourcesInfoName; Lib.downloadFile2(url,name); } }) } function deleteInfo(ids) { layer.confirm('是否确定删除数据?', function (index) { var ret = Common.postAjax("/jlw/resourcesInfo/deleteCourseSystemOAndUniversities.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); } }); } //选择归属课程 并且根据选择的课程查询章节 resourcesQuestionIdsIsNotNull:查询题目不为空的章节 form.on('select(select_courseInfoIds)', function (obj) { let sourceType = $("select[name='courseInfoId_0']").find('option:selected').attr("status"); let courseInfoType = 2;//courseInfoType(2 章节,3 节) Lib.getCourseInfo($("select[name='courseInfoId_1']"), obj.value,courseInfoType,sourceType, 1); $("select[name='courseInfoId_2']").empty(); layui.form.render(); }); //选择归属课程 并且根据选择的课程查询章节 form.on('select(select_courseInfoIds_Node)', function (obj) { let sourceType = $("select[name='courseInfoId_0']").find('option:selected').attr("status"); let courseInfoType = 3;//courseInfoType(2 章节,3 节) Lib.getCourseInfo($("select[name='courseInfoId_2']"), obj.value,courseInfoType,sourceType); }); //选择归属课程 并且根据选择的课程查询章节 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)) { if(!$.isEmpty(courseInfoMap[obj.value])){ $.each(courseInfoMap[obj.value], function (key, v) { this_.append("<option value='" + v.courseInfoId + "'>" + v.courseInfoName + "</option>"); }); }else { let sourceType = $(obj.elem).find("option:selected").attr("status"); var courseInfoChildtList = childCourseList(obj.value,2,sourceType); if (!$.isEmpty(courseInfoChildtList)) { courseInfoMap[obj.value] = courseInfoChildtList; $.each(courseInfoChildtList, function (key, v) { this_.append("<option value='" + v.courseInfoId + "'>" + v.courseInfoName + "</option>"); }); } selectMap[obj.value] = this_.html(); } } 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)) { if(!$.isEmpty(zjMap[obj.value])){ $.each(zjMap[obj.value], function (key, v) { this_.append("<option value='" + v.courseInfoId + "'>" + v.courseInfoName + "</option>"); }); }else{ let sourceType = $(obj.elem).parents("td").prevAll('td').find("option:selected").attr("status");; var courseInfoChildtChildList = childCourseList(obj.value,3,sourceType); if (!$.isEmpty(courseInfoChildtChildList)) { zjMap[obj.value] = courseInfoChildtChildList; $.each(courseInfoChildtChildList, function (key, v) { this_.append("<option value='" + v.courseInfoId + "'>" + v.courseInfoName + "</option>"); }); } selectMap[obj.value] = this_.html(); } } form.render(); }); //选择归属课程 并且根据选择的课程查询章节 form.on('select(select_courseInfoIds_2)', function (obj) { var r = $(this).parents("td").find("input").context.innerHTML.replace(/ /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); });