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(""); for (var i = 0; i < data.length; i++) { var d = data[i]; var id = d['id']; var name = d['name']; select.append(""); } } }); } 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); }