layui 集成 ztree异步加载

首先,layui环境搭建,ztree环境引入
ztree的js和css都要引入,我这里暂时用的是core包在这里插入图片描述>在这里插入图片描述
在这里插入图片描述在这里插入图片描述

静态,一句话就够了

<!-- 左侧菜单树形组件 --><div class="layui-col-md3"><div class="layui-footer "><h1>左侧菜单树形组件</h1><ul id="menuTree" class="ztree"></ul></div></div>

js,这里主要就是格式要跟ztree对应
childNodes[i].isParent = childNodes[i].isParent; 千万不要忽略这个参数

// 定义菜单树的模块
var MenuTree = {init: function () {// 初始化菜单树var setting = {view: {selectedMulti: false},async: {enable: true,url:"youurl",autoParam:["id=node"],otherParam:{"otherParam":"zTreeAsyncTest"},dataFilter: filter},callback: {beforeClick: beforeClick,beforeAsync: beforeAsync,onAsyncError: onAsyncError,onAsyncSuccess: onAsyncSuccess}};function filter(treeId, parentNode, childNodes) {if (!childNodes) return null;for (var i=0, l=childNodes.length; i<l; i++) {childNodes[i].name = childNodes[i].text;childNodes[i].pId = childNodes[i].parentId;childNodes[i].isParent = childNodes[i].isParent;}return childNodes;}function beforeClick(treeId, treeNode) {if (!treeNode.isParent) {alert("请选择父节点");return false;} else {return true;}}var log, className = "dark";function beforeAsync(treeId, treeNode) {className = (className === "dark" ? "":"dark");showLog("[ "+getTime()+" beforeAsync ]&nbsp;&nbsp;&nbsp;&nbsp;" + ((!!treeNode && !!treeNode.name) ? treeNode.name : "root") );return true;}function onAsyncError(event, treeId, treeNode, XMLHttpRequest, textStatus, errorThrown) {showLog("[ "+getTime()+" onAsyncError ]&nbsp;&nbsp;&nbsp;&nbsp;" + ((!!treeNode && !!treeNode.name) ? treeNode.name : "root") );}function onAsyncSuccess(event, treeId, treeNode, msg) {showLog("[ "+getTime()+" onAsyncSuccess ]&nbsp;&nbsp;&nbsp;&nbsp;" + ((!!treeNode && !!treeNode.name) ? treeNode.name : "root") );}function showLog(str) {if (!log) log = $("#log");log.append("<li class='"+className+"'>"+str+"</li>");if(log.children("li").length > 8) {log.get(0).removeChild(log.children("li")[0]);}}function getTime() {var now= new Date(),h=now.getHours(),m=now.getMinutes(),s=now.getSeconds(),ms=now.getMilliseconds();return (h+":"+m+":"+s+ " " +ms);}function refreshNode(e) {var zTree = $.fn.zTree.getZTreeObj("menuTree"),type = e.data.type,silent = e.data.silent,nodes = zTree.getSelectedNodes();if (nodes.length == 0) {alert("请先选择一个父节点");}for (var i=0, l=nodes.length; i<l; i++) {zTree.reAsyncChildNodes(nodes[i], type, silent);if (!silent) zTree.selectNode(nodes[i]);}}$.fn.zTree.init($("#menuTree"), setting);$("#refreshNode").bind("click", {type:"refresh", silent:false}, refreshNode);$("#refreshNodeSilent").bind("click", {type:"refresh", silent:true}, refreshNode);$("#addNode").bind("click", {type:"add", silent:false}, refreshNode);$("#addNodeSilent").bind("click", {type:"add", silent:true}, refreshNode);}
};

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/61318.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

RabbitMQ 发布确认机制

发布确认模式是避免消息由生产者到RabbitMQ消息丢失的一种手段 发布确认模式 原理说明实现方式开启confirm&#xff08;确认&#xff09;模式阻塞确认异步确认 总结 原理说明 生产者通过调用channel.confirmSelect方法将信道设置为confirm模式&#xff0c;之后RabbitMQ会返回Co…

Linux下 时间戳的转化

Linux下一般用date 记录当前时间&#xff0c;尤其是我们需要保存测试log的时候&#xff0c;或者设计一个跑多长时间的脚本都需要时间戳。下面看一下平时最常用的几种写法 1 date “%Y-%m-%d %H:%M” 显示具体时间 2 修改时间 date -s 3 date %s :当前时间的时间戳 显示具体时…

ruoyi-cloud微服务新建子模块

ruoyi-cloud微服务新建子模块 1、复制system模块 直接复制 modules下面已有的system模块&#xff0c;改名为 test 2、在modules下的 pom.xml文件中添加子模块 3、进入 test模块修改 pom.xml 把原有的system 修改成test 4、修改对应的包名、目录名和启动应用程序为test 5、修…

在vue中使用echarts

在Vue中使用ECharts可以按照以下步骤进行&#xff1a; 1. 安装ECharts&#xff1a; 在Vue项目的根目录下&#xff0c;执行以下命令安装ECharts依赖&#xff1a; npm install echarts --save2.引入echart import * as echarts from echarts引入echart有全部引入和按需引入&a…

unity修改单个3D物体的重力的大小该怎么处理呢?

在Unity中修改单个3D物体的重力大小可以通过以下步骤实现&#xff1a; 创建一个新的C#脚本来控制重力&#xff1a; 首先&#xff0c;创建一个新的C#脚本&#xff08;例如&#xff1a;GravityModifier.cs&#xff09;并将其附加到需要修改重力的3D物体上。在脚本中&#xff0c…

Vue3 第五节 一些组合式API和其他改变

1.provide和inject 2.响应式数据判断 3.Composition API的优势 4.新的组件 5.其他改变 一.provide和inject 作用&#xff1a;实现祖与后代组件间通信 套路&#xff1a;父组件有一个provide选项来提供数据&#xff0c;后代组件有一个inject选项来开始使用这些数据 &…

【Maven】依赖范围、依赖传递、依赖排除、依赖原则、依赖继承

【Maven】依赖范围、依赖传递、依赖排除、依赖原则、依赖继承 依赖范围 依赖传递 依赖排除 依赖原则 依赖继承 依赖范围 在Maven中&#xff0c;依赖范围&#xff08;Dependency Scope&#xff09;用于控制依赖项在编译、测试和运行时的可见性和可用性。通过指定适当的依赖…

uniapp-原生地图截屏返回base64-进行画板编辑功能

一、场景 vue写uniapp打包安卓包&#xff0c;实现原生地图截屏&#xff08;andirod同事做的&#xff09;-画板编辑功能 实现效果&#xff1a; 二、逻辑步骤简略 1. 由 原生地图nvue部分&#xff0c;回调返回 地图截屏生成的base64 数据&#xff0c; 2. 通过 uni插件市场 im…

【pinia】Pinia入门和基本使用:

文章目录 一、 什么是pinia二、 创建空Vue项目并安装Pinia1. 创建空Vue项目2. 安装Pinia并注册 三、 实现counter四、 实现getters五、 异步action六、 storeToRefs保持响应式解构七、基本使用&#xff1a;【1】main.js【2】store》index.js【3】member.ts 一、 什么是pinia P…

flink如何监听kafka主题配置变更

背景&#xff1a; 从前一篇文章我们知道flink消费kafka主题时是采用的手动assign指定分区的方式&#xff0c;这种消费方式是不处理主题的rebalance操作的&#xff0c;也就是消费者组中即使有消费者退出或者进入也是不会触发消费者所消费的分区的&#xff0c;那么疑问就来了&am…

PHP实现在线进制转换器,10进制,2、4、8、16、32进制转换

1.接口文档 2.laravel实现代码 /*** 进制转换计算器* return \Illuminate\Http\JsonResponse*/public function binaryConvertCal(){$ten $this->request(ten);$two $this->request(two);$four $this->request(four);$eight $this->request(eight);$sixteen …

Redis的AOF持久化

除了RDB持久化功能之外&#xff0c;Redis还提供了AOF持久化功能。与RDB 持久化通过保存数据库中的键值对来记录数据库状态不同&#xff0c;AOF持久化是通过保存Redis服务器所执行的写命令来记录数据库状态的&#xff0c;如下图所示。 举个例子&#xff0c;如果我们对空白的数据…