var callbackClick = function (event, treeId, treeNode) { var tree = $.fn.zTree.getZTreeObj(treeId); mainFrame.execute(tree, event, treeId, treeNode); tree.expandNode(treeNode, true, false, true); var cls; if (treeNode.orgLevel && treeNode.orgLevel != 2) { return; } if (treeNode.isParent == 0) { return; } }; //树形初始化与点击事件 var treeLoadFlags = [false, false, false, false, false]; var currTree; $(document).ready(function () { var trees = []; var type = [[${type}]]; var typeurl = type == 'mpg' ? '&type=mpg' : ''; for (var i = 0; i < plans.length; i++) { var tab = plans[i].tab; trees[trees.length] = new AsyncTree("/guidance/plan/asyncTree?planId=" + tab + typeurl, "#tree" + tab); trees[i].setting.callback = { onClick: callbackClick, onExpand: zTreeBeforeExpand, onCollapse: zTreeBeforeCollapse, //用于捕获异步加载出现异常错误的事件回调函数 onAsyncError: onAsyncError, //用于捕获异步加载正常结束的事件回调函数 onAsyncSuccess: onAsyncSuccess, onCheck: zTreeOnCheck }; trees[i].setting.check = { enable: [[${checked=='true'}]] }; $('#tabBtn' + tab).click(function () { var ti = this.value; if (!treeLoadFlags[ti]) { trees[ti].loadTree(); treeLoadFlags[ti] = true; } currTree = trees[ti]; }); } currTree = trees[0]; trees[0].loadTree();//加载第一颗树 }); /** 返回当前页签树选中的节点。 **/ function getCurrTreeCheckedNodes() { var nodes = currTree.tree.getCheckedNodes(true); return nodes; } function getCurrTreeSelectNodes() { var nodes = currTree.tree.getSelectedNodes(true); return nodes; } var zTreeBeforeExpand = function (event, treeId, treeNode) { // 树展开 var cookie = $.cookie(treeId + window.location); var z_tree = new Array(); if (cookie) { z_tree = JSON.parse(cookie); //console.log(z_tree); } if ($.inArray(treeNode.id, z_tree) < 0) { z_tree.push(treeNode.id); } $.cookie(treeId + window.location, JSON.stringify(z_tree)); }; var zTreeBeforeCollapse = function (event, treeId, treeNode) { var cookie = $.cookie(treeId + window.location); var z_tree = new Array(); if (cookie) { z_tree = JSON.parse(cookie); } //判断treeNode 在z_tree中的索引 var index = $.inArray(treeNode.id, z_tree); //删除 z_tree.splice(index, 1); for (var i = 0; i < treeNode.children.length; i++) { index = $.inArray(treeNode.children[i].id, z_tree); if (index > -1) { z_tree.splice(index, 1); } } $.cookie(treeId + window.location, JSON.stringify(z_tree)); }; function onAsyncSuccess(event, treeId, treeNode, msg) { var treeChecked = treeId+'checked'; var tree = $.fn.zTree.getZTreeObj(treeId); //alert(treeId + "haha"); var z_tree = new Array(); var z_tree_select = new Array(); var msgNode = new Array(); if (msg != null) { var json = JSON.parse(msg); for (var i = 0; i < json.length; i++) { msgNode.unshift(json[i].id); } } var cookie = $.cookie(treeId + window.location); var cookieSelect = $.cookie(treeChecked + window.location); if (cookie) { z_tree = JSON.parse(cookie); if(typeof (cookieSelect) !== "undefined"){ z_tree_select = JSON.parse(cookieSelect); } //2.首先判断根节点是否存在 if (msgNode.length > 0) { for (var j = 0; j < msgNode.length; j++) { var index = $.inArray(msgNode[j], z_tree); var indexchecked = $.inArray(msgNode[j], z_tree_select); //console.log(msgNode[j]) if (index != -1) { //3.把跟节点展开 //var node1 = tree.getNodeByTId(msgNode[j]); var node = tree.getNodeByParam("id", msgNode[j], null); tree.expandNode(node, true, false, true); } if (indexchecked != -1) { //3.把跟节点展开 //var node1 = tree.getNodeByTId(msgNode[j]); var nodechecked = tree.getNodeByParam("id", msgNode[j], null); tree.checkNode(nodechecked, true, true,false); //tree.expandNode(node, true, false, true); } } } } if (cookieSelect) { z_tree_select = JSON.parse(cookieSelect); //2.首先判断根节点是否存在 if (msgNode.length > 0) { for (var k = 0; k < msgNode.length; k++) { var index = $.inArray(msgNode[k], z_tree_select); //console.log(msgNode[j]) if (index != -1) { //3.把跟节点展开 //var node1 = tree.getNodeByTId(msgNode[j]); var node = tree.getNodeByParam("id", msgNode[k], null); tree.checkNode(node, true, true,false); //tree.expandNode(node, true, false, true); } } } } } function onAsyncError(event, treeId, treeNode, XMLHttpRequest, textStatus, errorThrown) { alert(XMLHttpRequest); } function zTreeOnCheck(event, treeId, treeNode) { var treeChecked = treeId+'checked'; var nodes = getCurrTreeCheckedNodes(); var z_tree_select = new Array(); for(var i = 0; i < nodes.length; i++){ var node = nodes[i]; z_tree_select.push(node.id); } $.cookie(treeChecked+ window.location, JSON.stringify(z_tree_select)); //alert(treeNode.tId + ", " + treeNode.name + "," + treeNode.checked); }