美文网首页JS
第三方依赖库zTree树结构封装使用

第三方依赖库zTree树结构封装使用

作者: 五岁小孩 | 来源:发表于2020-07-25 22:17 被阅读0次

第三方依赖库zTree树结构封装使用

  • 下载包

    http://www.treejs.cn/v3/main.php#_zTreeInfo
    
  • 导入包

    <link rel="stylesheet" href="/assets/js/zTree_v3/css/zTreeStyle/zTreeStyle.css" type="text/css">
    <script type="text/javascript" src="/assets/js/zTree_v3/js/jquery.ztree.core.js"></script>
    <script type="text/javascript" src="/assets/js/zTree_v3/js/jquery.ztree.excheck.js"></script>
    <script type="text/javascript" src="/assets/js/zTree_v3/js/jquery.ztree.exedit.js"></scrip
    
  • 导入自定义封装包

    <script src="/js/common_zTree.js"></script>
    
  • 初始化使用

    
    $(function () {
        //初始化树
        setTimeout(function () {
            let initConfig = {
                "async":true,
                "treeDomId":"areaTree",//节点初始化Id
                "LevelNum": parseInt($("#SysSettingLevelNum").val()),//限制层数,从0开始 未启用
                "ChildNum": 5,//限制子节点个数 未启用
                "dataUrl": "/pro_line/factory_area",//获取节点数据的地址
                "optionsFunction": "",//添加删除重命名方法
                "isShowAddBtn":true,
                "isShowRemoveBtn":true,
                "isShowRenameBtn":true,
            };
            //初始化数据
            common_zTree(initConfig,ajaxCallBack,clickFunc,removeFunc,renameFunc,addFunc);
        },500)
    
    });
    //初始化树完成后回调函数
    function ajaxCallBack() {
        //页面控件保存tId,从而页面加载完成后设置点击事件(弃用)
        let clickTid=$("#AreaTid").val();
        $("#"+clickTid).addClass("curSelectedNode")
        
        //获取treeId
        let clickTreeId=$("#TreeId").val();
        if (clickTreeId!==""){
        //根据treeId 获取节点对象
        var treeObj = $.fn.zTree.getZTreeObj("modalTree");
        var node = treeObj.getNodeByParam("id", clickTreeId);
        //根据节点对象获取tId
        let tId=node.tId
        //根据tId获取节点Id
        let nodeId=tId+"_a"
        //设置点击样式
        $("#"+nodeId).addClass("curSelectedNode")
       }
    }
    var childArr=[];
    function clickFunc(event, treeId, treeNode, clickFlag){
        console.log(treeNode);
        $("#AreaTid").val(treeNode.tId+"_a");
    
        getTreeNodeChildIds(treeNode,childArr);
        console.log(childArr);
        let areaIds=childArr.join(",");
        $("#AreaId").val(areaIds);
        //重新清空
        childArr=[];
        searchData(1)
    }
    
    //获取点击的节点下所有的子节点的Id
    function getTreeNodeChildIds(treeNode) {
        childArr.push("'"+treeNode.id+"'");
        //获取子节点Id
        if (treeNode.children&&treeNode.children.length>0){
            //遍历获取数据
            $(treeNode.children).each(function (i,v) {
                if (v.children&&v.children.length>0) {
                    getTreeNodeChildIds(v)
                }else{
                    childArr.push("'"+v.id+"'");
                }
            })
        }
    }
    

function addFunc(treeNode) {
optionsFunction(treeNode,1,"/pro_line/factory_area/options")
}
function removeFunc(treeId,treeNode) {
optionsFunction(treeNode,2,"/pro_line/factory_area/options")
}
function renameFunc(treeId, treeNode) {
optionsFunction(treeNode,3,"/pro_line/factory_area/options")
}
//自定义操作方法
function optionsFunction(treeNode,options,url) {
}


相关文章

网友评论

    本文标题:第三方依赖库zTree树结构封装使用

    本文链接:https://www.haomeiwen.com/subject/hfhvlktx.html