热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

ZTree工具类全面汇总:实现节点的增删改及后台提交功能

本文全面总结了ZTree工具类的使用方法,详细介绍了如何实现节点的增加、删除、修改以及后台数据提交等功能。通过实例代码和具体操作步骤,帮助开发者高效地掌握ZTree的各类操作,提升开发效率。此外,还提供了常见问题的解决方案,如在SpringBoot集成X-admin2.2时遇到的Layui字体图标显示问题。

ZTree工具类汇总,包括:新增、编辑和删除节点,并提交后台

相关阅读:

X-admin2.2中switch开关的监听,以及属性值获取和更改状态等操作

Spring Boot集成X-admin2.2时,Layui字体图标无法正常显示或乱码问题解决方法

X-admin2.2表单提交方式及注意事项

Spring Boot 踩坑系列之Error resolving template

Maven项目中引入net.sf.json.JSONObject依赖jar包

最近在基于Spring Boot+X-admin2.2(LayUi)+framemark开源一个后台管理系统,其中部门管理部分需要使用属性菜单,整理一下ZTree的使用工具类,供大家参考。

有需要功能完整代码的可以添加右侧公众号“十点数据”获取。

代码如下:

var ZTreeUtils = {};
(function(ZTreeUtils) {
    var nodeId = null;// 当前点击节点的ID
    var nodeName = null;// 当前点击节点的名称
    var addNodeUrl = null;// 添加节点时调用的后台URL;
    var delNodeUrl = null;// 删除节点时调用的URL;
    var treeId = null;// 当前操作的树标签的ID属性值;
    var table = null;
    var tableIdValue = null;
    ZTreeUtils.tree = function(nodeUrl, adNodeUrl, deNodeUrl, treeId,
            tableObject, tableId) {
        table = tableObject
        tableIdValue = tableId
        addNodeUrl = adNodeUrl;
        delNodeUrl = deNodeUrl;
        treeId = treeId;
        var setting = {
            view : {
                selectedMulti : false
            },
            check : {
                enable : false
            },
            data : {
                simpleData : {
                    enable : true
                }
            },
            edit : {
                enable : false
            },
            callback : {
                onClick : ZTreeUtils.onClick
            }
        };
        var result = Ajaxget.excute(nodeUrl, false, null, false);
        $(document).ready(function() {
            $.fn.zTree.init($("#" + treeId), setting, result.data);
        });
    }
    //点击节点 
    ZTreeUtils.OnClick= function(e, treeId, treeNode) {
        nodeId = treeNode.id;
        nodeName = treeNode.name;
        ("#nodeId").val(nodeId);
        table.reload(tableIdValue, { // 此处是上文提到的 初始化标识id
            where : {
                nodeId : nodeId
            }
        });
    }
    // 添加节点;
    ZTreeUtils.addNode = function() {
        if (ZTreeUtils.isClick()) {
            xadmin.open("新增节点", addNodeUrl + "?id=0" + "&parentId=" + nodeId,
                    700, 305);
        }
    }

    // 编辑节点;
    ZTreeUtils.editNode = function() {
        // addNodeUrl:后台请求URL;
        if (ZTreeUtils.isClick()) {
            xadmin.open("编辑[" + nodeName + "]节点", addNodeUrl + "?id=" + nodeId
                    + "&parentId=0", 700, 305);
        }
    }
    // 删除一个节点;
    ZTreeUtils.delNode = function() {
        // delNodeUrl:后台请求URL;
        var ids = [];
        if (ZTreeUtils.isClick()) {
            ids.push($("#nodeId").val());
            layer.confirm("确认要删除[" + nodeName + "]节点吗?", function(index) {
                data = {};
                data["id"] = ids.join(",");// 数组转为字符串;
                result = Ajaxget.excute(delNodeUrl, false, data, true)// 发同步请求,把数据提交给后台;
                if (result["sucess"] == "true" || result["sucess"] == true) {// 发异步删除数据
                    window.location.reload();// 刷新当前页面
                    layer.msg("已删除[" + nodeName + "]节点!", {
                        icon : 1,
                        time : 2000
                    });
                }
            });
        }
    }
    ZTreeUtils.isClick = function() {
        var nodeId = ("#nodeId").val();
        if (nodeId == null || nodeId == "" || nodeId == undefined) {
            layer.msg("请选择所要处理的部门节点 ", {
                icon : 6,
                time : 2000
            });
            return false;
        } else {
            return true;
        }
    }
})(ZTreeUtils);

Ajax提交工具类代码如下:

var Ajaxget = {};
(function(Ajaxget) {
          Ajaxget.excute = function(url, async, values, toJson) {
        console.log(url);
        console.log(values);
        var data = {};
        $.ajax({
            type : "GET",
            async : async,// 要求为Boolean类型的参数,默认设置为true,所有请求均为异步请求。如果需要发送同步请求,请将此选项设置为false。注意,同步请求将锁住浏览器,用户其他操作必须等待请求完成才可以执行。
            url : url,
            data : values,
            dataType : "json",
            success : function(result) {
                // $("#resText").empty(); // 清空resText里面的所有内容
                data = result;
                console.log(data);
            },
            error : function(result) {
                data = result;
                console.log(data);
            }
        });
        if (toJson == true)// 将json字符串格式化为json对象
            data = JSON.parse(data);
        return data;
    };
})(Ajaxget);

最后效果如下图:

demo.png

具有功能如下:

1:树节点的添加、编辑和删除;
2:点击树节点时,刷新右侧用户列表;
3:右侧用户列表中数据的新增、编辑、删除等;
4:用户的查询、导出、打印等;
#X-admin2.2  #Spring Boot  #ZTree  #LayUi

推荐阅读
  • 计算 n 叉树中各节点子树的叶节点数量分析 ... [详细]
  • 2019年后蚂蚁集团与拼多多面试经验详述与深度剖析
    2019年后蚂蚁集团与拼多多面试经验详述与深度剖析 ... [详细]
  • 在MFC开发过程中,利用Windows内置的文件对话框可以显著提高文件操作的效率。本文总结了使用文件对话框进行文件选择和处理的经验,详细介绍了相关API的调用方法和参数设置,如`CFileDialog`类的使用、结构体`OPENFILENAME`的配置以及如何获取选中的文件路径。通过这些技巧,开发者可以快速实现文件的打开、保存等功能,提升应用程序的用户体验。 ... [详细]
  • 在探讨 UniApp 应用中 `offsetHeight` 属性获取的问题时,本文深入分析了在组件挂载阶段通过 `mounted` 生命周期钩子获取元素高度的常见问题及其解决方案。具体而言,文章详细介绍了如何利用 `this.$refs` 引用动态计算不同元素的高度差,并结合 `uni.createSelectorQuery` 方法实现更精确的尺寸获取,以确保在不同设备和平台上的兼容性和准确性。 ... [详细]
  • Typora快捷键使用指南:提升写作效率的必备技巧 ... [详细]
  • 本文探讨了使用JavaScript实现多种经典排序算法的高效方法,包括冒泡排序、选择排序、插入排序、归并排序和快速排序。为了确保代码的结构清晰和可维护性,我们首先定义了一个 `ArrayList` 类,该类中包含了待排序的数组声明。通过这种方式,我们不仅能够更好地组织代码,还能提高算法的执行效率和可读性。此外,我们还对每种排序算法进行了详细的性能分析和优化建议,以帮助开发者在实际应用中选择最合适的排序方法。 ... [详细]
  • 利用C#技术实现Word文档的动态生成与编辑
    本文通过一个简单的示例,介绍了如何使用C#语言实现Word文档的动态生成与编辑功能。文章详细阐述了在项目中引用Word动态库的方法,并通过具体代码示例展示了如何创建和操作Word表格。此内容旨在为初学者提供参考和学习资料,欢迎读者提出宝贵意见和建议。 ... [详细]
  • Java 零基础入门:SQL Server 学习笔记(第21篇)
    Java 零基础入门:SQL Server 学习笔记(第21篇) ... [详细]
  • 深入解析Spring Boot自动配置机制及其核心原理
    Spring Boot 的自动配置机制是其核心特性之一,旨在简化开发过程并提高效率。本文将深入探讨这一机制的工作原理,解释其如何通过智能化的类路径扫描和条件注解实现自动装配。通过对 Spring Boot 自动配置的详细解析,读者将能够更好地理解和应用这一强大功能,从而在实际项目中更加高效地利用 Spring Boot。 ... [详细]
  • 技术日志:深入探讨Spark Streaming与Spark SQL的融合应用
    技术日志:深入探讨Spark Streaming与Spark SQL的融合应用 ... [详细]
  • 深入解析 Android Drawable:第六阶段进阶指南 ... [详细]
  • 本文深入探讨了 `ExpressionChangedAfterItHasBeenCheckedError` 错误的原因及其解决方案。通过分析 Angular 的变更检测机制,详细解释了该错误的发生条件,并提供了多种有效的应对策略,帮助开发者在实际开发中避免这一常见问题。 ... [详细]
  • 开发心得:利用 Redis 构建分布式系统的轻量级协调机制
    开发心得:利用 Redis 构建分布式系统的轻量级协调机制 ... [详细]
  • 在百度广告中实现JavaScript代码的有效触发,特别是在滚动加载场景下,存在一定的技术挑战。通常情况下,百度广告的代码在页面完全加载后调用可能会导致显示异常或功能失效。针对这一问题,可以尝试使用事件监听器来动态检测滚动位置,并在合适的时机手动调用广告加载函数。此外,确保广告代码与页面其他脚本兼容也是关键。建议参考官方文档或社区案例,以获取更多具体的解决方案和技术支持。 ... [详细]
  • 在Spring Boot项目中,若遇到JSP页面中文显示异常的问题,可以通过配置`application.yml`文件来解决。具体设置如下:在`server.tomcat.uri-encoding`项中指定编码为UTF-8,并确保`spring.http.encoding`也配置为UTF-8,以实现全链路的字符集统一,从而有效避免中文乱码现象。此外,建议检查JSP文件本身的编码格式,确保其与应用配置一致,进一步提升页面显示的稳定性与准确性。 ... [详细]
author-avatar
手机用户2602905043
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有