You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

225 lines
5.5 KiB
JavaScript

5 years ago
//角色树操作
var zNodes;
var menu = {
setting: {
view:{
fontCss : {"font-family": "微软雅黑","color":"blue"}
},
data:{
simpleData: {
enable: true,
idKey: "id",
pIdKey: "parentId",
},
},
callback: { //回调函数
onClick: zTreeOnClick }
},
loadMenuTree:function(){
var key = $("#key").val();
$.ajax({
type: "post",
url:path+"/menuPower/getRolePowerTree",
data:{key:key},
dataType:"json",
success:function(data){
$.fn.zTree.init($("#ztree"), menu.setting, data);
zTree = $.fn.zTree.getZTreeObj("ztree");
if(key == ''){
var nodes = zTree.getNodes();
zTree.expandNode(nodes[0], true);
}else{
zTree.expandAll(true);
}
/*
for (var i = 0; i < nodes.length; i++) { //设置节点展开
zTree.expandNode(nodes[i], true, false, true);
}*/
zNodes = data;
$('#loadingModal').modal('hide');
}
})
}
};
//加载角色树
$().ready(function(data){
menu.loadMenuTree();
//fuzzySearch('ztree','#key',null,true,menu.setting,zNodes); //初始化模糊搜索方法
});
function reloadTree() {
$('#loadingModal').modal('show');
menu.loadMenuTree();
}
//角色树点击事件
var sysZnodes;
function zTreeOnClick(event, treeId, treeNode) {
$("#block").empty();
$("#sysFlag").val("");
//系统id
var sysFlag = treeNode.sysFlag;
//角色id
var roleId = treeNode.selfId;
if(roleId != null){
$.ajax({
type: "post",
url:path+"/menuPower/getMenuBySysIdAndRoleIdPowerTree",
data:{sysFlag:sysFlag,roleId:roleId},
dataType:"json",
success:function(data){
var menuData = [];
var methodData = [];
if(data != null && data != ''){
for(var i = 0; i < data.length; i++) {
if(data[i].method == '' || data[i].method == null){
//菜单
menuData.push(data[i]);
}else{
//方法
methodData.push(data[i]);
}
}
if(null != menuData){
sysZnodes = menuData;
//初始化菜单树
initSysMenuTree();
//选中节点的menuId赋值到隐藏域
var menus = '';
for(var i = 0; i < menuData.length; i++) {
if(menuData[i].checked == 'true'){
menus += menuData[i].menuId + ",";
}
}
$("#menus").val(menus);
}
$("#roleId").val(roleId);
$("#sysFlag").val(sysFlag);
//赋值方法区隐藏复选框
if(null != methodData && methodData.length > 0){
var html = '';
var parentIds = [];
for(var i = 0; i < methodData.length; i++) {
parentIds.push(methodData[i].parentId);
}
//父id去重
parentIds = array_remove_repeat(parentIds);
for(var i = 0; i < parentIds.length; i++) {
var methods = '';
var method = [];
for(var j = 0; j < methodData.length; j++) {
if(methodData[j].parentId == parentIds[i]){
method.push(methodData[j]);
}
//选中节点的方法demenuId赋值到隐藏域
if(methodData[j].checked == 'true'){
methods += methodData[j].menuId + ',';
}
}
if(method != null){
html += appendHtmlTotal(method,treeNode.menuId);
}
$("#methods").val(methods);
}
$("#block").append(html);
}
}else{
$("#ztree1").empty();
$("#roleId").val('');
}
}
})
}else{
toastr.warning("请选中角色!");
}
};
//菜单树操作
var setting = {
check: {
enable: true
},
view:{
fontCss : {"font-family": "微软雅黑","color":"blue"}
},
data:{
simpleData: {
enable: true,
idKey: "menuId",
pIdKey: "parentId",
},
key:{
name:"menuName"
}
},
callback: { //回调函数
onClick: menuZTreeOnClick,
onCheck:onCheck}
};
//菜单点击事件
function menuZTreeOnClick(event, treeId, treeNode) {
var menuId = treeNode.menuId;
//原来的divIndex隐藏
var divIndex = $("#divIndex").val();
$("#methodDiv"+divIndex).hide();
//改节点为父节点的方法显示
$("#methodDiv"+menuId).show();
$("#divIndex").val(menuId);
}
//菜单树复选框选中事件
function onCheck(e,treeId,treeNode){
var treeObj=$.fn.zTree.getZTreeObj("ztree1");
truenodes=treeObj.getCheckedNodes(true);
falsenodes=treeObj.getCheckedNodes(false);
var divIndex = $("#divIndex").val();
var isExist;
var menus = '';
if(null != truenodes){
for(var i=0;i<truenodes.length;i++){
//获取树选中节点的menu集合
var menu = truenodes[i].menuId;
menus += menu + ",";
}
}
childNodeTrue(treeNode.menuId);
//菜单id集合赋值到隐藏域
$("#menus").val(menus);
if(falsenodes != null){
for(var i = 0; i < falsenodes.length; i++) {
//方法区全不选
$("#methodDiv"+falsenodes[i].menuId+" input[type='checkbox']").each(function(){
$(this).prop("checked",false);
});
}
}
}
//保存角色菜单权限
function addMenu(){
var methods = '';
$("input[name='methodId']:checked").each(function(){
methods += $(this).val() + ",";
})
var menus = ztree.getCheckedNodes(true);
var menu = '';
for(var i = 0; i < menus.length; i++) {
menu += menus[i].menuId + ",";
}
$("#menus").val(menu+methods);
var roleId = $("#roleId").val();
if(roleId != null && roleId != ''){
$.ajax({
type:'post',
url:path+"/menuPower/addRoleMenu",
data:{roleId:$("#roleId").val(),sysFlag:$("#sysFlag").val(),menus:$("#menus").val()},
dataType:"json",
success:function(data){
if(data.code == 100){
toastr.success("保存成功!");
}else{
toastr.error(data.msg);
}
}
})
}else{
toastr.warning("请先选中角色!")
}
}