/** * Created by atao on 2017/5/16. */ $(function () { var fun = { //职能查询按钮 queryFunJob:function(){ //fun.initTable(); $('#jobFuncTable').bootstrapTable('refresh', {silent: false}); }, /**初始化表格.*/ initTable: function () { $('#jobFuncTable').bootstrapTable({ striped:true,//表格显示条纹 pagination: true, //启动分页 pageNumber:1, //当前第几页 pageSize: 10, //每页显示的记录数 pageList: [10,15,20], //记录数可选列表 sidePagination: 'server',//表示服务端分页 queryParamsType: 'limit', method:'POST',//请求方法 paginationPreText: '<', paginationNextText: '>', uniqueId: 'id', ajax:jobFuncAjax, columns: [ // {field: 'id', title: 'ID', visible: false, align: 'left'}, {field: 'state', title: '',width: '5%', align: 'left',formatter:fun.checkedFormat}, {field: 'id', title: '职能ID',align: 'left',cellStyle:fun.formatTableUnit,formatter:commonObj.replacenull}, {field: 'jobfuncName', title: '职能名称', width: '15%', align: 'left',cellStyle:fun.formatTableUnit,formatter:commonObj.replacenull}, {field: 'sysCodeName', title: '系统名称', width: '10%', align: 'left',formatter:fun.getSysCodeName,cellStyle:fun.formatTableUnit}, {field: 'createDate', title: '创建时间', width: '15%', align: 'left', formatter: commonObj.timeFormatter,cellStyle:fun.formatTableUnit}, {field: 'createOpName', title: '创建人', width: '20%', align: 'left',cellStyle:fun.formatTableUnit,formatter:commonObj.replacenull}, {field: 'jobfuncDesc', title: '职能描述', width: '15%', align: 'left',cellStyle:fun.formatTableUnit,formatter:commonObj.replacenull}, {field: 'oper', title: '操作', width: '15%', align: 'left', formatter: fun.operFormat,cellStyle:fun.formatTableUnit} ], onClickRow: function (row,$element) { var id=row.id; $('#jobFuncTable input:radio[data-value="'+id+'"]').attr("checked","checked"); }, formatTableUnit:function(value,row,index){ return { css: { "white-space":"nowrap" } } }, formatNoMatches: function () { return '暂无信息,可使用 “添加职能” 按钮为系统添加职能信息'; } }); }, operFormat:function(value, row, index) { var operStr ='修改'+ '删除'; return operStr; }, checkedFormat:function(value,row,index) { var checkStr=""; return checkStr; }, //转换系统名称 getSysCodeName:function(value,row,index){ var sysName = sessionStorage.getItem("sysName"); return sysName; }, //修改职能 modifyjobfunc: function (jobfunId) { var row = $('#jobFuncTable').bootstrapTable('getRowByUniqueId', jobfunId); $('#role_alert_error').text(' '); $('#jobfunId').val(jobfunId); $('#jobfunName').val(row.jobfuncName); $('#jobfuncDesc').val(row.jobfuncDesc); $('#jobfunOper').val('update'); var sysName = sessionStorage.getItem("sysName"); $("#sysName").val(sysName); $('#alert_over').append($('#role_alert_con')); $('#role_alert_title').html('修改职能'); fun.show_alert(); }, //删除职能 deleteJobfunc: function (jobfunID) { var sysCode = sessionStorage.getItem("sysCode"); var req = { sysCode: sysCode, ids: [jobfunID] } var ajaxOpt = { method: 'post', url: dataUrl.util.deleteJobFun, data: JSON.stringify(req), success: function (res) { console.log('delete:' + res) if ('8888' === res.code) { $('#jobFuncTable').bootstrapTable('refresh', {silent: true}); } } } sysAjax(ajaxOpt); }, addJobfunc: function () { var sysName = sessionStorage.getItem("sysName"); $("#sysName").val(sysName); $('.popMask').remove(); $('#role_alert_error').text(' '); $('#jobfunName').val(''); $('#jobfuncDesc').val(''); $('#jobfunOper').val('add'); $('#alert_over').append($('#role_alert_con')); $('#role_alert_title').html('添加职能'); $('#alert_over,#role_alert_con').show(); }, //初始化Tree 选中的节点 initTreeChecked: function (jobfuncid) { $("#jobfunc_tree_id").val(jobfuncid); var sysCode = sessionStorage.getItem("sysCode"); var req = { sysCode: sysCode, jobFunId: jobfuncid } var ajaxOpts = { url: dataUrl.util.queryResByJobFunId, method: 'post', data: JSON.stringify(req), success: function (res) { if ('8888' === res.code) { Tree.updateNodesForChecked(res.data); $('#alert_over').append($("#jobfunc_tree_view")); $("#alert_over,#jobfunc_tree_view").show(); } } } sysAjax(ajaxOpts); }, //分配菜单 operAuth: function () { $('.popMask').remove(); var jobFuncId = $('#jobFuncTable input:radio:checked').attr("data-value"); var sysCode = sessionStorage.getItem("sysCode"); var resIds = Tree.getCheckedNodesId(true); var realResIds = []; for (var i = 0; i < resIds.length; i++) { if (0 === resIds[i] || -1 === resIds[i]) { continue } realResIds.push(resIds[i]); } var req = { sysCode: sysCode, jobfuncId: jobFuncId, resIds: realResIds } var ajaxOpts = { url: dataUrl.util.saveOrUpdateJobFunWithResIds, method: 'post', data: JSON.stringify(req), success: function (res) { if ('8888' === res.code) { swal({title:"提示",text:"保存成功",type:"success",width:350,timer:3000,allowOutsideClick:true}); //清空所有所选的节点 Tree.checkAllNodes(false); $('#jobFuncTable').bootstrapTable('refresh', {silent: true}); $("#alert_over,#jobfunc_tree_view").hide(); }else{ swal({title:"提示",text:"保存失败",type:"error",width:350,timer:3000,allowOutsideClick:true}); return false; } } } sysAjax(ajaxOpts); }, //保存角色信息 saveJobFunRole:function(){ var sysCode = sessionStorage.getItem("sysCode"); //1.获取职能id var jobId = $('#jobFuncTable input:radio:checked').attr("data-value"); var orgId=""; //2.获取选择的角色ids var sysRoleIdList = new Array(); //查找右侧所有选择的角色id var li =$('#addroler-content').find('li'); $.each(li, function(index,row) { var roleId=$(this).attr('data-value'); orgId=$(this).attr('data-orgId'); if(roleId != null){ sysRoleIdList[index] = roleId; } }); if(sysRoleIdList != null && sysRoleIdList.length >1){ swal({title:"提示",text:"最多只能选择一个角色",type:"error",width:350,timer:3000,allowOutsideClick:true}); return false; } sysRoleIdList var req={ "jobFunId": jobId, "sysCode":sysCode, "orgId":orgId, "roleIds":sysRoleIdList, "dataState":1 }; sysAjax({ method: 'POST', url: dataUrl.util.batchSaveRoleJobFunByJobFunId(), data: JSON.stringify(req), dataType:'json', async:false, success: function (res) { if(res != null && res.code == "8888"){ var data=res.data; if(data){ $('#departmentrolerAlert,#alertroler_over').hide(); $('#jobFuncTable').bootstrapTable('refresh', {silent: true}); swal({title:"提示",text:"保存成功",type:"success",width:350,timer:3000,allowOutsideClick:true}); }else{ swal({title:"提示",text:"保存失败,请重新添加",type:"error",width:350,timer:3000,allowOutsideClick:true}); return false; } }else{ swal({title:"提示",text:res.msg,type:"error",width:350,timer:3000,allowOutsideClick:true}); return false; } } }); }, //角色弹窗 departmentrolerAlert:function () { //查询所有角色信息 fun.departmentrolerAlert(); }, //分配角色 departmentrolerAlert:function () { //1.判断是否选中 var isChecked= $('#jobFuncTable input:radio:checked').attr("checked"); var jobId=""; if(!isChecked){ //sweetAlert("提示", "请选择一行用户记录", "warning"); swal({title:"提示",text:"请选择一行用户记录",type:"warning",width:350,timer:3000,allowOutsideClick:true}); return false; }else{ jobId = $('#jobFuncTable input:radio:checked').attr("data-value"); } //2.获取所有角色信息 var sysCodeS = sessionStorage.getItem("sysCode"); sysAjax({ method: 'POST', url: dataUrl.util.queryRoleBysysCode(), data:{"sysCode":sysCodeS}, contentType: 'application/x-www-form-urlencoded', dataType:'json', async:false, success: function (res) { if(res != null && res.data != null){ var data=res.data; $('#roler-conten').empty(); //左侧 var roles = ''; $.each(data, function(index,row) { roles +='
  • '+row.roleName+'
  • '; }); $('#roler-conten').html(roles); $('#alertroler_over,#departmentrolerAlert').show(); } } }); //通过职能ID查询当前职能对应的角色 var req= { funcJobId: jobId, sysCode:sysCodeS }; sysAjax({ method: 'post', url: dataUrl.util.getRolesByJobFuncId(), data: JSON.stringify(req), dataType:'json', async:false, success: function (res) { if(res != null && res.data !=null){ var data = res.data; $('#addroler-content').empty(); //右侧 var roles = ''; $.each(data, function(index,row) { roles +='
  • '+row.roleName+'
  • '; }); $('#addroler-content').html(roles); }else{ swal({title:"错误提示",text:res.msg,type:"error",width:350,timer:3000,allowOutsideClick:true}); return false; } } }); }, //show show_alert: function () { $('#alert_over').append($('#role_alert_con')); $('#alert_over,#role_alert_con').show(); }, //clsoe close_alert: function () { $('#alert_over,#role_alert_con').hide(); $('#jobfunc_tree_view').hide(); Tree.checkAllNodes(false) }, //角色关闭 roler_close_alert_org:function () { // $('#example-getting-started').multiselect('select', ''); $('#departmentrolerAlert,#alertroler_over').hide(); }, //cancel alert_cancel: function () { $('#alert_over,#role_alert_con').hide(); }, alert_ok: function () { //验证参数 fun.validateRole(); var errmsg = $('#role_alert_error').text(); if (errmsg != '') { return false; } fun.alert_cancel(); var oper = $('#jobfunOper').val(); var jobfunId = $("#jobfunId").val(); var jobfuncName = $("#jobfunName").val(); var jobfuncDesc = $("#jobfuncDesc").val(); var sysCode = sessionStorage.getItem("sysCode"); var req = {} var url; req.jobfuncName = jobfuncName; req.jobfuncDesc = jobfuncDesc; req.empid = StrUtil.isEmpty(fn.getUserId()) ? '-1' : fn.getUserId(); req.sysCode = sysCode; if (oper === 'update') { req.id = jobfunId; url = dataUrl.util.updateJobFun } else if (oper === 'add') { url = dataUrl.util.saveJobFun; } var ajaxOpt = { method: 'POST', url: url, data: JSON.stringify(req), success: function (res) { if (res.code === '8888') { if (oper === 'add') { $('#jobFuncTable').bootstrapTable('refresh', {silent: true}); popAlert.close(); } else { $('#jobFuncTable').bootstrapTable('refresh', {silent: true}); } } } } fun.close_alert(); sysAjax(ajaxOpt) }, validateRole: function () { var roleVal = $('#jobfunName').val(); var errorIfo = $('#role_alert_error'); var roleDescription = $('#jobfuncDesc').val(); var regular = /^([^\`\+\~\!\#\$\%\^\&\*\(\)\|\}\{\=\"\'\!\¥\……\(\)\——]*[\+\~\!\#\$\%\^\&\*\(\)\|\}\{\=\"\'\`\!\?\:\<\>\•\“\”\;\‘\‘\〈\ 〉\¥\……\(\)\——\{\}\【\】\\\/\;\:\?\《\》\。\,\、\[\]\,]+.*)$/; if (StrUtil.isEmpty(roleVal)) { errorIfo.text('请填写职能名称'); $('#jobfunName').focus() return false; } else if (roleVal.indexOf(' ') >= 0 || regular.test(roleVal)) { errorIfo.text('职能名不能包含空格或者标点符号'); $('#jobfuncDesc').focus() return false; } else { errorIfo.text(''); } //角色描述 if (StrUtil.isEmpty(roleDescription)) { errorIfo.text('请输入职能描述'); $('#jobfuncDesc').focus(); return false; } else { errorIfo.text(''); } }, //根据职能ID 判断该职能是否还挂在某个角色下 isHavsRole: function (jobfuncId) { var sysCode = sessionStorage.getItem("sysCode"); var row = $('#jobFuncTable').bootstrapTable('getRowByUniqueId', jobfuncId); var req = { sysCode: sysCode, jobFunId: jobfuncId } var ajaxOps = { method: 'post', url: dataUrl.util.getRoleByJobFuncId, data: JSON.stringify(req), contentType: 'application/json; charset=utf-8', dataType: 'json', success: function (res) { if (res.code === '8888') { var content; if (jQuery.isEmptyObject(res.data)) { swal({ title: '提示', text: '确定要删除?', type: 'warning', showCancelButton: true, allowOutsideClick:false, width:350, confirmButtonText: '确定', cancelButtonText: '关闭', }).then(function(isConfirm) { if (isConfirm === true) { fun.deleteJobfunc(jobfuncId); $('#jobFuncTable').bootstrapTable('refresh', {silent: true}); } else if (isConfirm === false) { swal.close() } }); } else { swal({ title: '提示', text: '职能['+row.jobfuncName+']已经被占用 确定要强制删除吗?', type: 'warning', showCancelButton: true, allowOutsideClick:false, width:350, confirmButtonText: '确定', cancelButtonText: '关闭', }).then(function(isConfirm) { if (isConfirm === true) { fun.deleteJobfunc(jobfuncId); $('#jobFuncTable').bootstrapTable('refresh', {silent: true}); } else if (isConfirm === false) { swal.close() } }); } } } } sysAjax(ajaxOps); } } var Tree = { //初始化树 initTree: function () { $.fn.zTree.init($("#jobfunc_tree"), Tree.setting, Tree.getTreeData()); //展开全部 var treeObj = $.fn.zTree.getZTreeObj("jobfunc_tree"); treeObj.expandAll(true); Tree.removeNode(-2); }, setting: { callback: { onCheck:zTreeOnCheck }, view: { selectedMulti: false }, check: { enable: true, chkStyle: "checkbox" }, data: { simpleData: { enable: true, idKey: "id", pIdKey: "pId", rootPId: -1 } }, edit: { enable: false } }, //添加节点 addNodes: function (newNodes) { var treeObj = $.fn.zTree.getZTreeObj("jobfunc_tree"); newNodes = treeObj.addNodes(null, newNodes); }, //勾选 或 取消勾选 全部节点 checkAllNodes: function (checked) { var treeObj = $.fn.zTree.getZTreeObj("jobfunc_tree"); treeObj.checkAllNodes(checked); }, //更新节点 updateNodes: function (treeNode, checkTypeFlag) { var treeObj = $.fn.zTree.getZTreeObj("jobfunc_tree"); treeObj.updateNode(treeNode); }, //根据id集合更新节点变为选中 updateNodesForChecked: function (ids) { var nodes = Tree.getNodesByIds(ids); for (var i = 0; i < ids.length; i++) { var node = nodes[i]; if(node != null || node != undefined){ node.checked = true; Tree.updateNodes(node); } } }, //删除节点 removeNode: function (id) { var treeObj = $.fn.zTree.getZTreeObj("jobfunc_tree"); var treeNode = Tree.getNodeById(id); treeObj.removeNode(treeNode); }, //通过id获取某个节点 getNodeById: function (id) { var treeObj = $.fn.zTree.getZTreeObj("jobfunc_tree"); var node = treeObj.getNodeByParam("id", id, null); return node; }, //通过id集合获取节点集合 getNodesByIds: function (ids) { var nodes = []; for (var i = 0; i < ids.length; i++) { nodes[i] = Tree.getNodeById(ids[i]); } return nodes; }, //获取输入框被勾选 或 未勾选的节点ID集合 getCheckedNodesId: function (checked) { var ids = []; var treeObj = $.fn.zTree.getZTreeObj("jobfunc_tree"); var nodes = treeObj.getCheckedNodes(true); for (var i = 0; i < nodes.length; i++) { ids[i] = nodes[i].id } return ids; }, //获取选中的节点集合 getSelectedNodes: function () { var treeObj = $.fn.zTree.getZTreeObj("jobfunc_tree"); var nodes = treeObj.getSelectedNodes(); return nodes; }, //获取树 getTreeData: function () { var sysCode = sessionStorage.getItem("sysCode"); var zNodes = []; var req= { baseRequest:{ pageNum:1, pageSize:0 }, sysCode:sysCode, dataStatus:1 }; sysAjax({ method: 'POST', //url: dataUrl.util.getResTreeBySysCode(), url: dataUrl.util.queryAllResTree(), data: JSON.stringify(req), dataType: 'json', async: false, success: function (res) { if (isError(res)) { return false; } $.each(res.data, function(index,rows) { var data={id:rows.id,pId:rows.parentResId,name:rows.resName,resType:rows.resType}; zNodes[index] =data; }); //zNodes = res.data; } }); //增加一个公告根节点 zNodes[zNodes.length] = {name: '全选', id: -1, checked: false}; return zNodes; } } //初始执行 init(); function init() { //查询职能 documentBindFunc.on('click','#select_job_btn',function(){ fun.queryFunJob(); }); //close弹窗 documentBindFunc.on('click','.close_alert', function () { fun.close_alert(); }); //cancel弹窗 documentBindFunc.on('click','#alert_cancel', function () { fun.close_alert(); }); //alert_ok弹窗 documentBindFunc.on('click', '#alert_ok',function () { fun.alert_ok(); }); //关闭菜单弹窗 documentBindFunc.on('click','.departmentAlertcancel_btn',function () { fun.close_alert(); }); //关闭角色弹窗 documentBindFunc.on('click','.roler_close_alert_org',function () { fun.roler_close_alert_org(); }); documentBindFunc.on('click','.departmentrolercancel_btn',function () { fun.roler_close_alert_org(); }); //保存角色 documentBindFunc.on('click','#departmentrolerAlert_btn',function () { fun.saveJobFunRole(); }); //分配角色内容 $('#roler-conten li').live('click',function () { $(this).addClass('roler-mes-active').siblings('li').removeClass('roler-mes-active') }); $('#addroler-content li').live('click',function () { $(this).addClass('roler-mes-active').siblings('li').removeClass('roler-mes-active') }); //添加按钮 documentBindFunc.on('click','#add_opt',function () { var _that = $(this); $.each($('#roler-conten li'),function () { if($(this).hasClass('roler-mes-active')){ var text = $(this).text(); var id = $(this).attr('data-value'); var orgId=$(this).attr('data-orgId'); //判断右侧是否已经存在了 var getli = $("#addroler-content").find('li'); if(getli != null && getli.length > 0){ var existId= false; $.each(getli, function(index,rows) { var getId = $(this).attr('data-value'); if(getId == id){ existId =true; } }); if(!existId){ $(this).remove(); var roles ='
  • '+text+'
  • '; $('#addroler-content').append(roles); }else{ $(this).remove(); } }else{ $(this).remove(); var roles ='
  • '+text+'
  • '; $('#addroler-content').append(roles); } } }) }); //添加所有 documentBindFunc.on('click','#addall_opt',function () { $.each($('#roler-conten li'),function () { var text = $(this).text(); var id = $(this).attr('data-value'); var orgId=$(this).attr('data-orgId'); //判断右侧是否已经存在了 var getli = $("#addroler-content").find('li'); if(getli != null && getli.length > 0){ var existId= false; $.each(getli, function(index,rows) { var getId = $(this).attr('data-value'); if(getId == id){ existId =true; } }); if(!existId){ $(this).remove(); var roles ='
  • '+text+'
  • '; $('#addroler-content').append(roles); }else{ $(this).remove(); } }else{ $(this).remove(); var roles ='
  • '+text+'
  • '; $('#addroler-content').append(roles); } }); }); //删除所有 documentBindFunc.on('click','#removeall_opt',function () { $.each($('#addroler-content li'),function () { var text = $(this).text(); var id = $(this).attr('data-value'); var orgId=$(this).attr('data-orgId'); //判断左侧 var getli = $("#roler-conten").find('li'); if(getli != null && getli.length > 0){ var existId= false; $.each(getli,function(index,row){ var getId = $(this).attr('data-value'); if(getId == id){ existId =true; } }); if(!existId){ $(this).remove(); var roles ='
  • '+text+'
  • '; $('#roler-conten').append(roles); }else{ $(this).remove(); } }else{ $(this).remove(); var roles ='
  • '+text+'
  • '; $('#roler-conten').append(roles); } }) }); //删除 documentBindFunc.on('click','#remove_opt',function () { var _that = $(this); $.each($('#addroler-content li'),function () { if($(this).hasClass('roler-mes-active')){ var text = $(this).text(); var id = $(this).attr('data-value'); var orgId=$(this).attr('data-orgId'); //判断左侧 var getli = $("#roler-conten").find('li'); if(getli != null && getli.length > 0){ var existId= false; $.each(getli,function(index,row){ var getId = $(this).attr('data-value'); if(getId == id){ existId =true; } }); if(!existId){ $(this).remove(); var roles ='
  • '+text+'
  • '; $('#roler-conten').append(roles); }else{ $(this).remove(); } }else{ $(this).remove(); var roles ='
  • '+text+'
  • '; $('#roler-conten').append(roles); } } }) }); //初始化tree Tree.initTree(); //删除职能 documentBindFunc.on('click', '.jobfunc_delete', function () { fun.isHavsRole($(this).attr('data-id')); }); //修改职能 documentBindFunc.on('click', '.jobfunc_modify', function () { fun.modifyjobfunc($(this).attr('data-id')); }); //添加职能 documentBindFunc.on('click', '.jobfunc_alert_addJobFunc', function () { fun.addJobfunc(); }); //分配职能确认 documentBindFunc.on('click', '#jobfunc_tree_btn', function () { fun.operAuth(); }); //分配菜单弹窗 documentBindFunc.on('click', '#jobfunc_auth', function () { //1.判断是否选中 var isChecked= $('#jobFuncTable input:radio:checked').attr("checked"); var userId=""; if(!isChecked){ swal({title:"提示",text:"请选择一行用户记录",type:"warning",width:350,timer:3000,allowOutsideClick:true}); return false; }else{ var jobId = $('#jobFuncTable input:radio:checked').attr("data-value"); //表单中分配权限弹窗 fun.initTreeChecked(jobId); } }); //分配角色 documentBindFunc.on('click','#add_roler',function () { fun.departmentrolerAlert(); }); //初始化table fun.initTable(); } //错误处理 函数 function isError(res) { if (res == null || res == undefined) { return true; } if (res.code != '8888') { var errorPop = new Pop({ header: '错误提示', content: $('' + res.msg + ''), buttons: [{ type: 'popOk', text: '确定' }] }); return true; } else { return false; } } function jobFuncAjax(params) { var pageNum = (params.data.offset/params.data.limit)+1; //设置请求参数 var id= $('#select_page_job_id').val(); var jobName=$('#select_page_job_name').val(); var sysCode = sessionStorage.getItem("sysCode"); if(sysCode == null || sysCode ==''){ sysCode = sysComm.sysCode; } if(isNaN(id)){ id= 0; } if(jobName == null || jobName ==''){ jobName = ''; } var req = { baseRequest: { pageNum: pageNum, pageSize:params.data.limit }, sysCode: sysCode, jobfuncId: id, jobfuncName: jobName }; var ajaxOps = { method: 'post', url: dataUrl.util.getQueryJobFunc(), data: JSON.stringify(req), contentType: 'application/json; charset=utf-8', dataType: 'json', success: function (res) { if (res.code === '8888') { params.success(res.data); } } }; sysAjax(ajaxOps); } }); /** * 判断自动选中公共服务节点 * @param {Object} event * @param {Object} treeId * @param {Object} treeNode */ function zTreeOnCheck (event, treeId, treeNode) { //1.如果为叶子节点则选中同级,resType=3(公共服务) if(!treeNode.isParent){ var pId = treeNode.pId; var treeObj = $.fn.zTree.getZTreeObj("jobfunc_tree"); var node = treeObj.getNodeByParam("id", pId, null); if(node != null){ //获取所有公共服务节点 $.each(node.children, function(index,rows) { if(rows != null){ if(rows.resType ==3){ var treeObj = $.fn.zTree.getZTreeObj("jobfunc_tree"); var node = treeObj.getNodeByParam("id", rows.id, null); if(node != null || node != undefined){ node.checked = true; var treeObj = $.fn.zTree.getZTreeObj("jobfunc_tree"); treeObj.updateNode(node); } } } }); } } }