layui使用总结

1

//config的设置是全局的
layui.config({
  base: '/res/js/' //假设这是你存放拓展模块的根目录
}).extend({ //设定模块别名
  mymod: 'mymod' //如果 mymod.js 是在根目录,也可以不用设定别名
  ,mod1: 'admin/mod1' //相对于上述 base 目录的子目录
});
//你也可以忽略 base 设定的根目录,直接在 extend 指定路径(主要:该功能为 layui 2.2.0 新增)
layui.extend({
  mod2: '{/}http://cdn.xxx.com/lib/mod2' // {/}的意思即代表采用自有路径,即不跟随 base 路径
})
 
//使用拓展模块
layui.use(['mymod', 'mod1'], function(){
  var mymod = layui.mymod
  ,mod1 = layui.mod1
  ,mod2 = layui.mod2;
  
  mymod.hello('World!'); //弹出 Hello World!
});

例子

layui.config({
	base : 'static/layuiadmin/' //静态资源所在路径
}).extend({
	index : 'lib/index' //主入口模块
}).use([ 'index', 'form', 'layer','table','laypage' ], function() {
	var $ = layui.$,						
		layer = layui.layer,
		table=layui.table,
		laypage=layui.laypage,
		form = layui.form;

2表单
表单渲染例子

//渲染表单
		form.render();
		
		var usertable = table.render({
			elem : '#user_table',
			url : 'admin/user/queryData',
			response: {
			      statusCode: 0 //重新规定成功的状态码为 200,table 组件默认为 0
			    },  
			parseData:function(res){//res 即为原始返回的数据
			    res =$.parseJSON(res);
		
			return res;
			},
			cols : [ [
				 {
					field : 'username',
					width : '15%',
					title : '用户名',
					align : 'center'
				}
				, {
					field : 'stuid',
					width : '15%',
					title : '学号',
					align : 'center'
				}
				, {
					field : 'stuname',
					width : '15%',
					title : '姓名',
					align : 'center'
				}
				, {
					field : 'gender',
					width : '10%',
					title : '性别',
					align : 'center'
				}
				, {
					field : 'birthday',
					width : '15%',
					title : '出生日期',
					align : 'center'
				}
				, {
					field : 'classname',
					width : '15%',
					title : '班级',
					align : 'center'
				}				
				, {
					field : 'address',
					width : '15%',
					title : '籍贯',
					align : 'center'
				}
			] ],
			page : {
				layout : [ 'count', 'prev', 'page', 'next', 'limit' ], //,curr: 5 //设定初始在第 5 页
				prev : '上一页',
				next : '下一页',
				first : '首页',
				last : '尾页'
			},
			text : {
				none : '暂无相关数据'
			},
			loading : true
		});

官方文档中相应解释

var table = layui.table;
 
//执行渲染
table.render({
  elem: '#demo' //指定原始表格元素选择器(推荐id选择器)
  ,height: 315 //容器高度
  ,cols: [{}] //设置表头
  //,…… //更多参数参考右侧目录:基本参数选项
});
    

具体参数解释查看
https://www.layui.com/doc/modules/table.html
定位到基础参数一览表

数据格式和接口
返回数据要满足table格式

{
  "code": 0,
  "msg": "",
  "count": 1000,
  "data": [{}, {}]
} 

例子中用到response 参数

您还可以借助 response 参数来重新设定返回的数据格式,如:

codelayui.code
table.render({
  elem: '#demp'
  ,url: ''
  ,response: {
    statusName: 'status' //规定数据状态的字段名称,默认:code
    ,statusCode: 200 //规定成功的状态码,默认:0
    ,msgName: 'hint' //规定状态信息的字段名称,默认:msg
    ,countName: 'total' //规定数据总数的字段名称,默认:count
    ,dataName: 'rows' //规定数据列表的字段名称,默认:data
  } 
  //,…… //其他参数
});     

3查询操作时
需要表格重载
例子

//执行查询操作
		$("#query-submit").on("click", function() {
			var username=$('#username').val();	        	
        	var stuid=$('#stuid').val();
        	var stuname=$('#stuname').val();
        	var gender=$('input[name="stuinfo.gender"]:checked').val();	
        	//构建json字符串
			var json = {};
			var stuinfo={};
			stuinfo.stuid=stuid;
			stuinfo.stuname=stuname;
			stuinfo.gender=gender;
			json.username=username;
			json.stuinfo=stuinfo;
			var data = JSON.stringify(json);
			
			usertable.reload({							
				where : {
					data:data
				}
			});

官网中解释

//这里以搜索为例
tableIns.reload({
  where: { //设定异步数据接口的额外参数,任意设
    aaaaaa: 'xxx'
    ,bbb: 'yyy'
    //…
  }
  ,page: {
    curr: 1 //重新从第 1 页开始
  }
});

例子中用到了监听事件
官网中解释

//监听事件
table.on('toolbar(test)', function(obj){
  var checkStatus = table.checkStatus(obj.config.id);
  switch(obj.event){
    case 'add':
      layer.msg('添加');
    break;
    case 'delete':
      layer.msg('删除');
    break;
    case 'update':
      layer.msg('编辑');
    break;
  };
});

5弹出层
例如

<!-- 添加编辑部分 -->
	<div class="hidden" id="edituser" >
		<form class="layui-form" id="user_form">
else if (obj.event === 'edit') {	
				//显示弹出窗口
	        	$("#edituser").prop("style","display:block;margin:10px;");	        	
	        	$('#cname').val(data.cname);
	        	
	        	$('#cid').val(data.cid);
	        					
				form.render();
				
	        	layer.open({
	        		title : '修改用户',
	    			shadeClose : true,
	    			area : ['650px', '450px'],
	        		type: 1,
	        		content: $('#edituser'),
	        		//隐藏弹出窗口
	        		end: function(){
	        			$("#edituser").prop("style","display:none;");
	        		}
	        	});

官网中简单解释

layer.open({
  type: 1, 
  content: '传入任意的文本或html' //这里content是一个普通的String
});
  • 0
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值