hn_cloud_web/smz-web/js/my/ztree-menu.js

222 lines
4.5 KiB
JavaScript
Raw Normal View History

2025-11-27 16:55:35 +08:00
function getMenuAppTree() {
var children = [];
$.ajax({
type : 'get',
url : ctxPath + '/permissions/appAll',
contentType : "application/json; charset=utf-8",
async : false,
success : function(data) {
var length = data.length;
for (var i = 0; i < length; i++) {
var d = data[i];
var node = createNode(d);
children[i] = node;
}
children = children;
}
});
return children;
}
//后台
function getMenuBackTree() {
var children = [];
$.ajax({
type : 'get',
url : ctxPath + '/permissions/backAll',
contentType : "application/json; charset=utf-8",
async : false,
success : function(data) {
var length = data.length;
for (var i = 0; i < length; i++) {
var d = data[i];
var node = createNode(d);
children[i] = node;
}
}
});
return children;
}
//初始化选中
function initMenuAppDatas(id){
$.ajax({
type : 'get',
url : ctxPath + '/permissions?appRoleId=' + id,
success : function(data) {
var length = data.length;
var ids = [];
for(var i=0; i<length; i++){
ids.push(data[i]['id']);
}
initMenuAppCheck(ids);
}
});
}
function initMenuAppCheck(ids) {
var treeObj = $.fn.zTree.getZTreeObj("treeAppDemo");
var length = ids.length;
if(length > 0){
for(var i=0; i<length; i++){
var node = treeObj.getNodeByParam("id", ids[i], null);
treeObj.checkNode(node, true, false);
}
}
}
function initMenuBackDatas(id){
$.ajax({
type : 'get',
url : ctxPath + '/permissions?backRoleId=' + id,
success : function(data) {
var length = data.length;
var ids = [];
for(var i=0; i<length; i++){
ids.push(data[i]['id']);
}
initMenuBackCheck(ids);
}
});
}
function initMenuBackCheck(ids) {
var treeObj = $.fn.zTree.getZTreeObj("treeDemo");
var length = ids.length;
if(length > 0){
for(var i=0; i<length; i++){
var node = treeObj.getNodeByParam("id", ids[i], null);
treeObj.checkNode(node, true, false);
}
}
}
function getCheckedMenuIds(){
var treeObj = $.fn.zTree.getZTreeObj("treeDemo");
var nodes = treeObj.getCheckedNodes(true);
var length = nodes.length;
var ids = [];
for(var i=0; i<length; i++){
var n = nodes[i];
var id = n['id'];
ids.push(id);
// console.log(JSON.stringify(n));
}
var treeAppObj = $.fn.zTree.getZTreeObj("treeAppDemo");
var appNodes = treeAppObj.getCheckedNodes(true);
var appLength = appNodes.length;
for(var i=0; i<appLength; i++){
var n = appNodes[i];
var id = n['id'];
ids.push(id);
// console.log(JSON.stringify(n));
}
return ids;
}
function createNode(d) {
var id = d['id'];
var pId = d['parentId'];
var name = d['name'];
var child = d['child'];
var node = {
open : true,
id : id,
name : name,
pId : pId,
};
if (child != null) {
var length = child.length;
if (length > 0) {
var children = [];
for (var i = 0; i < length; i++) {
children[i] = createNode(child[i]);
}
node.children = children;
}
}
return node;
}
function initParentMenuSelect(){
$.ajax({
type : 'get',
url : ctxPath + '/permissions/parents',
async : false,
success : function(data) {
var select = $("#parentId");
select.append("<option value='0'>root</option>");
for(var i=0; i<data.length; i++){
var d = data[i];
var id = d['id'];
var name = d['name'];
select.append("<option value='"+ id +"'>" +name+"</option>");
}
}
});
}
function getSettting() {
var setting = {
check : {
enable : true,
chkboxType : {
"Y" : "ps",
"N" : "ps"
}
},
async : {
enable : true,
},
data : {
simpleData : {
enable : true,
// idKey : "id",
// pIdKey : "pId",
// rootPId : 0
}
},
callback : {
onCheck : zTreeOnCheck
}
};
return setting;
}
function zTreeOnCheck(event, treeId, treeNode) {
var treeObj = $.fn.zTree.getZTreeObj("treeDemo");
var workNode = treeObj.getNodeByParam("id", 142, null);
var superNode = treeObj.getNodeByParam("id", 143, null);
if(workNode['checked'] == true){
if (superNode['checked'] == true) {
parent.layer.alert('该角色已选择施工端权限');
location.reload();
}
}
if(superNode['checked'] == true){
if (workNode['checked'] == true) {
parent.layer.alert('该角色已选择监督端权限');
location.reload();
}
}
// console.log(treeNode.id + ", " + treeNode.name + "," + treeNode.checked
// + "," + treeNode.pId);
// console.log(JSON.stringify(treeNode));
}