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);
                }
            });
        }
    }

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

本文不再更新,可能存在內容過時的情況,實時更新請訪問原地址:ztree根據參數動態控制是否顯示複選框/單選框(靜態JSON數據)