ztree根据参数动态控制是否显示复选框/单选框(静态JSON数据)

本文不再更新,可能存在内容过时的情况,实时更新请访问原地址:ztree根据参数动态控制是否显示复选框/单选框(静态JSON数据)

现有全省各地区静态JSON数据,现在想通过Url参数,动态控制是否显示复选框/单选框,实现方式如下:

 var rootNode, isCascadeSelect = '1';
    var urlParamsJson = urlParams();
    var selType = urlParamsJson.selType, isChkbox = urlParamsJson.isChkbox;

    initTree();

    function initTree() {
        // 用于存储树的节点
        var treeNodes = [];

        $.ajax({
            url: area_tree_data,
            async: false,
            dataType: "json",
            type: "GET",
            success: function (result) {
                treeNodes = result;
            }
        });

        // ztree设置
        var treeSetting = {
            data: {
                key: {
                    name: "name"
                },
                simpleData: {
                    enable: true,
                    idKey: "code",
                    pIdKey: "pcode"
                }
            },
            check: {
                enable: selType ? true : false,
                chkStyle: isChkbox == "1" ? "checkbox" : "radio",
                radioType: "all",
                chkboxType: {"Y": isCascadeSelect == "1" ? "s" : "", "N": isCascadeSelect == "1" ? "s" : ""}
            },
            callback: {
                beforeExpand: zTreeBeforeExpand
            }
        };
        // 初始化功能树
        areaTree = ztree.init($("#area-tree"), treeSetting, treeNodes);
        rootNode = areaTree.getNodes()[0];
        areaTree.expandNode(rootNode, null, null, null, true);
    }

    function zTreeBeforeExpand(treeId, treeNode) {
        if (selType) {
            var selectTypes = selType.split(";");
            if ($.inArray((treeNode.level + 1).toString(), selectTypes) == "-1") {
                treeNode["nocheck"] = true;
                areaTree.updateNode(treeNode);
            }
            $.grep(treeNode.children, function (childNode, index) {
                if ($.inArray((childNode.level + 1).toString(), selectTypes) == "-1") {
                    childNode["nocheck"] = true;
                    areaTree.updateNode(childNode);
                }
            });
        }
    }

页面调用地址:http://localhost:8080/html/portrait/area-tree.html?selType=1;2;3&isChkbox=1

本文不再更新,可能存在内容过时的情况,实时更新请访问原地址:ztree根据参数动态控制是否显示复选框/单选框(静态JSON数据)

posted @ 2020-05-08 22:36  Cobcmw  阅读(628)  评论(0编辑  收藏  举报