function initTree() {
var setting = {
view: {
showLine: true,
selectedMulti: false,
dblClickExpand: false
},
data: {
simpleData: {
enable: true
}
},
callback: {
onClick: function (event, treeId, treeNode) {
var typeId = '';
if (treeNode.typeId != undefined && treeNode.typeId > 0) {
typeId = treeNode.typeId
}
$('#typId').val(typeId);
var pageNumber = $("#pageNumber").val();
if (pageNumber == null || typeof (pageNumber) == 'undefined' || pageNumber == '') {
pageNumber = 1;
}
searchData(pageNumber);
}
}
};
function jsonToMap(obj) {
let strMap = new Map();
for (let k of Object.keys(obj)) {
strMap.set(k, obj[k]);
}
return strMap;
}
var baseId = $("#knowledgeBaseId").val();
$.getJSON("${ctx}/tag/treeData/learningTypeView?knowledgeBaseId=" + baseId, function (data) {
$.fn.zTree.init($("#ztree"), setting, data);
//指定展开位置,如果没有则不展开
var zTree = $.fn.zTree.getZTreeObj("ztree");
var nodes = zTree.getNodes();
if (nodes != undefined && nodes.length > 0) {
for (var i = 0; i < nodes.length; i++) {
var node = nodes[i];
var parentId0 = $("#parentId0").val();
if (parentId0 != null && $("#typId").val() != '') {
if (node.typeId == parentId0) {
var nodeByParam = zTree.getNodeByParam("typeId", $("#typId").val());
zTree.selectNode(nodeByParam, true); //表示选中指定位置(高亮)
//false表示不是首节点 node表示当前节点 nodeByParam.level表示你需要的展开到的层级(一般都是高亮位置所在的层级)
showztreemenuNum(false, node, nodeByParam.level);
// zTree.expandNode(node, true, true, false);
}
}
}
}
changeNodeClass();
});
}
由于需要展开指定的层级,所以这里需要用到递归的方法去处理
function showztreemenuNum(b, childnodes, l) {
if (b) {
var rootnodes = zTreeObj.getNodes();
showztreemenuNum(false, rootnodes, l);//递归
} else {
var len = -1;
if (childnodes != null && (len = childnodes.length) != null && len > 0) {
if (l < childnodes[0].level) {
return;
}
for (var i = 0; i < len; i++) {
zTreeObj.expandNode(childnodes[i], true, false, false, true);
var child = childnodes[i].children;
showztreemenuNum(false, child, l);//递归
}
}
}
}
这个方法是为了将第一个节点的样式加载出来,由于我将css的样式改了,所以我也把第一个节点的样式改了,,这里的方法是将其还原
function changeNodeClass() {
$("#ztree_1_switch").removeClass('roots_open');
$("#ztree_1_switch").removeClass('roots_close');
$("#ztree_1_switch").addClass('center_close');
}
成功之后的样式