HnRealNameBmwWeb/js/work/person/certificateManage/ztree-workpostmenu.js

218 lines
5.2 KiB
JavaScript

var nodes = [];
function getMenuTree() {
var root = {
id: 0,
name: "工种列表",
open: true,
};
$.ajax({
type: 'get',
url: ctxPath + '/certificate/getWorkPostList',
contentType: "application/json; charset=utf-8",
async: false,
success: function (data) {
var length = data.length;
var children = [];
for (var i = 0; i < length; i++) {
var d = data[i];
var node = createNode(d);
children[i] = node;
}
root.children = children;
nodes = children;
}
});
return root;
}
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) {
//选中节点的id
// console.log(treeNode.id);
reloadList(treeNode.id);
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;
// console.log(selected.toString());
// console.log(treeNode.id + ", " + treeNode.name + "," + treeNode.checked
// + "," + treeNode.pId);
// console.log(JSON.stringify(treeNode));
}
//
//根据文本框的关键词输入情况自动匹配树内节点 进行模糊查找
function AutoMatch(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(), root);
} else {
//隐藏树
InitialZtree();
}
}
//还原zTree的初始数据
function InitialZtree() {
var root = {
id: 0,
name: "工种列表",
open: true,
};
root.children = nodes;
$.fn.zTree.init($("#treeDemo"), getSettting(), root);
}