zTree3.5.44封装

zTree3.5.44,最近的版本都一样

把下面代码保存一个js文件

(function ($) {
    var DEFAULTS = {
        view: {
            dblClickExpand: false,
            showLine: true,
            selectedMulti: false,
            showIcon: false,
            fontCss: function (treeId, treeNode) {
                return (!!treeNode.highlight) ? {color: "#17a2b8", "font-weight": "bold"} : {
                    color: "#333",
                    "font-weight": "normal"
                };
            }
        }
    };
    $.fn.zTree3544 = function (option) {
        return zTree3544Adapter(this, option);
    }
    var zTree3544Adapter = function (ele, options) {
        this.element = ele;
        this.url = options.url;
        this.type = options.type || "POST";
        this.pIdKey = options.pIdKey || "pId";
        this.eventOption = {
            async: {
                dataFilter: function (treeId, parentNode, responseData) {
                    return options.dataStructureFilter(treeId, parentNode, responseData);
                }
            },
            callback: {
                onAsyncSuccess: function (event, treeId, node, msg) {
                    options.success(event, treeId, JSON.parse(msg), msg);
                },
                onAsyncError: function (event, treeId, node, XMLHttpRequest, textStatus, errorThrown) {
                    options.error(event, treeId, node, XMLHttpRequest, textStatus, errorThrown);
                },
                onCollapse: function (event, treeId, node) {
                    //节点被折叠的事件回调函数
                },
                onExpand: function (event, treeId, node) {
                    //节点被展开的事件回调函数
                },
                onClick: function (srcEvent, treeId, node, clickFlag) {
                    //节点被点击的事件回调函数
                },
                onCheck: function (event, treeId, node) {
                    //捕获 checkbox / radio 被勾选 或 取消勾选的事件回调函数
                }
            }
        }
        this.options = $.extend(true, DEFAULTS, {
            async: {
                enable: true,
                url: this.url,
                type: this.type,
            },
            data: {
                simpleData: {
                    enable: true,
                    idKey: "id",
                    pIdKey: this.pIdKey,
                    rootPId: ""
                }
            }
        }, this.eventOption, options);
        var _allzt = $.fn.zTree.init(this.element, this.options);
        return {
            reAsyncRefresh: function (node) {
                //node不填刷新整个树
                _allzt.reAsyncChildNodes(node || null, "refresh");
            },
            defaultCheck: function () {
                var _nodes = _allzt.transformToArray(_allzt.getNodes());
                if (_nodes.length > 0) {
                    _allzt.checkNode(_nodes[0], true, true);
                    return _nodes[0];
                }
            },
            checkNode: function (node) {
                if (node != null) {
                    _allzt.checkNode(node, true, true);
                }
            },
            unCheckRadioNode: function () {
                var nodes = _allzt.getCheckedNodes();
                if(nodes!=null && nodes.length >0){
                    _allzt.checkNode(nodes[0], false, true);
                }
            },
            checkNodes: function (nodes) {
                if ((nodes || []).length > 0) {
                    for (var i = 0, l = nodes.length; i < l; i++) {
                        _allzt.checkNode(nodes[i], true, true);
                    }
                }
            },
            checkNodeById: function (id) {
                if (id != null) {
                    var node = _allzt.getNodeByParam("id", id);
                    if (node != null) {
                        _allzt.checkNode(node, true, true);
                    }
                }
            },
            checkNodesByIds: function (ids) {
                if ((ids || []).length > 0) {
                    for (var i = 0, l = ids.length; i < l; i++) {
                        var node = _allzt.getNodeByParam("id", ids[i]);
                        if (node != null) {
                            _allzt.checkNode(node, true, true);
                        }
                    }
                }
            },
            checkAllNodes: function (bool) {
                return _allzt.checkAllNodes(bool);
            },
            defaultSelect: function () {
                var _nodes = _allzt.transformToArray(_allzt.getNodes());
                if (_nodes.length > 0) {
                    _allzt.selectNode(_nodes[0], true, true);
                    return _nodes[0];
                }
            },
            selectNode: function (node) {
                if (node != null) {
                    _allzt.selectNode(node, true, true);
                }
            },
            selectNodeById: function (id) {
                if (id != null) {
                    var node = _allzt.getNodeByParam("id", id);
                    if (node != null) {
                        _allzt.selectNode(node, true, true);
                    }
                }
            },
            selectNodes: function (ids) {
                if ((ids || []).length > 0) {
                    for (var i = 0, l = ids.length; i < l; i++) {
                        var node = _allzt.getNodeByParam("id", ids[i]);
                        if (node != null) {
                            _allzt.selectNode(node, true, true);
                        }
                    }
                }
            },
            getCheckedNodes: function () {
                return _allzt.getCheckedNodes(true);
            },
            getNodes: function () {
                var _nodes = _allzt.transformToArray(_allzt.getNodes());
                if (_nodes.length > 0) {
                    return _nodes;
                } else {
                    return [];
                }
            },
            setChkDisabled: function (node) {
                if (node != null) {
                    _allzt.setChkDisabled(node, true);
                }
            },
            getNodesByLevel: function (level) {
                // 默认展开一级节点
                var nodes = _allzt.getNodesByParam("level", level || 0);
                for (var i = 0; i < nodes.length; i++) {
                    _allzt.expandNode(nodes[i], true, false, false);
                }
            },
            getNodeById: function (id) {
                var node = _allzt.getNodeByParam("id", id);
                return node;
            },
            cancelSelectedNode: function (node) {
                if (node != null) {
                    _allzt.cancelSelectedNode(node);
                } else {
                    _allzt.cancelSelectedNode();
                }
            }
        }
    }
})(window.jQuery);

用法

var pId = "";
 var mt = $("#menu_tree").zTree3544({
        url: "/menu/getTree",
        pIdKey: "pid",
        dataStructureFilter: function (treeId, parentNode, responseData) {
            for(var i=0;i

zTree3.5.44封装_第1张图片

你可能感兴趣的:(zTree3.5.44封装)