zoukankan      html  css  js  c++  java
  • 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);
                }
            }
  • 相关阅读:
    Django 同步数据库的时候app中的models的表没有成功创建
    mysql 个人博客应用的建表和相关查询
    lambda(),map(),filter()
    用小白鼠找毒药
    python 汉诺塔问题
    灰色预测
    python可视化图标
    exel数据可视化
    543. 二叉树的直径
    236. 二叉树的最近公共祖先
  • 原文地址:https://www.cnblogs.com/dand/p/10183324.html
Copyright © 2011-2022 走看看