zTree实战

1.实体

public class UserDataZTreeVo {

    private String id;
    private String pid;
    private String name;
    private boolean open;
    private String readWriteAuthority;
    private String code;
    private String description;
    private boolean isParent;

    private boolean checked;

    //ztree组件需要格式
    public String getpId() {
        return this.pid == null ? "0" : this.pid;
    }

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getCode() {
        return code;
    }

    public void setCode(String code) {
        this.code = code;
    }

    public String getDescription() {
        return description;
    }

    public void setDescription(String description) {
        this.description = description;
    }

    public String getPid() {
        return pid;
    }

    public void setPid(String pid) {
        this.pid = pid;
    }

    public boolean isParent() {
        return isParent;
    }

    public void setParent(boolean parent) {
        isParent = parent;
    }

    public boolean isOpen() {
        return open;
    }

    public void setOpen(boolean open) {
        this.open = open;
    }

    public String getReadWriteAuthority() {
        return readWriteAuthority;
    }

    public void setReadWriteAuthority(String readWriteAuthority) {
        this.readWriteAuthority = readWriteAuthority;
    }

    public boolean isChecked() {
        return checked;
    }

    public void setChecked(boolean checked) {
        this.checked = checked;
    }
}

2.zTree封装

        //ztree封装,先创建组织
        List<UserDataZTreeVo> list = new ArrayList<UserDataZTreeVo>();
        String organizationTreeId = "";
        for (int i = 0; i < listUserDataVo.size(); i++) {
            UserDataZTreeVo ztree = new UserDataZTreeVo();
            UserDataManageVO vo = listUserDataVo.get(i);
            if (!organizationTreeId.equals(String.valueOf(vo.getManagedOrganizationId()))) {
                ztree.setId(String.valueOf(vo.getManagedOrganizationId()));
                ztree.setPid(String.valueOf(vo.getManagedOrganizationId()));
                ztree.setName(vo.getManagedOrganizationName());
                ztree.setOpen(true);
                ztree.setParent(true);
                organizationTreeId = String.valueOf(vo.getManagedOrganizationId());
                list.add(ztree);
            }
        }

3.加载

        //========================================3.ztree===========================================
        var zNodes = [];
        var initUserManageTree = function (userId, organizationId) {
            $.ajax({
                url: CTX + "/manage/loadUserManagedTree",//发送ajax请求加载权限数据
                type: 'post',
                dataType: 'json',
                async: false,
                data: {
                    "userId": userId,
                    "organizationId": organizationId
                },
                success: function (data) {//data就是服务端返回的权限数据
                    var data = data.data;
                    zNodes = data;
                },
                error: function (msg) {
                    alert('树加载异常!');
                }
            });
        };

        var InitialTree = function () {
            // 授权树初始化
            var setting = {
                view: {
                    selectedMulti: true,
                    showLine: true,
                    addDiyDom: addDiyDom
                },
                data: {
                    key: {
                        name: "name"
                    },
                    simpleData: {
                        enable: true,
                        idKey: "id",
                        pIdKey: "pid",
                        rootPId: null
                    }
                },
                check: {//使用ztree选中效果
                    enable: true,
                }
            };
            $.fn.zTree.init($("#userDataManageTree"), setting, zNodes).expandAll(true);
        };

        var addDiyDom = function (treeId, treeNode) {
            var pNode = treeNode.getParentNode();
            var readWriteAuthority = treeNode.readWriteAuthority;
            var aObj = $("#" + treeNode.tId + "_a");
            if (pNode) {
                var editStr = "";
                if (readWriteAuthority == "1") {
                    editStr += "<label class='isRead'>"
                        + "<input class='a-radio' id='writeRead" + treeNode.id + "' value='1' type='radio' name='writeRead" + treeNode.id + "' checked/>"
                        + "<span class='b-radio'></span>只读</label>";
                    editStr += "<label class='isRead'>"
                        + "<input id='writeRead" + treeNode.id + "' class='a-radio' value='2' type='radio' name='writeRead" + treeNode.id + "' />"
                        + "<span class='b-radio'></span>读写</label>";
                } else {
                    editStr += "<label class='isRead'>"
                        + "<input class='a-radio' id='writeRead" + treeNode.id + "' value='1' type='radio' name='writeRead" + treeNode.id + "' />"
                        + "<span class='b-radio'></span>只读</label>";
                    editStr += "<label class='isRead'>"
                        + "<input id='writeRead" + treeNode.id + "' class='a-radio' value='2' type='radio' name='writeRead" + treeNode.id + "' checked />"
                        + "<span class='b-radio'></span>读写</label>";
                }
                aObj.append(editStr);
            }
        };

        var hiddenNodes = [];
        var autoMatch = function (txtObj) {
            // 授权树初始化
            var setting = {
                view: {
                    selectedMulti: true,
                    showLine: true,
                    addDiyDom: addDiyDom
                },
                data: {
                    key: {
                        name: "name"
                    },
                    simpleData: {
                        enable: true,
                        idKey: "id",
                        pIdKey: "pid",
                        rootPId: null
                    }
                },
                check: {
                    enable: true
                }
            };

            var searchUserTree = $('#searchUserTree').val();
            if (searchUserTree) {
                InitialTree();
                var zTree = $.fn.zTree.getZTreeObj("userDataManageTree");
                var nodeList = zTree.getNodesByParamFuzzy("name", searchUserTree);
                //parent
                hiddenNodes = zTree.transformToArray(nodeList);
                for (var n in hiddenNodes) {
                    findParent(zTree, hiddenNodes[n]);
                }
                $.fn.zTree.destroy("userDataManageTree");
                $.fn.zTree.init($("#userDataManageTree"), setting, hiddenNodes).expandAll(true);
            } else {
                InitialTree();
            }
        };

        function findParent(treeObj, node) {
            var pNode = node.getParentNode();//获取父节点
            if (pNode != null && hiddenNodes.indexOf(pNode) == -1) {
                hiddenNodes.push(pNode);
                treeObj.removeChildNodes(pNode);
            }
        }

 

posted @ 2018-12-27 09:58  可乐998  阅读(285)  评论(0编辑  收藏  举报