Files
wehub-resource-sync a21fa4e11b
Go / Build (push) Failing after 1s
chore: import upstream snapshot with attribution
2026-07-13 12:30:21 +08:00

167 lines
4.0 KiB
Go

/**
* 角色
* Copyright (c) 2018 phachon@163.com
*/
var Role = {
isChecked : true,
defaults : function(defaults, disableds) {
console.log(defaults);
console.log(disableds);
$('[name="privilege_id"]').each(function() {
var checked = $.inArray(parseInt(this.value), defaults) > -1 ? true : false;
this.checked = checked;
var isDisabled = $.inArray(parseInt(this.value), disableds) > -1 ? true : false;
if (isDisabled) {
this.checked = true;
this.disabled = true;
}
});
},
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);
}
}
}
};