218 lines
5.2 KiB
JavaScript
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);
|
|
}
|