//打开授权模态框 function givePower(id) { //通过uniqueId 获取行数据 var rows = $('#parameterTab').bootstrapTable('getRowByUniqueId', id); $("#roleNameTree").val(rows.roleName); //展示角色模态框 $('#sysRoleTreeModal').modal('show');//settingss // ajax获取后台数据 $.ajax({ url: '/internal/resource/tree/list', async: true, dataType: 'json', success: function (result) { zNodes = result; // 生成树结构 treeList(zNodes); }, error: function () { toastr.error("查询角色树节点失败"); } }); //创建树 function treeList(roleResourceList) { var setting = { check: { enable: true,//复选框 chkDisabledInherit: true, checkboxType: {"Y": "p", "N": "s"} //控制父选框和子选框的同步 }, view: { selectedMulti: false }, data: { key: { name: "name", //节点显示的值 }, simpleData: { enable: true,//如果为true,可以直接把从数据库中得到的List集合自动转换为Array格式。而不必转换为json传递 idKey: "id",//节点的id pIdKey: "parentId",//节点的父节点id rootPId: "" } } }; var treeNodes = roleResourceList; // 初始化树 //参数1:容器对象 2:tree的setting设置 3:接收后台返回值的数组 $.fn.zTree.init($("#busTree"), setting, treeNodes); //动态加载zTree的选中值 $.ajax({ type: "post", url: '/internal/roleResource/load', data: {"id": id}, dataType: 'json', success: function (result) { if (result) { var treeObj = $.fn.zTree.getZTreeObj("busTree");//获取Tree对象 for (var i = 0; i < result.length; i++) { var value = result[i].resourceId; var node = treeObj.getNodeByParam("id", value);//根据ID找到该节点 treeObj.checkNode(node);//根据该节点选中 } } } }); } //调用方法 获取roleId doSaveRole(id); }
//授权操作
function doSaveRole(id) {
$("#roleId").val(id);
}
//授权 模态框的事件 $("#submitTree").click(function () { var resourceIds = onCheck(); $.ajax({ type: "post", url: '/internal/roleResource/add', data: {"roleId": $("#roleId").val(), "resourceIds": resourceIds}, dataType: 'json', success: function (result) { if (result.success) { toastr.success(result.module); $('#sysRoleTreeModal').modal('hide'); $("#parameterTab").bootstrapTable("refresh"); } else { toastr.error("授权失败"); } } }); });
//获取被选中的id 值 function onCheck() { //树 var treeObj = $.fn.zTree.getZTreeObj("busTree"); //选中的框的树的节点 var nodes = treeObj.getCheckedNodes(true); var v = ""; for (var i = 0; i < nodes.length; i++) { v += nodes[i].id + ","; } return v; }
<!--授权模态框--> <div class="modal fade" id="sysRoleTreeModal" tabindex="-1" role="dialog" aria-labelledby="myItemModalLabel"> <div class="modal-dialog" > <div class="modal-content"> <!-- 头部 标题 --> <div class="modal-header"> <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span> </button> <h4 class="modal-title">增加角色</h4> </div> <!--body 组成--> <div class="modal-body"> <!-- 表单--> <form id="sysRoleTreeForm"> <div class="input-group"> <!--编号id--> <input type="hidden" name="id" id="roleId"/> </div> <div class="input-group"> <span class="input-group-addon" >角色名:</span> <input type="text" readonly="readonly" class="form-control" name="roleName" id="roleNameTree" /> </div> <br/> <!--树权限--> <div class="treecontentpane"> <ul id="busTree" class="ztree" > </ul> </div> </form> </div> <!--尾部--> <div class="modal-footer"> <button id="submitTree" type="button" class="btn btn-primary">保存</button> <button type="button" class="btn btn-default" data-dismiss="modal">关闭</button> </div> </div> </div> </div>
//效果图
