hn_cloud_web/smz-web/js/work/basic/ztree-promenu.js

220 lines
4.2 KiB
JavaScript

var nodes = [];
function getMenuTree(treeKeyWord) {
$.ajax({
type : 'POST',
url : ctxPath + '/UserRelation/listParentProRelation',
data:{
"treeKeyWord":treeKeyWord
},
// contentType : "application/json; charset=utf-8",
async : false,
success : function(data) {
console.log(data)
$.fn.zTree.init($("#treeDemo"),{
view:{
dblClickExpand:false,
selectedMulti:false,
nameIsHTML:true
},
data:{
simpleData:{
enable: true
}
},
callback:{
onClick:zTreeOnCheck
}
}, data.obj);
}
});
}
function initMenuDatas(roleId){
$.ajax({
type : 'get',
url : ctxPath + '/permissions?roleId=' + roleId,
success : function(data) {
var length = data.length;
var ids = [];
for(var i=0; i<length; i++){
ids.push(data[i]['id']);
}
initMenuCheck(ids);
}
});
}
function initMenuCheck(ids) {
var treeObj = $.fn.zTree.getZTreeObj("treeDemo");
var length = ids.length;
if(length > 0){
var node = treeObj.getNodeByParam("id", 0, null);
treeObj.checkNode(node, true, false);
}
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);
}
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 : false,
chkboxType : {
"Y" : "ps",
"N" : "ps"
}
},
async : {
enable : true,
},
data : {
simpleData : {
enable : true,
idKey : "id",
pIdKey : "pId",
rootPId : 0
}
},
callback : {
//点击复选框
// onCheck : zTreeOnCheck
//点击触发
onClick:zTreeOnCheck
}
};
return setting;
}
/**
* 点击节点触发的事件
* @param event
* @param treeId
* @param treeNode
*/
function zTreeOnCheck(event, treeId, treeNode) {
if(treeNode.level =='0' || treeNode.level ==0){
layer.msg("请选择工程");
return false;
}else{
proId=treeNode.id;
reloadList();
var zTree = $.fn.zTree.getZTreeObj("treeDemo");
//获得选中的节点
var nodes = zTree.getSelectedNodes(),
v = "";
//根据id排序
nodes.sort(function compare(a, b) {
return a.id - b.id;
});
for(var i = 0, l = nodes.length; i < l; i++) {
if(i !== 0) {
v += "," + nodes[i].name;
}
v += nodes[i].name;
}
//将选中节点的名称显示在文本框内
$("#treeKeyWord").val(v);
//隐藏zTree
return false;
}
}
//
//根据文本框的关键词输入情况自动匹配树内节点 进行模糊查找
function AutoMatch(txtObj) {
console.log(txtObj)
/*if(txtObj.value.length > 0) {
InitialZtree();
var zTree = $.fn.zTree.getZTreeObj("treeDemo");
console.log(txtObj.value);
var nodeList = zTree.getNodesByParamFuzzy("name", txtObj.value);
//将找到的nodelist节点更新至Ztree内
var root = {
id : 0,
name : "工程名称",
open : true,
};
root.children = nodeList;
$.fn.zTree.init($("#treeDemo"), getSettting(), nodeList);
} else {
//隐藏树
InitialZtree();
}*/
}
// $(document).ready(function() {
// var treeObj = $.fn.zTree.getZTreeObj("treeDemo");
// $.fn.zTree.init($("#treeDemo"), getSettting(), treeObj.getCheckedNodes(true));
// });
//还原zTree的初始数据
function InitialZtree() {
getMenuTree("");
}