/** * 角色管理页面 * @author weidy * @date 2020-10-19 */ layui.define(['layer','element','form','table','dynamicCondition','upload','transfer'],function(exports){ var webUtil = $webUtil; var Class = function(){ this.MODELNAME = "platform/securityManage/VciSmRole"; this.moduleKey = "SmRole"; this.backPath = configData.compatibility?path:configData.frameworkPath; this.url = { controller:'roleController/', dataGrid:'gridRole', addSave:'add', editSave:'edit', deleteUrl:'delete', enableData: 'enable', disableData: 'disable', downloadImportTemplate:'downloadImportTemplate', importData : 'importData', exportData : 'exportData', getObjectByOid:'getObjectByOid', referUser:'framework/userQueryController/refDataGrid',//人员树的参照路径 associatedUsers:'roleUserController/associatedUsers' // 关联用户 }; this.getContent=function(){ var that = this; var html = ""; html = [ '
', '
', '
', that.getToolbarHtml(), '
', '', '
', '
', '
', '
', '', '
', '
', '
', '
' ].join(""); return html; }; this.getToolbarHtml =function(){ var that = this; var html = [ '
', '', '', '', '', '
' ].join(""); return html; }; this.createSearchHtml = function () { var that = this; webUtil.bindDefultButtonLisenter(that, that.id); webUtil.createSearchHtml({id:"角色编号",name:"角色名称"} ,$("[layui-filter='toolbar_" + that.id + "']"), "table_" + that.id); }; this.init = function(){ var that = this; webUtil.copyConfig(that,that.moduleKey); that.initMainTable(); that.createSearchHtml(); that.advancedQuery(); that.initSourceTable('111'); }; this.initMainTable = function (parentFieldName) { var that = this; var table = layui.table; that.checkColumns(); var tableWidth = $("#border_" + that.id).width()-225; var options = { elem: '#table_' + that.id, id: 'table_' + that.id, backPath:that.backPath, url: that.url.controller + that.url.dataGrid, page: { limit: 20, page: 1 }, width:tableWidth, // selectMode:table.selectMode.muti, cols: [that.columns], done:function(res,cur,total){ if(!that.fristMainLoad ){ table.on('tool(' + that.id + ')',function(obj){ var data = obj.data;//当前选择行的数据 var layEvent = obj.event;//点的是什么按钮 if(layEvent == 'DEL'){ that.DEL(data); } if(layEvent == 'ENABLE'){ that.ENABLE(data); } if(layEvent == 'DISABLE'){ that.DISABLE(data); } if(layEvent == 'AWARDUSER'){ that.AWARDUSER(data); } }); }else{ if(total>0) { table.selectRecord('table_' + that.id, {index:0}); } } that.fristMainLoad = true; }, rowClick:function(thisTableFilter,record){ table.reload("table_source_" + that.id, { extraParams: { "conditionMap['roleOid']": record.oid } }); } }; if(parentFieldName){ options.treeConfig = { treepid:parentFieldName, treeid:'id', showField:'name' }; } table.render(options); // document.getElementById("toolbar_column_" + that.id).innerHTML = [ // '删除', // '启用', // '停用', // '关联用户', // ].join(''); }; this.checkColumns = function(){ var that = this; var table = layui.table; if(that.columns==null || that.columns.length==0){ that.columns = [table.getIndexColumn(),table.getCheckColumn(), { title: '编号', field: 'id', width: 150 }, { title: '名称', field: 'name', width: 150 },{ title: '角色类型', field: 'roleClassifyText', width: 80 },{ title: '角色管理范围', field: 'roleControlAreaText', width: 100 },{ title: '描述', field: 'description', width: 150 },{ title: '状态', field: 'lcStatusText', width: 60 },{ field:'options', title:'操作', width: 230, fixed:'right', templet:function (d){ var btns = [ '删除', '关联用户']; if(d.lcStatus =='Enabled'){ btns.push('停用'); }else{ btns.push('启用'); } return btns.join(''); } //toolbar: '#toolbar_column_' + that.id }]; } }; this.initSourceTable = function (oid) { var table = layui.table; var that = this; that.checkSourceColumns(that); table.render({ elem: '#table_source_' + that.id, id: 'table_source_' + that.id, url: configData.frameworkPath + 'userQueryController/gridUserByRoleOid', page: { limit: 20, page: 1 }, method:'post', cols: [that.sourceColumns], where:{ "conditionMap['roleOid']": oid } }); }; this.checkSourceColumns = function (that) { var table = layui.table; if(that.sourceColumns==null || that.sourceColumns.length==0) { that.sourceColumns = [table.getIndexColumn(), { field: 'id', title: '用户名', width: 180 },{ field: 'name', title: '姓名', width: 130 },{ field: 'pkDepartmentName', title: '部门', width: 200 }]; } }; this.getFormItems = function(onlyShow) { var that = this; var table = layui.table; return [ { field: 'id', title: '编号', required: true, type: 'text', readOnly:onlyShow } , { field: 'name', title: '名称', required: true, type: 'text', readOnly:onlyShow }, { field: 'roleClassify', title: '角色类型', type: 'combox', comboxKey: 'roleclassify', readOnly:onlyShow } , { field: 'roleControlArea', title: '角色管理范围', type: 'combox', defaultValue:'role_bs', comboxKey: 'roleControlArea', readOnly:onlyShow } , { field: 'description', title: '描述', type: 'text', readOnly:onlyShow } ]; }; this.ADD = function () { var that = this; that.addOrEdit(true); }; this.EDIT = function(){ var that = this; var oid = webUtil.getOidFromGrid("table_" + that.id,true,true); if(!oid){ return false; } that.addOrEdit(false,oid); }; this.addOrEdit = function(add,oid) { var that = this; var form = layui.form; var filter ="form_" + that.id; var addSaveIndex =webUtil.dialog({ title:add?'添加角色管理':'修改角色管理', btn:['保存','取消'], skin:'layui-layer-lan', content:'
', area:['900px','400px'], resizing:function(layero){ form.doResize(filter); }, success:function(layero) { form.addItems(filter,that.getFormItems(false), function () { if(!add){ form.load(filter,{ backPath:that.backPath, url:that.url.controller + that.url.getObjectByOid, method:'get', params:{ oid:oid } }); }else{ var defaultValues = {}; //可以手动在此处添加默认值 form.setValues(defaultValues,filter); } }, {}, {defaultColumnOneRow: 2}); }, yes:function(layero){ if(form.validata(filter)){ var values = form.getValues(filter,true); var url = that.url.controller + (add?that.url.addSave:that.url.editSave); webUtil.ajax(add?'post':'put',url,values,function(result){ if(result.success){ webUtil.showMsgFromResult(result,(add ? "添加成功" : "修改成功")); layer.close(addSaveIndex); that.refresh(); }else{ webUtil.showErrorMsg(result.msg); } },function(xhr,err){ webUtil.showErrorMsg("请求服务出现了错误,可能服务器未开启"); },that.backPath); } }, btn2:function(layero){ layer.close(addSaveIndex); } }); }; this.DEL = function(data){ var that = this; webUtil.showConfirmMsg("是否删除这条数据?如果被引用将不能被删除!",function () { webUtil.deleteRequest(that.url.controller + that.url.deleteUrl,{oid:data.oid,ts:data.ts},function(result){ if(result.success){ webUtil.showMsgFromResult(result,"删除成功"); that.refresh(); }else{ webUtil.showErrorMsg(result.msg); } },function(xhr,err){ webUtil.showErrorMsg("请求服务出现了错误,可能服务器未开启"); },that.backPath); }); }; this.refresh = function () { var that = this; var that = this; layui.table.reload("table_" + that.id); }; this.DISABLE = function (data) { var that = this; if(data.lcStatus == 'Disabled') { $webUtil.showMsg($webUtil.starORstop(data.lcStatus)) return false; } that.disableOrEnable(false,data); }; this.ENABLE = function (data) { var that = this; if(data.lcStatus == 'Enabled') { $webUtil.showMsg($webUtil.starORstop(data.lcStatus)) return false; } that.disableOrEnable(true,data); }; this.disableOrEnable = function (enable,data) { var that = this; ts = webUtil.getOidFromGrid("table_" + that.id,false,false,'ts'); webUtil.post(that.url.controller + (enable?that.url.enableData:that.url.disableData),{ oid:data.oid, ts:data.ts },function(result){ if(result.success){ webUtil.showMsgFromResult(result,(enable?'启用成功':'停用成功')); that.refresh(); }else{ webUtil.showErrorMsg(result.msg); } },function(xhr,err){ webUtil.showErrorMsg("请求服务出现了错误,可能服务器未开启"); },that.backPath); }; this.EXPORT = function () { var that = this; var iframeId = MD5("export" +webUtil.getSystemVar(webUtil.systemValueKey.currentDateTimeSSS) +webUtil.getSystemVar(webUtil.systemValueKey.userOid)); var data = {}; data[TOKEN_KEY] = webUtil.getToken(); data['downloadUUID'] = iframeId; webUtil.fileDownloadPost(that.backPath + that.url.controller + that.url.exportData,data); }; this.IMPORT = function () { var that = this; var filter =that.id + "_upload"; var form = layui.form; var uploadIndex = webUtil.dialog({ title:'导入角色管理', btn:['下载导入模板','取消'], content:'
', area: ['300px', '300px'], resize:false, success:function(layero){ //如果导入有其他操作,在第二个参数中添加 form.addItems(filter,[],function(){ $("#form_" + filter).append('    '); var upload = layui.upload; //执行实例 var uploadInst = upload.render({ elem: '#' + that.id + '_upload_form_file' //绑定元素 ,accept:'file' ,acceptMime:'file/*' ,exts:'xls|xlsx' ,url: that.backPath + that.url.controller + that.url.importData ,done: function(result){ if(result.success){ layer.close(uploadIndex); webUtil.showMsgFromResult(result,"导入成功"); that.refresh(); }else{ webUtil.showErrorMsg(result.msg); } } ,error: function(){ //请求异常回调 webUtil.showErrorMsg("上传异常"); } }); },{},{ defaultColumnOneRow:1 }); }, yes:function(){ var iframeId = MD5("downloadImportTemplate" +webUtil.getSystemVar(webUtil.systemValueKey.currentDateTimeSSS) +webUtil.getSystemVar(webUtil.systemValueKey.userOid)); webUtil.fileDownload(that.backPath + that.url.controller + that.url.downloadImportTemplate+ "?" + TOKEN_KEY + "=" + webUtil.getToken() + "&downloadUUID=" + iframeId ); } }); }; this.AWARDUSER = function(data){ var that = this; that.transferOpen(data.oid); }; this.transferOpen = function(oid) { var that = this; var addSaveIndex = layer.open({ title:'关联用户', btn:['保存','取消'], skin:'layui-layer-lan', content:'
', area:['780px','600px'], closeBtn: 2, shade: true, shadeClose: true, resize: false, success:function(layero) { var submitData = { "conditionMap['roleOid']": oid } layui.transfer.render({ elem: '#inkperson_'+that.id ,url: 'userQueryController/listUserUnInRoleOids' ,where:{roleOid:oid} ,backPath:configData.frameworkPath ,selectUrl: 'userQueryController/gridUserByRoleOid' ,selectWhere:submitData ,selectMethod:'post' ,selectBackPath:configData.frameworkPath ,width: 300 ,height: 450 ,id:'linkuser_'+that.id//索引 ,parseData: function(res){ return { "value": res.oid //数据值 ,"title": res.id + " " + res.name//数据标题 } } ,title: ['未选用户', '已选用户'] ,showSearch: true }) }, yes:function(layero){ var getData = layui.transfer.getData('linkuser_'+that.id); var values = { roleOid:oid } var usersOid = []; $.each(getData,function(k,v) { usersOid.push(v.value) }) values.usersOid = usersOid.join(','); var url = that.url.associatedUsers; webUtil.ajax('post',url,values,function(result){ if(result.success){ webUtil.showMsgFromResult(result,"关联成功!"); layer.close(addSaveIndex); that.refresh(); }else{ webUtil.showErrorMsg(result.msg); } },function(xhr,err){ webUtil.showErrorMsg("请求服务出现了错误,可能服务器未开启"); },that.backPath); }, btn2:function(layero){ layer.close(addSaveIndex); } }); }; this.ADVQUERY = function(){//高级查询 var that = this; that.serinorQueryInstance.open(); }; this.advancedQuery = function(){ var that = this; var dynamicCondition = layui.dynamicCondition; var smUserTable = JSON.parse(JSON.stringify(that.columns)); $('[layui-filter="toolbar_' + that.id + '"]').append('
'); that.serinorQueryInstance = dynamicCondition.create({ fields : smUserTable//查询字段 ,tableId:"table_"+that.id//需要查询的表格 ,type:"complex" //type:"simple"/"complex" 查询的方法 暂时写死为 complex // ,conditionTextId:"#toolbar"+that.id//高级查询 按钮所在的div // ,popupShowQueryBtn: true//显示高级查询按钮 ,queryCallBack:function(requestData){//查询之后的callback //console.log(JSON.stringify(requestData)) } }); }; this.refresh = function () { var that = this; layui.table.reload("table_" + that.id); }; }; var cs = new Class(); exports(cs.MODELNAME,cs); });