初次使用Layui

背景:公司项目全面改为使用layui,刚好我现在负责一个新项目,第一次使用layui。刚改革的时候看了一下layui,但是当时负责的项目不用改成layui格式的。所以这是第一次做

官网:https://www.layui.com/

          官网文件看了一会,但是我看的都是按照项目需要用的来看的

          因为主要负责监控项目进度,解决其他同事bug,和数据以及前端沟通,所以使用的应该不够深入。

          PS:有前端哎,我还要写页面

使用介绍:先导包,引入,这些就不说了用的是layui-v2.3.0

格式:我这边是有其他人写过的,所以格式直接拿过来,也不清楚每个class什么意思(我也不想去了解,以后写多了或许会知道吧,但是我现在对样式不想去学习,感觉这是前端的)

这是jsp代码

<body>
	<div class="layui-fluid">
    	<div class="layui-card">
    		<div class="layui-card-body" style="padding: 15px;">
				<div class="layui-tab layui-tab-brief" lay-filter="docDemoTabBrief">
					<ul class="layui-tab-title">
						<li class="layui-this"><a href="">奖项设置</a></li>
					</ul>
				</div>
				<div class="layui-form layui-card-header layuiadmin-card-header-auto">
       				<div class="layui-form-item">
						<div class="layui-inline">
				            <label class="layui-form-label">奖项类型:</label>
				            <div class="layui-input-inline">
				            	 <select name="awardTypeId" lay-filter="awardType">
					                
					              </select>
				            </div>
				        </div>
				        <div class="layui-inline">
				            <label class="layui-form-label">奖项等级:</label>
				            <div class="layui-input-inline">
				            	<select name="awardLevelId">
				            		
				            	</select>
				            </div>
				        </div>
				        <div class="layui-inline">
				            <label class="layui-form-label">所属学院:</label>
				            <div class="layui-input-inline">
				            	<select name="collegeId" lay-search>

				            	</select>
				            </div>
				        </div>
				        <div class="layui-inline">
				            <button class="layui-btn" data-type="reload">搜索</button>
				            <button id="" class="layui-btn" onclick="window.location.href='${ctx}/system/award/list'">重置</button>
				            <button id="addAward" class="layui-btn">新增</button>
				        </div>  
				
				<div class="layui-card-body">
					<table class="layui-hide" id="awardListTable" lay-filter="demo"></table>
			   	</div>
				
			</div>
		</div>
	</div>
</body>

这是部分js代码(就不全展示了,应该也不会用人要用)

<script type="text/html" id="barDemo">
	<a class="layui-btn layui-btn-xs" lay-event="edit">修改</a>
    <a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del">删除</a>
</script>
<script type="text/javascript">
	layui.use(["table"],function(){
		var admin = layui.admin
		table = layui.table;
		table.render({
			elem:"#awardListTable",
			url:"getAwardListDatas",
			request:{
				pageName:'pageNo',
				limitName:'pageSize'
			},
			cols:[[
			       {field:'awardType',align:'center',title:'奖项类型'},
			       {field:'awardLevel',align:'center',title:'奖项等级'},
			       {field:'awardLevelMoney',align:'center',title:'奖项金额'},
			       {field:'collegeName',align:'center',title:'所属学院'},
			       {field:'awardMoneyMax',align:'center',title:'金额上限'},
			       {field:'awardStudentMax',align:'center',title:'人数上限'},
			       {fixed:'right',align:'center',title:'操作',toolbar:"#barDemo"}
			       ]],
			id:'testReload'
		}); 
		var $=layui.$,active={
				reload:function(){
					var awardType = $("select[name='awardTypeId']");
					var awardLevel = $("select[name='awardLevelId']");
					var college = $("select[name='collegeId']");
					table.reload("testReload",{
						url:"getAwardListDatas",
						page:{
							curr:1
						},
						where:{
							awardTypeId:awardType.val(),
							awardLevelId:awardLevel.val(),
							collegeId:college.val()
						}
					})
				}
		};
		$('.layui-btn').on('click', function(){
    	    var type = $(this).data('type');
    	    active[type] ? active[type].call(this) : '';
    	  });
		//监听工具条
	    table.on('tool(demo)', function(obj){ //注:tool是工具条事件名,test是table原始容器的属性 lay-filter="对应的值"
	        var data = obj.data //获得当前行数据
	                ,layEvent = obj.event; //获得 lay-event 对应的值
	        if(layEvent === 'edit'){//点击修改按钮
	            var updateurl = "${ctx}/system/award/toAddAward?id="+data.id;
	            add(updateurl);

	        } else if(layEvent === 'del'){//点击删除按钮
	            layer.confirm('真的删除行么', function(index){

	                var delurl = "${ctx}/system/award/delete?id="+data.id;
	                $.ajax({
	                    url:delurl,
	                    type:'post',
	                    dataType:'json',
	                    success:function(item){
	                        layer.msg(item.msg);
	                        setTimeout(function(){
	                            location.reload();
	                        },1000)
	                    },
	                    error:function(er){
	                        layer.msg(er.msg);
	                    }
	                })

	            });
	        } 
	    });
		$("#addAward").on("click",function(){
			var url = "toAddAward";
			add(url);
		});
	})
	function add(url){
		parent.layer.open({
            type: 2,
            area: ['700px', '450px'],
            fixed: false,
            maxmin: true,
            content: url,
            end: function () {
                location.reload();
            }
        });
	}
</script>

这是前台页面,用户点击后进入该页面,然后在前往后台获取数据展示在页面

涉及点:table渲染

             table.render();

            其中elem选择指定table,url为后台获取数据的地址,然后返回前台页面展示,可以使用toolbar选择自定义模板(修改,删除按钮。如果后台传1,2,3前台转换成对应的值也可以使用自定义模板),id赋值是为了搜索按钮模糊查询的,

           reload重载

           列表页必不可少的按照条件搜索使用reload

          reload("id",{}),url为地址,where为传递的值

         select渲染

        form.render("select");这句话很必要,没有这句话的话,你会发现下拉选无法展示,

          好像也没什么问题遇到,就一个下拉选多选遇到了问题layui不支持多选,但是有人写了插件

formSelects-v4.js;formSelects-v4.css。

layui.use(["formSelects"],function(){

     formSelects = layui.formSelects;

     formSelects.data('select1','server',{
            url:"getCollege"
        });

});

即可,这个格式是有限制的后台传的数据必须包括name,value,selected,disabled 四个属性

PS:好像我写的这个博客也没什么技术含量。如果你时间充裕的话,还是看官方文档吧。

PS:记录一下layui的学习,这个框架用的很舒服,觉得很有条理,但是功能不全(下拉选没有多选)。

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值