z-tree树节点的增删改

z-Tree是一款基于jquery的前端树插件,优异的性能、灵活的配置、多种功能的组合是 zTree 最大优点。

兼容 IE、FireFox、Chrome、Opera、Safari 等浏览器

附上官方中文文档:http://www.treejs.cn/v3/main.php

公司项目中用到了z-tree,左侧树节点与右侧表格信息对应,当右侧表格中数据变化时,左侧树也需要改变,比如右侧表格中系统名称为lvs的数据删除掉,左侧的lvs树节点需要同步删除,最开始的做法是左侧树刷新,但是这样做很不友好,而且当数据量大的时候会更不利于操作,因为每次刷新树节点都是合并状态,还需要一个个打开找到刚刚操作的位置。

最好是左侧树删除的时候不刷新,我想到了树节点自带的删除操作,也就是前端删除

z-tree树节点的增删改_第1张图片

删除:

调用删除接口成功后

success: function (res) {                                   
    if (res.state === "success") {
        $('#table').bootstrapTable("refresh");//右侧表格刷新                             
        var zTree = $.fn.zTree.getZTreeObj("tree");//获取到树节点对象
        for(var i = 0; i < rows.length; i++){
            //rows是一个数组,为选中的被删除数据,遍历rows,根据数据的id获取到树节点数据
            var node = zTree.getNodeByParam("id", rows[i].id, null);
            //利用z-tree提供的removeNode方法删除树节点
            zTree.removeNode(node);
        }
     } else {
                                           
     }
}, error: function (res) {
                                                                            
}

新增:

调用新增接口成功后,需要后台服务返回新增的节点数据

success: function (res) {                                   
    if (res.state === "success") {
        $('#table').bootstrapTable("refresh");//右侧表格刷新                             
        var zTree = $.fn.zTree.getZTreeObj("tree");//获取到树节点对象
        //获取到选中的树节点,也就是新增的节点的父节点,正常情况下都是当前选中的节点
        var nodes = zTree.getSelectedNodes()[0];
        //后台服务返回的新增成功的节点,Object类型
        var newNode = JSON.parse(res.content)[0]  
        //利用z-tree提供的addNodes方法进行新增                                     
        treeNode = zTree.addNodes(nodes, newNode,true);
     } else {
                                           
     }
}, error: function (res) {
                                                                            
}

修改:

调用修改接口成功后,需要后台服务返回修改后的新数据

success: function (res) {                                   
    if (res.state === "success") {
        $('#table').bootstrapTable("refresh");//右侧表格刷新                             
        var zTree = $.fn.zTree.getZTreeObj("tree");//获取到树节点对象
        //获取到选中的树节点,也就是修改的节点的父节点,正常情况下都是当前选中的节点
        var nodes = zTree.getSelectedNodes()[0];
        //通过id获取被修改节点
        var node = zTree.getNodeByParam("id", id, null);                               
        //利用z-tree提供的updateNode方法进行修改                                
        zTree.updateNode(node);
     } else {
                                           
     }
}, error: function (res) {
                                                                            
}

【右上角点个赞,谢谢】

你可能感兴趣的:(个人总结)