ztree数据处理,回显



var zNodes = [];
    var setting = {
        check : {
        enable : true
        },
        data : {
        simpleData : {
            enable : true
        }
        }
    };

function treeData(menuIds) {//menuIds需要回显的数据集合
        $.ajax({
        type : "GET",
        url : "/manager/menu/getTreeData",
        data : null,
        dataType : "json",
        success : function(e) {
            if ("0" != e.code) {
            layer.msg(e.msg);
            return;
            }
            var data = e.data;
            for (var i = 0; i < data.length; i++) {
            var json = {};
            json.id = data[i].id;
            json.pId = data[i].parentId;
            json.name = data[i].menuName;
            json.open = true;
            if (-1 != menuIds.indexOf(data[i].id)) {
                json.checked = true;
            }
            zNodes.push(json);
            }
            $.fn.zTree.init($("#ztree"), setting, zNodes);
        },
        error : function(e) {
            layer.msg("请求失败!");
        }
        });
    }

 

$("#addMenu").click(function() {
        layer.close(zindex);
        $('#menuTree').hide();
        var ztreeObj = $.fn.zTree.getZTreeObj("ztree");
        var nodesArray = ztreeObj.getNodes();
        var ids = "";
        var names = "";
        for (var i = 0; i < nodesArray.length; i++) {
        var treeNode = nodesArray[i];
        //此处treeNode 为当前节点
        if (treeNode.isParent && treeNode.checked) {
            ids += treeNode.id + ",";
            names += treeNode.name + ",";
            ids = getAllChildrenNodes(treeNode, ids, true);
            names = getAllChildrenNodes(treeNode, names, false);
        } else if (!treeNode.isParent && treeNode.checked) {
            ids += treeNode.id + ",";
            names += treeNode.name + ",";
        }
        }
        console.log("id集合:" + ids);
        console.log("name集合:" + names);
        $.post("/manager/role/addMenus", {
        "menuIds" : ids,
        "roleId" : $("#roleId").val()
        }, function(data) {
        if (0 != data.code) {
            return;
        }
        layer.msg(data.msg);
        }, "json");

    });

    //使用了递归,得到叶子节点的数据
    function getAllChildrenNodes(treeNode, result, isId) {
        if (treeNode.isParent && treeNode.checked) {
        var childrenNodes = treeNode.children;
        if (childrenNodes) {
            for (var i = 0; i < childrenNodes.length; i++) {
            if (childrenNodes[i].isParent && childrenNodes[i].checked) {
                result = getAllChildrenNodes(childrenNodes[i], result, isId);
            } else if (childrenNodes[i].checked && isId) {
                result += childrenNodes[i].id + ',';
            } else if (childrenNodes[i].checked && !isId) {
                result += childrenNodes[i].name + ',';
            }
            }
        }
        }
        return result;
    }

你可能感兴趣的:(个人笔记)