layui.define(['zlContext', 'table', 'layer', 'zlConfig', 'tree'], function (exports) { var $ = layui.$ , zlContext = layui.zlContext , table = layui.table , layer = layui.layer , zlConfig = layui.zlConfig , roletree , zt = "" , table_data = new Array() , checkdatas = new Array() , selListIds = new Array() , tableIns , tableSelIns , selectionType; layui.event('WM_USERDEF', zlConfig.global.WM_USERDEF.WM_DRAW, null, function (WParam) { if (WParam && $(WParam.elem).attr('class') && $(WParam.elem).attr('class').indexOf('zlPopSourceExt') >= 0) { zlPopSourceExt.render($(WParam.elem), $(WParam.elem).value, $(WParam.elem).attr('text')); } }); zlPopSourceExt = { render: function ($elem, value, text) { var showvalue = (value == undefined ? ($elem.attr('value') == undefined ? "" : $elem.attr('value')) : value); if ($elem.attr('loaded') && ($elem.attr('value') == undefined ? "" : $elem.attr('value')) == showvalue) { return; } text = text ? text: '' ; var defaultsetting = { multselect: true , formtitle: "选择树节点" , ischeckleaf: false , id: 'RWID' , sourcedata: undefined , edittype: 'edit' , check: { enable: false, autoCheckTrigger: true, chkboxType: { "Y": "", "N": "" }, chkStyle: "checkbox", } , view: { showLine: true } , async: { enable: true, type: 'get', dataFilter: function ajaxDataFilter(treeId, parentNode, responseData) { if (responseData[zlConfig.global.result.statusName] == 'OK') { var data = responseData[zlConfig.global.result.dataName]; for (var i = 0; i < data.length; i++) { if (data[i].EXPANDPROPERTY == "org") { data[i].icon = layui.cache['contentPath'] + "/static/image/org.png"; } else { data[i].icon = layui.cache['contentPath'] + "/static/image/role.png"; } } return data; } else { zlContext.errorMsg(responseData[zlConfig.global.result.msgName]); } return responseData; } } , data: { key: { name: "OBJNAME" } , simpleData: { enable: true , idKey: "RWID" , pIdKey: "SYS_PARENTID" , rootPid: "" } } , callback: { onAsyncSuccess: function (event, treeId, treeNode, msg) { //zlPopSourceExt.setTrreCheck(treeId, $elem.attr('name'), treesetting); } , onClick: function (event, treeId, treeNode) { zlPopSourceExt.reloadTable(newoptions); } } ,tabs: [ { name: '角色', url: '/kdayun/manager/coreroleauth/queryRole', method: 'get', entryname: 'ROLEID', tableUrl: '/kdayun/admin/coreuser/queryusersbydeptrole', tbmethod: 'post' }, { name: '机构部门', url: '/kdayun/manager/coreroleauth/queryOrgddata', method: 'get', tableUrl: '/kdayun/admin/coreuser/queryusersbydeptrole', tbmethod: 'post' } ] , cols: [[{ type: 'numbers', fixed: 'left', title: '#' }, { type: 'radio', fixed: 'left' }, { field: 'OBJNAME', title: '名称', width: 140 }, { field: 'OBJCODE', title: '编号', width: 140 } ]] , page: false , limit: 20 , tableismultiple: false , max: '' , readonly: false , verify:'' , selectcallback: function (treedata, data, norow, options, $this) { if (data == undefined) { return; } if (data.length == 0) { $('input[name="' + options.inputname + '"]').val(data[0][options.name]); $('input[name="' + options.inputhiddename + '"]').val(data[0][options.id]); options.setvalue = data[0][options.id]; //$('input[name="' + options.inputtreehiddename + '"]').val(treedata[0][options.id]); } else { var id = "" , name = ""; for (var i = 0; i < data.length; i++) { id = id + "," + data[i][options.id]; name = name + "," + data[i][options.name]; } id = id.substr(1, id.length); name = name.substr(1, name.length); $('input[name="' + options.inputname + '"]').val(name); //$('input[name="' + options.inputtreehiddename + '"]').val(treedata[0][options.id]); $('input[name="' + options.inputhiddename + '"]').val(id); options.setvalue = id; } var noselectid = ""; for (var b = 0; b < norow.length; b++) { noselectid = noselectid + "," + norow[b][options.id]; } $('input[name="' + options.inputhiddenameno + '"]').val(noselectid); } } , name = $elem.attr('name') , inputname = 'input' + name , divname = 'div' + name , inputhiddename = name , inputtreehiddename = 'tree' + name , inputhiddenameno = 'no' + name , $parent = $elem.parent() , options = ($elem.attr('settings') != "" ? eval('(' + $elem.attr('settings') + ')') : {}) , optionstabs = options.tabs , url = optionstabs[0].url , placeholder = options.placeholder == undefined ? "" : options.placeholder , newoptions , addspanid = name + 'addspan' , delspanid = name + 'delspan' , tempvalue = options.setvalue ? options.setvalue : value , html = [ , '
' , ' ' , '
'] , parenthtml = [ , '' , '' , '']; if (url == undefined) { zlContext.errorMsg('未找到数据源链接!') return; } $elem.attr('loaded', 1); $elem.empty(); $('input[name="' + inputhiddename + '"]').remove(); $('input[name="' + inputhiddenameno + '"]').remove(); $elem.append(html.join('')); $parent.append(parenthtml.join('')); newoptions = $.extend({}, defaultsetting, options); if (newoptions.edittype == 'edit') { $('div[name="' + divname + '"]').append(' ' + ' ') } newoptions.async.enable = true; newoptions.async.url = url; newoptions.async.type = optionstabs[0].method == undefined ? newoptions.async.type : optionstabs[0].method; newoptions.async.otherParam = optionstabs[0].params == undefined ? "{}" : optionstabs[0].params; newoptions.inputhiddename = inputhiddename; newoptions.inputname = inputname; newoptions.elemname = name; newoptions.inputhiddenameno = inputhiddenameno; if (zlContext.isEmpty(text) && !zlContext.isEmpty(value)) { if (!zlContext.isEmpty(url)) { var valuelist = new Array() , tempvalue = value; newoptions.async.otherParam = (newoptions.async.otherParam == undefined ? {} : newoptions.async.otherParam) newoptions.async.otherParam[newoptions.id] = tempvalue; $.ajax({ url: url, type: newoptions.async.type, async: false, data: newoptions.async.otherParam, dataType: 'json', success: function (result) { var sourcedata = result.obj; for (var i = 0; i < sourcedata.length; i++) { if (tempvalue.indexOf(sourcedata[i][newoptions.id]) > -1) { objname = objname + "," + sourcedata[i][newoptions.data.key.name] } } objname = objname.substr(1, objname.length); $('input[name="' + inputname + '"]').val(objname); }, error: function (XMLHttpRequest, textStatus, errorThrown) { }, complete: function (XMLHttpRequest, textStatus) { } }); } else { for (var i = 0; i < newoptions.sourcedata.length; i++) { if (tempvalue.indexOf((newoptions.sourcedata)[i][newoptions.id] > -1)) { objname = objname + "," + (newoptions.sourcedata)[i][newoptions.data.key.name] } } objname = objname.substr(1, objname.length); $('input[name="' + inputname + '"]').val(objname); } } newoptions.async.otherParam = eval('(' + (options.params) + ')'); if (newoptions.edittype == 'edit') { zlPopSourceExt.initspans(newoptions, addspanid, delspanid, divname); } } , initspans: function (options, addspanid, delspanid, divname) { var $input = $('input[name="' + options.inputname + '"]'); $('#' + delspanid).on('click', function () { $('.layui-input').val(""); }); $('#' + delspanid).hide(); $input.on('mouseenter', function () { if ($(this).val() != "") { $('#' + delspanid).show(); } }); $input.on('mouseleave', function () { $('#' + delspanid).hide(); }); $('#' + delspanid).on('mouseenter', function () { $('#' + delspanid).show(); }); $('#' + delspanid).on('mouseleave', function () { $('#' + delspanid).hide(); }); $('#' + addspanid).on('click', function () { var $this = $(this), //获取弹出框拼接内容 html = zlPopSourceExt.concatenationStr(options); layer.open({ type: 1, closeBtn: 1, id: 'zlPopsourceExtLayer', title: options.formtitle == undefined ? "资源信息" : options.formtitle, area: ['1124px', '570px'], content: html.join(''), btn: ['确定', '取消'], success: function (index) { var layercontentH = index.find(".layui-layer-content").height(); var seacherbox = $("#seacher-box").height()+parseFloat($("#seacher-box").css('margin-top')); var tabtitleH = $("#tab-title").height(); var poptreeboxH = $("#poptree-box"); poptreeboxH.height(layercontentH - tabtitleH - seacherbox - 28).css('box-sizing','border-box'); tbFileresH = layercontentH - 15; tbSelectedH = layercontentH - 64 checkdatas = []; selListIds = []; zt = ""; roletree = $.fn.zTree.init($("#" + options.name + "poptree"), options, null); zlPopSourceExt.tabsFun(options); zlPopSourceExt.loadTable(options, tbFileresH); zlPopSourceExt.loadSelTable(options, tbSelectedH); zlPopSourceExt.seacherFun(); zlPopSourceExt.keyvalueFun(); if ($('#tbFileres').next('div').find(' .layui-table-header th[data-field="1"] input[type="checkbox"]').length > 0) { selectionType = 'checkbox' } else { selectionType = 'radio' } table.on(selectionType + '(tbDatagrid)', function (obj) { var bbb = table.checkStatus('tbFileres').data if (obj.checked == true) { if (selectionType == 'radio') { checkdatas = []; checkdatas.push(obj.data); } else { if (obj.type == 'one') { checkdatas.push(obj.data); } else { for (var i = 0; i < table_data.length; i++) { checkdatas.push(table_data[i]); } } checkdatas = checkdatas.concat(checkdatas); } } else { if (obj.type == 'one') { for (var i = 0; i < checkdatas.length; i++) { if (checkdatas[i][options.id] == obj.data[options.id]) { checkdatas.remove(i); } } for (var m = 0; m < selListIds.length; m++) { if (selListIds[m][options.id] == obj.data[options.id]) { // 如果选中数据为空则已选择列表中选中的数据清空 selListIds.remove(m); } } } else { for (var j = 0; j < table_data.length; j++) { for (var i = 0; i < checkdatas.length; i++) { if (checkdatas[i][options.id] == table_data[j][options.id]) { checkdatas.remove(i); } } // 如果选中数据为空则已选择列表中选中的数据清空 for (var i = 0; i < selListIds.length; i++) { if (selListIds[i][options.id] == table_data[j][options.id]) { selListIds.remove(i); } } } } } checkdatas = zlPopSourceExt.diff(checkdatas, options); zlPopSourceExt.reloadSelTable(checkdatas, options); }); table.on(selectionType + '(tbSelDatagrid)', function (obj) { if (obj.checked == true) { zt = "1" } selListIds = table.checkStatus('tbSelected').data }); // 点击移除事件 $("#remove-btn").on('click', function () { zlPopSourceExt.removeFun(checkdatas, options); // 如果选中数据为空则已选择列表中选中的数据清空 selListIds = []; }); } , resizing: function (index) { var layercontentH = index.find(".layui-layer-content").height(); var seacherbox = $("#seacher-box").height(); var tabtitleH = $("#tab-title").height(); var poptreeboxH = $("#poptree-box"); poptreeboxH.height(layercontentH - tabtitleH - seacherbox - 50); tbFileresH = layercontentH - 20; tbSelectedH = layercontentH - 64 tableIns.reload({ height: tbFileresH }); tableSelIns.reload({ height: tbSelectedH }); } , yes: function (index) { var rows = layui.table.cache['tbSelected'] , norow = [] , treedata = roletree.getSelectedNodes(); if (rows.length == 0) { zlContext.errorMsg(options.errmsg == undefined ? "请选择记录" : options.errmsg); return; } else if (options.max != "" && rows.length > options.max) { zlContext.errorMsg("选择记录大于" + options.max + "条"); return; } layer.close(index); if (options.selectcallback != undefined) { options.selectcallback(treedata, rows, norow, options, $this); } else { return rows; } } }); }); } // 默认树和表头的设置 , initialization: function (options, treeUrl, treeMethod,treeparams) { var setting = { multselect: true, formtitle: "选择树节点", ischeckleaf: false, id: 'RWID', sourcedata: undefined, edittype: 'edit', check: { enable: false, autoCheckTrigger: true, chkboxType: { "Y": "", "N": "" }, chkStyle: "checkbox", } , view: { showLine: true } , async: { enable: true, type: treeMethod == undefined ? 'get' : treeMethod, url: treeUrl == undefined ? 'get' : treeUrl, otherParam: treeparams?treeparams:[], dataFilter: function ajaxDataFilter(treeId, parentNode, responseData) { if (responseData[zlConfig.global.result.statusName] == 'OK') { var data = responseData[zlConfig.global.result.dataName]; for (var i = 0; i < data.length; i++) { if (data[i].EXPANDPROPERTY == "org") { data[i].icon = layui.cache['contentPath'] + "/static/image/org.png"; } else { data[i].icon = layui.cache['contentPath'] + "/static/image/role.png"; } } return data; } else { zlContext.errorMsg(responseData[zlConfig.global.result.msgName]); } return responseData; } } , data: { key: { name: "OBJNAME" } , simpleData: { enable: true , idKey: "RWID" , pIdKey: "SYS_PARENTID" , rootPid: "" } } , callback: { onAsyncSuccess: function (event, treeId, treeNode, msg) { //zlPopSourceExt.setTrreCheck(treeId, $elem.attr('name'), treesetting); }, onClick: function (event, treeId, treeNode) { zlPopSourceExt.reloadTable(options); } } , cols: [[{ type: 'numbers', fixed: 'left', title: '#' }, { type: 'checkbox', fixed: 'left' }, { field: 'OBJNAME', title: '名称', width: 140 }, { field: 'OBJCODE', title: '编号', width: 120 } ]] , page: false , limit: 10 , containermultiple: false } return setting } //拼接弹出框页面的内容 , concatenationStr: function (options) { // 判断是否配置了tabs if (options.tabs.length == 0) { zlContext.errorMsg("请配置tabs页签参数!"); return; } var objlist = "", tabsbox = new Array(); for (var b = 0; b < options.tabs.length; b++) { treeUrl = options.tabs[b].url; treeMethod = (options.tabs[b].method == undefined ? 'get' : options.tabs[b].method); tableUrl = (options.tabs[b].tableUrl == undefined ? '' : options.tabs[b].tableUrl); tableMethod = (options.tabs[b].tbmethod == undefined ? '' : options.tabs[b].tbmethod); entryname = (options.tabs[b].entryname == undefined ? '' : options.tabs[b].entryname); tableParams = (options.tabs[b].tbparams == undefined ? '' : options.tabs[b].tbparams); treeparams = (options.tabs[b].params == undefined ? '' : options.tabs[b].params) if (b == 0) { objlist = '
  • ' + options.tabs[b].name + '
  • ' } else { objlist = '
  • ' + options.tabs[b].name + '
  • ' } tabsbox.push(objlist); } html = ['
    ' , '
    ' , '
    ' , '
    ' , ' ' , ' ' , '
    ' , '
    ' , '
      ' + tabsbox + '
    ' , '
    ' , '
    ' , '
    ' , '
    ' , '
    ' , '
    ' , '
    ' , '
    ' , '
    ' , '
    ' , '
    ' , '
    ' , '
    已选择
    ' , '
    移除
    ' , '
    ' , '
    ' , '
    ' , '
    ' , '
    ' , '
    ' , '
    ']; return html; } //数据表格渲染 , loadTable: function (options, tbFileresH) { var tbUrl = $(".layui-tab-title li.layui-this").attr("lay-tableurl"), tbmethod = $(".layui-tab-title li.layui-this").attr("lay-tbmethod"), params = $(".layui-tab-title li.layui-this").attr("lay-params"); tableIns = table.render({ elem: '#tbFileres' , cellMinWidth: 75 , height: tbFileresH , response: zlConfig.global.gridResponse , page: options.page , cols: options.cols , method: tbmethod , limit: options.limit , where: params , done: function (res, curr, count) { // 设置换页勾选之前的 table_data = res.obj; $('.layui-none').width($('.layui-table-header table').width() + 'px'); $('.empty-data').width($('.layui-table-body').width() + 'px'); zlPopSourceExt.setcheck(res, options, checkdatas); } }); } //选中数据表格渲染 , loadSelTable: function (options, tbSelectedH) { tableSelIns = table.render({ elem: '#tbSelected' , cellMinWidth: 75 , height: tbSelectedH , cols: options.checkcols == undefined ? options.cols : options.checkcols , done: function (res, curr, count) { $('.layui-none').width($('.layui-table-header table').width() + 'px'); $('.empty-data').width($('.layui-table-body').width() + 'px'); } }); } //数据列表要重新载入 , reloadTable: function (options, tbFileresH) { var tabsLi = $(".layui-tab-title li.layui-this"), sNodes = roletree.getSelectedNodes(), paramname = tabsLi.attr('entryname') == undefined ? 'ORGID' : tabsLi.attr('entryname'), tabsUrl = tabsLi.attr("lay-tableurl"), params = tabsLi.attr("lay-params") == '' ? {} : JSON.parse(tabsLi.attr("lay-params")); if (sNodes.length > 0) { var paramname1 = sNodes[0].RWID; params[paramname] = paramname1; } else { var paramname1 = ""; params = ""; } tableIns.reload( { url: params == '' ? '' : tabsUrl , page: { curr: 1 } , where: params , response: zlConfig.global.gridResponse , done: function (res, curr, count) { table_data = res.obj; zlPopSourceExt.setcheck(res, options, checkdatas); zlPopSourceExt.checkAll('tbSelected'); zlPopSourceExt.setReadonly(options.readonly); } }); } //选中数据表格重新载入 , reloadSelTable: function (selectedData, options, tbSelectedH) { if (selectedData.length > 0) { for (var i = 0; i < selectedData.length; i++) { if (selectedData[i].LAY_CHECKED != undefined) { delete selectedData[i].LAY_CHECKED } } } tableSelIns.reload({ data: selectedData , done: function (res, curr, count) { // 已选择不需要重新勾选 // zlPopSourceExt.selectSetcheck(res, options); // //设置全选checkbox的选中状态 // zlPopSourceExt.checkAll('tbSelected'); zlPopSourceExt.setReadonly(options.readonly); } }); } //页签切换树重新请求 , tabsFun: function (options) { $(".layui-tab-title li").on('click', function () { selListIds = table.checkStatus('tbSelected').data; var treeUrl = $(this).attr("lay-url"), treeMethod = $(this).attr("lay-method"), treeparams = $(this).attr("lay-treeparams"), //创建zTree组件 setting = zlPopSourceExt.initialization(options, treeUrl, treeMethod,treeparams); roletree = $.fn.zTree.init($("#" + options.name + "poptree"), setting, null); zlPopSourceExt.reloadTable(options); }) } // 搜索按钮事件 , seacherFun: function () { $('#seacher').on('click', function () { var text = $('#keyvalue').val(); zlPopSourceExt.searchNode(text); }); } // 搜索输入框回车事件 , keyvalueFun: function () { $("#keyvalue").keydown(function () { var e = event || window.event; if (e.keyCode == 13) { var text = $('#keyvalue').val(); zlPopSourceExt.searchNode(text); } }); } //搜索节点事件 , searchNode: function (value) { var keyType = "OBJNAME"; if (value === "") { var allNode = roletree.transformToArray(roletree.getNodes()); roletree.showNodes(allNode); return; } nodeList = roletree.getNodesByParamFuzzy(keyType, value); nodeList = roletree.transformToArray(nodeList); zlPopSourceExt.updateNodes(true, value, keyType); } //搜索完更新树内容 , updateNodes: function (highlight, value, keyType) { var allNode = roletree.transformToArray(roletree.getNodes()); roletree.hideNodes(allNode); for (var n = 0; n < nodeList.length; n++) { zlPopSourceExt.findParent(roletree, nodeList[n]); } roletree.showNodes(nodeList); nodeList = roletree.getNodesByParamFuzzy(keyType, value); for (var i = 0; i < nodeList.length; i++) { roletree.updateNode(nodeList[i]); } } // 查找父级节点 , findParent: function (zTree, node) { zTree.expandNode(node, true, false, false); var pNode = node.getParentNode(); if (pNode != null) { nodeList.push(pNode); zlPopSourceExt.findParent(zTree, pNode); } } // 已选列表移除事件 , removeFun: function (checkdatas, options) { // 获取移除选中的数据 var checkdata = table.checkStatus('tbSelected').data; if (checkdata.length == 0) { zlContext.errorMsg(options.errmsg == undefined ? "请选择记录" : options.errmsg); return } //添加去掉勾选状态 zt = "1" table.deleteCheckRows('tbSelected'); for (var i = 0; i < checkdatas.length; i++) { for (var j = 0; j < checkdata.length; j++) { if (checkdatas[i][options.id] == checkdata[j][options.id]) { checkdatas.splice(i, 1) } } } zlPopSourceExt.reloadTable(options); } //数据表格进来设置已选中的数据 , setcheck: function (res, options, recorddata) { if (res.state != 'OK') { return; } if (options.setvalue != undefined) { var ids = options.setvalue } else { var ids = $('input[name="' + options.inputhiddenameno + '"]').val() } res = res.obj; if (ids != undefined) { for (var i = 0; i < res.length; i++) { if (ids.indexOf(res[i][options.id]) > -1 && zt == "") { recorddata.push(res[i]); res[i]['LAY_CHECKED'] = 'true'; var index = res[i]['LAY_TABLE_INDEX']; var el = $('#tbFileres'); zlPopSourceExt.checkStyle(el, index); } if (recorddata.length > 0) { for (var n = 0; n < recorddata.length; n++) { if (res[i][options.id] == recorddata[n][options.id]) { res[i]['LAY_CHECKED'] = 'true'; var index = res[i]['LAY_TABLE_INDEX']; var el = $('#tbFileres'); zlPopSourceExt.checkStyle(el, index); } } } } } layui.form.render(); //设置全选checkbox的选中状态 zlPopSourceExt.checkAll('tbFileres'); recorddata = zlPopSourceExt.diff(recorddata, options); zlPopSourceExt.reloadSelTable(recorddata, options); } //已选中的数据打勾选状态 , selectSetcheck: function (res, options) { if (res == undefined || res.count == 0) { return; } if (options.setvalue != undefined) { var ids = options.setvalue } else { var ids = $('input[name="' + options.inputhiddename + '"]').val() } res = res.data if (ids != undefined) { for (var i = 0; i < res.length; i++) { if (ids.indexOf(res[i][options.id]) > -1 && zt == "") { res[i]['LAY_CHECKED'] = 'true'; var index = res[i]['LAY_TABLE_INDEX']; var el = $('#tbSelected'); zlPopSourceExt.checkStyle(el, index); } if (selListIds.length > 0) { for (var n = 0; n < selListIds.length; n++) { if (res[i][options.id] == selListIds[n][options.id]) { res[i]['LAY_CHECKED'] = 'true'; var index = res[i]['LAY_TABLE_INDEX']; var el = $('#tbSelected'); zlPopSourceExt.checkStyle(el, index); } } } } } layui.form.render(); //设置全选checkbox的选中状态 zlPopSourceExt.checkAll('tbSelected'); } //设置选中样式 , checkStyle: function (el, index) { if (selectionType == "radio") { el.next('div').find('.layui-table-fixed-l tr[data-index=' + index + '] input[type="radio"]').prop('checked', true); el.next('div').find('.layui-table-fixed-l tr[data-index=' + index + '] .layui-form-radio').addClass('layui-form-radioed'); el.next('div').find('.layui-table-fixed-l tr[data-index=' + index + '] .layui-anim').addClass('layui-anim-scaleSpring'); } else { el.next('div').find('.layui-table-fixed-l tr[data-index=' + index + '] input[type="checkbox"]').prop('checked', true); el.next('div').find('.layui-table-fixed-l tr[data-index=' + index + '] input[type="checkbox"]').next().addClass('layui-form-checked'); } } //判断全选状态 , checkAll: function (obj) { var checkStatus = table.checkStatus(obj); if (checkStatus.isAll) { $('#' + obj).next('div').find(' .layui-table-header th[data-field="1"] input[type="checkbox"]').prop('checked', true); $('#' + obj).next('div').find('.layui-table-header th[data-field="1"] input[type="checkbox"]').next().addClass('layui-form-checked'); layui.form.render(); } } //设置只读的时候不可编辑 , setReadonly: function(readonlystate){ if(readonlystate){ if(selectionType == "checkbox"){ $(".layui-table-header").find("input[name = 'layTableCheckbox'][lay-filter='layTableAllChoose']").each(function () { $(this).attr("disabled", 'disabled'); }); $(".layui-table-body.layui-table-main").find("input[name='layTableCheckbox']").each(function () { $(this).attr("disabled", 'disabled'); }); $(".layui-table-fixed.layui-table-fixed-l").find(".layui-table-body").find("input[name='layTableCheckbox']").each(function () { $(this).attr("disabled", 'disabled'); }); }else{ $(".layui-table-body.layui-table-main").find("input[type='radio']").each(function () { $(this).attr("disabled", 'disabled'); }); $(".layui-table-fixed.layui-table-fixed-l").find(".layui-table-body").find("input[type='radio']").each(function () { $(this).attr("disabled", 'disabled'); }); } layui.form.render(); } } //数组去重 , diff: function (arr, options) { if (arr.length == 0) { var res = arr; } else { var res = [arr[0]]; for (var i = 1; i < arr.length; i++) { var repeat = false; for (var j = 0; j < res.length; j++) { if (arr[i][options.id] == res[j][options.id]) { repeat = true; break; } } if (!repeat) { res.push(arr[i]); } } } return res; } // 只弹出框选择,不赋值 , onlyshow: function (options, requestEvent) { options.inputhiddenameno = 'no'+options.name; var html = zlPopSourceExt.concatenationStr(options), treeUrl = options.tabs[0].url, treeMethod = options.tabs[0].method, treeparams = options.tabs[0].params, //创建zTree\和table组件 setting = zlPopSourceExt.initialization(options, treeUrl, treeMethod,treeparams) options = $.extend({}, setting, options); layer.open({ type: 1, closeBtn: 1, id: 'zlPopsourceExtMessLayer', title: options.formtitle == undefined ? "资源信息" : options.formtitle, area: ['1124px', '570px'], content: html.join(''), btn: ['确定', '取消'], success: function (index) { $("#zlpopSourceext-box").append(''); var layercontentH = index.find(".layui-layer-content").height(); var seacherbox = $("#seacher-box").height(); var tabtitleH = $("#tab-title").height(); var poptreeboxH = $("#poptree-box"); poptreeboxH.height(layercontentH - tabtitleH - seacherbox - 53); tbFileresH = layercontentH - 20; tbSelectedH = layercontentH - 69 checkdatas = []; selListIds = []; zt = ""; roletree = $.fn.zTree.init($("#" + options.name + "poptree"), options, null); zlPopSourceExt.tabsFun(options); zlPopSourceExt.loadTable(options, tbFileresH); zlPopSourceExt.loadSelTable(options, tbSelectedH); zlPopSourceExt.seacherFun(); zlPopSourceExt.keyvalueFun(); if ($('#tbFileres').next('div').find(' .layui-table-header th[data-field="1"] input[type="checkbox"]').length > 0) { selectionType = 'checkbox' } else { selectionType = 'radio' } table.on(selectionType + '(tbDatagrid)', function (obj) { if (obj.checked == true) { if (selectionType == 'radio') { checkdatas = []; checkdatas.push(obj.data); } else { if (obj.type == 'one') { checkdatas.push(obj.data); } else { for (var i = 0; i < table_data.length; i++) { checkdatas.push(table_data[i]); } } checkdatas = checkdatas.concat(checkdatas); } } else { if (obj.type == 'one') { for (var i = 0; i < checkdatas.length; i++) { if (checkdatas[i][options.id] == obj.data[options.id]) { checkdatas.remove(i); } } for (var m = 0; m < selListIds.length; m++) { if (selListIds[m][options.id] == obj.data[options.id]) { // 如果选中数据为空则已选择列表中选中的数据清空 selListIds.remove(m); } } } else { for (var j = 0; j < table_data.length; j++) { for (var i = 0; i < checkdatas.length; i++) { if (checkdatas[i][options.id] == table_data[j][options.id]) { checkdatas.remove(i); } } // 如果选中数据为空则已选择列表中选中的数据清空 for (var i = 0; i < selListIds.length; i++) { if (selListIds[i][options.id] == table_data[j][options.id]) { selListIds.remove(i); } } } } } checkdatas = zlPopSourceExt.diff(checkdatas, options); if (selectionType != 'radio') { //zlPopSourceExt.reloadTable(options); } zlPopSourceExt.reloadSelTable(checkdatas, options); }); table.on(selectionType + '(tbSelDatagrid)', function (obj) { if (obj.checked == true) { zt = "1" } selListIds = table.checkStatus('tbSelected').data }); // 点击移除事件 $("#remove-btn").on('click', function () { zlPopSourceExt.removeFun(checkdatas, options); // 如果选中数据为空则已选择列表中选中的数据清空 selListIds = []; }); } , resizing: function (index) { var layercontentH = index.find(".layui-layer-content").height(); var seacherbox = $("#seacher-box").height(); var tabtitleH = $("#tab-title").height(); var poptreeboxH = $("#poptree-box"); poptreeboxH.height(layercontentH - tabtitleH - seacherbox - 53); tbFileresH = layercontentH - 20; tbSelectedH = layercontentH - 69 tableIns.reload({ height: tbFileresH }); tableSelIns.reload({ height: tbSelectedH }); } , yes: function (index) { var rows = layui.table.cache['tbSelected']; if (rows.length == 0) { zlContext.errorMsg(options.errmsg == undefined ? "请选择记录" : options.errmsg); return; } requestEvent(rows) layer.close(index); } , end: function (index) { $("#zlpopSourceext-box").find('input[name="'+options.inputhiddenameno+'"]').remove(); } }); } } //删除数组自定义函数 , Array.prototype.remove = function (dx) { if (isNaN(dx) || dx > this.length) { return false; } for (var i = 0, n = 0; i < this.length; i++) { if (this[i] != this[dx]) { this[n++] = this[i] } } this.length -= 1 } exports('zlPopSourceExt', zlPopSourceExt); });