init
This commit is contained in:
@@ -0,0 +1,161 @@
|
||||
/**
|
||||
* 角色
|
||||
* Copyright (c) 2017 [email protected]
|
||||
*/
|
||||
var Role = {
|
||||
|
||||
isChecked : true,
|
||||
|
||||
defaults : function(defaults) {
|
||||
console.log(defaults);
|
||||
$('[name="privilege_id"]').each(function() {
|
||||
var checked = $.inArray(parseInt(this.value), defaults) > -1 ? true : false;
|
||||
this.checked = checked;
|
||||
});
|
||||
},
|
||||
|
||||
privilege : function(element) {
|
||||
|
||||
var privilegeId = $(element).val();
|
||||
var checked = $(element).is(':checked');
|
||||
var type = $(element).attr("data-type");
|
||||
//console.log(checked);
|
||||
|
||||
if(checked == false) {
|
||||
Role.isChecked = false;
|
||||
}else {
|
||||
Role.isChecked = true;
|
||||
}
|
||||
if(type == 'navigator') {
|
||||
Role.navigator(privilegeId);
|
||||
}
|
||||
if(type == 'menu') {
|
||||
Role.menu(privilegeId);
|
||||
}
|
||||
if(type == 'controller') {
|
||||
Role.controller(privilegeId);
|
||||
}
|
||||
|
||||
},
|
||||
|
||||
navigator : function(privilegeId) {
|
||||
|
||||
var navigatorIds = [];
|
||||
var menuIds = [];
|
||||
var controllerIds = [];
|
||||
|
||||
navigatorIds.push(privilegeId);
|
||||
//孩子菜单
|
||||
for (var i = 0; i < menus.length; i++) {
|
||||
if(menus[i].parentId == privilegeId) {
|
||||
menuIds.push(menus[i].privilegeId);
|
||||
}
|
||||
}
|
||||
|
||||
for (var i = 0; i < menuIds.length; i++) {
|
||||
//孙子控制器
|
||||
for (var y = 0; y < controllers.length; y++) {
|
||||
if(controllers[y].parentId == menuIds[i]) {
|
||||
controllerIds.push(controllers[y].privilegeId);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
var allIds = [].concat(navigatorIds, menuIds, controllerIds);
|
||||
Role.downLevel(allIds);
|
||||
},
|
||||
|
||||
menu : function(privilegeId) {
|
||||
var navigatorIds = [];
|
||||
var menuIds = [];
|
||||
var controllerIds = [];
|
||||
|
||||
menuIds.push(privilegeId);
|
||||
//孩子控制器
|
||||
for (var i = 0; i < controllers.length; i++) {
|
||||
if(controllers[i].parentId == privilegeId) {
|
||||
controllerIds.push(controllers[i].privilegeId);
|
||||
}
|
||||
}
|
||||
|
||||
//父亲导航
|
||||
for (var i = 0; i < menus.length; i++) {
|
||||
if(menus[i].privilegeId == privilegeId) {
|
||||
for (var y = 0; y < navigators.length; y++) {
|
||||
if(navigators[y].privilegeId == menus[i].parentId) {
|
||||
navigatorIds.push(navigators[y].privilegeId);
|
||||
continue
|
||||
}
|
||||
}
|
||||
continue
|
||||
}
|
||||
}
|
||||
|
||||
var allIds = [].concat(menuIds, controllerIds);
|
||||
//下级
|
||||
Role.downLevel(allIds);
|
||||
//上级
|
||||
Role.upLevel(navigatorIds);
|
||||
},
|
||||
|
||||
controller : function(privilegeId) {
|
||||
var navigatorIds = [];
|
||||
var menuIds = [];
|
||||
var controllerIds = [];
|
||||
controllerIds.push(privilegeId);
|
||||
|
||||
//菜单和导航
|
||||
for (var i = 0; i < controllers.length; i++) {
|
||||
if(controllers[i].privilegeId == privilegeId) {
|
||||
for (var y = 0; y < menus.length; y++) {
|
||||
if(menus[y].privilegeId == controllers[i].parentId) {
|
||||
menuIds.push(menus[y].privilegeId);
|
||||
for (var z = 0; z < navigators.length; z++) {
|
||||
if(navigators[z].privilegeId == menus[y].parentId) {
|
||||
navigatorIds.push(navigators[z].privilegeId);
|
||||
continue;
|
||||
}
|
||||
}
|
||||
continue;
|
||||
}
|
||||
}
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
//下级
|
||||
Role.downLevel(controllerIds);
|
||||
//上级
|
||||
var allIds = [].concat(navigatorIds, menuIds);
|
||||
Role.upLevel(allIds);
|
||||
},
|
||||
|
||||
/**
|
||||
* 所有的下级
|
||||
*/
|
||||
downLevel : function(privilegeIds) {
|
||||
for (var i = 0; i < privilegeIds.length; i++) {
|
||||
if(Role.isChecked == true) {
|
||||
$('input:checkbox[value="'+ privilegeIds[i] +'"]').prop('checked', true);
|
||||
$('input:checkbox[value="'+ privilegeIds[i] +'"]').attr('checked', true);
|
||||
} else {
|
||||
$('input:checkbox[value="'+ privilegeIds[i] +'"]').attr('checked', false);
|
||||
$('input:checkbox[value="'+ privilegeIds[i] +'"]').prop('checked', false);
|
||||
$('input:checkbox[value="'+ privilegeIds[i] +'"]').removeAttr('checked');
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
/**
|
||||
* 所有的上级
|
||||
*/
|
||||
upLevel : function(privilegeIds) {
|
||||
for (var i = 0; i < privilegeIds.length; i++) {
|
||||
if(Role.isChecked == true) {
|
||||
$('input:checkbox[value="'+ privilegeIds[i] +'"]').prop('checked', true);
|
||||
$('input:checkbox[value="'+ privilegeIds[i] +'"]').attr('checked', true);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
};
|
||||
Reference in New Issue
Block a user