layui下篇-进阶应用

layui学习笔记

2.17、表单对象form

  • 通过下面的一个form表单说明一下layui关于表单的一些属性与方法

    <!docutype html>
    <html>
        <head>
        	<!--引入相关layui资源文件-->
        </head>
        <body>
            <form class="layui-form" action="" lay-filter="myForm">
    			<div class="layui-form-item">
    				<label class="layui-form-label">用户名:</label>
    				<div class="layui-input-block">
    					<input type="text" name="uname" lay-verify="title"
    						autocomplete="off" placeholder="请输入用户名" class="layui-input">
    				</div>
    			</div>
    			<div class="layui-form-item">
    				<label class="layui-form-label">密码:</label>
    				<div class="layui-input-block">
    					<input type="password" name="upwd" lay-verify="title"
    						autocomplete="off" placeholder="请输入密码" class="layui-input">
    				</div>
    			</div>
    			<div class="layui-form-item">
    			    <div class="layui-inline">
    			      <label class="layui-form-label">手机:</label>
    			      <div class="layui-input-inline">
    			        <input type="tel" name="phone" lay-verify="required|phone" autocomplete="off" class="layui-input">
    			      </div>
    			    </div>
    			    <div class="layui-inline">
    			      <label class="layui-form-label">邮箱:</label>
    			      <div class="layui-input-inline">
    			        <input type="text" name="email" lay-verify="email" autocomplete="off" class="layui-input">
    			      </div>
    			    </div>
    		  	</div>
    		  	
    		  	<div class="layui-form-item">
    			    <label class="layui-form-label">爱好:</label>
    			    <div class="layui-input-block">
    			      <select name="aihao" lay-filter="aihao" lay-search="" id="aihao">
    			        <option value="写作">写作</option>
    			        <option value="阅读">阅读</option>
    			        <option value="游戏">游戏</option>
    			      </select>
    			    </div>
      			</div>
      			
      			<div class="layui-form-item">
    			    <label class="layui-form-label">性别:</label>
    			    <div class="layui-input-block">
    			      <input type="radio" lay-filter="man" name="sex" value="" title="" checked="">
    			      <input type="radio" lay-filter="man" name="sex" value="" title="">
    			      <input type="radio" name="sex" value="" title="禁用" disabled="">
    			    </div>
      			</div>
      
      			<div class="layui-form-item" pane="">
    			    <label class="layui-form-label">兴趣:</label>
    			    <div class="layui-input-block">
    			      <input type="checkbox" value="写作" lay-filter="like" name="like" lay-skin="primary" title="写作" checked="">
    			      <input type="checkbox" value="阅读" lay-filter="like" name="like" lay-skin="primary" title="阅读">
    			      <input type="checkbox" value="游戏" lay-filter="like" name="like" lay-skin="primary" title="游戏">
    			    </div>
      			</div>
      			
      			<div class="layui-form-item">
    			    <label class="layui-form-label">是否在职:</label>
    			    <div class="layui-input-block">
    			      <input type="checkbox" lay-filter="switchFilter" name="switch" lay-skin="switch" lay-text="是|否">
    			    </div>
      			</div>
      			
      			<div class="layui-form-item">
    			    <div class="layui-input-block">
    			      <button type="submit" class="layui-btn" lay-submit lay-filter="demo1">立即提交</button>
    			      <button type="reset" class="layui-btn layui-btn-primary">重置</button>
    			      <button type="button" class="layui-btn layui-btn-primary" id="myButton">新增一个下拉框选项</button>
    			      <button type="button" class="layui-btn layui-btn-primary" id="valueButton">获取表单值</button>
    			    </div>
      			</div>
    		</form>
            
            <script src="js资源路径"></script>
        </body>
    </html>
    
  • 监听提交事件

    lay-submit触发提交校验

    触发校验条件

    ​ 1)需要校验的form标签要具备校验属性lay-verify ,例如lay-verify=“required|phone” 表示不能为空且必须为手机号格式

    ​ 2)提交按钮要有lay-submit属性

    表单提交事件

    <script>
       form.on('submit(demo1)', function(data){ // demo1为要监听的提交按钮的lay-filter值
                    	  console.log(data.elem) //被执行事件的元素DOM对象,一般为button对象
                    	  console.log(data.form) //被执行提交的form对象,一般在存在form标签时才会返回
                    	  console.log(data.field) //当前容器的全部表单字段,名值对形式:{name: value}
                    	  return false; //阻止表单跳转。如果需要表单跳转,去掉这段即可。
                    	}); 
    </script>
    
  • 监听下拉框改变事件

    <script>
        form.on('select(aihao)', function(data){ // man为select标签lay-filter属性值
                    	  console.log(data.elem); //得到select原始DOM对象
                    	  console.log(data.value); //得到被选中的值
                    	  console.log(data.othis); //得到美化后的DOM对象
                    	}); 
    </script>
    
  • 监听复选框选中事件

    <script>
    	form.on('checkbox(like)', function(data){ // like为checkbox每一个子项的lay-filter属性值
                    	  console.log(data.elem); //得到checkbox原始DOM对象
                    	  console.log(data.elem.checked); //是否被选中,true或者false
                    	  console.log(data.value); //复选框value值,也可以通过data.elem.value得到
                    	  console.log(data.othis); //得到美化后的DOM对象
                    	});     
    </script>
    
  • 监听开关事件

    form.on('switch(switchFilter)', function(data){
                    	  console.log(data.elem); //得到checkbox原始DOM对象
                    	  console.log(data.elem.checked); //开关是否开启,true或者false
                    	  console.log(data.value); //开关value值,也可以通过data.elem.value得到
                    	  console.log(data.othis); //得到美化后的DOM对象
                    	});
    
  • 关于表单元素渲染问题

    元素渲染问题(通过给下拉框添加一个选项案例说明)
    1、layui表单的下拉框、复选框、单选框是经过layui渲染之后展示给我们的,并且该过程是在页面加载时完成的,那么当我们再页面加载完成以后再向该页面加入以上三个组件时,若我们不刷新页面效果是不出来的,必须要将这些改变渲染出来,使用form.render(filter属性值) 方法就可以实现不刷新页面而使改变生效。

    如下图所示,通过一个按钮动态的给select添加子项option
    在这里插入图片描述

    js代码如下:

    $("#myButton").click(function() {
                    	// 得到select
                    	var $ah = $("#aihao");
                    	// alert($ah.html());
                    	$ah.append("<option value=运动>运动</option>");
                    	// alert($ah.html());
                    	// 渲染添加元素,此步骤必须
                    	form.render("select");
                    });
    
  • 表单初始化(元素赋值,注意复选框不适合该种方式,需要单独赋值)

    // 表单赋值
                    form.val("myForm", { //formTest 即 class="layui-form" 所在元素属性 lay-filter="" 对应的值
                    	  "uname": "马目沙" // "name": "value"
                    	  ,"upwd": "333"
                    	  ,"phone": "18899532311"
                    	  ,"email": "18899532311@163.com"
                    	  ,"aihao": "游戏"
                    	  ,"sex": "男"
                    	  ,"switch": "是"
                    	});
    
  • 表单复选框赋值

    // 特例,给复选框赋值
                   var hobby = "篮球,唱歌,阅读"; // 后台查到的值
                   var hobbies = hobby.split(","); // 逗号分割取出值
                   // 得到复选框的所有值
                   var $like = $("[name='like']");
                   // 比较数据库数据与复选框数据
                   $.each(hobbies,function(i,item) {
                	   // alert("item="+item);
                	   $.each($like,function(j,jtem) {
                		   var $jtem = $(jtem); // $like使jquery对象,但是它的每一个元素是dom对象,将其转为jquery对象
                		   if(item == $jtem.val()) {
                			   $jtem.attr("checked","checked");
                		   };
                	   });
                   });
                   
                   /* $.each(hobbies,function(i,item) {
                	   // alert("item="+item);
                	   $.each($like,function(j,jtem) {
                		   // alert(jtem.getAttribute("value"));
                		   if(item == jtem.getAttribute("value")) {  // 使用dom对象方法
                			   jtem.setAttribute("checked","checked");
                		   };
                	   });
                   }); */
                   
                   form.render(); // 重新渲染
    

2.18、弹出层【重点】

  • 什么是弹出层?

    其实之前js中我们就一直在使用弹出层(alert()语句就是弹出层),只是显示不太美观而已。需要注意的是弹出层优先级是大于它的背景层的,比如我们不关闭alert()提示时我们是点不了页面其他元素的。

  • 弹出层分类

    1、首先创建一些按钮,通过按钮的单击事件来触发弹出层效果

    		<button type="button" class="layui-btn" id="btn1">layer.alert</button>
    		<button type="button" class="layui-btn" id="btn2">layer.confirm</button>
    		<button type="button" class="layui-btn" id="btn3">layer.msg</button>
    		
    		<div class="layui-btn-container" style="margin-top:100px; margin-left:100px">
    			<button type="button" class="layui-btn" id="btn4">layer.tips</button>
    		</div>
    		<div class="layui-btn-container" style="margin-top:100px; margin-left:100px">
    			<button type="button" class="layui-btn" id="btn5">layer弹出一段h5</button>
    			<button type="button" class="layui-btn" id="btn6">layer弹出iframe</button>
    		</div>
    		
    		<div id="myDiv" style="display: none">
    			<div class="site-title">
          			<fieldset><legend><a name="theme">主题</a></legend></fieldset>
        		</div>
    			<button type="button" type="button" class="layui-btn layui-btn-primary">原始按钮</button>
    	        <button type="button" type="button" class="layui-btn">默认按钮</button>
    	        <button type="button" type="button" class="layui-btn layui-btn-normal">百搭按钮</button>
    	        <button type="button" type="button" class="layui-btn layui-btn-warm">暖色按钮</button>
    	        <button type="button" type="button" class="layui-btn layui-btn-danger">警告按钮</button>
    	        <button type="button" type="button" class="layui-btn layui-btn-disabled">禁用按钮</button>
    	        <a class="layui-btn">AAAA</a>
    		</div>
    

    2、引入弹出层模块

    layui.use(["element","jquery","form","layer"],function() {
    				var element = layui.element;
    				var $ = layui.jquery;
    				var form = layui.form;
    				var layer = layui.layer;
    }
    

    3、提示框

    $("#btn1").click(function() {
    					// layer.alert('加了个图标', {icon: 1}); // 该方式点击确定会自动关闭弹层不需要调用close(index)
    					layer.alert("操作成功",{icon: 1},function(index) {
    						  layer.close(index);
    					});
    				});
    

    效果:
    在这里插入图片描述

    确认框

    $("#btn2").click(function() {
    					layer.confirm("确认提交吗?",{icon: 3,title:"提示"},function(index) {
    						layer.close(index);
    					});
    				});
    

    效果:
    在这里插入图片描述

    提示框:类似于我们第一次打开一个应用时的引导

    $("#btn4").click(function() {
    					layer.tips("在上面", "#btn4", {
    						  tips: 2 // 1、2、3、4分别代表上右下左方向
    						});
    				});
    

    效果:
    在这里插入图片描述

    open()方法,最重要的方法,使用该方法可以打开一个table、一个页面,是前后端交互的直接入口

    				// 弹出层open方法:弹出一段h5页面
    				$("#btn5").click(function() {
    					layer.open({
    						
    						/*
    							1、open方法默认的type是0,打开的弹层效果类似与layer.alert()弹层
    							且只有type为0时可以加图标icon,参照与layer.alert()弹层图标,且
    							将content当作字符串处理
    							2、open的type为1时若content是一个h5格式的字符串,会将该字符串渲染
    							为对应的h5显示;
    							3、open的type为2时表示iframe,content传递一个url,将该url对应的页面显示为iframe
    						*/
    						type: 1,
    						title: "提示",
    						content: $("#myDiv"),
    						area: ["500px","300px"], // 宽高
    						move: false, // 是否可以拖动该弹出层
    						// 给窗口设置按钮并设置回调函数
    						btn: ['确认', '取消'],
    					    yes: function(index, layero){
    					    //按钮【按钮一】的回调
    					    	layer.close(index);
    					  	},
    					  	btn2: function(index, layero){
    					    // return false 开启该代码可禁止点击该按钮关闭
    					  	},
    					});
    				});
    

    打开一个iframe:

    				// 弹出层open方法:iframe
    				$("#btn6").click(function() {
    					layer.open({
    						type: 2,
    						title: "提示",
    						content: "form2.html", // 页面地址
    						area: ["1000px","500px"],
    						btn: ['确认', '取消'],
    					    yes: function(index, layero){
    					    //按钮【按钮一】的回调
    					    	layer.close(index);
    					  	},
    					  	btn2: function(index, layero){
    					    // return false 开启该代码可禁止点击该按钮关闭
    					  	},
    					  	move: false,
    					});
    				});
    

2.19、数据表格【重点】

数据表格是我们在各种管理系统中必用到的组件,来看看layui的数据表格吧

  • 初始化数据表格

    1、准备好数据源,这里准备一个json文件,实际开发中只要是json格式的数据都可以

    {
      "code": 0
      ,"msg": ""
      ,"count": 8
      ,"data": [{
        "id": "10001"
        ,"username": "杜甫"
        ,"email": "xianxin@layui.com"
        ,"sex": "男"
        ,"city": "浙江杭州"
        ,"sign": "点击此处,显示更多。当内容超出时,点击单元格会自动显示更多内容。"
        ,"experience": "116"
        ,"ip": "192.168.0.8"
        ,"logins": "108"
        ,"joinTime": "2016-10-14"
        ,"LAY_CHECKED": true
      }, {
        "id": "10002"
        ,"username": "李白"
        ,"email": "xianxin@layui.com"
        ,"sex": "男"
        ,"city": "浙江杭州"
        ,"sign": "君不见,黄河之水天上来,奔流到海不复回。 君不见,高堂明镜悲白发,朝如青丝暮成雪。 人生得意须尽欢,莫使金樽空对月。 天生我材必有用,千金散尽还复来。 烹羊宰牛且为乐,会须一饮三百杯。 岑夫子,丹丘生,将进酒,杯莫停。 与君歌一曲,请君为我倾耳听。(倾耳听 一作:侧耳听) 钟鼓馔玉不足贵,但愿长醉不复醒。(不足贵 一作:何足贵;不复醒 一作:不愿醒/不用醒) 古来圣贤皆寂寞,惟有饮者留其名。(古来 一作:自古;惟 通:唯) 陈王昔时宴平乐,斗酒十千恣欢谑。 主人何为言少钱,径须沽取对君酌。 五花马,千金裘,呼儿将出换美酒,与尔同销万古愁。"
        ,"experience": "12"
        ,"ip": "192.168.0.8"
        ,"logins": "106"
        ,"joinTime": "2016-10-14"
        ,"LAY_CHECKED": true
      }, {
        "id": "10003"
        ,"username": "王勃"
        ,"email": "xianxin@layui.com"
        ,"sex": "男"
        ,"city": "浙江杭州"
        ,"sign": "人生恰似一场修行"
        ,"experience": "65"
        ,"ip": "192.168.0.8"
        ,"logins": "106"
        ,"joinTime": "2016-10-14"
      }, {
        "id": "10004"
        ,"username": "李清照"
        ,"email": "xianxin@layui.com"
        ,"sex": "女"
        ,"city": "浙江杭州"
        ,"sign": "人生恰似一场修行"
        ,"experience": "666"
        ,"ip": "192.168.0.8"
        ,"logins": "106"
        ,"joinTime": "2016-10-14"
      }, {
        "id": "10005"
        ,"username": "冰心"
        ,"email": "xianxin@layui.com"
        ,"sex": "女"
        ,"city": "浙江杭州"
        ,"sign": "人生恰似一场修行"
        ,"experience": "86"
        ,"ip": "192.168.0.8"
        ,"logins": "106"
        ,"joinTime": "2016-10-14"
      }, {
        "id": "10006"
        ,"username": "贤心"
        ,"email": "xianxin@layui.com"
        ,"sex": "男"
        ,"city": "浙江杭州"
        ,"sign": "人生恰似一场修行"
        ,"experience": "12"
        ,"ip": "192.168.0.8"
        ,"logins": "106"
        ,"joinTime": "2016-10-14"
      }]
    }  
    

    2、准备表格容器与相关按钮

    <table class="layui-hide" id="userTable" lay-filter="userTable"></table>
    <!-- 左侧工具栏 -->
    <div class="layui-btn-group layui-hide" id="btnGroup" >
    	<button class="layui-btn layui-btn-xs" id="add" lay-event="add">新增</button>
    	<button class="layui-btn layui-btn-xs" id="delete" lay-event="delete"></button>
    	<button class="layui-btn layui-btn-xs" lay-event="getRow">获取已选中行</button>
    	<button class="layui-btn layui-btn-xs" lay-event="refresh">刷新</button>
    </div>
    	
    		
    <!-- 右侧列工具条 -->
    <div class="layui-btn-group layui-hide" id="btnGroupRight" >
    	<button class="layui-btn layui-btn-xs" lay-event="update">编辑</button>
    	<button class="layui-btn layui-btn-xs" lay-event="del">删除</button>
    </div>
    

    3、初始化表格,注释中给出了表格相关属性解释

    layui.use(["jquery","form","layer","table"], function() {
    				var $ = layui.jquery;
    				var form = layui.form;
    				var layer = layui.layer;
    				var table = layui.table;
    				
    				// 初始化表格
    				table.render({
    					elem: "#userTable", // 绑定的table标签的id属性选择器
    					url: "resources/json/userdata.json", // 数据接口,开发中推荐
    					title: "用户数据表", // 导出数据时文件名
    					page: true, // 是否开启分页,默认分页大小10
    					
    					/*
    						toolbar:是否开启根据栏,支持四种类型参数
    						1、toolbar: '#toolbarDemo' //指向自定义工具栏模板选择器,一般写一个按钮组,将外层div的id选择器作为toolbar的值
    						2、toolbar: '<div>xxx</div>' //直接传入工具栏模板字符
    						3、toolbar: true //仅开启工具栏,不显示左侧模板
    						4、toolbar: 'default' //让工具栏左侧显示默认的内置模板,添加、修改、删除
    						注意:若需要“列显示隐藏”、“导出”、“打印”等功能,则必须开启该参数
    					*/
    					toolbar: "#btnGroup",
    					// width: 300,  设置容器宽度(类型Number),table容器默认宽度是跟随它的父元素铺满,你也可以设定一个固定值,当容器中的内容超出了该宽度时,会自动出现横向滚动条。
    					// height: 300, 设置table容器高度(类型number)
    					// cellMinWidth: 300, 设置表格全局单元格最小宽度,默认60,其优先级低于表头参数中的 minWidth
    					
    					/* done: function () {
    						alert("hello");
    					}, 表格渲染完毕后的回调函数*/
    					
    					/* limit: 5, // 分页大小,值务必对应 limits 参数的选项。
    					limits: [5,10,15,20], */
    					cols: [[
    						
    						/*
    							type:设定列类型,可选值如下:
    							1、normal:常规列,无需设定
    							2、checkbox:复选框
    							3、radio:单选框
    							
    							fixed:固定列,可选值如下:
    							1、left:固定在最左边且定义在clos第一个,不随着滚动条滚动
    							2、right:固定在最右边且定义在clos最后一个,不随着滚动条滚动
    						*/
    						
    						{type: 'checkbox', fixed: 'left'} 
    					      
    					      /*
    					      		1、filed属性分别与json数据的key一一对应
    					      		2、titlt为表格的列名
    					      		3、width为表格该列的宽度
    					      */
    					      
    					      /*
    					      	field:设置字段名,一般与数据库字段名相同
    					      	title:表格列名
    					      	width: 列宽
    					      	LAY_CHECKED:打开表格是否选中该列(默认false),必须开启复选框才生效且数据库中也要有该字段且值为true
    					      */
    					      ,{field:'id', title:'ID', width:80}
    						  
    					      ,{field:'username', title:'用户名', width:120, edit: true, event: "edit"}
    					      ,{field:'email', title:'邮箱', width:150}
    					      ,{field:'sex', title:'性别', width:80}
    					      ,{field:'city', title:'城市', width:100}
    					      ,{field:'sign', title:'签名'}
    					      ,{field:'experience', title:'积分', width:80}
    					      ,{field:'ip', title:'IP', width:120}
    					      // sort:是否可以排序
    					      // unresize:是否禁用拖拽列宽(默认:false)
    					      // edit:单元格是否可编辑(默认false,只支持text)
    					      // event:自定义单元格点击事件名,以便在 tool 事件中完成对该单元格的业务处理
    					      // align:单元格排列样式(默认align,居中),left、right
    					      // templet:模板语法,实现单元格显示自定义
    					      ,{field:'logins', title:'登入次数', width:100, sort: true}
    					      ,{field:'joinTime', title:'加入时间', width:120}
    					   	  // toolbar:单元格绑定工具条模板
    					   	  ,{fixed: "right", title: "操作", toolbar: "#btnGroupRight", width: 150}
    					    ]]
    				});
    }
    

    4、事件监听

    // 监听复选框事件
    				table.on("checkbox(userTable)", function(obj) {
    					alert("已选中!");
    				});
    				
    				// 单元格编辑事件
    				table.on("edit(userTable)", function(obj) {
    					alert("已编辑!");
    				});
    				
    				//触发行单击事件
    				/* table.on('row(userTable)', function(obj){
    				  alert("已单击!");
    				}); */
    				
    				//触发行双击事件
    				table.on('rowDouble(userTable)', function(obj){
    				  alert("已双击!");
    				});
    

    5、工具栏事件监听

    					//头工具栏事件
    				  table.on('toolbar(userTable)', function(obj){
    				    var checkStatus = table.checkStatus(obj.config.id);
    				    switch(obj.event){
    				      case 'add':
    				        alert("add!");
    				      break;
    				      case 'delete':
    				        alert("delete!");
    				      break;
    				      case 'refresh':
    				    	  tableIns.reload({url: "resources/json/userdata.json"})
    				      break;
    				      case 'getRow':
    				    	  var checkStatus = table.checkStatus('userTable'); //idTest 即为基础参数 id 对应的值
    				    	  console.log(checkStatus.data) //获取选中行的数据
    				    	  console.log(checkStatus.data.length) //获取选中行数量,可作为是否有选中行的条件
    				    	  console.log(checkStatus.isAll ) //表格是否全选
    					  break;
    				    }
    				  });
    				
    			
    				
    				//监听行工具事件
    				  table.on('tool(userTable)', function(obj){
    				    var data = obj.data;
    				    //console.log(obj)
    				    if(obj.event === 'del'){
    				      layer.confirm('真的删除行么', function(index){
    				        obj.del();
    				        layer.close(index);
    				      });
    				    } else if(obj.event === 'add'){
    				      layer.prompt({
    				        formType: 2
    				        ,value: data.email
    				      }, function(value, index){
    				        obj.update({
    				          email: value
    				        });
    				        layer.close(index);
    				      });
    				    } 
    				  });
    

2.22、树形组件dtree

  • 树型组件在开发中使用还是很多的,例如权限管理等由层级关系的数据。比较常见的由ztree、dtree等

  • 使用:

    下载:访问dtree官网进行下载

    引入相关文件:layui-ext

在这里插入图片描述
在这里插入图片描述

准备数据源,json格式即可

{
	"code":0,
	"msg":"操作成功",
	"data":[
		{"id":"001","title": "湖南省","last": false,"parentId": "0","checkArr": "0","spread": true},
		{"id":"002","title": "湖北省","last": false,"parentId": "0","checkArr": "0"},
		{"id":"001001","title": "长沙市","last":true,"parentId": "001","checkArr": "0"},
		{"id":"001002","title": "株洲市","last":true,"parentId": "001","checkArr": "0"},
		{"id":"001003","title": "湘潭市","last":true,"parentId": "001","checkArr": "0"},
		{"id":"001004","title": "衡阳市","last":true,"parentId": "001","checkArr": "0"},
		{"id":"001005","title": "郴州市","last":true,"parentId": "001","checkArr": "0"},
		{"id":"002001","title": "武汉市","last":true,"parentId": "002","checkArr": "0"},
		{"id":"002002","title": "黄冈市","last":true,"parentId": "002","checkArr": "0"},
		{"id":"002003","title": "潜江市","last":true,"parentId": "002","checkArr": "0"},
		{"id":"002004","title": "荆州市","last":true,"parentId": "002","checkArr": "0"},
		{"id":"002005","title": "襄阳市","last":true,"parentId": "002","checkArr": "0"}
		]
}

准备树容器承接树

<!-- 
			data-id: 树的加载数据中,根节点对于的parentId的值,如设置了dataFormat:"list",则此属性必输
-->
		<ul id="demoTree" class="dtree" data-id="0"></ul> <!-- 通过dtree的render()方法渲染为树 -->

初始化树,部分重要属性已在注释做了解释与示例

// 级联调用
			layui.extend({
			    dtree: 'resources/layui_ext/dist/dtree'   // {/}的意思即代表采用自有路径,即不跟随 base 路径
			  }).use(['dtree','layer','jquery',"form"], function(){
			    var dtree = layui.dtree;
			    var layer = layui.layer;
			    var $ = layui.jquery;
			    var form = layui.form;
			    
			    // 初始化树
			      /* var DemoTree = dtree.render({
			      elem: "#demoTree", // ul的id值
			      // 使用list风格数据格式参数设置如下
			      url: "resources/json/asyncTree2.json", 
			     
			      // 注意code的状态值,若为list风格,必须为200,原因尚不清楚
			      
			      dataFormat: "list",  //配置data的风格为list
			    }); */
			    
			      var DemoTree = dtree.render({
			      elem: "#demoTree", // ul的id值
			      // 使用layui+list风格数据格式参数设置如下
			      url: "resources/json/asyncTree1.json", // 使用url加载(可与data加载同时存在)
			      dataStyle: "layuiStyle",  //使用layui风格的数据格式
			      dataFormat: "list",  //配置data的风格为list
			      response:{message:"msg",statusCode:0},  //修改response中返回数据的定义
			      checkbar:true, //开启复选框
			      // edit: true,  是否开启节点编辑图标,默认为false
			      // 若想指定哪个节点默认展开则在json文件中使用"spread": true,并且指定下列属性
			      initLevel: "1" , //默认展开层级为1
// 			      ficon: ["2","4"], // 一级图标非叶子、叶子节点图标
// 			      icon: ["2","4"] // 二级图标非叶子、叶子节点图标
// 					line: true 开启树线
// 					skin: "layui" 树主题,默认为"theme"
// 			      menubar: true 开启菜单栏,默认false
// 			      toolbar: true, // 开启工具栏(可编辑模式),默认右键节点呼出
// 			      toolbarWay: "fixed" // 修改工具栏跟在节点右侧
			    });
}

layui学习心得就分享这么多,自己学的也很浅,希望能够帮助到各位,觉得还可以的话就点个关注、点个赞、来个评论来个全套,谢谢各位大佬。代码和笔记已上传至gitee仓库,有兴趣的小伙伴可以下载到本地运行看一下效果。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值