ztree自定义筛选及获取已选节点

来源:互联网 发布:怎么淘宝贷款高额 编辑:程序博客网 时间:2024/05/17 01:02
var setting = {    view: {        showLine: false,        fontCss: getFontCss    },    check: {        enable: true    },    data: {        simpleData: {            enable: true        }    }};var viewSetting = {    view: {        showLine: false    },    check: {        enable: true,        chkDisabledInherit: true    },    data: {        simpleData: {            enable: true        }    }};/** * 回车进行分部搜索 * @param event */document.onkeydown=function(event){    var e = event || window.event || arguments.callee.caller.arguments[0];    if(e && e.keyCode==13&&typeof($("#search_condition").val())!="undefined"){ // enter 键        search_ztree('branch_tree', 'search_condition');    }};/** * 初始书 * @param showShop */function getbrancs(showShop, elemId) {    $.ajax({        type: 'POST',        url: ctx + "/fuseprom/branch/branchTree.do",        dataType: 'json',        data: {"showShop": showShop},        success: function (data) {            $("#" + elemId).html("")            if (data.code == "0") {                if (data.tree.length == 0) {                    $("#" + elemId).html("没有权限");                    return false;                }                $.fn.zTree.destroy();                $("#" + elemId).html(                    "<input id='search_condition' type='text' placeholder='请输入搜索条件' class='span3' style='font-size:12px'/>" +                    "<button type='button' class='btn btn-info' style='margin-left: 20px' onclick=\"search_ztree('branch_tree', 'search_condition')\">&nbsp;查&nbsp;&nbsp;询&nbsp;</button>" +                    "<div style='height:300px;width:350px;overflow: auto;position:relative;border:1px solid #d5d5d5 '> " +                    "<ul id='branch_tree' class='ztree'></ul></div>");                $.fn.zTree.init($("#branch_tree"), setting, data.tree);            } else {                $("#" + elemId).html("分部加载失败");            }        }    });}/** * 获取选中的区域 */function getCheckBranch(level) {    var branchTree = new Array();    var treeObj = $.fn.zTree.getZTreeObj("branch_tree");    if (treeObj == null) {        return false;    }    var nodes = treeObj.getCheckedNodes(true);    if (nodes != null && nodes.length > 0) {        for (var i = 0; i < nodes.length; i++) {            var branch = {};            if (nodes[i].lv == level) {                branch["gfpRegion"] = nodes[i].lv;                branch["regionCode"] = nodes[i].id;                branch["regionDesc"] = nodes[i].descr;                branchTree.push(branch);            }        }    }    if (branchTree.length > 0) {        //alert(JSON.stringify(branchTree));        return branchTree;    }    return "";}/** * 清除区域树 */function cleanArea(obj) {    if (!obj.checked) {        $.fn.zTree.destroy();    }}function getFontCss(treeId, treeNode) {    return (!!treeNode.highlight) ? {color: "#A60000", "font-weight": "bold"} : {        color: "#333",        "font-weight": "normal"    };}/** * 展开树 * @param treeObj */function expand_ztree(treeObj) {    treeObj.expandAll(true);}/** * 收起树:只展开根节点下的一级节点 * @param treeObj */function close_ztree(treeObj) {    var nodes = treeObj.transformToArray(treeObj.getNodes());    var nodeLength = nodes.length;    for (var i = 0; i < nodeLength; i++) {        if (nodes[i].pId == null) {            //根节点:展开            treeObj.expandNode(nodes[i], true, true, false);        } else {            //非根节点:收起            treeObj.expandNode(nodes[i], false, true, false);        }    }}/** * 搜索树,高亮显示并展示【模糊匹配搜索条件的节点s】 * @param treeId * @param searchConditionId 文本框的id */function search_ztree(treeId, searchConditionId) {    searchByFlag_ztree(treeId, searchConditionId, "");}/** * 搜索树,高亮显示并展示【模糊匹配搜索条件的节点s】 * @param treeId * @param searchConditionId     搜索条件Id * @param flag                  需要高亮显示的节点标识 */function searchByFlag_ztree(treeId, searchConditionId, flag) {    //<1>.搜索条件    var searchCondition = $('#' + searchConditionId).val();    //<2>.得到模糊匹配搜索条件的节点数组集合    var highlightNodes = new Array();    if (searchCondition != "") {        var treeObj = $.fn.zTree.getZTreeObj(treeId);        highlightNodes = treeObj.getNodesByParamFuzzy("name", searchCondition, null);    }    //<3>.高亮显示并展示【指定节点s】    highlightAndExpand_ztree(treeObj, highlightNodes, flag);}/** * 高亮显示并展示【指定节点s】 * @param treeObj * @param highlightNodes 需要高亮显示的节点数组 * @param flag           需要高亮显示的节点标识 */function highlightAndExpand_ztree(treeObj, highlightNodes, flag) {    //<1>. 先把全部节点更新为普通样式    var treeNodes = treeObj.transformToArray(treeObj.getNodes());    for (var i = 0; i < treeNodes.length; i++) {        treeNodes[i].highlight = false;        treeObj.updateNode(treeNodes[i]);    }    //<2>.收起树, 只展开根节点下的一级节点    close_ztree(treeObj);    //<3>.把指定节点的样式更新为高亮显示,并展开    if (highlightNodes != null) {        for (var i = 0; i < highlightNodes.length; i++) {            if (flag != null && flag != "") {                if (highlightNodes[i].flag == flag) {                    //高亮显示节点,并展开                    highlightNodes[i].highlight = true;                    treeObj.updateNode(highlightNodes[i]);                    //高亮显示节点的父节点的父节点....直到根节点,并展示                    var parentNode = highlightNodes[i].getParentNode();                    var parentNodes = getParentNodes_ztree(treeObj, parentNode);                    treeObj.expandNode(parentNodes, true, false, true);                    treeObj.expandNode(parentNode, true, false, true);                }            } else {                //高亮显示节点,并展开                highlightNodes[i].highlight = true;                treeObj.updateNode(highlightNodes[i]);                //高亮显示节点的父节点的父节点....直到根节点,并展示                var parentNode = highlightNodes[i].getParentNode();                var parentNodes = getParentNodes_ztree(treeObj, parentNode);                treeObj.expandNode(parentNodes, true, false, true);                treeObj.expandNode(parentNode, true, false, true);            }        }    }}/** * 递归得到指定节点的父节点的父节点....直到根节点 */function getParentNodes_ztree(treeObj, node) {    if (node != null) {        var parentNode = node.getParentNode();        return getParentNodes_ztree(treeObj, parentNode);    } else {        return node;    }}/** * 设置树节点字体样式 */function setFontCss_ztree(treeId, treeNode) {    if (treeNode.id == 0) {        //根节点        return {color: "#333", "font-weight": "bold"};    } else if (treeNode.isParent == false) {        //叶子节点        return (!!treeNode.highlight) ? {color: "#ff0000", "font-weight": "bold"} : {            color: "#660099",            "font-weight": "normal"        };    } else {        //父节点        return (!!treeNode.highlight) ? {color: "#ff0000", "font-weight": "bold"} : {            color: "#333",            "font-weight": "normal"        };    }}
0 0