layer.open中select失效,表格中插入图片,checkbox是否选中,查看大图

弹窗官网地址:http://layer.layui.com/

1.在使用layui时layer.open的弹窗使用十分方便,普通弹窗可以满足普通需求,prompt可以满足一个input框的需求,但如果有两个输入框或者有select时,就需要用到自定义弹窗了;

2.select失效,失效原因是.layui-layer-page .layui-layer-content{overflow: auto;},将其改为.layui-layer-page .layui-layer-content{overflow: visible;}同时在success函数中执行form.render('select');,这个可能是layui不希望在弹窗中使用select吧,相信以后会完善的;

3.表格中插入图片

3.1效果

3.2说明

插入图片有两种方式:①通过HTML中循环渲染表格时插入img标签;②在js中通过templet方式;

4.checkbox判断是否选中

须在容器上添加lay-filter,然后再checkbox是使用

5.查看大图(//0-6的选择,指定弹出图片动画类型,默认随机(请注意,3.0之前的版本用shift参数))

6.代码部分:

<!DOCTYPE html>
<html lang="en">
	<head>
		<meta charset="UTF-8">
		<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">
		<title>黑名单管理</title>
		<link rel="stylesheet" href="../frame/layui/css/layui.css">
		<link rel="stylesheet" href="http://cdn.datatables.net/1.10.13/css/jquery.dataTables.min.css">
		<link rel="stylesheet" href="../frame/static/css/style.css">
		<link rel="icon" href="../frame/static/image/code.png">
		<style type="text/css">
			.lh38{
				line-height: 38px;
			}
			.bold{
				font-weight: bold;
			}
			.f20{
				font-size: 20px;
			}
			.mr20{
				margin-right: 20px;
			}
			.w182{
				width: 182px;
			}
			.mt20{
				margin-top: 20px;
			}
			.myself .layui-table-cell{
				white-space:normal;
				height: auto;
			}
			.myself .layui-form-label{
				padding-left: 0;
				text-align: left;
				width: auto;
			}
			.myself .layui-input-block{
				margin-left: 80px;
			}
			.myself .layui-layer-page .layui-layer-content{
				overflow: visible;
			}
		</style>
	</head>

	<body class="body myself">
		<div class="my-btn-box layui-row">
			<div class="fl lh38 bold f20">黑名单管理</div>
		</div>				
				
		<!-- 工具集 -->
		<div class="layui-row layui-form">
			<div class="fl mr20">
				<div class="layui-form">
					<span class="layui-form-label">数据来源:</span>
				    <div class="layui-input-block">
				      <select>
				        <option value="">APP</option>
				        <option value="0">触屏</option>
				        <option value="1">Web</option>
				      </select>
				    </div>
			    </div>
			</div>
			
			<div class="fl mr20">
				<span class="layui-form-label">用户:</span>
				<div class="layui-input-inline">
					<input type="text" placeholder="请输入手机号或ID" class="layui-input">
				</div>
			</div>
			
			<button class="layui-btn mgl-20 fl">搜索</button>
		</div>

		<!-- 表格 -->
		<div id="dateTable" lay-filter="myLayFilter"></div>
		
		<script type="text/javascript" src="../frame/layui/layui.js"></script>
		<script type="text/javascript" src="../js/index.js"></script>
		<script type="text/javascript">
			// layui方法
			layui.use(['table', 'form', 'layer', 'vip_table'], function() {

				// 操作对象
				var form = layui.form,
					table = layui.table,
					layer = layui.layer,
					vipTable = layui.vip_table,
					$ = layui.jquery;
				
				// 表格渲染
				var tableIns = table.render({
					elem: '#dateTable' //指定原始表格元素选择器(推荐id选择器)
						,
					height: vipTable.getFullHeight() //容器高度
						,
					cols: [
						[ 
						{checkbox: true, sort: true, fixed: true, space: true},
							{ field: 'id', title: '序号', width: 80 }, 
							{ field: 'auth_group_name', title: '用户账号', width: 120 }, 
							{ field: 'last_login_time', title: '用户ID', width: 105 }, 
							{ field: 'last_login_ip', title: '封禁类型', width: 180 }, 
							{ field: 'create_time', title: '封禁时间', width: 180 }, 
							{ field: 'status', title: '剩余时间', width: 90 }, 
							{ field: 'create_time', title: '头像', width: 180 ,						
								templet:'<div><img class="layer-photos-demo" layer-src="//img-ads.csdn.net/2018/201812111201044213.png" src="//img-ads.csdn.net/2018/201812111201044213.png"/></div>'						
							},
							{ field: 'account', title: '操作人', width: 180 }, 
							{ title: '操作', width: 150, align: 'center', toolbar: '#barOption' } //这里的toolbar值是模板元素的选择器
						]
					],
					id: 'dataCheck',
					url: './../json/data_table.json',
					method: 'get',
					page: true,
					limits: [10,20,30,40,50,60,70,80,90],
					limit: 10 //默认采用30
						,
					loading: false,
					done: function(res, curr, count) {
						//如果是异步请求数据方式,res即为你接口返回的信息。
						//如果是直接赋值的方式,res即为:{data: [], count: 99} data为当前页数据、count为数据总长度
						console.log(res);

						//得到当前页码
						console.log(curr);

						//得到数据总量
						console.log(count);
						
						//查看大图
						$("body").on("click",".layer-photos-demo",function(e){
						    layer.photos({
						        photos: { "data": [{"src": e.target.src},{"src": e.target.src},{"src": e.target.src}] }
						        ,anim: 3
						    });
						});
					}
				});
				
				// 获取选中行
				table.on('checkbox(myLayFilter)', function(obj) {
					console.log("obj",obj)
					layer.msg('123');
					console.log(obj.checked); //当前是否选中状态
					console.log(obj.data); //选中行的相关数据
					console.log(obj.type); //如果触发的是全选,则为:all,如果触发的是单选,则为:one
				});

				//监听行工具事件
				table.on('tool(test)', function(obj) { //注:tool 是工具条事件名,test 是 table 原始容器的属性 lay-filter="对应的值"
					var data = obj.data //获得当前行数据
						,layEvent = obj.event; //获得 lay-event 对应的值
					if(layEvent === 'addTime') {
						
						
						//示范一个公告层
						layer.open({
							type: 1,
							title: "增加封禁时间" //不显示标题栏
								,
							area: '500px;',
							shade: 0.8,
							id: 'addTime' //设定一个id,防止重复弹出
								,
							resize: false,
							btn: ['确认', '取消'],
							btnAlign: 'r',
							content: '<div style="padding: 10px; background-color: #fff; color: #000; font-weight: 300;">'+
								'<div>此操作将延长用户的封禁时间,请选择增加时长:</div>'+
								
								'<div style="width: 350px;margin-top:20px">'+
									'<div class="layui-form">'+
									'<span class="layui-form-label">方式:</span>'+
										'<div class="layui-input-block">'+
											'<select>'+
												'<option value="">全部</option>'+
												'<option value="0">未审核</option>'+
												'<option value="1">已通过</option>'+
												'<option value="0">未审核</option>'+
												'<option value="1">已通过</option>'+
												'<option value="0">未审核</option>'+
												'<option value="1">已通过</option>'+
												'<option value="0">未审核</option>'+
												'<option value="1">已通过</option>'+
												'<option value="0">未审核</option>'+
												'<option value="1">已通过</option>'+
											'</select>'+
										'</div>'+
									'</div>'+
								'</div>'+
								'<div style="width: 350px;margin-top:20px">'+
									'<div class="layui-form">'+
									'<span class="layui-form-label">方式:</span>'+
										'<div class="layui-input-block">'+
											'<select>'+
												'<option value="">全部</option>'+
												'<option value="0">未审核</option>'+
												'<option value="1">已通过</option>'+
												'<option value="0">未审核</option>'+
												'<option value="1">已通过</option>'+
												'<option value="0">未审核</option>'+
												'<option value="1">已通过</option>'+
												'<option value="0">未审核</option>'+
												'<option value="1">已通过</option>'+
												'<option value="0">未审核</option>'+
												'<option value="1">已通过</option>'+
											'</select>'+
										'</div>'+
									'</div>'+
								'</div>'+
							
							'</div>',
							success: function(layero) {
								form.render('select');
								var btn = layero.find('.layui-layer-btn');
								btn.find('.layui-layer-btn0').on("click",function(){
									console.log("确认")
								});
							}
						});
						
					}else if(layEvent ==='Unsealing') {
						layer.open({
							type: 1,
							title: "解除封禁" //不显示标题栏
								,
							area: '300px;',
							shade: 0.8,
							id: 'Unsealing' //设定一个id,防止重复弹出
								,
							resize: false,
							btn: ['确认', '取消'],
							btnAlign: 'r',
							content: '<div style="padding: 10px; background-color: #fff; color: #000; font-weight: 300;">'+
								'<div>你正在进行解除封禁操作,是否继续?</div>'+								
							'</div>',
							success: function(layero) {
								var btn = layero.find('.layui-layer-btn');
								btn.find('.layui-layer-btn0').on("click",function(){
									console.log("确认")
								});
							}
						});
					}
				});

			});
		</script>
		<!-- 表格操作按钮集 -->
		<script type="text/html" id="barOption">
		    <a class="layui-btn layui-btn-mini" lay-event="addTime">增加时间</a>
		    <a class="layui-btn layui-btn-mini layui-btn-danger" lay-event="Unsealing">解封</a>
		</script>		
	</body>
</html>

7.推荐:

①官网:https://www.layui.com/demo/layer.html

②博客:https://blog.csdn.net/QYHuiiQ/article/details/82079361

③博客:https://www.cnblogs.com/thirteen-zxh/p/9529938.html

④博客:https://blog.csdn.net/lmxqh/article/details/79232168

⑤社区:https://fly.layui.com/jie/14995/

猜你喜欢

转载自blog.csdn.net/hangGe0111/article/details/85066730
今日推荐