LayUi前端框架用法讲解--Table数据表格的新增和列表查询功能

最后一篇LayUi前端框架的介绍视频,介绍Table数据表格的新增和列表查询功能
效果图:
在这里插入图片描述
在这里插入图片描述
先放一下全部的代码,然后在解析一下新增和列表查询:

<!DOCTYPE html>
<html>
<head th:include="common/header::commonHeader">
<!--   <meta charset="utf-8">
  <title>layui</title>
  <meta name="renderer" content="webkit">
  <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
  <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
  <link rel="stylesheet" href="../../layui/css/layui.css" media="all" /> -->
  <!-- 注意:如果你直接复制所有代码到本地,上述css路径需要改成你本地的 -->
</head>
<body>
	<blockquote class="layui-elem-quote news_search">
		<div class="layui-row">
			<form class="layui-form layui-col-md12 x-so" id="complain_search">
				服务编号:
				<div class="layui-input-inline">
					<input type="text" name="serviceCode" id="serviceCode"
						placeholder="请输入服务编号" autocomplete="off" class="layui-input">
				</div>
				订单号:
				<div class="layui-input-inline">
					<input type="text" name="compOrder" id="compOrder"
						placeholder="请输入订单号" autocomplete="off" class="layui-input">
				</div>
				投诉类型:
				<div class="layui-input-inline">
					<select name="compType" id="compType">
						<option value="">---请选择---</option>
						<option value="0">医院</option>
						<option value="1">科室</option>
						<option value="2">医生</option>
					</select>
				</div>
				投诉状态:
				<div class="layui-input-inline">
					<select name="complainState" id="complainState">
						<option value="">---请选择---</option>
						<option value="0">未处理</option>
						<option value="1">已处理</option>
					</select>
				</div>										
				<button id="search" class="layui-btn" lay-submit
					lay-filter="provinceSearch">
					<i class="layui-icon">&#xe615;</i>
				</button>
			</form>
		</div>
		<table class="layui-hide" id="complainTable" lay-filter="complainList"></table>
	</blockquote>

<script type="text/html" id="complain_toolbar">
<div class="layui-btn-container">
	<button class="layui-btn layui-btn-sm" lay-event="add"><i class="layui-icon"></i>添加</button>
</div>
</script>

<script type="text/html" id="barDemo">
  <a class="layui-btn layui-btn-xs" lay-event="detail">查看</a>
  <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" th:src="@{/layui/layui.js}"></script>
<script type="text/javascript" th:src="@{/js/jquery-1.4.4.min.js}"></script>          
<!-- 注意:如果你直接复制所有代码到本地,上述js路径需要改成你本地的 --> 
 
<script type="text/javascript" >
layui.use(['table','layer','form','laypage'], function(){
  var table = layui.table,
  layer = layui.layer,
  form = layui.form,
  laypage = layui.laypage;
  
  table.render({
	 id:"provinceReload"
	,elem: '#complainTable'
    ,url:'/medicaladmin/complain/list'
    ,page: true
    ,method:'post'
    ,toolbar: '#complain_toolbar'
    ,limit:10
    ,response:{
    	statusName:'code',
    	msgName:'message',
    	statusCode:200,
    	dataName:'beans',
    	countName:'page',
    }
  	,request:{
  		pageName: 'page',
  		limitName: 'size'
  	}
    ,cols: [
    			[
    			   {checkbox:true}//开启多选框
			      ,{field:'id', width:150,title: '投诉ID'}
			      ,{field:'serviceCode',width:150, title: '服务编号'}
			      ,{field:'compType',width:150, title: '服务类型' , templet : function (d){
		                if(d.compType == 0){
		                    return '<span style="color: #D03948;">医院</span>';
		                }else if(d.compType == 1){
		                    return '<span style="color: #18A4D0;">科室</span>';
		                }else if(d.compType == 2){
		                    return '<span style="color: #5CD03F;">医生</span>';
		                }			    	  
			      }}
			      ,{field:'compOrder',width:150, title: '投诉订单号'}
			      ,{field:'compReason',width:150,title: '投诉原因'}
			      ,{field:'compDetail',width:150, title: '投诉详情'}
			      ,{field:'complainState', width:150, title: '投诉状态', templet : function(d){
						if(d.complainState == 0){
							return '<span style="color: #D03948;">未处理</span>';
						}else if(d.complainState == 1){
							return '<span style="color: #18A4D0;">已处理</span>';
						}
			      }}
				  ,{field:'validFlag', width:150,  title: '数据状态',templet: function (d) {
			             if(d.validFlag == true){
			                 return '<span style="color: #18A4D0;">有效</span>';
			             }else{
			                 return '<span style="color: #D03948;">无效</span>';
			             }
			         }},
			      ,{fixed: 'right', title:'操作', toolbar: '#barDemo'}
    			]
    	   ]
    ,limits: [5,10,20,50]
  });
  
table.on('toolbar(complainList)', function(obj) {
		var checkStatus = table.checkStatus(obj.config.id),
			data = checkStatus.data;
		data = eval("(" + JSON.stringify(data) + ")");
		switch(obj.event) {
			case 'add':
				layer.open({
					type: 2,
					title: "添加省份页面",
					area: ['35%', '60%'],
					fix: false,
					maxmin: true,
					shadeClose: true,
					shade: 0.4,
					skin: 'layui-layer-rim',
					content:["/medicaladmin/complain/complainAdd", "no"],
				});
				break;
		}
	}); 


table.on('tool(complainList)', function(obj) {
	var data = obj.data;
	json = JSON.stringify(data);
	switch(obj.event) {
		case 'detail':
			console.log("投诉详情");
			var index = layer.open({
				type: 2,
				title: "投诉详情页面",
				area: ['30%', '60%'],
				fix: false,
				maxmin: true,
				shadeClose: true,
				shade: 0.4,
				skin: 'layui-layer-rim',
				content: ["/medicaladmin/complain/complainRead", "no"],
			});
			break;
		case 'edit':
			var index = layer.open({
				type: 2,
				title: "编辑投诉页面",
				area: ['30%', '60%'],
				fix: false,
				maxmin: true,
				shadeClose: true,
				shade: 0.4,
				skin: 'layui-layer-rim',
				content: ["/medicaladmin/complain/complainEdit", "no"],
			});
			break;
		case 'del':
			var delIndex = layer.confirm('真的删除id为' + data.id + "的信息吗?", function(delIndex) {
				$.ajax({
					url: '/medicaladmin/complain/delete/'+data.id,
					type: "post",
					success: function(suc) {
						if(suc.code == 200) {
							obj.del(); //删除对应行(tr)的DOM结构,并更新缓存
							layer.close(delIndex);
							console.log(delIndex);
							layer.msg("删除成功", {
								icon: 1
							});
						} else {
							layer.msg("删除失败", {
								icon: 5
							});
						}
					}
				});
				layer.close(delIndex);
			});
			break;
	}
});
  
form.render();
form.on('submit(provinceSearch)', function(data) {
	var formData = data.field;
	console.debug(formData);
	var serviceCode = formData.serviceCode,
		compOrder = formData.compOrder,
		compType = formData.compType,
		complainState = formData.complainState;
		
	table.reload('provinceReload', {
		page: {
			curr: 1 
		},
		where: { 
			serviceCode:serviceCode,
			compOrder:compOrder,
			compType:compType,
			complainState:complainState
		},
		method: 'post',
		contentType: "application/json;charset=utf-8",
		url: '/medicaladmin/complain/queryComplainByCondition',
	});
	return false;
});  
  
});
</script>


</body>
</html>

先介绍一下新增操作,和查看,编辑,删除操作所不同的是,新增操作使用的是toolbar操作,也是Switch语句判断一下lay-event,然后在写新增操作,通过Url跳转新增页面。
页面查询功能,也就是条件查询,查询条件和Table要放在blockquote标签内。每一个条件的输入框Input中要设置一个id。然后在form.on(‘submit(provinceSearch)’, function(data)方法中取值,然后通过后台接口多条件查询列表。
table.reload方法重新渲染Table列表,实现多条件查询列表的功能。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值