init
This commit is contained in:
214
public/frontend/layui-main/examples/all.html
Executable file
214
public/frontend/layui-main/examples/all.html
Executable file
@@ -0,0 +1,214 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
|
||||
<title>完整库使用 - layui</title>
|
||||
|
||||
<link rel="stylesheet" href="../dist/css/layui.css">
|
||||
|
||||
<style>
|
||||
body{padding: 10px;}
|
||||
</style>
|
||||
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<textarea style="
|
||||
position: fixed;
|
||||
top: 0;
|
||||
bottom: 0;
|
||||
right:0;
|
||||
width: 100px;
|
||||
background-color:#666;
|
||||
z-index:100;
|
||||
resize: none;">
|
||||
|
||||
</textarea>
|
||||
|
||||
|
||||
<div id="demo1"></div>
|
||||
|
||||
<div class="layui-btn-container">
|
||||
<button class="layui-btn demo" test-active="test-form">测试弹出式 Form</button>
|
||||
<button class="layui-btn demo" test-active="test-use">测试是否重复加载内置组件</button>
|
||||
</div>
|
||||
<div class="layui-inline">
|
||||
<input class="layui-input" id="date1" placeholder="日期">
|
||||
</div>
|
||||
|
||||
<div class="layui-tab" lay-filter="tabDemo">
|
||||
<ul class="layui-tab-title">
|
||||
<li class="layui-this" lay-id="1">标题1</li>
|
||||
<li lay-id="2">标题2</li>
|
||||
<li lay-id="3">标题3</li>
|
||||
<li lay-id="4">标题4</li>
|
||||
<li lay-id="5">标题5</li>
|
||||
</ul>
|
||||
<div class="layui-tab-content">
|
||||
<div class="layui-tab-item layui-show">
|
||||
<div class="layui-form">
|
||||
<select name="city" lay-verify="">
|
||||
<option value="">请选择一个城市</option>
|
||||
<option value="010">北京</option>
|
||||
<option value="021">上海</option>
|
||||
<option value="0571">杭州</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-tab-item">
|
||||
<div id="test2" class="demo-transfer"></div>
|
||||
</div>
|
||||
<div class="layui-tab-item">3</div>
|
||||
<div class="layui-tab-item">4</div>
|
||||
<div class="layui-tab-item">5</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<script src="../dist/layui.js"></script>
|
||||
<script>
|
||||
console.log(layui.$);
|
||||
|
||||
//(function(){
|
||||
layui.use(function(){
|
||||
var $ = layui.jquery
|
||||
,layer = layui.layer
|
||||
,form = layui.form
|
||||
,laypage = layui.laypage
|
||||
,element = layui.element
|
||||
,transfer = layui.transfer
|
||||
,util = layui.util
|
||||
,laydate = layui.laydate;
|
||||
|
||||
layer.msg('hello layui');
|
||||
//layer.closeAll();
|
||||
|
||||
//自动测试
|
||||
(function(run){
|
||||
if(!run) return;
|
||||
|
||||
var timer = setInterval(function(){
|
||||
location.reload();
|
||||
}, 1000);
|
||||
|
||||
$.ajax({
|
||||
url: './all.html'
|
||||
,beforeSend: function(){
|
||||
layer.load();
|
||||
}
|
||||
,success: function(){
|
||||
layer.closeAll('loading', function(){
|
||||
setTimeout(function(){
|
||||
if($('.layui-layer-loading').length){
|
||||
console.error('layer close 异常');
|
||||
clearInterval(timer);
|
||||
}
|
||||
}, 200);
|
||||
});
|
||||
}
|
||||
});
|
||||
})(0);
|
||||
|
||||
laypage.render({
|
||||
elem: 'demo1'
|
||||
,count: 100 //总页数
|
||||
});
|
||||
|
||||
console.log(lay('#footer').html());
|
||||
|
||||
laydate.render({
|
||||
elem: '#date1'
|
||||
})
|
||||
|
||||
//测试加载非内置模块
|
||||
/*
|
||||
layui.config({
|
||||
base: 'extends/'
|
||||
}).extend({
|
||||
mod1: 'mod1'
|
||||
,mod2: 'mod2'
|
||||
}).use('mod1');
|
||||
*/
|
||||
|
||||
|
||||
//定义标题及数据源
|
||||
transfer.render({
|
||||
elem: '#test2'
|
||||
,title: ['候选文人', '获奖文人'] //自定义标题
|
||||
,data: [
|
||||
{"value": "1", "title": "李白"}
|
||||
,{"value": "2", "title": "杜甫"}
|
||||
,{"value": "3", "title": "苏轼"}
|
||||
,{"value": "4", "title": "李清照"}
|
||||
,{"value": "5", "title": "鲁迅", "disabled": true}
|
||||
,{"value": "6", "title": "巴金"}
|
||||
,{"value": "7", "title": "冰心"}
|
||||
,{"value": "8", "title": "矛盾"}
|
||||
,{"value": "9", "title": "贤心"}
|
||||
]
|
||||
//,width: 150 //定义宽度
|
||||
,height: 210 //定义高度
|
||||
});
|
||||
|
||||
//触发事件
|
||||
util.event('test-active', {
|
||||
'test-form': function(){
|
||||
layer.open({
|
||||
type: 1
|
||||
,resize: false
|
||||
,content: ['<ul class="layui-form" style="margin: 10px;">'
|
||||
,'<li class="layui-form-item">'
|
||||
,'<label class="layui-form-label">输入框</label>'
|
||||
,'<div class="layui-input-block">'
|
||||
,'<input class="layui-input" name="field1">'
|
||||
,'</div>'
|
||||
,'</li>'
|
||||
,'<li class="layui-form-item">'
|
||||
,'<label class="layui-form-label">选择框</label>'
|
||||
,'<div class="layui-input-block">'
|
||||
,'<select name="field2">'
|
||||
,'<option value="A">A</option>'
|
||||
,'<option value="B">B</option>'
|
||||
,'<select>'
|
||||
,'</div>'
|
||||
,'</li>'
|
||||
,'<li class="layui-form-item" style="text-align:center;">'
|
||||
,'<button type="submit" lay-submit lay-filter="*" class="layui-btn">提交</button>'
|
||||
,'</li>'
|
||||
,'</ul>'].join('')
|
||||
,success: function(layero){
|
||||
layero.find('.layui-layer-content').css('overflow', 'visible');
|
||||
|
||||
form.render().on('submit(*)', function(data){
|
||||
layer.msg(JSON.stringify(data.field));
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
,'test-use': function(othis){
|
||||
layui.use(['laytpl','laypage','laydate','jquery','layer','util','element','upload','slider','colorpicker','form','tree','transfer','table','carousel','rate','flow','code'], function(){
|
||||
layer.tips('请观察 Network 是否有重复加载 js 文件。如果没有任何新的请求,则代表正常。', othis, {
|
||||
time: 10*1000
|
||||
});
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
});
|
||||
//})();
|
||||
</script>
|
||||
|
||||
|
||||
|
||||
<span class="layui-breadcrumb" lay-separator="-">
|
||||
<a href="">首页</a>
|
||||
<a href="">国际新闻</a>
|
||||
<a href="">亚太地区</a>
|
||||
<a><cite>正文</cite></a>
|
||||
</span>
|
||||
|
||||
<div id="footer">© footer</div>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
128
public/frontend/layui-main/examples/base.html
Executable file
128
public/frontend/layui-main/examples/base.html
Executable file
@@ -0,0 +1,128 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<title>基础方法测试用例 - layui</title>
|
||||
<link href="../src/css/layui.css" rel="stylesheet">
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div class="layui-container" style="padding: 30px 0;">
|
||||
<div class="" style="padding: 30px 0;">
|
||||
<blockquote class="layui-elem-quote" style="color: #666;">
|
||||
点击按钮开始测试,测试结果打开浏览器控制台查看
|
||||
</blockquote>
|
||||
<div class="layui-btn-container">
|
||||
<button class="layui-btn" lay-on="sort">layui.sort</button>
|
||||
<button class="layui-btn" lay-on="type">layui.type</button>
|
||||
<button class="layui-btn" lay-on="isArray">layui.isArray</button>
|
||||
<button class="layui-btn" lay-on="extend">lay.extend</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script src="../src/layui.js"></script>
|
||||
<script>
|
||||
layui.use(['lay', 'util'], function(){
|
||||
var lay = layui.lay
|
||||
,util = layui.util;
|
||||
|
||||
//事件
|
||||
var style = 'color: orange; font-size: 16px;';
|
||||
util.event('lay-on', {
|
||||
sort: function(){
|
||||
//sort
|
||||
console.log('%c> layui.sort: ', style);
|
||||
console.log(
|
||||
'数字-整数型',
|
||||
layui.sort([{a: 3},{a: 0},{a: 0},{a: -1},{a: -5},{a: 6},{a: 9},{a: -333333}], 'a')
|
||||
);
|
||||
console.log(
|
||||
'数字-浮点型',
|
||||
layui.sort([{a: 3.5},{a: 0.5},{a: 0.5},{a: -1.5},{a: -5.5},{a: 6.5},{a: 9.5},{a: -333333.5}], 'a')
|
||||
);
|
||||
console.log(
|
||||
'数字-混合型',
|
||||
layui.sort([{a: 1},{a: 20.5},{a: 20.3},{a: 3},{a: 52},{a: 4.3}], 'a')
|
||||
);
|
||||
console.log(
|
||||
'中文',
|
||||
layui.sort([{a: '男'},{a: '女'},{a: '男'},{a: '女'},{a: '男'}], 'a')
|
||||
);
|
||||
console.log(
|
||||
'英文',
|
||||
layui.sort([{a: 'E'},{a: 'B'},{a: 'D'},{a: 'C'},{a: 'A'}], 'a')
|
||||
);
|
||||
console.log(
|
||||
'混合'
|
||||
,layui.sort([
|
||||
{a: 3}
|
||||
,{a: '男'}
|
||||
,{a: 0}
|
||||
,{a: 66}
|
||||
,{a: 99}
|
||||
,{a: 'C'}
|
||||
,{a: '女'}
|
||||
,{a: 3.5}
|
||||
,{a: 0}
|
||||
,{a: -1}
|
||||
,{a: 'B'}
|
||||
,{a: 5.5}
|
||||
,{a: '男'}
|
||||
,{a: 'A'}
|
||||
,{a: -5}
|
||||
,{a: '男'}
|
||||
,{a: 6}
|
||||
,{a: 9}
|
||||
], 'a')
|
||||
);
|
||||
console.log(
|
||||
'数组成员全为数字',
|
||||
layui.sort([1, 20.5, 19.5, 52, 4.5])
|
||||
);
|
||||
console.log(
|
||||
'数组成员为混合型',
|
||||
layui.sort([1, {a: 32}, 20.5, {a: 6}, 52, 5.5], 'a') //按成员对象的 key 为 a 进行比较
|
||||
);
|
||||
}
|
||||
|
||||
,type: function(){
|
||||
console.log('%c> layui.type: ', style);
|
||||
console.log(
|
||||
'new RegExp():', layui.type(new RegExp()),
|
||||
'\nnew Date():', layui.type(new Date()),
|
||||
'\n[]:', layui.type([])
|
||||
);
|
||||
}
|
||||
|
||||
,isArray: function(){
|
||||
console.log('%c> layui.isArray: ', style);
|
||||
console.log(
|
||||
'[1,6]:', layui.isArray([1,6]),
|
||||
'\nlay("div"):', layui.isArray(lay('div')),
|
||||
'\ndocument.querySelectorAll("div"):', layui.isArray(document.querySelectorAll('div')),
|
||||
'\n{"key": "value"}:', layui.isArray({key: 'value'})
|
||||
);
|
||||
}
|
||||
|
||||
,extend: function(){
|
||||
console.log('%c> lay.extend: ', style);
|
||||
console.log(
|
||||
lay.extend(
|
||||
{},
|
||||
{a: 123, c: {ccc: 'ccc'}, arr: [1,3]},
|
||||
{a: 111, b: 1, c: {bbb: 'bbb'}},
|
||||
{a: 222222, arr: [5]}
|
||||
)
|
||||
);
|
||||
console.log(
|
||||
lay.extend([], [1,3,5])
|
||||
);
|
||||
}
|
||||
})
|
||||
|
||||
});
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
133
public/frontend/layui-main/examples/button.html
Executable file
133
public/frontend/layui-main/examples/button.html
Executable file
@@ -0,0 +1,133 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<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">
|
||||
<meta name="apple-mobile-web-app-status-bar-style" content="black">
|
||||
<meta name="apple-mobile-web-app-capable" content="yes">
|
||||
<meta name="format-detection" content="telephone=no">
|
||||
|
||||
<link rel="stylesheet" href="../src/css/layui.css">
|
||||
|
||||
<style>
|
||||
body{padding: 10px;}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div class="layui-container">
|
||||
<span>按钮色系:</span>
|
||||
<hr>
|
||||
|
||||
<div class="layui-btn-container">
|
||||
<a href="" class="layui-btn layui-btn-primary">原始按钮</a>
|
||||
<div class="layui-btn">默认按钮</div>
|
||||
<button class="layui-btn layui-btn-normal">百搭按钮</button>
|
||||
<button class="layui-btn layui-btn-warm">暖色按钮</button>
|
||||
<button class="layui-btn layui-btn-danger">警告按钮</button>
|
||||
<button class="layui-btn layui-btn-disabled">禁用按钮</button>
|
||||
</div>
|
||||
<div class="layui-btn-container">
|
||||
<a href="" class="layui-btn layui-btn-primary layui-border">原始按钮</a>
|
||||
<a href="" class="layui-btn layui-btn-primary layui-border-green">主色按钮</a>
|
||||
<button class="layui-btn layui-btn-primary layui-border-blue">百搭按钮</button>
|
||||
<button class="layui-btn layui-btn-primary layui-border-orange">暖色按钮</button>
|
||||
<button class="layui-btn layui-btn-primary layui-border-red">警告按钮</button>
|
||||
<button class="layui-btn layui-btn-primary layui-border-black">深色按钮</button>
|
||||
</div>
|
||||
|
||||
<br><br>
|
||||
|
||||
<span>按钮图标:</span>
|
||||
<hr>
|
||||
|
||||
<div class="layui-btn-container">
|
||||
<button class="layui-btn layui-btn-sm"><i class="layui-icon"></i></button>
|
||||
<button class="layui-btn layui-btn-sm"><i class="layui-icon"></i></button>
|
||||
<button class="layui-btn layui-btn-sm"><i class="layui-icon"></i></button>
|
||||
<button class="layui-btn layui-btn-sm"><i class="layui-icon"></i></button>
|
||||
<button class="layui-btn layui-btn-sm"><i class="layui-icon"></i></button>
|
||||
<button class="layui-btn layui-btn-sm"><i class="layui-icon"></i></button>
|
||||
</div>
|
||||
|
||||
<br><br>
|
||||
|
||||
<span>按钮尺寸:</span>
|
||||
<hr>
|
||||
|
||||
<div class="layui-btn-container">
|
||||
<button class="layui-btn layui-btn-lg">大型按钮</button>
|
||||
<button class="layui-btn">默认按钮</button>
|
||||
<button class="layui-btn layui-btn-sm">小型按钮</button>
|
||||
<button class="layui-btn layui-btn-xs">迷你按钮</button>
|
||||
</div>
|
||||
<div class="layui-btn-container">
|
||||
<button class="layui-btn layui-btn-primary layui-btn-lg">大型按钮</button>
|
||||
<button class="layui-btn layui-btn-primary">默认按钮</button>
|
||||
<button class="layui-btn layui-btn-primary layui-btn-sm">小型按钮</button>
|
||||
<button class="layui-btn layui-btn-primary layui-btn-xs">迷你按钮</button>
|
||||
</div>
|
||||
|
||||
<br><br>
|
||||
|
||||
<span>按钮圆角:</span>
|
||||
<hr>
|
||||
|
||||
<div class="layui-btn-container">
|
||||
<button class="layui-btn layui-btn-primary layui-btn-radius">原始按钮</button>
|
||||
<button class="layui-btn layui-btn-radius">默认按钮</button>
|
||||
<button class="layui-btn layui-btn-normal layui-btn-radius">百搭按钮</button>
|
||||
<button class="layui-btn layui-btn-warm layui-btn-radius">暖色按钮</button>
|
||||
<button class="layui-btn layui-btn-danger layui-btn-radius">警告按钮</button>
|
||||
<button class="layui-btn layui-btn-disabled layui-btn-radius">禁用按钮</button>
|
||||
</div>
|
||||
|
||||
<br><br>
|
||||
|
||||
<span>按钮图文:</span>
|
||||
<hr>
|
||||
|
||||
<div class="layui-btn-container">
|
||||
<button class="layui-btn layui-btn-big layui-btn-primary layui-btn-radius">大型加圆角</button>
|
||||
<button class="layui-btn layui-btn-sm layui-btn-normal"><i class="layui-icon layui-icon-delete"></i> 删除</button>
|
||||
<button class="layui-btn layui-btn-xs layui-btn-disabled"><i class="layui-icon layui-icon-share"></i> 禁分享</button>
|
||||
</div>
|
||||
|
||||
<br><br>
|
||||
|
||||
<span>按钮组:</span>
|
||||
<hr>
|
||||
|
||||
<div class="layui-btn-group">
|
||||
<button class="layui-btn">增加</button>
|
||||
<button class="layui-btn ">编辑</button>
|
||||
<button class="layui-btn">删除</button>
|
||||
</div>
|
||||
|
||||
<div class="layui-btn-group">
|
||||
<button class="layui-btn layui-btn-sm"><i class="layui-icon"></i></button>
|
||||
<button class="layui-btn layui-btn-sm"><i class="layui-icon"></i></button>
|
||||
<button class="layui-btn layui-btn-sm"><i class="layui-icon"></i></button>
|
||||
<button class="layui-btn layui-btn-sm"><i class="layui-icon"></i></button>
|
||||
</div>
|
||||
|
||||
<div class="layui-btn-group">
|
||||
<button class="layui-btn layui-btn-primary layui-btn-sm"><i class="layui-icon"></i></button>
|
||||
<button class="layui-btn layui-btn-primary layui-btn-sm"><i class="layui-icon"></i></button>
|
||||
<button class="layui-btn layui-btn-primary layui-btn-sm"><i class="layui-icon"></i></button>
|
||||
<button class="layui-btn layui-btn-primary layui-btn-sm"><i class="layui-icon"></i></button>
|
||||
</div>
|
||||
|
||||
<br><br><br>
|
||||
</div>
|
||||
|
||||
<script src="../src/layui.js"></script>
|
||||
|
||||
<script>
|
||||
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
123
public/frontend/layui-main/examples/carousel.html
Executable file
123
public/frontend/layui-main/examples/carousel.html
Executable file
@@ -0,0 +1,123 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
|
||||
<title>轮播组件 - layui</title>
|
||||
|
||||
<link rel="stylesheet" href="../src/css/layui.css">
|
||||
|
||||
<style>
|
||||
body{padding: 20px;}
|
||||
|
||||
/* 为了区分效果 */
|
||||
div[carousel-item]>*{text-align: center; line-height: 280px; color: #fff;}
|
||||
div[carousel-item]>*:nth-child(2n){background-color: #009688;}
|
||||
div[carousel-item]>*:nth-child(2n+1){background-color: #5FB878;}
|
||||
|
||||
#test2 div[carousel-item]>*{line-height: 120px;}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
|
||||
<div class="layui-carousel" id="test1" lay-filter="test1">
|
||||
<div carousel-item>
|
||||
<div>条目1</div>
|
||||
<div>条目2</div>
|
||||
<div>条目3</div>
|
||||
<div>条目4</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<br>
|
||||
|
||||
<div class="layui-carousel" id="test2">
|
||||
<div carousel-item>
|
||||
<div>条目1</div>
|
||||
<div>条目2</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<br>
|
||||
|
||||
<div class="layui-carousel" id="test3">
|
||||
<div carousel-item>
|
||||
<div>条目1</div>
|
||||
<div>条目2</div>
|
||||
<div>条目3</div>
|
||||
<div>条目4</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<br>
|
||||
|
||||
<div class="layui-carousel" id="test4">
|
||||
<div carousel-item>
|
||||
<div><img src="https://unpkg.com/outeres/demo/carousel/720x360-1.jpg"></div>
|
||||
<div><img src="https://unpkg.com/outeres/demo/carousel/720x360-2.jpg"></div>
|
||||
<div><img src="https://unpkg.com/outeres/demo/carousel/720x360-3.jpg"></div>
|
||||
<div><img src="https://unpkg.com/outeres/demo/carousel/720x360-4.jpg"></div>
|
||||
<div><img src="https://unpkg.com/outeres/demo/carousel/720x360-5.jpg"></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<script src="../src/layui.js"></script>
|
||||
<script>
|
||||
layui.use('carousel', function(){
|
||||
var carousel = layui.carousel;
|
||||
|
||||
//建造实例
|
||||
carousel.render({
|
||||
elem: '#test1'
|
||||
,index: 2
|
||||
//,full: true
|
||||
,arrow: 'always'
|
||||
,autoplay: 'always'
|
||||
,change: function(obj){
|
||||
console.log(obj)
|
||||
}
|
||||
//,interval: 5000
|
||||
//,autoplay: false
|
||||
//,indicator: 'outside'
|
||||
//,trigger: 'hover'
|
||||
});
|
||||
|
||||
//事件
|
||||
/*
|
||||
carousel.on('change(test1)', function(obj){
|
||||
console.log(obj)
|
||||
});
|
||||
*/
|
||||
|
||||
carousel.render({
|
||||
elem: '#test2'
|
||||
,interval: 1800
|
||||
//,full: true
|
||||
,anim: 'fade'
|
||||
,height: '120px'
|
||||
});
|
||||
|
||||
carousel.render({
|
||||
elem: '#test3'
|
||||
//,full: true
|
||||
,arrow: 'always'
|
||||
//,autoplay: false
|
||||
//,indicator: 'outside'
|
||||
//,trigger: 'hover'
|
||||
,anim: 'updown'
|
||||
//,full: true
|
||||
});
|
||||
|
||||
// 图片轮播
|
||||
carousel.render({
|
||||
elem: '#test4'
|
||||
,width: '720px'
|
||||
,height: '360px'
|
||||
,interval: 5000
|
||||
});
|
||||
});
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
273
public/frontend/layui-main/examples/code.html
Executable file
273
public/frontend/layui-main/examples/code.html
Executable file
@@ -0,0 +1,273 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
|
||||
<title>Code blocks adorn - Layui</title>
|
||||
|
||||
<link href="../src/css/layui.css" rel="stylesheet">
|
||||
<style>
|
||||
body{padding: 32px;}
|
||||
pre{margin: 16px 0;}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<pre id="test" class="layui-test">
|
||||
<textarea class="layui-hide">
|
||||
<div class="layui-btn-container">
|
||||
<button type="button" class="layui-btn">默认按钮</button>
|
||||
</div>
|
||||
|
||||
<p class="layui-padding-3">
|
||||
AaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaA
|
||||
</p>
|
||||
|
||||
<div class="layui-btn-container">
|
||||
<button class="layui-btn layui-btn-primary layui-border-green">主色按钮</button>
|
||||
</div>
|
||||
<script type="text/html">
|
||||
<h3>{{= d.title }}</h3>
|
||||
<ul>
|
||||
{{# layui.each(d.list, function(index, item){ }}
|
||||
<li>
|
||||
<span>{{= item.modname }}</span>
|
||||
<span>{{= item.alias }}:</span>
|
||||
<span>{{= item.site || '' }}</span>
|
||||
</li>
|
||||
{{# }); }}
|
||||
<p>{{# if(d.list.length === 0){ }}
|
||||
无数据
|
||||
{{# } }}</p>
|
||||
</ul>
|
||||
</script>
|
||||
<script>
|
||||
layui.use(function () {
|
||||
var layer = layui.layer;
|
||||
const a = '1'
|
||||
function aa(a, b) {
|
||||
return '11'
|
||||
}
|
||||
layer.msg(layui.v)
|
||||
})
|
||||
</script>
|
||||
</textarea>
|
||||
</pre>
|
||||
|
||||
<pre><code class="layui-code" lay-options="{header: true}">
|
||||
code line
|
||||
code line
|
||||
code line
|
||||
</code></pre>
|
||||
|
||||
<pre class="layui-code" lay-options="{style: 'height: 300px'}" id="ID-multi-line"></pre>
|
||||
<script type="module">
|
||||
// 生成批量行,测试行结构
|
||||
const elem = document.getElementById('ID-multi-line');
|
||||
elem.innerHTML = Array(1001).fill().map(v => {
|
||||
return Math.random().toString(32).substring(2).toUpperCase();
|
||||
}).join('\n');
|
||||
</script>
|
||||
|
||||
<pre class="layui-code" lay-options="{title: '不显示行号', ln: false}">
|
||||
code line
|
||||
code line
|
||||
code line
|
||||
code line
|
||||
code line
|
||||
code line
|
||||
</pre>
|
||||
|
||||
<pre class="layui-code" lay-options="{title: '深色风格', skin: 'dark'}">
|
||||
code line
|
||||
code line
|
||||
code line
|
||||
code line
|
||||
code line
|
||||
code line
|
||||
</pre>
|
||||
|
||||
<pre class="layui-code" lay-options="{title: '嵌套', encode: false}">
|
||||
code line
|
||||
code line
|
||||
code line
|
||||
code line
|
||||
<pre class="layui-code" lay-options="{ln: false, encode: false}">
|
||||
code line
|
||||
code line
|
||||
code line
|
||||
<pre class="layui-code">
|
||||
code line
|
||||
code line
|
||||
code line
|
||||
</pre>
|
||||
</pre>
|
||||
</pre>
|
||||
|
||||
<pre class="layui-code" lay-options="{skin: 'dark', encode: false}">
|
||||
code line
|
||||
code line
|
||||
code line
|
||||
code line
|
||||
code line
|
||||
code line
|
||||
<pre class="layui-code" lay-options="{skin: 'dark', encode: false}">
|
||||
code line
|
||||
code line
|
||||
code line
|
||||
code line
|
||||
code line
|
||||
code line
|
||||
<pre class="layui-code" lay-options="{skin: 'dark', ln: false, encode: false}">
|
||||
code line
|
||||
code line
|
||||
code line
|
||||
code line
|
||||
code line
|
||||
code line
|
||||
</pre>
|
||||
</pre>
|
||||
</pre>
|
||||
</pre>
|
||||
|
||||
<pre class="layui-code" lay-options="{encode: true}">
|
||||
<div>
|
||||
123
|
||||
</div>
|
||||
</pre>
|
||||
|
||||
<pre class="layui-code" lay-options="{about: 'About info'}">
|
||||
About
|
||||
</pre>
|
||||
|
||||
<script src="../src/layui.js"></script>
|
||||
<script src="https://cdn.staticfile.org/highlight.js/11.8.0/highlight.min.js"></script>
|
||||
<script src="https://cdn.staticfile.org/prism/1.29.0/prism.min.js"></script>
|
||||
<script>
|
||||
layui.use(['code', 'dropdown'], function(){
|
||||
var dropdown = layui.dropdown;
|
||||
var $ = layui.$;
|
||||
|
||||
// return;
|
||||
|
||||
// 高亮主题 css 库
|
||||
var themeData = $.map([
|
||||
// hljs 主题库
|
||||
'https://cdn.staticfile.org/highlight.js/11.8.0/styles/vs2015.min.css',
|
||||
'https://cdn.staticfile.org/highlight.js/11.8.0/styles/vs.min.css',
|
||||
'https://cdn.staticfile.org/highlight.js/11.8.0/styles/github-dark.min.css',
|
||||
'https://cdn.staticfile.org/highlight.js/11.8.0/styles/github.min.css',
|
||||
'https://cdn.staticfile.org/highlight.js/11.8.0/styles/base16/google-dark.min.css',
|
||||
'https://cdn.staticfile.org/highlight.js/11.8.0/styles/base16/google-light.min.css',
|
||||
'https://cdn.staticfile.org/highlight.js/11.8.0/styles/monokai-sublime.min.css',
|
||||
'-',
|
||||
// prism 主题库
|
||||
'https://cdn.staticfile.org/prism/1.29.0/themes/prism-dark.min.css',
|
||||
'https://cdn.staticfile.org/prism/1.29.0/themes/prism.min.css'
|
||||
], function(v, index) {
|
||||
return {
|
||||
title: v,
|
||||
link: v,
|
||||
highlighter: v.indexOf('prism') === -1 ? 'hljs' : 'prism',
|
||||
type: v === '-' ? '-' : 'normal'
|
||||
};
|
||||
});
|
||||
|
||||
var codeInst = layui.code({
|
||||
elem: '#test',
|
||||
preview: true,
|
||||
codeStyle: 'height: 510px;',
|
||||
previewStyle: 'word-wrap: break-word;',
|
||||
// theme: 'dark',
|
||||
// header: true,
|
||||
// wordWrap: false, // 是否自动换行
|
||||
lang: 'html',
|
||||
highlighter: "hljs",
|
||||
/*codeRender: function (code, opts) {
|
||||
layui.link(themeData[1].link, 'layui-code-theme');
|
||||
return hljs.highlight(code, {language: opts.lang}).value;
|
||||
},*/
|
||||
tools: [
|
||||
'full',
|
||||
{
|
||||
title: ['文字换行'],
|
||||
type: 'form',
|
||||
event: function(obj) {
|
||||
dropdown.render({
|
||||
elem: obj.elem,
|
||||
data: [{title: '自动换行', wordWrap: true}, {title: '不自动换行', wordWrap: false}],
|
||||
show: true,
|
||||
click: function(data, othis) {
|
||||
codeInst.reload({
|
||||
wordWrap: data.wordWrap
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
},
|
||||
{
|
||||
title: ['切换高亮主题'],
|
||||
type: 'theme',
|
||||
event: function(obj) {
|
||||
dropdown.render({
|
||||
elem: obj.elem,
|
||||
data: themeData,
|
||||
show: true,
|
||||
click: function(data, othis) {
|
||||
$('#layuicss-layui-code-theme').remove();
|
||||
layui.link(data.link, 'layui-code-theme');
|
||||
|
||||
// 若高亮器有变化,则重载
|
||||
if (data.highlighter !== codeInst.config.highlighter) {
|
||||
var highlighter = {
|
||||
hljs: function(code, opts) {
|
||||
return hljs.highlight(code, {
|
||||
language: opts.lang
|
||||
}).value;
|
||||
},
|
||||
prism: function(code, opts) {
|
||||
return Prism.highlight(
|
||||
code,
|
||||
Prism.languages[opts.lang],
|
||||
opts.lang
|
||||
);
|
||||
}
|
||||
};
|
||||
// 重载
|
||||
codeInst.reload({
|
||||
highlighter: data.highlighter,
|
||||
codeRender: function (code, opts) {
|
||||
return highlighter[data.highlighter](code, opts);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
]
|
||||
});
|
||||
|
||||
// 仅重载 code
|
||||
layui.debounce(function() {
|
||||
codeInst.reloadCode({
|
||||
codeRender: function(code, opts) {
|
||||
layui.link(themeData[1].link, 'layui-code-theme');
|
||||
return hljs.highlight(code, {language: opts.lang}).value;
|
||||
}
|
||||
});
|
||||
}, 300)();
|
||||
|
||||
|
||||
// 通用实例,根据元素属性定制化参数
|
||||
layui.code({
|
||||
elem: '.layui-code',
|
||||
tools: ['tips'],
|
||||
langMarker: true,
|
||||
lang: 'html',
|
||||
// preview: true
|
||||
});
|
||||
});
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
128
public/frontend/layui-main/examples/colorpicker.html
Executable file
128
public/frontend/layui-main/examples/colorpicker.html
Executable file
@@ -0,0 +1,128 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
|
||||
<title>颜色选择器 - layui</title>
|
||||
|
||||
<link rel="stylesheet" href="../src/css/layui.css">
|
||||
|
||||
<style>
|
||||
body{padding:20px;}
|
||||
.test-box{margin-bottom: 50px;}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div class="layui-container">
|
||||
<div class="test-box">
|
||||
<div class="layui-inline">
|
||||
<input class="layui-input" id="LAY-test1">
|
||||
</div>
|
||||
<div id="test1"></div>
|
||||
</div>
|
||||
|
||||
<div class="test-box">
|
||||
<div id="test2"></div>
|
||||
</div>
|
||||
|
||||
<div class="test-box">
|
||||
<div id="test3"></div>
|
||||
</div>
|
||||
|
||||
<div class="test-box">
|
||||
<div id="test4"></div>
|
||||
</div>
|
||||
|
||||
<div class="test-box">
|
||||
<div id="test5"></div>
|
||||
</div>
|
||||
|
||||
<div class="test-box">
|
||||
<div id="test6"></div>
|
||||
</div>
|
||||
|
||||
<div class="test-box">
|
||||
<div class="test-more" lay-options="{color: '#FF0000'}"></div>
|
||||
<div class="test-more" lay-options="{color: '#008000'}"></div>
|
||||
<div class="test-more" lay-options="{color: '#0000FF'}"></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script src="../src/layui.js"></script>
|
||||
<script>
|
||||
|
||||
layui.use(['colorpicker', 'layer'], function(){
|
||||
var colorpicker = layui.colorpicker;
|
||||
|
||||
colorpicker.render({
|
||||
elem: '#test1'
|
||||
//,predefine: true //开启预定义颜色
|
||||
//,colors: ['#F00','#0F0','#00F','rgb(255, 69, 0)','rgba(255, 69, 0, 0.5)']
|
||||
,change: function(color){
|
||||
this.done(color);
|
||||
}
|
||||
,done: function(color){
|
||||
layui.$('#LAY-test1').val(color);
|
||||
document.body.style.backgroundColor = color;
|
||||
}
|
||||
,cancel: function(color){
|
||||
this.done(color);
|
||||
console.log('cancel', color);
|
||||
}
|
||||
,close: function(color){
|
||||
console.log('close', color);
|
||||
}
|
||||
});
|
||||
|
||||
colorpicker.render({
|
||||
elem: '#test2'
|
||||
,color: 'rgba(218, 121, 157, 1)' //设置默认色
|
||||
,predefine: true
|
||||
,alpha: true //开启透明度
|
||||
,format: 'rgb'
|
||||
,change: function(color){
|
||||
console.log(color)
|
||||
}
|
||||
});
|
||||
|
||||
colorpicker.render({
|
||||
elem: '#test3'
|
||||
,color: '#000'
|
||||
//,alpha: true
|
||||
//,format: 'rgb' //设置输入显示格式为rgb
|
||||
});
|
||||
|
||||
colorpicker.render({
|
||||
elem: '#test4'
|
||||
,color: '#06eeb8'
|
||||
,predefine: true //开启预定义色
|
||||
,format: 'rgb'
|
||||
});
|
||||
|
||||
colorpicker.render({
|
||||
elem: '#test5'
|
||||
,color: '#ffd900'
|
||||
,predefine: true
|
||||
,size: 'lg'
|
||||
});
|
||||
|
||||
colorpicker.render({
|
||||
elem: '#test6'
|
||||
,color: '#F00'
|
||||
,predefine: true
|
||||
,colors: ['#F00','#0F0','#00F','rgb(255, 69, 0)','rgba(255, 69, 0, 0.5)']
|
||||
,size: 'xs'
|
||||
});
|
||||
|
||||
// 同时绑定多个
|
||||
colorpicker.render({
|
||||
elem: '.test-more',
|
||||
done: function(color){
|
||||
console.log(this.elem, color);
|
||||
}
|
||||
});
|
||||
})
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
261
public/frontend/layui-main/examples/dropdown.html
Executable file
261
public/frontend/layui-main/examples/dropdown.html
Executable file
@@ -0,0 +1,261 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
|
||||
<title>下拉菜单 - layui</title>
|
||||
|
||||
<link rel="stylesheet" href="../src/css/layui.css">
|
||||
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div class="layui-container">
|
||||
|
||||
<div class="layui-btn-container" style="padding: 30px 0;">
|
||||
<button class="layui-btn" id="demo1">
|
||||
按钮下拉
|
||||
<i class="layui-icon layui-icon-down layui-font-12"></i>
|
||||
</button>
|
||||
<button class="layui-btn layui-btn-primary" id="demo2">
|
||||
|
||||
按钮下拉
|
||||
<i class="layui-icon layui-icon-down layui-font-12"></i>
|
||||
</button>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="layui-text">
|
||||
<a href="javascript:;" id="demo3">文字下拉 <i class="layui-icon layui-icon-down"></i></a>
|
||||
</div>
|
||||
|
||||
<div class="layui-bg-gray" style="margin-top: 30px; width: 100%; height: 300px; text-align: center;" id="demo20">
|
||||
<span class="layui-font-gray" style="position: relative; top:50%;">鼠标右键菜单</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<script src="../src/layui.js"></script>
|
||||
<script>
|
||||
layui.use('dropdown', function(){
|
||||
var dropdown = layui.dropdown;
|
||||
|
||||
dropdown.render({
|
||||
elem: '#demo1'
|
||||
,shade: [0.1, '#ddd']
|
||||
//,align: 'right'
|
||||
,data: [{
|
||||
title: 'menu item 1'
|
||||
,templet: '<i class="layui-icon layui-icon-light"></i> {{= d.title }} <span class="layui-badge-dot"></span>'
|
||||
,id: ''
|
||||
,href: ''
|
||||
,type: '' //菜单类型,支持:normal/group/parent
|
||||
},{
|
||||
title: 'menu item <strong>2</strong>'
|
||||
,templet: '<img src="https://unpkg.com/outeres@0.1.1/demo/avatar/0.png" style="width: 16px;"> {{- d.title }}'
|
||||
,id: ''
|
||||
,href: 'https://www.layui.com/'
|
||||
,target: '_blank'
|
||||
},{type: '-'},{},{
|
||||
title: 'menu item 3 <hello>'
|
||||
,id: ''
|
||||
,type: 'group'
|
||||
,child: [{
|
||||
title: 'menu item 3-1'
|
||||
,id: ''
|
||||
},{
|
||||
title: 'menu item 3-2'
|
||||
,id: ''
|
||||
,child: [{
|
||||
title: 'menu item 3-2-1'
|
||||
,id: ''
|
||||
},{
|
||||
title: 'menu item 3-2-2'
|
||||
,id: ''
|
||||
,type: 'group'
|
||||
,child: [{
|
||||
title: 'menu item 3-2-2-1'
|
||||
,id: ''
|
||||
},{
|
||||
title: 'menu item 3-2-2-2'
|
||||
,id: ''
|
||||
}]
|
||||
},{
|
||||
title: 'menu item 3-2-3'
|
||||
,id: ''
|
||||
}]
|
||||
},{
|
||||
title: 'menu item 3-3'
|
||||
,id: ''
|
||||
,type: 'group'
|
||||
,child: [{
|
||||
title: 'menu item 3-3-1'
|
||||
,id: ''
|
||||
},{
|
||||
title: 'menu item 3-3-2'
|
||||
,id: ''
|
||||
,child: [{
|
||||
title: 'menu item 3-3-2-1'
|
||||
,id: ''
|
||||
},{
|
||||
title: 'menu item 3-3-2-2'
|
||||
,id: ''
|
||||
},{
|
||||
title: 'menu item 3-3-2-3'
|
||||
,id: ''
|
||||
}]
|
||||
},{
|
||||
title: 'menu item 3-3-3'
|
||||
,id: ''
|
||||
}]
|
||||
}]
|
||||
}
|
||||
,{type: '-'}
|
||||
,{
|
||||
title: 'menu item 4'
|
||||
,id: ''
|
||||
},{
|
||||
title: 'menu item 5'
|
||||
,id: ''
|
||||
,child: [{
|
||||
title: 'menu item 5-1'
|
||||
,id: ''
|
||||
,child: [{
|
||||
title: 'menu item 5-1-1'
|
||||
,id: ''
|
||||
},{
|
||||
title: 'menu item 5-1-2'
|
||||
,id: ''
|
||||
},{
|
||||
title: 'menu item 5-1-3'
|
||||
,id: ''
|
||||
}]
|
||||
},{
|
||||
title: 'menu item 5-2'
|
||||
,id: ''
|
||||
},{
|
||||
title: 'menu item 5-3'
|
||||
,id: ''
|
||||
}]
|
||||
},{type:'-'},{
|
||||
title: 'menu item 6'
|
||||
,id: ''
|
||||
,type: 'group'
|
||||
,isSpreadItem: false
|
||||
,child: [{
|
||||
title: 'menu item 6-1'
|
||||
,id: ''
|
||||
},{
|
||||
title: 'menu item 6-2'
|
||||
,id: ''
|
||||
},{
|
||||
title: 'menu item 6-3'
|
||||
,id: ''
|
||||
}]
|
||||
}]
|
||||
|
||||
,id: 'demo1'
|
||||
|
||||
// 触发点击事件的元素范围 --- default: 仅子菜单触发点击事件(默认,可不填); all: 所有父子菜单均触发点击事件
|
||||
,clickScope: 'all'
|
||||
|
||||
// 菜单被点击的事件
|
||||
,click: function(obj){
|
||||
console.log(obj);
|
||||
}
|
||||
});
|
||||
|
||||
var inst = dropdown.render({
|
||||
elem: '#demo2'
|
||||
// ,show: true
|
||||
,data: [{
|
||||
title: 'menu item 1'
|
||||
,href: '#1'
|
||||
,disabled: true
|
||||
},{
|
||||
title: 'menu item 2(点击不关闭)'
|
||||
,href: '#2'
|
||||
,id: 'bbb'
|
||||
},{
|
||||
title: 'menu item 3'
|
||||
,href: '#3'
|
||||
}]
|
||||
,click: function(data, othis){
|
||||
console.log(data);
|
||||
if(data.id === 'bbb'){
|
||||
return false;
|
||||
}
|
||||
}
|
||||
,ready: function(){
|
||||
console.log(arguments);
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
dropdown.render({
|
||||
elem: '#demo3'
|
||||
,content: '自定义内容 123 '
|
||||
,style: 'background:#666;color:#fff;padding:15px;'
|
||||
,align: 'center'
|
||||
,trigger: 'hover'
|
||||
});
|
||||
|
||||
|
||||
//右键
|
||||
dropdown.render({
|
||||
elem: document//'#demo20' //也可绑定到 document,从而重置整个右键
|
||||
,trigger: 'contextmenu' //contextmenu
|
||||
,isAllowSpread: false
|
||||
//,style: 'width: 200px'
|
||||
,customName: {
|
||||
children: 'children'
|
||||
}
|
||||
,data: [{
|
||||
title: 'menu item 1'
|
||||
,id: '#1'
|
||||
},{
|
||||
title: 'menu item 2'
|
||||
,id: 'reload'
|
||||
},{type:'-'},{
|
||||
title: 'menu item 3'
|
||||
,id: '#3'
|
||||
,children: [{
|
||||
title: 'menu item 3-1'
|
||||
,id: '#1'
|
||||
},{
|
||||
title: 'menu item 3-2'
|
||||
,id: '#2'
|
||||
},{
|
||||
title: 'menu item 3-3'
|
||||
,id: '#3'
|
||||
}]
|
||||
},{type:'-'},{
|
||||
title: 'menu item 4'
|
||||
,id: ''
|
||||
},{
|
||||
title: 'menu item 5'
|
||||
,id: '#1'
|
||||
},{
|
||||
title: 'menu item 6'
|
||||
,id: '#1'
|
||||
}]
|
||||
,click: function(obj, othis){
|
||||
if(obj.id === 'reload'){
|
||||
location.reload();
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
|
||||
|
||||
return;
|
||||
|
||||
dropdown.render({
|
||||
elem: document
|
||||
,content: '123'
|
||||
});
|
||||
});
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
192
public/frontend/layui-main/examples/element.html
Executable file
192
public/frontend/layui-main/examples/element.html
Executable file
@@ -0,0 +1,192 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
|
||||
<title>常用元素 - layui</title>
|
||||
|
||||
<link rel="stylesheet" href="../src/css/layui.css">
|
||||
|
||||
<style>
|
||||
body{padding:20px;}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<ul class="layui-timeline">
|
||||
<li class="layui-timeline-item">
|
||||
<i class="layui-icon layui-timeline-axis"></i>
|
||||
<div class="layui-timeline-content layui-text">
|
||||
<h2 class="layui-timeline-title">2.0.0</h2>
|
||||
<p>杜甫的思想核心是儒家的仁政思想,他有“致君尧舜上,<em>再使风俗淳”的宏伟抱负</em>。杜甫虽然在世时名声并不显赫,但后来声名</p>
|
||||
<ul>
|
||||
<li>思想</li>
|
||||
<li>虽然在</li>
|
||||
</ul>
|
||||
哈哈哈
|
||||
</div>
|
||||
</li>
|
||||
<li class="layui-timeline-item">
|
||||
<i class="layui-icon layui-timeline-axis"></i>
|
||||
<div class="layui-timeline-content layui-text">
|
||||
<h2 class="layui-timeline-title">1.0.9</h2>
|
||||
哈哈哈
|
||||
</div>
|
||||
</li>
|
||||
<li class="layui-timeline-item">
|
||||
<i class="layui-icon layui-timeline-axis"></i>
|
||||
<div class="layui-timeline-content layui-text">
|
||||
<div class="layui-timeline-title">标题</div>
|
||||
内容
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<hr>
|
||||
|
||||
徽章:
|
||||
|
||||
<span class="layui-badge-dot"></span>
|
||||
<span class="layui-badge-dot layui-bg-orange"></span>
|
||||
<span class="layui-badge-dot layui-bg-green"></span>
|
||||
<span class="layui-badge-dot layui-bg-cyan"></span>
|
||||
<span class="layui-badge-dot layui-bg-blue"></span>
|
||||
<span class="layui-badge-dot layui-bg-black"></span>
|
||||
<span class="layui-badge-dot layui-bg-gray"></span>
|
||||
|
||||
<span class="layui-badge">6</span>
|
||||
<span class="layui-badge">99</span>
|
||||
<span class="layui-badge">61728</span>
|
||||
|
||||
<span class="layui-badge">赤</span>
|
||||
<span class="layui-badge layui-bg-orange">橙</span>
|
||||
<span class="layui-badge layui-bg-green">绿</span>
|
||||
<span class="layui-badge layui-bg-cyan">青</span>
|
||||
<span class="layui-badge layui-bg-blue">蓝</span>
|
||||
<span class="layui-badge layui-bg-black">黑</span>
|
||||
<span class="layui-badge layui-bg-gray">灰</span>
|
||||
|
||||
<span class="layui-badge-rim">Hot</span>
|
||||
|
||||
<hr>
|
||||
|
||||
<div class="layui-collapse" lay-filter="test" lay-accordion>
|
||||
<div class="layui-colla-item">
|
||||
<h2 class="layui-colla-title">杜甫</h2>
|
||||
<div class="layui-colla-content layui-show">
|
||||
<p>杜甫的思想核心是儒家的仁政思想,他有“致君尧舜上,再使风俗淳”的宏伟抱负。杜甫虽然在世时名声并不显赫,但后来声名远播,对中国文学和日本文学都产生了深远的影响。杜甫共有约1500首诗歌被保留了下来,大多集于《杜工部集》。</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-colla-item">
|
||||
<h2 class="layui-colla-title">李清照</h2>
|
||||
<div class="layui-colla-content">
|
||||
<p>李清照出生于书香门第,早期生活优裕,其父李格非藏书甚富,她小时候就在良好的家庭环境中打下文学基础。出嫁后与夫赵明诚共同致力于书画金石的搜集整理。金兵入据中原时,流寓南方,境遇孤苦。所作词,前期多写其悠闲生活,后期多悲叹身世,情调感伤。形式上善用白描手法,自辟途径,语言清丽。</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-colla-item">
|
||||
<h2 class="layui-colla-title">鲁迅</h2>
|
||||
<div class="layui-colla-content">
|
||||
<p>鲁迅一生在文学创作、文学批评、思想研究、文学史研究、翻译、美术理论引进、基础科学介绍和古籍校勘与研究等多个领域具有重大贡献。他对于五四运动以后的中国社会思想文化发展具有重大影响,蜚声世界文坛,尤其在韩国、日本思想文化领域有极其重要的地位和影响,被誉为“二十世纪东亚文化地图上占最大领土的作家”。</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<br><br>
|
||||
|
||||
<div class="layui-progress" lay-showPercent="true" lay-filter="demo-progress-1">
|
||||
<div class="layui-progress-bar" lay-percent="1/3"></div>
|
||||
</div>
|
||||
|
||||
<br>
|
||||
|
||||
<div class="layui-progress">
|
||||
<div class="layui-progress-bar layui-bg-red" lay-percent="20%"></div>
|
||||
</div>
|
||||
<br>
|
||||
<div class="layui-progress">
|
||||
<div class="layui-progress-bar layui-bg-orange" lay-percent="30%"></div>
|
||||
</div>
|
||||
<br>
|
||||
<div class="layui-progress">
|
||||
<div class="layui-progress-bar layui-bg-green" lay-percent="40%"></div>
|
||||
</div>
|
||||
<br>
|
||||
<div class="layui-progress">
|
||||
<div class="layui-progress-bar layui-bg-blue" lay-percent="50%"></div>
|
||||
</div>
|
||||
<br>
|
||||
<div class="layui-progress">
|
||||
<div class="layui-progress-bar layui-bg-cyan" lay-percent="60%"></div>
|
||||
</div>
|
||||
<br>
|
||||
|
||||
<div class="layui-progress layui-progress-big" lay-filter="demo" lay-showPercent="true">
|
||||
<div class="layui-progress-bar" lay-percent="100%"></div>
|
||||
</div>
|
||||
<br>
|
||||
|
||||
<div class="layui-progress layui-progress-big" lay-filter="demo" lay-showPercent="true">
|
||||
<div class="layui-progress-bar" lay-percent="1700 / 2000"></div>
|
||||
</div>
|
||||
|
||||
<br><br>
|
||||
|
||||
<blockquote class="layui-elem-quote layui-text">
|
||||
<p>Layui - 原生态模块化前端 UI 组件库</p>
|
||||
<p>Layui - 原生态模块化前端 UI 组件库</p>
|
||||
</blockquote>
|
||||
<blockquote class="layui-elem-quote layui-quote-nm">
|
||||
Layui - 原生态模块化前端 UI 组件库
|
||||
Layui - 原生态模块化前端 UI 组件库
|
||||
Layui - 原生态模块化前端 UI 组件库
|
||||
Layui - 原生态模块化前端 UI 组件库
|
||||
Layui - 原生态模块化前端 UI 组件库
|
||||
</blockquote>
|
||||
|
||||
<fieldset class="layui-elem-field">
|
||||
<legend>字段集区块 - 默认风格</legend>
|
||||
<div class="layui-field-box">
|
||||
内容区域
|
||||
</div>
|
||||
</fieldset>
|
||||
|
||||
默认分割线
|
||||
<hr>
|
||||
|
||||
赤色分割线
|
||||
<hr class="layui-bg-red">
|
||||
|
||||
橙色分割线
|
||||
<hr class="layui-bg-orange">
|
||||
|
||||
墨绿分割线
|
||||
<hr class="layui-bg-green">
|
||||
|
||||
青色分割线
|
||||
<hr class="layui-bg-cyan">
|
||||
|
||||
蓝色分割线
|
||||
<hr class="layui-bg-blue">
|
||||
|
||||
黑色分割线
|
||||
<hr class="layui-bg-black">
|
||||
|
||||
灰色分割线
|
||||
<hr class="layui-bg-gray">
|
||||
|
||||
|
||||
|
||||
|
||||
<script src="../src/layui.js"></script>
|
||||
<script>
|
||||
|
||||
layui.use(['element', 'form'], function(){
|
||||
var element = layui.element;
|
||||
|
||||
element.on('collapse(test)', function(data){
|
||||
console.log(data);
|
||||
});
|
||||
});
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
269
public/frontend/layui-main/examples/element.nav.html
Executable file
269
public/frontend/layui-main/examples/element.nav.html
Executable file
@@ -0,0 +1,269 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
|
||||
<title>导航 - 常用元素 - layui</title>
|
||||
<link rel="stylesheet" href="../src/css/layui.css">
|
||||
<style>
|
||||
body{padding: 16px;}
|
||||
.demo-nav-tree>.layui-inline{vertical-align: top;}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
|
||||
<ul class="layui-nav">
|
||||
<li class="layui-nav-item"><a href="">最新活动</a></li>
|
||||
<li class="layui-nav-item">
|
||||
<a href="javascript:;">产品</a>
|
||||
</li>
|
||||
<li class="layui-nav-item"><a href="">大数据<span class="layui-badge-dot"></span></a></li>
|
||||
<li class="layui-nav-item">
|
||||
<a href="javascript:;">方案</a>
|
||||
<dl class="layui-nav-child layui-nav-child-c">
|
||||
<dd><a href="">移动模块</a></dd>
|
||||
<dd class="layui-this"><a href="">后台模版</a></dd>
|
||||
<dd><a href="">电商平台</a></dd>
|
||||
</dl>
|
||||
</li>
|
||||
<li class="layui-nav-item"><a href="">社区</a></li>
|
||||
<li class="layui-nav-item">
|
||||
<a href=""><img src="http://t.cn/RCzsdCq" class="layui-nav-img"></a>
|
||||
<dl class="layui-nav-child layui-nav-child-r">
|
||||
<dd><a href="">Your organizations</a></dd>
|
||||
<dd><a href="">Settings</a></dd>
|
||||
<hr>
|
||||
<dd><a href="">Sign out</a></dd>
|
||||
</dl>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<br>
|
||||
|
||||
<ul class="layui-nav layui-bg-cyan">
|
||||
<li class="layui-nav-item layui-this"><a href="">最新活动</a></li>
|
||||
<li class="layui-nav-item">
|
||||
<a href="javascript:;">产品</a>
|
||||
</li>
|
||||
<li class="layui-nav-item"><a href="">大数据</a></li>
|
||||
<li class="layui-nav-item">
|
||||
<a href="javascript:;">解决方案</a>
|
||||
<dl class="layui-nav-child">
|
||||
<dd><a href="">移动模块</a></dd>
|
||||
<dd class="layui-this"><a href="">后台模版</a></dd>
|
||||
<dd><a href="">电商平台</a></dd>
|
||||
</dl>
|
||||
</li>
|
||||
<li class="layui-nav-item"><a href="">社区</a></li>
|
||||
</ul>
|
||||
|
||||
<br>
|
||||
|
||||
<ul class="layui-nav layui-bg-green">
|
||||
<li class="layui-nav-item"><a href="">最新活动</a></li>
|
||||
<li class="layui-nav-item">
|
||||
<a href="javascript:;">产品</a>
|
||||
<dl class="layui-nav-child">
|
||||
<dd><a href="">选项1</a></dd>
|
||||
<dd><a href="">选项2</a></dd>
|
||||
<dd><a href="">选项3</a></dd>
|
||||
</dl>
|
||||
</li>
|
||||
<li class="layui-nav-item"><a href="">大数据</a></li>
|
||||
<li class="layui-nav-item">
|
||||
<a href="javascript:;">解决方案</a>
|
||||
<dl class="layui-nav-child">
|
||||
<dd><a href="">移动模块</a></dd>
|
||||
<dd class="layui-this"><a href="">后台模版</a></dd>
|
||||
<dd><a href="">电商平台</a></dd>
|
||||
</dl>
|
||||
</li>
|
||||
<li class="layui-nav-item"><a href="">社区</a></li>
|
||||
</ul>
|
||||
|
||||
<br>
|
||||
|
||||
<ul class="layui-nav layui-bg-blue" lay-bar="disabled">
|
||||
<li class="layui-nav-item"><a href="">最新活动</a></li>
|
||||
<li class="layui-nav-item">
|
||||
<a href="javascript:;">产品</a>
|
||||
<dl class="layui-nav-child">
|
||||
<dd><a href="">选项1</a></dd>
|
||||
<dd><a href="">选项2</a></dd>
|
||||
<dd><a href="">选项3</a></dd>
|
||||
</dl>
|
||||
</li>
|
||||
<li class="layui-nav-item"><a href="">大数据</a></li>
|
||||
<li class="layui-nav-item">
|
||||
<a href="javascript:;">解决方案</a>
|
||||
<dl class="layui-nav-child">
|
||||
<dd><a href="">移动模块</a></dd>
|
||||
<dd class="layui-this"><a href="">后台模版</a></dd>
|
||||
<dd><a href="">电商平台</a></dd>
|
||||
</dl>
|
||||
</li>
|
||||
<li class="layui-nav-item"><a href="">社区</a></li>
|
||||
</ul>
|
||||
|
||||
<br>
|
||||
|
||||
<ul class="layui-nav layui-bg-gray">
|
||||
<li class="layui-nav-item"><a href="">最新活动</a></li>
|
||||
<li class="layui-nav-item">
|
||||
<a href="javascript:;">产品</a>
|
||||
</li>
|
||||
<li class="layui-nav-item"><a href="">大数据</a></li>
|
||||
<li class="layui-nav-item">
|
||||
<a href="javascript:;">解决方案</a>
|
||||
<dl class="layui-nav-child">
|
||||
<dd><a href="">移动模块</a></dd>
|
||||
<dd class="layui-this"><a href="">后台模版</a></dd>
|
||||
<dd><a href="">电商平台</a></dd>
|
||||
</dl>
|
||||
</li>
|
||||
<li class="layui-nav-item"><a href="">社区</a></li>
|
||||
</ul>
|
||||
|
||||
<br>
|
||||
|
||||
<div class="demo-nav-tree">
|
||||
<div class="layui-inline">
|
||||
|
||||
<ul class="layui-nav layui-nav-tree" lay-filter="test">
|
||||
<li class="layui-nav-item">
|
||||
<a class="" href="javascript:;">产品</a>
|
||||
<dl class="layui-nav-child">
|
||||
<dd><a href="javascript:;">移动模块</a></dd>
|
||||
<dd>
|
||||
<a href="javascript:;">后台模版</a>
|
||||
<dl class="layui-nav-child">
|
||||
<dd><a href="javascript:;">组件一</a></dd>
|
||||
<dd>
|
||||
<a href="javascript:;">组件二</a>
|
||||
</dd>
|
||||
<dd><a href="javascript:;">组件三</a></dd>
|
||||
</dl>
|
||||
</dd>
|
||||
<dd><a href="javascript:;">电商平台</a></dd>
|
||||
<dd><a href="">跳转菜单</a></dd>
|
||||
</dl>
|
||||
</li>
|
||||
<li class="layui-nav-item">
|
||||
<a href="javascript:;">解决方案</a>
|
||||
<dl class="layui-nav-child">
|
||||
<dd><a href="javascript:;">移动模块</a></dd>
|
||||
<dd>
|
||||
<a href="javascript:;">后台模版</a>
|
||||
</dd>
|
||||
<dd><a href="">电商平台</a></dd>
|
||||
</dl>
|
||||
</li>
|
||||
<li class="layui-nav-item"><a href="javascript:;">云市场</a></li>
|
||||
<li class="layui-nav-item"><a href="">社区</a></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
<div class="layui-inline">
|
||||
|
||||
<ul class="layui-nav layui-nav-tree layui-bg-gray" lay-filter="test">
|
||||
<li class="layui-nav-item">
|
||||
<a class="" href="javascript:;">产品</a>
|
||||
<dl class="layui-nav-child">
|
||||
<dd><a href="javascript:;">移动模块</a></dd>
|
||||
<dd>
|
||||
<a href="javascript:;">后台模版</a>
|
||||
<dl class="layui-nav-child">
|
||||
<dd><a href="javascript:;">组件一</a></dd>
|
||||
<dd>
|
||||
<a href="javascript:;">组件二</a>
|
||||
</dd>
|
||||
<dd><a href="javascript:;">组件三</a></dd>
|
||||
</dl>
|
||||
</dd>
|
||||
<dd><a href="javascript:;">电商平台</a></dd>
|
||||
<dd><a href="">跳转菜单</a></dd>
|
||||
</dl>
|
||||
</li>
|
||||
<li class="layui-nav-item">
|
||||
<a href="javascript:;">解决方案</a>
|
||||
<dl class="layui-nav-child">
|
||||
<dd><a href="javascript:;">移动模块</a></dd>
|
||||
<dd>
|
||||
<a href="javascript:;">后台模版</a>
|
||||
</dd>
|
||||
<dd><a href="">电商平台</a></dd>
|
||||
</dl>
|
||||
</li>
|
||||
<li class="layui-nav-item"><a href="javascript:;">云市场</a></li>
|
||||
<li class="layui-nav-item"><a href="">社区</a></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
<div class="layui-inline">
|
||||
|
||||
<ul class="layui-nav layui-bg-cyan layui-nav-tree" lay-filter="test">
|
||||
<li class="layui-nav-item layui-nav-itemed">
|
||||
<a class="" href="javascript:;">产品</a>
|
||||
<dl class="layui-nav-child">
|
||||
<dd><a href="javascript:;">移动模块</a></dd>
|
||||
<dd>
|
||||
<a href="javascript:;">后台模版</a>
|
||||
</dd>
|
||||
<dd><a href="javascript:;">电商平台</a></dd>
|
||||
<dd><a href="">跳转菜单</a></dd>
|
||||
</dl>
|
||||
</li>
|
||||
<li class="layui-nav-item">
|
||||
<a href="javascript:;">解决方案</a>
|
||||
<dl class="layui-nav-child">
|
||||
<dd><a href="javascript:;">移动模块</a></dd>
|
||||
<dd><a href="javascript:;">后台模版</a></dd>
|
||||
<dd><a href="">电商平台</a></dd>
|
||||
</dl>
|
||||
</li>
|
||||
<li class="layui-nav-item"><a href="">云市场</a></li>
|
||||
<li class="layui-nav-item"><a href="">社区</a></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<br>
|
||||
<br>
|
||||
|
||||
<span class="layui-breadcrumb">
|
||||
<a href="">首页</a>
|
||||
<a href="">国际新闻</a>
|
||||
<a href="">亚太地区</a>
|
||||
<a><cite>正文</cite></a>
|
||||
</span>
|
||||
|
||||
<br><br>
|
||||
|
||||
<span class="layui-breadcrumb" lay-separator="|">
|
||||
<a href="">娱乐</a>
|
||||
<a href="">八卦</a>
|
||||
<a href="">体育</a>
|
||||
<a href="">搞笑</a>
|
||||
<a href="">视频</a>
|
||||
<a href="">游戏</a>
|
||||
<a href="">综艺</a>
|
||||
</span>
|
||||
|
||||
<br><br><br><br><br><br>
|
||||
|
||||
|
||||
<script src="../src/layui.js"></script>
|
||||
<script>
|
||||
|
||||
layui.use(['element', 'form'], function(){
|
||||
var element = layui.element;
|
||||
|
||||
element.on('nav(test)', function(elem){
|
||||
console.log(elem)
|
||||
});
|
||||
});
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
126
public/frontend/layui-main/examples/element.tab.html
Executable file
126
public/frontend/layui-main/examples/element.tab.html
Executable file
@@ -0,0 +1,126 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
|
||||
<title>选项卡 - 常用元素 - layui</title>
|
||||
|
||||
<link rel="stylesheet" href="../src/css/layui.css">
|
||||
|
||||
<style>
|
||||
body{padding:20px;}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
|
||||
<div class="layui-tab" lay-filter="tabDemo" lay-allowClose="true">
|
||||
<ul class="layui-tab-title">
|
||||
<li class="layui-this" lay-id="1">标题1</li>
|
||||
<li lay-id="2">标题2</li>
|
||||
<li lay-id="3">标题3</li>
|
||||
<li lay-id="4">标题4</li>
|
||||
<li lay-id="5">标题5</li>
|
||||
</ul>
|
||||
<div class="layui-tab-content">
|
||||
<div class="layui-tab-item layui-show">1</div>
|
||||
<div class="layui-tab-item">2</div>
|
||||
<div class="layui-tab-item">3</div>
|
||||
<div class="layui-tab-item">4</div>
|
||||
<div class="layui-tab-item">5</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<button class="layui-btn" onclick="layui.element.tabChange('tabDemo', 3)">手工切换到“标题3”</button>
|
||||
<button class="layui-btn" onclick="layui.element.tabAdd('tabDemo', {title:'新标题', content:'新内容', id: +new Date, change: true})">添加Tab</button>
|
||||
<button class="layui-btn" onclick="layui.element.tabDelete('tabDemo', 4)">删除“标题4”</button>
|
||||
|
||||
<div class="layui-tab layui-tab-brief">
|
||||
<ul class="layui-tab-title">
|
||||
<li class="layui-this">标题1</li>
|
||||
<li>标题2</li>
|
||||
<li>标题3</li>
|
||||
<li>标题4</li>
|
||||
<li>标题5</li>
|
||||
<li>标题6</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="layui-inline">
|
||||
<div class="layui-tab layui-tab-card">
|
||||
<ul class="layui-tab-title">
|
||||
<li class="layui-this">标题一</li>
|
||||
<li>标题2</li>
|
||||
<li>标题3</li>
|
||||
<li>标题4</li>
|
||||
<li>标题5</li>
|
||||
<li>标题6</li>
|
||||
</ul>
|
||||
<div class="layui-tab-content">
|
||||
<div class="layui-tab-item layui-show">
|
||||
<div class="layui-form">
|
||||
<select>
|
||||
<option>1</option>
|
||||
<option>2</option>
|
||||
<option>3</option>
|
||||
<option>4</option>
|
||||
<option>5</option>
|
||||
<option>6</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-tab-item">2</div>
|
||||
<div class="layui-tab-item">3</div>
|
||||
<div class="layui-tab-item">4</div>
|
||||
<div class="layui-tab-item">5</div>
|
||||
<div class="layui-tab-item">6</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-tab">
|
||||
<ul class="layui-tab-title">
|
||||
<li class="layui-this"><a href="#1">标题题题题题题1</a></li>
|
||||
<li><a href="#2">标题题题2</a></li>
|
||||
<li><a href="#3">标题3</a></li>
|
||||
<li><a href="#4">标题题题题题题题4</a></li>
|
||||
<li><a href="#5">标题5</a></li>
|
||||
<li><a href="#6">标题6</a></li>
|
||||
<li><a href="#7">标题7</a></li>
|
||||
<li><a href="#8">标题题题题题题题8</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="layui-tab" lay-filter="test" lay-allowClose="true">
|
||||
<ul class="layui-tab-title">
|
||||
<li class="layui-this">标题1</li>
|
||||
<li>标题2</li>
|
||||
<li>标题3</li>
|
||||
<li>标题4</li>
|
||||
<li>标题5</li>
|
||||
<li>标题6</li>
|
||||
<li>标题7</li>
|
||||
<li>标题8</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<script src="../src/layui.js"></script>
|
||||
<script>
|
||||
|
||||
layui.use(['element', 'form'], function(){
|
||||
var element = layui.element;
|
||||
|
||||
element.on('tab(test)', function(data){
|
||||
console.log(this, data);
|
||||
});
|
||||
|
||||
element.on('tabDelete(tabDemo)', function(data){
|
||||
console.log(this, data);
|
||||
});
|
||||
|
||||
});
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
30
public/frontend/layui-main/examples/extend.html
Executable file
30
public/frontend/layui-main/examples/extend.html
Executable file
@@ -0,0 +1,30 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
|
||||
<title>自定义模块 - layui</title>
|
||||
|
||||
<link rel="stylesheet" href="../src/css/layui.css">
|
||||
|
||||
<style>
|
||||
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
|
||||
|
||||
<script src="../src/layui.js"></script>
|
||||
<script>
|
||||
layui.config({
|
||||
base: './js/'
|
||||
}).extend({
|
||||
index: 'index'
|
||||
,test: 'child/test'
|
||||
}).use('test');
|
||||
|
||||
layui.use('index')
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
12
public/frontend/layui-main/examples/extends/mod1.js
Executable file
12
public/frontend/layui-main/examples/extends/mod1.js
Executable file
@@ -0,0 +1,12 @@
|
||||
/**
|
||||
扩展模块,且依赖 mod2
|
||||
**/
|
||||
layui.define('mod2', function(exports){
|
||||
var $ = layui.jquery;
|
||||
|
||||
console.log(layui.mod2, layui.layer, layui.form)
|
||||
|
||||
exports('mod1', {
|
||||
name: 'mod1'
|
||||
})
|
||||
});
|
||||
11
public/frontend/layui-main/examples/extends/mod2.js
Executable file
11
public/frontend/layui-main/examples/extends/mod2.js
Executable file
@@ -0,0 +1,11 @@
|
||||
/**
|
||||
扩展模块,只依赖内置模块
|
||||
**/
|
||||
|
||||
layui.define(function(exports){
|
||||
console.log('mod2.js')
|
||||
|
||||
exports('mod2', {
|
||||
name: 'mod2'
|
||||
})
|
||||
});
|
||||
143
public/frontend/layui-main/examples/extends/temp.js
Executable file
143
public/frontend/layui-main/examples/extends/temp.js
Executable file
@@ -0,0 +1,143 @@
|
||||
/**
|
||||
|
||||
@Name:layui.modDemo XX组件
|
||||
@Author:贤心
|
||||
@License:MIT
|
||||
|
||||
*/
|
||||
|
||||
layui.define(['laytpl'], function(exports){
|
||||
"use strict";
|
||||
|
||||
var $ = layui.$
|
||||
,laytpl = layui.laytpl
|
||||
|
||||
//模块名
|
||||
,MOD_NAME = 'modDemo'
|
||||
|
||||
//外部接口
|
||||
,modeDemo = {
|
||||
config: {}
|
||||
,index: layui[MOD_NAME] ? (layui[MOD_NAME].index + 10000) : 0
|
||||
|
||||
//设置全局项
|
||||
,set: function(options){
|
||||
var that = this;
|
||||
that.config = $.extend({}, that.config, options);
|
||||
return that;
|
||||
}
|
||||
|
||||
//事件监听
|
||||
,on: function(events, callback){
|
||||
return layui.onevent.call(this, MOD_NAME, events, callback);
|
||||
}
|
||||
}
|
||||
|
||||
//操作当前实例
|
||||
,thisModule = function(){
|
||||
var that = this
|
||||
,options = that.config
|
||||
,id = options.id || that.index;
|
||||
|
||||
thisModule.that[id] = that; //记录当前实例对象
|
||||
thisModule.config[id] = options; //记录当前实例配置项
|
||||
|
||||
return {
|
||||
config: options
|
||||
//重置实例
|
||||
,reload: function(options){
|
||||
that.reload.call(that, options);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//获取当前实例配置项
|
||||
,getThisModuleConfig = function(id){
|
||||
var config = thisModule.config[id];
|
||||
if(!config) hint.error('The ID option was not found in the '+ MOD_NAME +' instance');
|
||||
return config || null;
|
||||
}
|
||||
|
||||
//字符常量
|
||||
,ELEM = 'layui-modeDemo'
|
||||
|
||||
|
||||
//主模板
|
||||
,TPL_MAIN = ['<div class="ayui-border-box">'
|
||||
|
||||
,'</div>'].join('')
|
||||
|
||||
//构造器
|
||||
,Class = function(options){
|
||||
var that = this;
|
||||
that.index = ++transfer.index;
|
||||
that.config = $.extend({}, that.config, transfer.config, options);
|
||||
that.render();
|
||||
};
|
||||
|
||||
//默认配置
|
||||
Class.prototype.config = {
|
||||
|
||||
};
|
||||
|
||||
//重载实例
|
||||
Class.prototype.reload = function(options){
|
||||
var that = this;
|
||||
|
||||
layui.each(options, function(key, item){
|
||||
if(item.constructor === Array) delete that.config[key];
|
||||
});
|
||||
|
||||
that.config = $.extend(true, {}, that.config, options);
|
||||
that.render();
|
||||
};
|
||||
|
||||
//渲染
|
||||
Class.prototype.render = function(){
|
||||
var that = this
|
||||
,options = that.config;
|
||||
|
||||
//解析模板
|
||||
that.elem = $(TPL_MAIN);
|
||||
|
||||
var othis = options.elem = $(options.elem);
|
||||
if(!othis[0]) return;
|
||||
|
||||
//索引
|
||||
that.key = options.id || that.index;
|
||||
|
||||
//插入组件结构
|
||||
othis.html(that.elem);
|
||||
|
||||
that.events(); //事件
|
||||
};
|
||||
|
||||
//事件
|
||||
Class.prototype.events = function(){
|
||||
var that = this;
|
||||
|
||||
|
||||
};
|
||||
|
||||
|
||||
|
||||
//记录所有实例
|
||||
thisModule.that = {}; //记录所有实例对象
|
||||
thisModule.config = {}; //记录所有实例配置项
|
||||
|
||||
//重载实例
|
||||
modeDemo.reload = function(id, options){
|
||||
var that = thisModule.that[id];
|
||||
that.reload(options);
|
||||
|
||||
return thisModule.call(that);
|
||||
};
|
||||
|
||||
//核心入口
|
||||
modeDemo.render = function(options){
|
||||
var inst = new Class(options);
|
||||
return thisTransfer.call(inst);
|
||||
};
|
||||
|
||||
exports(MOD_NAME, modeDemo);
|
||||
});
|
||||
92
public/frontend/layui-main/examples/flow.html
Executable file
92
public/frontend/layui-main/examples/flow.html
Executable file
@@ -0,0 +1,92 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
|
||||
<title>流加载 - layui</title>
|
||||
|
||||
<link rel="stylesheet" href="../src/css/layui.css">
|
||||
|
||||
<style>
|
||||
body{padding: 15px;}
|
||||
.flow-default{ font-size: 0;}
|
||||
.flow-default li{display: inline-block; margin-right: 10px; font-size: 14px; width: 48%; margin-bottom: 10px; height: 200px; line-height: 200px; text-align: center; background-color: #eee;}
|
||||
img{width: 500px; height: 300px;}
|
||||
.flow-default img{width: 100%; height: 100%;}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
|
||||
<ul class="flow-default" id="test1"></ul>
|
||||
|
||||
<div class="layui-hide">
|
||||
<ul class="flow-default" id="test2"></ul>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="demo" style="height: 300px; overflow: auto;">
|
||||
<img src="https://sentsin.gitee.io/res/images/demo/loading.gif" lay-src="https://sentsin.gitee.io/res/images/demo/layer.png">
|
||||
<img src="https://sentsin.gitee.io/res/images/demo/loading.gif" lay-src="https://sentsin.gitee.io/res/images/demo/layer.png">
|
||||
<img src="https://sentsin.gitee.io/res/images/demo/loading.gif" lay-src="https://sentsin.gitee.io/res/images/demo/error.png">
|
||||
<img src="https://sentsin.gitee.io/res/images/demo/loading.gif" lay-src="https://sentsin.gitee.io/res/images/demo/layer.png">
|
||||
<img src="https://sentsin.gitee.io/res/images/demo/loading.gif" lay-src="https://sentsin.gitee.io/res/images/demo/layer.png">
|
||||
<img src="https://sentsin.gitee.io/res/images/demo/loading.gif" lay-src="https://sentsin.gitee.io/res/images/demo/layer.png">
|
||||
<img src="https://sentsin.gitee.io/res/images/demo/loading.gif" lay-src="https://sentsin.gitee.io/res/images/demo/layer.png">
|
||||
<img src="https://sentsin.gitee.io/res/images/demo/loading.gif" lay-src="https://sentsin.gitee.io/res/images/demo/layer.png">
|
||||
<img src="https://sentsin.gitee.io/res/images/demo/loading.gif" lay-src="https://sentsin.gitee.io/res/images/demo/layer.png">
|
||||
<img src="https://sentsin.gitee.io/res/images/demo/loading.gif" lay-src="https://sentsin.gitee.io/res/images/demo/layer.png">
|
||||
</div>
|
||||
|
||||
|
||||
<script src="../src/layui.js"></script>
|
||||
<script>
|
||||
layui.use('flow', function(){
|
||||
var flow = layui.flow;
|
||||
|
||||
flow.load({
|
||||
elem: '#test1' //流加载容器
|
||||
//,scrollElem: '.flow-default' //滚动条所在元素,默认document
|
||||
//,isAuto: false
|
||||
//,end: '没了'
|
||||
,isLazyimg: true
|
||||
,done: function(page, next){ //加载下一页
|
||||
console.log('done:', page)
|
||||
setTimeout(function(){
|
||||
var lis = [];
|
||||
for(var i = 0; i < 6; i++){
|
||||
lis.push('<li><img lay-src="https://sentsin.gitee.io/res/images/demo/layer.png?v='+ (page+i) +'"></li>')
|
||||
}
|
||||
next(lis.join(''), page < 3);
|
||||
}, 500);
|
||||
}
|
||||
});
|
||||
|
||||
flow.load({
|
||||
elem: '#test2' //流加载容器
|
||||
//,scrollElem: '.flow-default' //滚动条所在元素,默认document
|
||||
//,isAuto: false
|
||||
//,end: '没了'
|
||||
,isLazyimg: true
|
||||
,done: function(page, next){ //加载下一页
|
||||
setTimeout(function(){
|
||||
var lis = [];
|
||||
for(var i = 0; i < 6; i++){
|
||||
lis.push('<li><img lay-src="https://sentsin.gitee.io/res/images/demo/layer.png?v='+ (page+i) +'"></li>')
|
||||
}
|
||||
next(lis.join(''), page < 3);
|
||||
}, 500);
|
||||
}
|
||||
});
|
||||
|
||||
//按屏加载图片
|
||||
flow.lazyimg({
|
||||
elem: '.demo img'
|
||||
,scrollElem: '.demo'
|
||||
});
|
||||
|
||||
});
|
||||
</script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
529
public/frontend/layui-main/examples/form.html
Executable file
529
public/frontend/layui-main/examples/form.html
Executable file
@@ -0,0 +1,529 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<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">
|
||||
<meta name="apple-mobile-web-app-status-bar-style" content="black">
|
||||
<meta name="apple-mobile-web-app-capable" content="yes">
|
||||
<meta name="format-detection" content="telephone=no">
|
||||
|
||||
<link rel="stylesheet" href="../src/css/layui.css">
|
||||
<style>
|
||||
body{padding: 16px;}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<form class="layui-form" method="get" lay-filter="top">
|
||||
<div class="layui-row layui-col-space16">
|
||||
<div class="layui-col-md3">
|
||||
<div class="layui-input-group">
|
||||
<div class="layui-input-split layui-input-prefix">
|
||||
前置信息
|
||||
</div>
|
||||
<input type="text" name="arr[]" required lay-verify="required" placeholder="请输入" autocomplete="off" class="layui-input" lay-affix="clear">
|
||||
<div class="layui-input-split layui-input-suffix">
|
||||
后置信息
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-col-md3">
|
||||
<div class="layui-input-wrap">
|
||||
<input type="text" name="arr[]" required placeholder="请输入" autocomplete="off" class="layui-input">
|
||||
<div class="layui-input-split">
|
||||
<i class="layui-icon layui-icon-down"></i>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-col-md3">
|
||||
<div class="layui-input-wrap">
|
||||
<div class="layui-input-prefix">
|
||||
<i class="layui-icon layui-icon-username"></i>
|
||||
</div>
|
||||
<input type="text" name="arr[]" value="" required placeholder="请输入" autocomplete="off" class="layui-input" lay-affix="clear">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-col-md3">
|
||||
<div class="layui-input-wrap">
|
||||
<div class="layui-input-prefix">
|
||||
<i class="layui-icon layui-icon-password"></i>
|
||||
</div>
|
||||
<input type="password" name="arr[]" value="" required placeholder="请输入" autocomplete="off" class="layui-input" lay-affix="eye">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-col-md3">
|
||||
<div class="layui-input-wrap">
|
||||
<input type="text" name="arr[]" value="" required placeholder="自定义动态点缀图标" autocomplete="off" class="layui-input" lay-affix="set" lay-filter="set">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-col-md3">
|
||||
<div class="layui-input-wrap">
|
||||
<div class="layui-input-prefix layui-input-split">
|
||||
<i class="layui-icon layui-icon-username"></i>
|
||||
</div>
|
||||
<input type="text" name="arr[]" value="" required placeholder="请输入" autocomplete="off" class="layui-input" lay-affix="clear">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-col-md3">
|
||||
<div class="layui-input-wrap">
|
||||
<input type="text" name="arr[]" value="" required placeholder="请输入" autocomplete="off" class="layui-input" lay-affix="clear">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-col-md3">
|
||||
<div class="layui-input-wrap">
|
||||
<input type="text" name="arr[]" value="禁用或只读状态" disabled placeholder="请输入" autocomplete="off" class="layui-input" lay-affix="clear">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-col-md3">
|
||||
<div class="layui-input-wrap">
|
||||
<div class="layui-input-prefix">
|
||||
<i class="layui-icon layui-icon-date"></i>
|
||||
</div>
|
||||
<input type="text" name="arr[]" required placeholder="前缀和后缀" autocomplete="off" class="layui-input">
|
||||
<div class="layui-input-suffix">
|
||||
<i class="layui-icon layui-icon-down"></i>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-col-md3">
|
||||
<div class="layui-input-wrap">
|
||||
<input type="text" name="arr[]" required placeholder="后缀+clear" lay-affix="clear" autocomplete="off" class="layui-input">
|
||||
<div class="layui-input-suffix">
|
||||
<i class="layui-icon layui-icon-more-vertical"></i>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-col-md3">
|
||||
<div class="layui-input-wrap">
|
||||
<div class="layui-input-prefix">
|
||||
<i class="layui-icon layui-icon-username"></i>
|
||||
</div>
|
||||
<select name="selectdemo">
|
||||
<option value="">在 select 中使用</option>
|
||||
<option value="北京">北京</option>
|
||||
<option value="上海">上海</option>
|
||||
<option value="广州">广州</option>
|
||||
<option value="深圳">深圳</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-col-md3">
|
||||
<div class="layui-input-wrap">
|
||||
<div class="layui-input-prefix">
|
||||
<i class="layui-icon layui-icon-date"></i>
|
||||
</div>
|
||||
<input type="text" name="arr[]" required placeholder="前缀和后缀+动态点缀" autocomplete="off" class="layui-input" lay-affix="clear">
|
||||
<div class="layui-input-suffix">
|
||||
<i class="layui-icon layui-icon-down"></i>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-col-md3">
|
||||
<input type="number" value="1.1" name="arr[]" required placeholder="数字输入框" lay-affix="number" autocomplete="off" class="layui-input">
|
||||
</div>
|
||||
<div class="layui-col-md3">
|
||||
<input type="number" step="0.01" min="0" max="10" name="arr[]" required placeholder="数字输入框" lay-affix="number" autocomplete="off" class="layui-input">
|
||||
</div>
|
||||
<div class="layui-col-md3">
|
||||
<input type="number" step="0.01" min="0" max="10" name="arr[]" required placeholder="系统自带数字输入框" autocomplete="off" class="layui-input">
|
||||
</div>
|
||||
<div class="layui-col-md3">
|
||||
<input type="number" disabled name="arr[]" required placeholder="数字输入框 禁用状态" lay-affix="number" autocomplete="off" class="layui-input">
|
||||
</div>
|
||||
<div class="layui-col-md12">
|
||||
<div class="layui-input-wrap">
|
||||
<textarea class="layui-textarea" lay-affix="clear"></textarea>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-col-md12">
|
||||
<button class="layui-btn" id="testSubmit">立即提交</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
|
||||
<hr>
|
||||
|
||||
<form class="layui-form layui-form-pane1" action="" lay-filter="first">
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">输入框</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="title" lay-verify="required|title" lay-reqText="标题不能为空" required placeholder="请输入标题" autocomplete="off" class="layui-input" >
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">手机</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="tel" name="phone" lay-verify="required|phone" autocomplete="off" class="layui-input demo-phone">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">验证码</label>
|
||||
<div class="layui-input-inline">
|
||||
<input type="text" name="vercode" lay-verify="required" autocomplete="off" class="layui-input">
|
||||
</div>
|
||||
<div class="layui-form-mid" style="padding: 0!important;">
|
||||
<button type="button" class="layui-btn layui-btn-primary" lay-on="get-vercode">获取验证码</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">邮箱</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="email" name="email" lay-verify="email" lay-vertype="alert" autocomplete="off" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">生日</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="date" id="date" lay-verify="date" placeholder="yyyy-MM-dd" autocomplete="off" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">密码</label>
|
||||
<div class="layui-input-inline">
|
||||
<input type="password" name="password" lay-verify="required|pass" placeholder="请输入密码" autocomplete="off" class="layui-input">
|
||||
</div>
|
||||
<div class="layui-form-mid layui-word-aux">请务必填写用户名</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-inline">
|
||||
<label class="layui-form-label">范围</label>
|
||||
<div class="layui-input-inline" style="width: 100px;">
|
||||
<input type="text" name="price_min" placeholder="¥" autocomplete="off" class="layui-input">
|
||||
</div>
|
||||
<div class="layui-form-mid">-</div>
|
||||
<div class="layui-input-inline" style="width: 100px;">
|
||||
<input type="text" name="price_max" placeholder="¥" autocomplete="off" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-inline">
|
||||
<label class="layui-form-label">行内表单</label>
|
||||
<div class="layui-input-block">
|
||||
<select name="quiz" lay-verify="required" lay-vertype="tips" lay-filter="quiz111">
|
||||
<option value="">请"选择"问题</option>
|
||||
<option value="0">你工"作"的 第一个城市</option>
|
||||
<option value="1" disabled>你的工号</option>
|
||||
<option value="2">
|
||||
你最喜欢的老师
|
||||
</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-inline">
|
||||
<label class="layui-form-label">select分组</label>
|
||||
<div class="layui-input-block">
|
||||
<select name="quiz" lay-filter="quiz">
|
||||
<option value="">请选择问题</option>
|
||||
<optgroup label="城市记忆">
|
||||
<option value="0">你工作的第一个城市</option>
|
||||
</optgroup>
|
||||
<optgroup label="学生时代">
|
||||
<option value="1" disabled>你的工号</option>
|
||||
<option value="2">你最喜欢的老师</option>
|
||||
</optgroup>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">选择框</label>
|
||||
<div class="layui-input-block">
|
||||
<select name="interest" lay-filter="interest">
|
||||
<option value=""></option>
|
||||
<option value="0">写作</option>
|
||||
<option value="1">阅读</option>
|
||||
<option value="2">游戏</option>
|
||||
<option value="3">音乐</option>
|
||||
<option value="4">旅行</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-inline">
|
||||
<label class="layui-form-label">搜索选择框</label>
|
||||
<div class="layui-input-block">
|
||||
<select name="interest-search" lay-filter="interest-search" lay-search="">
|
||||
<option value="">请搜索</option>
|
||||
<option value="写作">写"作"</option>
|
||||
<option value="阅读" disabled>阅读</option>
|
||||
<option value="游戏" disabled>游戏</option>
|
||||
<option value="音乐">音乐</option>
|
||||
<option value="旅行">旅行</option>
|
||||
<option value="读书">读书</option>
|
||||
<option value="1">layer</option>
|
||||
<option value="2" disabled>laydate</option>
|
||||
<option value="3">3</option>
|
||||
<option value="4">layim</option>
|
||||
<option value="5">laypage</option>
|
||||
<option value="6">6</option>
|
||||
<option value="7">7</option>
|
||||
<option value="8">8</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-inline">
|
||||
<label class="layui-form-label">搜索分组框</label>
|
||||
<div class="layui-input-block">
|
||||
<select name="interest-search-group" lay-filter="interest-search-group" lay-search="">
|
||||
<option value="">请搜索</option>
|
||||
<optgroup label="分组a">
|
||||
<option value="a1">a1</option>
|
||||
<option value="a2">a2</option>
|
||||
</optgroup>
|
||||
<optgroup label="分组aa">
|
||||
<option value="aa1">aA1</option>
|
||||
<option value="aa2">aA2</option>
|
||||
</optgroup>
|
||||
<optgroup label="分组b">
|
||||
<option value="b1">b1</option>
|
||||
<option value="b2">b2</option>
|
||||
</optgroup>
|
||||
<optgroup label="分组bb">
|
||||
<option value="bb1">bb1</option>
|
||||
<option value="bb2">bb2</option>
|
||||
</optgroup>
|
||||
<optgroup label="分组bbb">
|
||||
<option value="bbb1">bBb1</option>
|
||||
<option value="bbb2">bBB2</option>
|
||||
</optgroup>
|
||||
<optgroup label="分组c">
|
||||
<option value="c1">c1</option>
|
||||
<option value="c2">c2</option>
|
||||
</optgroup>
|
||||
<optgroup label="分组cc">
|
||||
<option value="cc1">cc1</option>
|
||||
<option value="cc2">cc2</option>
|
||||
</optgroup>
|
||||
<optgroup label="分组ccc">
|
||||
<option value="ccc1">ccc1</option>
|
||||
<option value="ccc2">ccc2</option>
|
||||
</optgroup>
|
||||
<optgroup label="分组cccc">
|
||||
<option value="cccc1">cccc1</option>
|
||||
<option value="cccc2">cccc2</option>
|
||||
</optgroup>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item" pane>
|
||||
<label class="layui-form-label">复选框</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="checkbox" name="like[write]" title="写作">
|
||||
<input type="checkbox" name="like[read]" title="阅读">
|
||||
<input type="checkbox" name="like[game]" title="游戏" disabled>
|
||||
<input type="checkbox" name="like[indeterminate]" id="ID-indeterminate" lay-filter="filter-indeterminate" title="半选">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item" pane>
|
||||
<label class="layui-form-label">标签框</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="checkbox" name="like1[write]" lay-skin="tag" title="写作">
|
||||
<input type="checkbox" name="like1[read]" lay-skin="tag" title="阅读">
|
||||
<input type="checkbox" name="like1[game]" lay-skin="tag" title="游戏" disabled>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item" pane>
|
||||
<label class="layui-form-label">开关关</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="checkbox" name="close" lay-skin="switch" title="开关">
|
||||
<input type="checkbox" name="close2" lay-skin="switch" title="|OFF" disabled>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item" pane>
|
||||
<label class="layui-form-label">开关开</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="checkbox" checked name="open" lay-skin="switch" lay-filter="switchTest" title="ON|OFF">
|
||||
<input type="checkbox" name="open2" lay-skin="switch" lay-filter="switchTest" title="已绑定|绑定">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item" pane>
|
||||
<label class="layui-form-label">单选框</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="radio" name="sex" value="1" title="男">
|
||||
<input type="radio" name="sex" value="0" title="女" checked>
|
||||
<input type="radio" name="sex" value="-1">
|
||||
<div lay-radio>
|
||||
保密 <i class="layui-icon layui-icon-user"></i>
|
||||
</div>
|
||||
<input type="radio" name="sex" value="" title="禁用" disabled>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item layui-form-text">
|
||||
<label class="layui-form-label">请填写描述</label>
|
||||
<div class="layui-input-block">
|
||||
<textarea placeholder="请输入内容" class="layui-textarea" name="desc"></textarea>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-input-block">
|
||||
<button class="layui-btn" lay-submit lay-filter="*">立即提交</button>
|
||||
<button type="reset" class="layui-btn layui-btn-primary">重置</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
|
||||
<br><br><br>
|
||||
|
||||
|
||||
<script src="../src/layui.js" src1="https://cdn.staticfile.org/layui/2.6.8/layui.js"></script>
|
||||
<script>
|
||||
|
||||
layui.use(['form', 'util', 'laydate'], function(){
|
||||
var $ = layui.$;
|
||||
var form = layui.form;
|
||||
var layer = layui.layer;
|
||||
var util = layui.util;
|
||||
var laydate = layui.laydate;
|
||||
|
||||
// 自定义验证规则
|
||||
form.verify({
|
||||
title: function(value){
|
||||
if(value && value.length < 5){ // 值若填写时才校验
|
||||
return '标题也太短了吧';
|
||||
}
|
||||
},
|
||||
pass: function(value) {
|
||||
if (!/(.+){6,12}$/.test(value)) {
|
||||
return '密码必须 6 到 12 位';
|
||||
}
|
||||
},
|
||||
amount: function(value) {
|
||||
if (value && !/^\d+\.\b\d{2}\b$/.test(value)) { // 值若填写时才校验
|
||||
return '金额必须为小数保留两位';
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
/*
|
||||
form.on('submit(top)', function(data){
|
||||
console.log(data);
|
||||
return false;
|
||||
});
|
||||
*/
|
||||
|
||||
//方法提交
|
||||
$('#testSubmit').on('click', function(){
|
||||
form.submit('top', function(data){
|
||||
layer.confirm('确定提交么?', function(index){
|
||||
layer.close(index);
|
||||
|
||||
// 验证均通过后执行提交
|
||||
setTimeout(function(){
|
||||
alert(JSON.stringify(data.field));
|
||||
})
|
||||
|
||||
});
|
||||
});
|
||||
return false;
|
||||
});
|
||||
|
||||
|
||||
//日期
|
||||
laydate.render({
|
||||
elem: '#date'
|
||||
});
|
||||
|
||||
//初始赋值
|
||||
var thisValue = form.val('first', {
|
||||
'title': '测试测试测试'
|
||||
//,'phone': 11111111111
|
||||
,'email': 'xu@sentsin.com'
|
||||
,'date': '2021-05-30'
|
||||
,'password': 123123
|
||||
//,'quiz': 2
|
||||
,'interest': 3
|
||||
,'like[write]': true
|
||||
//,'open': false
|
||||
,'sex': '0'
|
||||
,'desc': 'form 是我们非常看重的一块'
|
||||
,xxxxxxxxx: 123
|
||||
});
|
||||
|
||||
// 自定义动态点缀事件
|
||||
form.on('input-affix(set)', function(data){
|
||||
var elem = data.elem;
|
||||
elem.value = '通过自定义事件设置的值';
|
||||
});
|
||||
|
||||
//事件
|
||||
form.on('select(quiz111)', function(data){
|
||||
console.log('select: ', this, data);
|
||||
});
|
||||
|
||||
form.on('select(quiz)', function(data){
|
||||
console.log('select.quiz:', this, data);
|
||||
});
|
||||
|
||||
form.on('select(interest)', function(data){
|
||||
console.log('select.interest: ', this, data);
|
||||
});
|
||||
|
||||
form.on('checkbox', function(data){
|
||||
console.log(this.checked, data.elem.checked);
|
||||
});
|
||||
|
||||
form.on('switch', function(data){
|
||||
console.log(data);
|
||||
});
|
||||
|
||||
form.on('radio', function(data){
|
||||
console.log(data);
|
||||
});
|
||||
|
||||
// 提交事件
|
||||
form.on('submit(*)', function(data){
|
||||
console.log(data)
|
||||
alert(JSON.stringify(data.field));
|
||||
return false;
|
||||
});
|
||||
|
||||
// 设置半选
|
||||
$('#ID-indeterminate').prop('indeterminate', true);
|
||||
form.render('checkbox');
|
||||
|
||||
// 普通事件
|
||||
util.on('lay-on', {
|
||||
"get-vercode": function(othis){
|
||||
var isvalid = form.validate('.demo-phone');
|
||||
|
||||
// 验证通过
|
||||
if(isvalid){
|
||||
layer.msg('手机号验证通过,执行发送验证码的操作');
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
</script>
|
||||
|
||||
|
||||
|
||||
<h3>原始表单调试:</h3>
|
||||
<hr>
|
||||
|
||||
<form id="test1" action="" target="_blank">
|
||||
<input type="radio" value="girl" disabled>
|
||||
<input type="checkbox" name="love[a]">
|
||||
<input type="checkbox" name="love[b]">
|
||||
<input value="1">
|
||||
<input name="as">
|
||||
<input name="=" value="2">
|
||||
<select name="quiz">
|
||||
<option value="">请选择问题</option>
|
||||
<option disabled value="你工作的第一个城市">你工作的第一个城市</option>
|
||||
<option value="你的工号">你的工号</option>
|
||||
<option value="你最喜欢的老师">你最喜欢的老师</option>
|
||||
<option value="你的工号" selected>你的工号</option>
|
||||
<option value="你的工号">你的工号</option>
|
||||
</select>
|
||||
<button type="submit">原始表单,测试提交</button>
|
||||
</form>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
8
public/frontend/layui-main/examples/js/child/test.js
Executable file
8
public/frontend/layui-main/examples/js/child/test.js
Executable file
@@ -0,0 +1,8 @@
|
||||
|
||||
|
||||
layui.define(function(exports){
|
||||
|
||||
exports('test', {
|
||||
title: '子目录模块加载'
|
||||
})
|
||||
});
|
||||
8
public/frontend/layui-main/examples/js/index.js
Executable file
8
public/frontend/layui-main/examples/js/index.js
Executable file
@@ -0,0 +1,8 @@
|
||||
|
||||
|
||||
layui.define(function(exports){
|
||||
|
||||
exports('index', {
|
||||
title: '模块入口'
|
||||
});
|
||||
});
|
||||
133
public/frontend/layui-main/examples/json/table/demo1.json
Executable file
133
public/frontend/layui-main/examples/json/table/demo1.json
Executable file
@@ -0,0 +1,133 @@
|
||||
{
|
||||
"code": 0
|
||||
,"msg": ""
|
||||
,"count": 3000000
|
||||
,"totalRow": {
|
||||
"checkin": "777"
|
||||
}
|
||||
,"data1": []
|
||||
,"data": [{
|
||||
"id": "10001"
|
||||
,"username": "杜甫123"
|
||||
,"email": "test1@email.com"
|
||||
,"sex": "<strong style=\"color: red\">男</strong>"
|
||||
,"city": "浙江杭州"
|
||||
,"sign": "舍南舍北皆春水,但见群鸥日日来。花径不曾缘客扫,蓬门今始为君开。盘飧市远无兼味,樽酒家贫只旧醅。肯与邻翁相对饮,隔篱呼取尽余杯。"
|
||||
,"experience": 7
|
||||
,"ip": "192.168.0.8"
|
||||
,"checkin": 0
|
||||
,"joinTime": "2016-10-14"
|
||||
,"LAY_DISABLED": true
|
||||
}, {
|
||||
"id": "10002"
|
||||
,"username": "李白"
|
||||
,"email": "test2@email.com"
|
||||
,"sex": "男"
|
||||
,"city": "浙江杭州"
|
||||
,"sign": "君不见,黄河之水天上来,奔流到海不复回。 君不见,高堂明镜悲白发,朝如青丝暮成雪。 人生得意须尽欢,莫使金樽空对月。 天生我材必有用,千金散尽还复来。 烹羊宰牛且为乐,会须一饮三百杯。 岑夫子,丹丘生,将进酒,杯莫停。 与君歌一曲,请君为我倾耳听。(倾耳听 一作:侧耳听) 钟鼓馔玉不足贵,但愿长醉不复醒。(不足贵 一作:何足贵;不复醒 一作:不愿醒/不用醒) 古来圣贤皆寂寞,惟有饮者留其名。(古来 一作:自古;惟 通:唯) 陈王昔时宴平乐,斗酒十千恣欢谑。 主人何为言少钱,径须沽取对君酌。 五花马,千金裘,呼儿将出换美酒,与尔同销万古愁。"
|
||||
,"experience": 9
|
||||
,"ip": "192.168.0.8"
|
||||
,"checkin": "106"
|
||||
,"joinTime": "2016-10-14"
|
||||
,"LAY_CHECKED": true
|
||||
}, {
|
||||
"id": "10003"
|
||||
,"username": "苏轼"
|
||||
,"email": "test3@email.com"
|
||||
,"sex": "男"
|
||||
,"city": "浙江杭州"
|
||||
,"sign": "大江东去,浪淘尽,千古风流人物。故垒西边,人道是,三国周郎赤壁。乱石穿空,惊涛拍岸,卷起千堆雪。江山如画,一时多少豪杰。遥想公瑾当年,小乔初嫁了,雄姿英发。羽扇纶巾,谈笑间,樯橹灰飞烟灭。故国神游,多情应笑我,早生华发。人生如梦,一尊还酹江月。"
|
||||
,"experience": 8
|
||||
,"ip": "192.168.0.8"
|
||||
,"checkin": null
|
||||
,"joinTime": "2016-10-14"
|
||||
}, {
|
||||
"id": "10004"
|
||||
,"username": "李清照"
|
||||
,"email": "test4@email.com"
|
||||
,"sex": "女"
|
||||
,"city": "浙江杭州"
|
||||
,"sign": "人生恰似一场修行"
|
||||
,"experience": 6
|
||||
,"ip": "192.168.0.8"
|
||||
,"checkin": "106"
|
||||
,"joinTime": "2016-10-14"
|
||||
}, {
|
||||
"id": "10005"
|
||||
,"username": "冰心"
|
||||
,"email": "test5@email.com"
|
||||
,"sex": "女"
|
||||
,"city": "浙江杭州"
|
||||
,"sign": "人生恰似一场修行"
|
||||
,"experience": 64
|
||||
,"ip": "192.168.0.8"
|
||||
,"checkin": "106"
|
||||
,"joinTime": "2016-10-14"
|
||||
}, {
|
||||
"id": "10006"
|
||||
,"username": "张三"
|
||||
,"email": "test6@email.com"
|
||||
,"sex": "男"
|
||||
,"city": "浙江杭州"
|
||||
,"sign": "人生恰似一场修行"
|
||||
,"experience": 65
|
||||
,"ip": "192.168.0.8"
|
||||
,"checkin": "106"
|
||||
,"joinTime": "2016-10-14"
|
||||
}, {
|
||||
"id": "10007"
|
||||
,"username": "张三7"
|
||||
,"email": "test7@email.com"
|
||||
,"sex": "男"
|
||||
,"city": "浙江杭州"
|
||||
,"sign": "人生恰似一场修行"
|
||||
,"experience": 49
|
||||
,"ip": "192.168.0.8"
|
||||
,"checkin": "106"
|
||||
,"joinTime": "2016-10-14"
|
||||
}, {
|
||||
"id": "10008"
|
||||
,"username": "张三8"
|
||||
,"email": "test8@email.com"
|
||||
,"sex": "男"
|
||||
,"city": "浙江杭州"
|
||||
,"sign": "人生恰似一场修行"
|
||||
,"experience": 5
|
||||
,"ip": "192.168.0.8"
|
||||
,"checkin": "106"
|
||||
,"joinTime": "2016-10-14"
|
||||
}, {
|
||||
"id": "10009"
|
||||
,"username": "张三9"
|
||||
,"email": "test9@email.com"
|
||||
,"sex": "男"
|
||||
,"city": "浙江杭州"
|
||||
,"sign": "人生恰似一场修行"
|
||||
,"experience": 5
|
||||
,"ip": "192.168.0.8"
|
||||
,"checkin": "106"
|
||||
,"joinTime": "2016-10-14"
|
||||
}, {
|
||||
"id": "10010"
|
||||
,"username": "张三10"
|
||||
,"email": "test10@email.com"
|
||||
,"sex": "男"
|
||||
,"city": "浙江杭州"
|
||||
,"sign": "人生恰似一场修行"
|
||||
,"experience": 5
|
||||
,"ip": "192.168.0.8"
|
||||
,"checkin": "106"
|
||||
,"joinTime": "2016-10-14"
|
||||
}, {
|
||||
"id": "10011"
|
||||
,"username": "张三11"
|
||||
,"email": "test11@email.com"
|
||||
,"sex": "男"
|
||||
,"city": "浙江杭州"
|
||||
,"sign": "人生恰似一场修行"
|
||||
,"experience": 5
|
||||
,"ip": "192.168.0.8"
|
||||
,"checkin": "106"
|
||||
,"joinTime": "2016-10-14"
|
||||
}]
|
||||
}
|
||||
60
public/frontend/layui-main/examples/json/table/demo2.json
Executable file
60
public/frontend/layui-main/examples/json/table/demo2.json
Executable file
@@ -0,0 +1,60 @@
|
||||
{
|
||||
"code": 0
|
||||
,"msg": ""
|
||||
,"count": 66
|
||||
,"data": [{
|
||||
"username": "张小三"
|
||||
,"amount": 18
|
||||
,"province": "浙江"
|
||||
,"city": "杭州"
|
||||
,"zone": "西湖区"
|
||||
,"street": "西溪街道"
|
||||
,"address": "西溪花园"
|
||||
,"house": "30栋1单元"
|
||||
}, {
|
||||
"username": "李小四"
|
||||
,"amount": 39
|
||||
,"province": "江苏"
|
||||
,"city": "苏州"
|
||||
,"zone": "姑苏区"
|
||||
,"street": "丝绸路"
|
||||
,"address": "天墅之城"
|
||||
,"house": "9幢2单元"
|
||||
}, {
|
||||
"username": "王小四"
|
||||
,"amount": 8
|
||||
,"province": "江西"
|
||||
,"city": "南昌"
|
||||
,"zone": "青山湖区"
|
||||
,"street": "艾溪湖办事处"
|
||||
,"address": "中兴和园"
|
||||
,"house": "1幢3单元"
|
||||
}, {
|
||||
"username": "赵小六"
|
||||
,"amount": 16
|
||||
,"province": "福建"
|
||||
,"city": "泉州"
|
||||
,"zone": "丰泽区"
|
||||
,"street": "南洋街道"
|
||||
,"address": "南洋村"
|
||||
,"house": "6幢1单元"
|
||||
}, {
|
||||
"username": "孙小七"
|
||||
,"amount": 12
|
||||
,"province": "湖北"
|
||||
,"city": "武汉"
|
||||
,"zone": "武昌区"
|
||||
,"street": "武昌大道"
|
||||
,"address": "两湖花园"
|
||||
,"house": "16幢2单元"
|
||||
}, {
|
||||
"username": "周小八"
|
||||
,"amount": 11
|
||||
,"province": "安徽"
|
||||
,"city": "黄山"
|
||||
,"zone": "黄山区"
|
||||
,"street": "汤口镇"
|
||||
,"address": "温泉村"
|
||||
,"house": "21号"
|
||||
}]
|
||||
}
|
||||
75
public/frontend/layui-main/examples/json/table/demo3.json
Executable file
75
public/frontend/layui-main/examples/json/table/demo3.json
Executable file
@@ -0,0 +1,75 @@
|
||||
{
|
||||
"status": 200
|
||||
,"message": ""
|
||||
,"total": 333333
|
||||
,"data": {
|
||||
"list": [{
|
||||
"id": "10001"
|
||||
,"username": "杜甫3"
|
||||
,"email": "test@email.com"
|
||||
,"sex": "男"
|
||||
,"city": "浙江杭州"
|
||||
,"sign": "鼠标移动到此处,可以通过点击单元格右侧的下拉图标,查看到被隐藏的全部内容。"
|
||||
,"experience": "7"
|
||||
,"ip": "192.168.0.8"
|
||||
,"logins": 0
|
||||
,"joinTime": "2016-10-14"
|
||||
}, {
|
||||
"id": "10002"
|
||||
,"username": "李白3"
|
||||
,"email": "test@email.com"
|
||||
,"sex": "男"
|
||||
,"city": "浙江杭州"
|
||||
,"sign": "君不见,黄河之水天上来,奔流到海不复回。 君不见,高堂明镜悲白发,朝如青丝暮成雪。 人生得意须尽欢,莫使金樽空对月。 天生我材必有用,千金散尽还复来。 烹羊宰牛且为乐,会须一饮三百杯。 岑夫子,丹丘生,将进酒,杯莫停。 与君歌一曲,请君为我倾耳听。(倾耳听 一作:侧耳听) 钟鼓馔玉不足贵,但愿长醉不复醒。(不足贵 一作:何足贵;不复醒 一作:不愿醒/不用醒) 古来圣贤皆寂寞,惟有饮者留其名。(古来 一作:自古;惟 通:唯) 陈王昔时宴平乐,斗酒十千恣欢谑。 主人何为言少钱,径须沽取对君酌。 五花马,千金裘,呼儿将出换美酒,与尔同销万古愁。"
|
||||
,"experience": "9"
|
||||
,"ip": "192.168.0.8"
|
||||
,"logins": "106"
|
||||
,"joinTime": "2016-10-14"
|
||||
,"LAY_CHECKED": true
|
||||
}, {
|
||||
"id": "10003"
|
||||
,"username": "王勃"
|
||||
,"email": "test@email.com"
|
||||
,"sex": "男"
|
||||
,"city": "浙江杭州"
|
||||
,"sign": "人生恰似一场修行"
|
||||
,"experience": "8"
|
||||
,"ip": "192.168.0.8"
|
||||
,"logins": "106"
|
||||
,"joinTime": "2016-10-14"
|
||||
}, {
|
||||
"id": "10004"
|
||||
,"username": "李清照"
|
||||
,"email": "test@email.com"
|
||||
,"sex": "女"
|
||||
,"city": "浙江杭州"
|
||||
,"sign": "人生恰似一场修行"
|
||||
,"experience": "6"
|
||||
,"ip": "192.168.0.8"
|
||||
,"logins": "106"
|
||||
,"joinTime": "2016-10-14"
|
||||
}, {
|
||||
"id": "10005"
|
||||
,"username": "冰心"
|
||||
,"email": "test@email.com"
|
||||
,"sex": "女"
|
||||
,"city": "浙江杭州"
|
||||
,"sign": "人生恰似一场修行"
|
||||
,"experience": "64"
|
||||
,"ip": "192.168.0.8"
|
||||
,"logins": "106"
|
||||
,"joinTime": "2016-10-14"
|
||||
}, {
|
||||
"id": "10006"
|
||||
,"username": "贤心"
|
||||
,"email": "test@email.com"
|
||||
,"sex": "男"
|
||||
,"city": "浙江杭州"
|
||||
,"sign": "人生恰似一场修行"
|
||||
,"experience": "65"
|
||||
,"ip": "192.168.0.8"
|
||||
,"logins": "106"
|
||||
,"joinTime": "2016-10-14"
|
||||
}]
|
||||
}
|
||||
}
|
||||
5
public/frontend/layui-main/examples/json/treeTable/demo-1.json
Executable file
5
public/frontend/layui-main/examples/json/treeTable/demo-1.json
Executable file
File diff suppressed because one or more lines are too long
8
public/frontend/layui-main/examples/json/upload/demoLayEdit.json
Executable file
8
public/frontend/layui-main/examples/json/upload/demoLayEdit.json
Executable file
@@ -0,0 +1,8 @@
|
||||
{
|
||||
"code": 0
|
||||
,"msg": ""
|
||||
,"data": {
|
||||
"src": "http://tva1.sinaimg.cn/crop.0.0.118.118.180/5db11ff4gw1e77d3nqrv8j203b03cweg.jpg"
|
||||
,"title": "图片名称"
|
||||
}
|
||||
}
|
||||
485
public/frontend/layui-main/examples/laydate.html
Executable file
485
public/frontend/layui-main/examples/laydate.html
Executable file
@@ -0,0 +1,485 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<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>日期模块 - layui</title>
|
||||
|
||||
<link rel="stylesheet" href="../src/css/layui.css">
|
||||
|
||||
<style>
|
||||
body{padding: 50px 100px;}
|
||||
.layui-inline{margin-right: 15px;}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div class="layui-inline">
|
||||
<input type="text" class="layui-input" id="test-first">
|
||||
</div>
|
||||
|
||||
<br>
|
||||
<hr>
|
||||
|
||||
范围选择1:
|
||||
<div class="layui-inline">
|
||||
<input type="text" class="layui-input" id="test1">
|
||||
</div>
|
||||
|
||||
<br>
|
||||
<hr>
|
||||
|
||||
<div class="layui-form">
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-inline">
|
||||
<label class="layui-form-label">范围选择2</label>
|
||||
<div class="layui-inline" id="test1-2">
|
||||
<div class="layui-input-inline">
|
||||
<input type="text" autocomplete="off" id="test-startDate-1" class="layui-input" placeholder="开始日期">
|
||||
</div>
|
||||
<div class="layui-form-mid">-</div>
|
||||
<div class="layui-input-inline">
|
||||
<input type="text" autocomplete="off" id="test-endDate-1" class="layui-input" placeholder="结束日期">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<br><hr>
|
||||
|
||||
日期选择器:
|
||||
<div class="layui-inline">
|
||||
<input type="text" class="layui-input" id="test2">
|
||||
</div>
|
||||
|
||||
开启快捷面板:
|
||||
<div class="layui-inline">
|
||||
<input type="text" class="layui-input" id="test2-1">
|
||||
</div>
|
||||
|
||||
<br><br><hr><br>
|
||||
|
||||
年选择器:
|
||||
<div class="layui-inline">
|
||||
<input type="text" class="layui-input" id="test3">
|
||||
</div>
|
||||
|
||||
年月选择器:
|
||||
<div class="layui-inline">
|
||||
<input type="text" class="layui-input" id="test4">
|
||||
</div>
|
||||
|
||||
时间时间器:
|
||||
<div class="layui-inline">
|
||||
<input type="text" class="layui-input" id="test5">
|
||||
</div>
|
||||
|
||||
<br><br><hr><br>
|
||||
|
||||
时间范围选择
|
||||
<div class="layui-inline">
|
||||
<input type="text" class="layui-input" id="test55">
|
||||
</div>
|
||||
|
||||
自定义重要日:
|
||||
<div class="layui-inline">
|
||||
<input type="text" class="layui-input" id="test555">
|
||||
</div>
|
||||
|
||||
标注法定节假日及补班:
|
||||
<div class="layui-inline">
|
||||
<input type="text" class="layui-input" id="test5555">
|
||||
</div>
|
||||
|
||||
<br><br><hr><br>
|
||||
|
||||
|
||||
同时绑定多个:
|
||||
<div class="layui-inline">
|
||||
<input type="text" class="layui-input test-item">
|
||||
</div>
|
||||
<div class="layui-inline">
|
||||
<input type="text" class="layui-input test-item">
|
||||
</div>
|
||||
<div class="layui-inline">
|
||||
<input type="text" class="layui-input test-item">
|
||||
</div>
|
||||
|
||||
<br><br><hr><br>
|
||||
|
||||
|
||||
墨绿主题:
|
||||
<div class="layui-inline">
|
||||
<input type="text" class="layui-input" id="test6-1">
|
||||
</div>
|
||||
|
||||
自定义头部背景色:
|
||||
<div class="layui-inline">
|
||||
<input type="text" class="layui-input" id="test6-2">
|
||||
</div>
|
||||
|
||||
格子主题:
|
||||
<div class="layui-inline">
|
||||
<input type="text" class="layui-input" id="test6-3">
|
||||
</div>
|
||||
|
||||
<br><br><hr><br>
|
||||
|
||||
<button class="layui-btn" id="test7">其它元素触发</button>
|
||||
<div class="layui-inline">
|
||||
<input type="text" class="layui-input" id="test6">
|
||||
</div>
|
||||
<textarea></textarea>
|
||||
<button class="layui-btn" id="test9">外部事件触发</button>
|
||||
<div class="layui-inline">
|
||||
<input type="text" class="layui-input" id="test8">
|
||||
</div>
|
||||
|
||||
<br><br><hr><br>
|
||||
直接嵌套在指定容器中:<br><br>
|
||||
<div class="layui-inline" id="test10"></div>
|
||||
<div class="layui-inline" id="test11" style="margin-left: 30px;"></div>
|
||||
|
||||
<script src="../src/layui.js" src1="http://local.res.layui.com/layui/release/laydate/dist/laydate.js" charset="utf-8"></script>
|
||||
<script>
|
||||
|
||||
layui.use('laydate', function(laydate){
|
||||
|
||||
//全局配置
|
||||
laydate.set({
|
||||
//trigger: 'focus'
|
||||
});
|
||||
|
||||
// 第一个任意示例
|
||||
laydate.render({
|
||||
elem: '#test-first',
|
||||
min: 0,
|
||||
shade: [0.1, '#ddd'],
|
||||
//max: '2016-12-30',
|
||||
done: function(){
|
||||
console.log('done',arguments);
|
||||
},
|
||||
onConfirm: function(){
|
||||
console.log('confirm',arguments);
|
||||
},
|
||||
onNow: function(){
|
||||
console.log('now',arguments);
|
||||
},
|
||||
onClear: function(){
|
||||
console.log('clear',arguments);
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
// 范围选择1
|
||||
laydate.render({
|
||||
elem: '#test1', // 指定元素
|
||||
type: 'datetime',
|
||||
trigger: 'click',
|
||||
// lang: 'en',
|
||||
// theme: 'grid',
|
||||
range: true, // 开启日期范围,默认使用“-”分割
|
||||
// rangeLinked: true,
|
||||
// min: '1970-1-1',
|
||||
// max: '2021-5-9',
|
||||
// value: '2021-05-09 12:06:09',
|
||||
// value: '2021-05-08 - 2021-03-27',
|
||||
done: function(value, date, endDate){
|
||||
console.log(value, date, endDate);
|
||||
|
||||
//this.elem.val(123);
|
||||
},
|
||||
change: function(value, date, endDate){
|
||||
console.log(value, date, endDate);
|
||||
}
|
||||
});
|
||||
|
||||
// return;
|
||||
|
||||
// 范围选择2
|
||||
laydate.render({
|
||||
elem: '#test1-2',
|
||||
type: 'date',
|
||||
range: ['#test-startDate-1', '#test-endDate-1'],
|
||||
rangeLinked: true, // 是否开启日期范围选择时的区间联动标注模式
|
||||
// value: ['2022-05-01', '2022-10-01'],
|
||||
// value: '2022-05-01 - 2022-06-01',
|
||||
done: function (value, date, endDate) {
|
||||
console.log(value);
|
||||
console.log(date);
|
||||
console.log(endDate);
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
// 日期选择器(单面板)
|
||||
laydate.render({
|
||||
elem: '#test2'
|
||||
//,format: 'yyyy年MM月dd日'
|
||||
,value: new Date(1534766888000)
|
||||
//,isInitValue: false
|
||||
,format: 'yyyy/MM/dd'
|
||||
,min: 7
|
||||
//,max: 0
|
||||
//,min: '2016-10-14'
|
||||
//,max: -1
|
||||
//,value: '1989年10月14日'
|
||||
,ready: function(date){
|
||||
console.log(date);
|
||||
}
|
||||
,done: function(value, date, endDate){
|
||||
console.log(value, date, endDate);
|
||||
//this.elem.val(111111);
|
||||
}
|
||||
,change: function(value){
|
||||
console.log(value);
|
||||
}
|
||||
});
|
||||
|
||||
// 开启快捷面板
|
||||
laydate.render({
|
||||
elem: '#test2-1',
|
||||
shortcuts: [
|
||||
{
|
||||
text: "昨天",
|
||||
value: (function () {
|
||||
var now = new Date();
|
||||
now.setDate(now.getDate() - 1);
|
||||
return now;
|
||||
})()
|
||||
},
|
||||
{ text: "今天", value: Date.now() },
|
||||
{
|
||||
text: "明天",
|
||||
value: (function () {
|
||||
var now = new Date();
|
||||
now.setDate(now.getDate() + 1);
|
||||
return now;
|
||||
})()
|
||||
},
|
||||
{
|
||||
text: "上个月",
|
||||
value: (function () {
|
||||
var now = new Date();
|
||||
// now.setDate(now.getDate() - 1);
|
||||
now.setMonth(now.getMonth() - 1);
|
||||
return [now];
|
||||
})()
|
||||
},
|
||||
{
|
||||
text: "上个月的前一天",
|
||||
value: (function () {
|
||||
var now = new Date();
|
||||
now.setMonth(now.getMonth() - 1);
|
||||
now.setDate(now.getDate() - 1);
|
||||
return [now];
|
||||
})()
|
||||
},
|
||||
{
|
||||
text: "某一天",
|
||||
value: "2020-12-12"
|
||||
}
|
||||
]
|
||||
})
|
||||
|
||||
|
||||
|
||||
//年选择器
|
||||
laydate.render({
|
||||
elem: '#test3'
|
||||
,type: 'year'
|
||||
//,range: true
|
||||
//,trigger: 'click'
|
||||
//,min:'2021-01-01'
|
||||
//,max:'2022-12-31'
|
||||
,done: function(value, date, endDate){
|
||||
console.log(value, date, endDate);
|
||||
}
|
||||
,change: function(value, date, endDate){
|
||||
//this.elem.val(value)
|
||||
}
|
||||
});
|
||||
|
||||
//年月选择器
|
||||
laydate.render({
|
||||
elem: '#test4'
|
||||
,type: 'month'
|
||||
,range: true
|
||||
,trigger: 'click'
|
||||
,min:'2022-03-01'
|
||||
,max:'2022-05-31'
|
||||
,done: function(value, date, endDate){
|
||||
console.log(value, date, endDate);
|
||||
}
|
||||
,change: function(value, date, endDate){
|
||||
this.elem.val(value)
|
||||
}
|
||||
});
|
||||
|
||||
//时间选择器
|
||||
laydate.render({
|
||||
elem: '#test5'
|
||||
,type: 'time'
|
||||
//,range: true
|
||||
//,trigger: 'click'
|
||||
,min: '09:30:00'
|
||||
,max: '17:30:00'
|
||||
,done: function(value, date, endDate){
|
||||
console.log(value, date, endDate);
|
||||
}
|
||||
,change: function(value, date, endDate){
|
||||
//this.elem.val(value)
|
||||
}
|
||||
});
|
||||
|
||||
//时间范围选择器
|
||||
laydate.render({
|
||||
elem: '#test55'
|
||||
,type: 'time'
|
||||
,range: true
|
||||
//,trigger: 'click'
|
||||
,done: function(value, date, endDate){
|
||||
console.log(value, date, endDate);
|
||||
}
|
||||
});
|
||||
|
||||
// 同时绑定多个
|
||||
laydate.render({
|
||||
elem: '.test-item',
|
||||
trigger: 'click'
|
||||
});
|
||||
/*
|
||||
lay('.test-item').each(function(){
|
||||
laydate.render({
|
||||
elem: this
|
||||
,trigger: 'click'
|
||||
});
|
||||
});
|
||||
*/
|
||||
|
||||
//自定义重要日
|
||||
var ins555 = laydate.render({
|
||||
elem: '#test555'
|
||||
//,calendar: true //是否开启公历重要节日
|
||||
,mark: { //标记重要日子
|
||||
'0-10-14': '生日' //0代表:每年
|
||||
,'0-0-15': '中旬'
|
||||
,'2017-8-20': 'v2'
|
||||
,'2017-8-31': '月底'
|
||||
}
|
||||
,done: function(value, date, endDate){
|
||||
if(date.year == 2016 && date.month == 10 && date.date == 14){
|
||||
//console.log('Layui 诞生日');
|
||||
}
|
||||
}
|
||||
,change: function(value, date, endDate){
|
||||
console.log(value)
|
||||
}
|
||||
});
|
||||
|
||||
// 标注法定节假日及补班
|
||||
laydate.render({
|
||||
elem: '#test5555',
|
||||
value: '2022-5-21',
|
||||
holidays: [
|
||||
['2022-1-1', '2022-1-2', '2022-1-3', '2022-1-31', '2022-2-1', '2022-2-2', '2022-2-3', '2022-2-4', '2022-2-5', '2022-2-6', '2022-4-3', '2022-4-4', '2022-4-5', '2022-4-30', '2022-5-1', '2022-5-2', '2022-5-3', '2022-5-4', '2022-6-3', '2022-6-4', '2022-6-5', '2022-9-10', '2022-9-11', '2022-9-12', '2022-10-1', '2022-10-2', '2022-10-3', '2022-10-4', '2022-10-5', '2022-10-6', '2022-10-7'],
|
||||
|
||||
['2022-1-29', '2022-1-30', '2022-4-2', '2022-4-24', '2022-5-7', '2022-10-8', '2022-10-9']
|
||||
]
|
||||
});
|
||||
|
||||
//墨绿主题
|
||||
laydate.render({
|
||||
elem: '#test6-1' //指定元素
|
||||
,type: 'datetime'
|
||||
,theme: 'molv'
|
||||
,value: 20180115
|
||||
,isInitValue: true
|
||||
,lang: 'en'
|
||||
//,range: true
|
||||
,trigger: 'click'
|
||||
});
|
||||
|
||||
//自定义背景色主题
|
||||
laydate.render({
|
||||
elem: '#test6-2' //指定元素
|
||||
,type: 'datetime'
|
||||
,theme: '#393D49'
|
||||
//,range: true
|
||||
,trigger: 'click'
|
||||
});
|
||||
|
||||
//格子主题
|
||||
laydate.render({
|
||||
elem: '#test6-3' //指定元素
|
||||
//,type: 'datetime'
|
||||
,theme: 'grid'
|
||||
//,range: true
|
||||
,trigger: 'click'
|
||||
});
|
||||
|
||||
//其它元素触发
|
||||
laydate.render({
|
||||
elem: '#test6' //指定元素
|
||||
,eventElem: '#test7' //绑定执行事件的元素
|
||||
,lang: 'en'
|
||||
});
|
||||
|
||||
//外部事件
|
||||
lay('#test9').on('click', function(e){
|
||||
laydate.render({
|
||||
elem: '#test8'
|
||||
,type: 'datetime'
|
||||
,show: true
|
||||
//,min: '2017-08-12 00:10:00'
|
||||
//,max: '2017-08-12 23:10:10'
|
||||
,closeStop: '#test9' //点击 #test6 所在元素区域不关闭控件
|
||||
,change: function(value, date){
|
||||
console.log(value, date)
|
||||
}
|
||||
,done: function(value, date){
|
||||
console.log(value, date)
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
//直接嵌套在指定容器中
|
||||
var ins10 = laydate.render({
|
||||
elem: '#test10'
|
||||
,position: 'static'
|
||||
,calendar: true //是否开启公历重要节日
|
||||
,mark: { //标记重要日子
|
||||
'2021-8-20': ''
|
||||
,'2021-8-21': ''
|
||||
}
|
||||
,done: function(value, date, endDate){
|
||||
if(date.year == 2021 && date.month == 8 && date.date == 20){
|
||||
ins10.hint(value + ',活动日');
|
||||
}
|
||||
}
|
||||
,change: function(value, date, endDate){
|
||||
console.log(value,date)
|
||||
}
|
||||
});
|
||||
|
||||
laydate.render({
|
||||
elem: '#test11'
|
||||
,position: 'static'
|
||||
,lang: 'en'
|
||||
,type: 'datetime'
|
||||
,calendar: true //是否开启公历重要节日
|
||||
,done: function(value, date, endDate){
|
||||
//console.log(value, date, endDate);
|
||||
}
|
||||
,change: function(value, date, endDate){
|
||||
console.log(value)
|
||||
}
|
||||
});
|
||||
|
||||
});
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
233
public/frontend/layui-main/examples/layer.html
Executable file
233
public/frontend/layui-main/examples/layer.html
Executable file
@@ -0,0 +1,233 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
|
||||
<title>layer 弹层 - layui</title>
|
||||
<link rel="stylesheet" href="../src/css/layui.css">
|
||||
<style>
|
||||
body{padding: 100px;}
|
||||
#photos li{float: left; margin: 0 1px 1px;}
|
||||
#photos img{max-height: 38px;}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div class="layui-btn-container">
|
||||
<button class="layui-btn layui-btn-primary" lay-on="test">Alert</button>
|
||||
<button class="layui-btn" lay-on="test2">Confirm</button>
|
||||
<button class="layui-btn" lay-on="test3">Msg</button>
|
||||
<button class="layui-btn" lay-on="test5">Page</button>
|
||||
<button class="layui-btn" lay-on="test6">Iframe</button>
|
||||
<button class="layui-btn" lay-on="testLoading">Loading</button>
|
||||
<button class="layui-btn" lay-on="test4">Tips</button>
|
||||
<button class="layui-btn" lay-on="test7">Prompt</button>
|
||||
<button class="layui-btn" lay-on="test8">Tab</button>
|
||||
<button class="layui-btn" lay-on="test9">Photo</button>
|
||||
<button class="layui-btn" lay-on="testTime">自动关闭</button>
|
||||
<a href="https://layui.dev/docs/2.8/layer/" target="_blank" class="layui-btn">更多例子</a>
|
||||
</div>
|
||||
|
||||
<div id="test11111" style="display: none; padding: 16px;">
|
||||
content 指向放置在页面的一段隐藏元素
|
||||
</div>
|
||||
|
||||
<hr><br>
|
||||
|
||||
<div class="layui-list">
|
||||
<ul class="layui-row" id="photos">
|
||||
<li class="list"><img src="https://unpkg.com/outeres/demo/1.jpg" alt="123"></li>
|
||||
<li class="list"><img src="https://unpkg.com/outeres/demo/2.jpg"></li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
var LAYUI_GLOBAL = {
|
||||
// path: '../src/',
|
||||
// layerPath: '../release/layer/src/'
|
||||
};
|
||||
</script>
|
||||
|
||||
<script src="../src/layui.js"></script>
|
||||
|
||||
<!-- layer 独立版调试 -->
|
||||
<script src1="//cdn.staticfile.org/jquery/1.12.3/jquery.min.js"></script>
|
||||
<script src1="../release/layer/src/layer.js"></script>
|
||||
|
||||
<script>
|
||||
var runTest = function(run, $, layer){
|
||||
if(!run) return;
|
||||
|
||||
var timer = setInterval(function(){
|
||||
//location.reload();
|
||||
}, 1000);
|
||||
|
||||
layer.alert(123);
|
||||
|
||||
$.ajax({
|
||||
url: './all.html'
|
||||
,beforeSend: function(){
|
||||
//layer.ready(function(){
|
||||
//layer.load();
|
||||
//});
|
||||
}
|
||||
,success: function(){
|
||||
return;
|
||||
layer.closeAll('loading', function(){
|
||||
setTimeout(function(){
|
||||
if($('.layui-layer-loading').length){
|
||||
console.error('layer close 异常');
|
||||
clearInterval(timer);
|
||||
}
|
||||
}, 200);
|
||||
});
|
||||
}
|
||||
});
|
||||
};
|
||||
window.jQuery && runTest(1, window.jQuery, window.layer);
|
||||
|
||||
layui.use(['layer', 'util'], function(layer, util){
|
||||
var $ = layui.jquery;
|
||||
var util = layui.util;
|
||||
//return
|
||||
|
||||
var index = layer.msg('Hello World');
|
||||
//layer.close(index);
|
||||
//runTest(1, $, layer);
|
||||
|
||||
|
||||
// 触发事件
|
||||
util.on('lay-on', {
|
||||
test: function(){
|
||||
var icon = -1;
|
||||
(function changeIcon(){
|
||||
var index = layer.alert('Hi,你好! 点击确认更换图标', {
|
||||
icon: icon,
|
||||
shadeClose: true,
|
||||
title: icon === -1 ? 'Alert' : ('icon: '+ icon)
|
||||
}, changeIcon);
|
||||
if(icon++ > 6){
|
||||
layer.close(index);
|
||||
icon = -1;
|
||||
}
|
||||
}());
|
||||
}
|
||||
,test2: function(){
|
||||
layer.confirm('一个询问层的测试示例?', {
|
||||
btn: ['确定','关闭'] //按钮
|
||||
}, function(){
|
||||
layer.msg('第一个回调', {icon: 1});
|
||||
}, function(){
|
||||
layer.msg('第二个回调', {
|
||||
time: 20000, //20s后自动关闭
|
||||
btn: ['明白了', '知道了']
|
||||
});
|
||||
});
|
||||
}
|
||||
,test3: function(){
|
||||
!0 ? layer.msg('一个常用消息框')
|
||||
: layer.msg('一个常用消息框',{closeBtn: 0,time: 0, icon: 16});
|
||||
}
|
||||
,test4: function(){
|
||||
layer.tips('Hi,我是一个小提示', this, {tips: 1});
|
||||
}
|
||||
,test5: function(){
|
||||
layer.open({
|
||||
title:'自定义页面层',
|
||||
type: 1,
|
||||
skin: 'layui-layer-border',
|
||||
area: ['1000px', '580px'],
|
||||
content: $('#test11111'),
|
||||
maxmin: true,
|
||||
shade: false,
|
||||
minStack: false, // 最小化不堆叠在左下角
|
||||
id: 'page-1', // 定义 ID,防止重复弹出
|
||||
min: function(layero, index){
|
||||
layer.msg('阻止了默认的最小化');
|
||||
layer.style(index, {top: 'auto', bottom: 0});
|
||||
return false;
|
||||
}
|
||||
});
|
||||
}
|
||||
,test6: function(){
|
||||
layer.open({
|
||||
type: 2,
|
||||
content: 'https://www.aliyun.com/activity?userCode=ap0255is',
|
||||
area: ['375px', '500px'],
|
||||
id: 'iframe-1',
|
||||
hideOnClose: true, // 关闭时是否隐藏弹层容器,下次打开时直接显示原来的弹层
|
||||
maxmin: true
|
||||
});
|
||||
}
|
||||
,testLoading: function(){
|
||||
layer.load(0, {
|
||||
time: 5*1000
|
||||
//content: '123'
|
||||
});
|
||||
}
|
||||
,test7: function(){
|
||||
layer.prompt({title: '输入任何口令,并确认', formType: 1}, function(pass, index){
|
||||
layer.close(index);
|
||||
layer.prompt({title: '随便写点啥,并确认', formType: 2}, function(text, index){
|
||||
layer.close(index);
|
||||
layer.msg('演示完毕!您的口令:'+ util.escape(pass) +'<br>您最后写下了:'+ util.escape(text));
|
||||
});
|
||||
});
|
||||
}
|
||||
,test8: function(){
|
||||
layer.tab({
|
||||
area: ['600px', '300px'],
|
||||
tab: [{
|
||||
title: 'TAB1',
|
||||
content: '内容1'
|
||||
}, {
|
||||
title: 'TAB2',
|
||||
content: '内容2'
|
||||
}, {
|
||||
title: 'TAB3',
|
||||
content: '内容3'
|
||||
}]
|
||||
});
|
||||
}
|
||||
,test9: function(){
|
||||
layer.photos({
|
||||
photos: {
|
||||
"data": [{
|
||||
"src": "https://unpkg.com/outeres/demo/layer.png"
|
||||
}]
|
||||
},
|
||||
hideFooter: true // 是否隐藏图片底部栏(v2.8.0 新增)
|
||||
});
|
||||
}
|
||||
,testTime: function(){
|
||||
layer.alert('你好么,体验者。<br>在标题栏显示自动关闭倒计秒数', {
|
||||
time: 5*1000
|
||||
,success: function(layero, index){
|
||||
var timeNum = this.time/1000, setText = function(start){
|
||||
layer.title((start ? timeNum : --timeNum) + ' 秒后关闭', index);
|
||||
};
|
||||
setText(!0);
|
||||
this.timer = setInterval(setText, 1000);
|
||||
if(timeNum <= 0) clearInterval(this.timer);
|
||||
}
|
||||
,end: function(){
|
||||
clearInterval(this.timer);
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
// 相册层
|
||||
layer.photos({
|
||||
photos: '#photos', // $('#photos')
|
||||
// toolbar: false,
|
||||
// footer: false
|
||||
});
|
||||
|
||||
//动态追加
|
||||
$('#photos').append('<li class="list"><img src="https://unpkg.com/outeres/demo/3.jpg"></li>');
|
||||
|
||||
});
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
163
public/frontend/layui-main/examples/layout-admin.html
Executable file
163
public/frontend/layui-main/examples/layout-admin.html
Executable file
@@ -0,0 +1,163 @@
|
||||
|
||||
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
|
||||
<title>layout 管理系统大布局 - Layui</title>
|
||||
<link rel="stylesheet" href="../src/css/layui.css">
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div class="layui-layout layui-layout-admin">
|
||||
<div class="layui-header">
|
||||
<div class="layui-logo layui-hide-xs layui-bg-black">layout demo</div>
|
||||
<!-- 头部区域(可配合layui 已有的水平导航) -->
|
||||
<ul class="layui-nav layui-layout-left">
|
||||
<!-- 移动端显示 -->
|
||||
<li class="layui-nav-item layui-show-xs-inline-block layui-hide-sm" lay-header-event="menuLeft">
|
||||
<i class="layui-icon layui-icon-spread-left"></i>
|
||||
</li>
|
||||
|
||||
<li class="layui-nav-item layui-hide-xs"><a href="">nav 1</a></li>
|
||||
<li class="layui-nav-item layui-hide-xs"><a href="">nav 2</a></li>
|
||||
<li class="layui-nav-item layui-hide-xs"><a href="">nav 3</a></li>
|
||||
<li class="layui-nav-item">
|
||||
<a href="javascript:;">nav groups</a>
|
||||
<dl class="layui-nav-child">
|
||||
<dd><a href="">menu 11</a></dd>
|
||||
<dd><a href="">menu 22</a></dd>
|
||||
<dd><a href="">menu 33</a></dd>
|
||||
</dl>
|
||||
</li>
|
||||
|
||||
|
||||
</ul>
|
||||
<ul class="layui-nav layui-layout-right">
|
||||
<li class="layui-nav-item layui-hide layui-show-md-inline-block">
|
||||
<a href="javascript:;">
|
||||
<img src="//tva1.sinaimg.cn/crop.0.0.118.118.180/5db11ff4gw1e77d3nqrv8j203b03cweg.jpg" class="layui-nav-img">
|
||||
tester
|
||||
</a>
|
||||
<dl class="layui-nav-child">
|
||||
<dd><a href="">Your Profile</a></dd>
|
||||
<dd><a href="">Settings</a></dd>
|
||||
<dd><a href="">Sign out</a></dd>
|
||||
</dl>
|
||||
</li>
|
||||
|
||||
<li class="layui-nav-item" lay-header-event="menuRight" lay-unselect>
|
||||
<a href="javascript:;">
|
||||
<i class="layui-icon layui-icon-more-vertical"></i>
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="layui-side layui-bg-black">
|
||||
<div class="layui-side-scroll">
|
||||
<!-- 左侧导航区域(可配合layui已有的垂直导航) -->
|
||||
<ul class="layui-nav layui-nav-tree" lay-filter="test">
|
||||
<li class="layui-nav-item layui-nav-itemed">
|
||||
<a class="" href="javascript:;">menu group 1</a>
|
||||
<dl class="layui-nav-child">
|
||||
<dd><a href="javascript:;">menu 1</a></dd>
|
||||
<dd><a href="javascript:;">menu 2</a></dd>
|
||||
<dd><a href="javascript:;">menu 3</a></dd>
|
||||
<dd><a href="">the links</a></dd>
|
||||
</dl>
|
||||
</li>
|
||||
<li class="layui-nav-item">
|
||||
<a href="javascript:;">menu group 2</a>
|
||||
<dl class="layui-nav-child">
|
||||
<dd><a href="javascript:;">list 1</a></dd>
|
||||
<dd><a href="javascript:;">list 2</a></dd>
|
||||
<dd><a href="">超链接</a></dd>
|
||||
</dl>
|
||||
</li>
|
||||
<li class="layui-nav-item"><a href="javascript:;">click menu item</a></li>
|
||||
<li class="layui-nav-item"><a href="">the links</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-body">
|
||||
<!-- 内容主体区域 -->
|
||||
<div style="padding: 15px;">
|
||||
内容主体区域
|
||||
|
||||
<br><br>
|
||||
|
||||
<blockquote class="layui-elem-quote layui-text">
|
||||
<ul>
|
||||
<li>
|
||||
你也可以单独打开管理界面大布局的演示页面:
|
||||
<a class="layui-btn layui-btn-normal" href="layuiAdmin.html" target="_blank">单独打开</a>
|
||||
</li>
|
||||
<li>
|
||||
该页面只是简单的管理系统的界面基础布局示例,并不是一整套界面布局方案,您可以关注基于 layui 的通用型管理系统界面模板解决方案:
|
||||
<a href="/layuiadmin/" target="_blank" class="layui-btn">layuiAdmin</a>
|
||||
</li>
|
||||
<li>
|
||||
layui 之所以赢得如此多人的青睐,更多是在于它“前后界面兼备”的能力。既可编织出绚丽的前台页面,又可满足繁杂的管理系统的界面需求。
|
||||
<br>layui 管理基本布局, 致力于让每一位开发者都能轻松搭建自己的管理系统模板。
|
||||
</li>
|
||||
</ul>
|
||||
</blockquote>
|
||||
|
||||
<a href="/doc/element/layout.html#admin" target="_blank" class="layui-btn">查看该布局代码</a>
|
||||
<br><br><br>
|
||||
|
||||
<div class="layui-card layui-panel">
|
||||
<div class="layui-card-header">
|
||||
下面是充数内容,为的是出现滚动条
|
||||
</div>
|
||||
<div class="layui-card-body">
|
||||
充数内容<br>充数内容<br>充数内容<br>充数内容<br>充数内容<br>充数内容<br>充数内容<br>充数内容<br>充数内容<br>充数内容<br>充数内容<br>充数内容<br>充数内容<br>充数内容<br>充数内容<br>充数内容<br>充数内容<br>充数内容<br>充数内容<br>充数内容<br>充数内容<br>充数内容<br>充数内容<br>充数内容<br>充数内容<br>充数内容<br>充数内容<br>充数内容<br>充数内容<br>充数内容<br>充数内容<br>充数内容<br>充数内容<br>充数内容<br>充数内容<br>充数内容<br>充数内容<br>充数内容<br>充数内容<br>充数内容<br>充数内容<br>充数内容<br>充数内容<br>充数内容<br>充数内容<br>充数内容<br>充数内容<br>充数内容<br>充数内容<br>充数内容<br>你还真滑到了底部呀
|
||||
</div>
|
||||
</div>
|
||||
<br><br>
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-footer">
|
||||
<!-- 底部固定区域 -->
|
||||
底部固定区域
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script src="../src/layui.js"></script>
|
||||
<script>
|
||||
//JS
|
||||
layui.use(['element', 'layer', 'util'], function(){
|
||||
var element = layui.element
|
||||
,layer = layui.layer
|
||||
,util = layui.util
|
||||
,$ = layui.$;
|
||||
|
||||
//头部事件
|
||||
util.event('lay-header-event', {
|
||||
//左侧菜单事件
|
||||
menuLeft: function(othis){
|
||||
layer.msg('展开左侧菜单的操作', {icon: 0});
|
||||
}
|
||||
,menuRight: function(){
|
||||
layer.open({
|
||||
type: 1
|
||||
,content: '<div style="padding: 15px;">处理右侧面板的操作</div>'
|
||||
,area: ['260px', '100%']
|
||||
,offset: 'rt' //右上角
|
||||
,anim: 5
|
||||
,shadeClose: true
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
});
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
333
public/frontend/layui-main/examples/layout-grid.html
Executable file
333
public/frontend/layui-main/examples/layout-grid.html
Executable file
@@ -0,0 +1,333 @@
|
||||
|
||||
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
|
||||
<title>layout 栅格布局 - Layui</title>
|
||||
<link rel="stylesheet" href="../src/css/layui.css">
|
||||
<style>
|
||||
/* 示例 */
|
||||
.layui-field-title{margin-top: 30px;}
|
||||
.grid-demo{padding: 10px; line-height: 50px; text-align: center; background-color: #79C48C; color: #fff;}
|
||||
.grid-demo-bg1{background-color: #63BA79;}
|
||||
.grid-demo-bg2{background-color: #49A761;}
|
||||
.grid-demo-bg3{background-color: #38814A;}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<!-- 让IE8/9支持媒体查询,从而兼容栅格 -->
|
||||
<!--[if lt IE 9]>
|
||||
<script src="https://cdn.staticfile.org/html5shiv/r29/html5.min.js"></script>
|
||||
<script src="https://cdn.staticfile.org/respond.js/1.4.2/respond.min.js"></script>
|
||||
<![endif]-->
|
||||
|
||||
<div class="layui-container">
|
||||
<fieldset class="layui-elem-field layui-field-title">
|
||||
<legend>始终等比例水平排列</legend>
|
||||
</fieldset>
|
||||
|
||||
<div class="layui-row">
|
||||
<div class="layui-col-xs6">
|
||||
<div class="grid-demo grid-demo-bg1">50%</div>
|
||||
</div>
|
||||
<div class="layui-col-xs6">
|
||||
<div class="grid-demo">50%</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<br>
|
||||
|
||||
<div class="layui-row">
|
||||
<div class="layui-col-xs3">
|
||||
<div class="grid-demo grid-demo-bg1">25%</div>
|
||||
</div>
|
||||
<div class="layui-col-xs3">
|
||||
<div class="grid-demo">25%</div>
|
||||
</div>
|
||||
<div class="layui-col-xs3">
|
||||
<div class="grid-demo grid-demo-bg1">25%</div>
|
||||
</div>
|
||||
<div class="layui-col-xs3">
|
||||
<div class="grid-demo">25%</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<fieldset class="layui-elem-field layui-field-title">
|
||||
<legend>移动设备、桌面端的不同展现</legend>
|
||||
</fieldset>
|
||||
|
||||
<div class="layui-row">
|
||||
<div class="layui-col-xs12 layui-col-md8">
|
||||
<div class="grid-demo grid-demo-bg1">移动设备:100%、桌面:60%</div>
|
||||
</div>
|
||||
<div class="layui-col-xs6 layui-col-md4">
|
||||
<div class="grid-demo">移动设备:50%、桌面:40%</div>
|
||||
</div>
|
||||
<div class="layui-col-xs6 layui-col-md12">
|
||||
<div class="grid-demo grid-demo-bg2">移动设备:50%、桌面:100%</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<fieldset class="layui-elem-field layui-field-title">
|
||||
<legend>移动设备、平板、桌面端的不同展现</legend>
|
||||
</fieldset>
|
||||
|
||||
<div class="layui-row">
|
||||
<div class="layui-col-xs6 layui-col-sm6 layui-col-md4">
|
||||
<div class="grid-demo grid-demo-bg1">50% | 33.33% | 33.33%</div>
|
||||
</div>
|
||||
<div class="layui-col-xs6 layui-col-sm6 layui-col-md4">
|
||||
<div class="grid-demo layui-bg-red">50% | 66.67% | 33.33%</div>
|
||||
</div>
|
||||
<div class="layui-col-xs4 layui-col-sm12 layui-col-md4">
|
||||
<div class="grid-demo layui-bg-blue">33.33% | 100% | 33.33%</div>
|
||||
</div>
|
||||
<div class="layui-col-xs4 layui-col-sm7 layui-col-md8">
|
||||
<div class="grid-demo layui-bg-green">33.33% | 50% | 66.67%</div>
|
||||
</div>
|
||||
<div class="layui-col-xs4 layui-col-sm5 layui-col-md4">
|
||||
<div class="grid-demo layui-bg-black">33.33% | 50% | 33.33%</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<fieldset class="layui-elem-field layui-field-title">
|
||||
<legend>从小屏幕堆叠到桌面水平排列</legend>
|
||||
</fieldset>
|
||||
|
||||
<div class="layui-row">
|
||||
<div class="layui-col-md1">
|
||||
<div class="grid-demo grid-demo-bg1">1/12</div>
|
||||
</div>
|
||||
<div class="layui-col-md1">
|
||||
<div class="grid-demo">1/12</div>
|
||||
</div>
|
||||
<div class="layui-col-md1">
|
||||
<div class="grid-demo grid-demo-bg1">1/12</div>
|
||||
</div>
|
||||
<div class="layui-col-md1">
|
||||
<div class="grid-demo">1/12</div>
|
||||
</div>
|
||||
<div class="layui-col-md1">
|
||||
<div class="grid-demo grid-demo-bg1">1/12</div>
|
||||
</div>
|
||||
<div class="layui-col-md1">
|
||||
<div class="grid-demo">1/12</div>
|
||||
</div>
|
||||
<div class="layui-col-md1">
|
||||
<div class="grid-demo grid-demo-bg1">1/12</div>
|
||||
</div>
|
||||
<div class="layui-col-md1">
|
||||
<div class="grid-demo">1/12</div>
|
||||
</div>
|
||||
<div class="layui-col-md1">
|
||||
<div class="grid-demo grid-demo-bg1">1/12</div>
|
||||
</div>
|
||||
<div class="layui-col-md1">
|
||||
<div class="grid-demo">1/12</div>
|
||||
</div>
|
||||
<div class="layui-col-md1">
|
||||
<div class="grid-demo grid-demo-bg1">1/12</div>
|
||||
</div>
|
||||
<div class="layui-col-md1">
|
||||
<div class="grid-demo">1/12</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<br>
|
||||
|
||||
<div class="layui-row">
|
||||
<div class="layui-col-md9">
|
||||
<div class="grid-demo grid-demo-bg1">75%</div>
|
||||
</div>
|
||||
<div class="layui-col-md3">
|
||||
<div class="grid-demo">25%</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<br>
|
||||
|
||||
<div class="layui-row">
|
||||
<div class="layui-col-md4">
|
||||
<div class="grid-demo grid-demo-bg1">33.33%</div>
|
||||
</div>
|
||||
<div class="layui-col-md4">
|
||||
<div class="grid-demo">33.33%</div>
|
||||
</div>
|
||||
<div class="layui-col-md4">
|
||||
<div class="grid-demo grid-demo-bg1">33.33%</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<br>
|
||||
|
||||
<div class="layui-row">
|
||||
<div class="layui-col-md6">
|
||||
<div class="grid-demo grid-demo-bg1">50%</div>
|
||||
</div>
|
||||
<div class="layui-col-md6">
|
||||
<div class="grid-demo">50%</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<fieldset class="layui-elem-field layui-field-title">
|
||||
<legend>分栏间隔</legend>
|
||||
</fieldset>
|
||||
|
||||
<div class="layui-row layui-col-space1">
|
||||
<div class="layui-col-md3">
|
||||
<div class="grid-demo grid-demo-bg1">1/4</div>
|
||||
</div>
|
||||
<div class="layui-col-md3">
|
||||
<div class="grid-demo">1/4</div>
|
||||
</div>
|
||||
<div class="layui-col-md3">
|
||||
<div class="grid-demo grid-demo-bg1">1/4</div>
|
||||
</div>
|
||||
<div class="layui-col-md3">
|
||||
<div class="grid-demo">1/4</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<br>
|
||||
|
||||
<div class="layui-row layui-col-space5">
|
||||
<div class="layui-col-md4">
|
||||
<div class="grid-demo grid-demo-bg1">1/3</div>
|
||||
</div>
|
||||
<div class="layui-col-md4">
|
||||
<div class="grid-demo">1/3</div>
|
||||
</div>
|
||||
<div class="layui-col-md4">
|
||||
<div class="grid-demo grid-demo-bg1">1/3</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<br>
|
||||
|
||||
<div class="layui-row layui-col-space10">
|
||||
<div class="layui-col-md9">
|
||||
<div class="grid-demo grid-demo-bg1">75%</div>
|
||||
</div>
|
||||
<div class="layui-col-md3">
|
||||
<div class="grid-demo">25%</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<br>
|
||||
|
||||
<div class="layui-row layui-col-space15">
|
||||
<div class="layui-col-md7">
|
||||
<div class="grid-demo grid-demo-bg1">58.33%</div>
|
||||
</div>
|
||||
<div class="layui-col-md5">
|
||||
<div class="grid-demo">41.67%</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<br>
|
||||
|
||||
<div class="layui-row layui-col-space20">
|
||||
<div class="layui-col-md4">
|
||||
<div class="grid-demo grid-demo-bg1">33.33%</div>
|
||||
</div>
|
||||
<div class="layui-col-md4">
|
||||
<div class="grid-demo">33.33%</div>
|
||||
</div>
|
||||
<div class="layui-col-md4">
|
||||
<div class="grid-demo">33.33%</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<fieldset class="layui-elem-field layui-field-title">
|
||||
<legend>列偏移</legend>
|
||||
</fieldset>
|
||||
|
||||
<div class="layui-row">
|
||||
<div class="layui-col-md4">
|
||||
<div class="grid-demo grid-demo-bg1">33.33%</div>
|
||||
</div>
|
||||
<div class="layui-col-md4 layui-col-md-offset4">
|
||||
<div class="grid-demo">偏移4列</div>
|
||||
</div>
|
||||
<div class="layui-col-md1 layui-col-md-offset5">
|
||||
<div class="grid-demo grid-demo-bg1">偏移5列</div>
|
||||
</div>
|
||||
<div class="layui-col-md1">
|
||||
<div class="grid-demo">不偏移</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<br>
|
||||
|
||||
<div class="layui-row">
|
||||
<div class="layui-col-md3 layui-col-md-offset3">
|
||||
<div class="grid-demo grid-demo-bg1">偏移3列</div>
|
||||
</div>
|
||||
<div class="layui-col-md3 layui-col-md-offset1">
|
||||
<div class="grid-demo">偏移1列</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<fieldset class="layui-elem-field layui-field-title">
|
||||
<legend>嵌套</legend>
|
||||
</fieldset>
|
||||
|
||||
<div class="layui-row">
|
||||
<div class="layui-col-md5">
|
||||
<div class="layui-row grid-demo">
|
||||
<div class="layui-col-md3">
|
||||
<div class="grid-demo grid-demo-bg1">内部列</div>
|
||||
</div>
|
||||
<div class="layui-col-md9">
|
||||
<div class="grid-demo grid-demo-bg2">内部列</div>
|
||||
</div>
|
||||
<div class="layui-col-md12">
|
||||
<div class="grid-demo grid-demo-bg3">内部列</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-col-md7">
|
||||
<div class="layui-row grid-demo grid-demo-bg1">
|
||||
<div class="layui-col-md12">
|
||||
<div class="grid-demo">内部列</div>
|
||||
</div>
|
||||
<div class="layui-col-md9">
|
||||
<div class="grid-demo grid-demo-bg2">内部列</div>
|
||||
</div>
|
||||
<div class="layui-col-md3">
|
||||
<div class="grid-demo grid-demo-bg3">内部列</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="layui-fluid">
|
||||
<fieldset class="layui-elem-field layui-field-title">
|
||||
<legend>流体容器(宽度自适应,不固定)</legend>
|
||||
</fieldset>
|
||||
|
||||
<div class="layui-row">
|
||||
<div class="layui-col-sm3">
|
||||
<div class="grid-demo grid-demo-bg1">25%</div>
|
||||
</div>
|
||||
<div class="layui-col-sm3">
|
||||
<div class="grid-demo">25%</div>
|
||||
</div>
|
||||
<div class="layui-col-sm3">
|
||||
<div class="grid-demo grid-demo-bg1">25%</div>
|
||||
</div>
|
||||
<div class="layui-col-sm3">
|
||||
<div class="grid-demo">25%</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<br><br>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
189
public/frontend/layui-main/examples/laypage.html
Executable file
189
public/frontend/layui-main/examples/laypage.html
Executable file
@@ -0,0 +1,189 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
|
||||
<title>分页 - layui</title>
|
||||
|
||||
<link rel="stylesheet" href="../src/css/layui.css">
|
||||
|
||||
<style>
|
||||
body{padding: 10px;}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
总页数低于页码总数:<div id="demo0"></div>
|
||||
总页数大于页码总数:<div id="demo1"></div>
|
||||
自定义主题:<div id="demo2"></div>
|
||||
自定义首页、尾页、上一页、下一页文本:<div id="demo3"></div>
|
||||
不显示首页尾页:<div id="demo4"></div>
|
||||
开启HASH:<div id="demo5"></div>
|
||||
只显示上一页、下一页:<div id="demo6"></div>
|
||||
显示完整功能:<div id="demo7"></div>
|
||||
自定义排版:<div id="demo8"></div>
|
||||
|
||||
<fieldset class="layui-elem-field layui-field-title" style="margin-top: 50px;">
|
||||
<legend>将一段已知数组分页展示</legend>
|
||||
</fieldset>
|
||||
|
||||
<div id="demo9"></div>
|
||||
|
||||
<ul id="biuuu_city_list"></ul>
|
||||
|
||||
|
||||
<script src="../src/layui.js"></script>
|
||||
<script>
|
||||
|
||||
layui.use(['laypage', 'layer'], function(){
|
||||
var laypage = layui.laypage
|
||||
,layer = layui.layer;
|
||||
|
||||
|
||||
//总页数低于页码总数
|
||||
laypage.render({
|
||||
elem: 'demo0'
|
||||
,count: 50 //数据总数
|
||||
});
|
||||
|
||||
//总页数大于页码总数
|
||||
laypage.render({
|
||||
elem: 'demo1'
|
||||
,count: 70 //数据总数
|
||||
,jump: function(obj){
|
||||
console.log(obj)
|
||||
}
|
||||
});
|
||||
|
||||
//自定义样式
|
||||
laypage.render({
|
||||
elem: 'demo2'
|
||||
,count: 100
|
||||
,theme: '#1E9FFF'
|
||||
});
|
||||
|
||||
//自定义首页、尾页、上一页、下一页文本
|
||||
laypage.render({
|
||||
elem: 'demo3'
|
||||
,count: 100
|
||||
,first: '首页'
|
||||
,last: '尾页'
|
||||
,prev: '<em>←</em>'
|
||||
,next: '<em>→</em>'
|
||||
});
|
||||
|
||||
//不显示首页尾页
|
||||
laypage.render({
|
||||
elem: 'demo4'
|
||||
,count: 100
|
||||
,first: false
|
||||
,last: false
|
||||
});
|
||||
|
||||
//开启HASH
|
||||
laypage.render({
|
||||
elem: 'demo5'
|
||||
,count: 500
|
||||
,curr: location.hash.replace('#!fenye=', '') //获取hash值为fenye的当前页
|
||||
,hash: 'fenye' //自定义hash值
|
||||
});
|
||||
|
||||
//只显示上一页、下一页
|
||||
laypage.render({
|
||||
elem: 'demo6'
|
||||
,count: 50
|
||||
,layout: ['prev', 'next']
|
||||
,jump: function(obj, first){
|
||||
if(!first){
|
||||
layer.msg('第 '+ obj.curr +' 页');
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
//完整功能
|
||||
laypage.render({
|
||||
elem: 'demo7'
|
||||
,count: 100
|
||||
//,groups: 0
|
||||
,layout: ['count', 'prev', 'page', 'next', 'limit', 'refresh', 'skip', ]
|
||||
,jump: function(obj){
|
||||
console.log(obj)
|
||||
}
|
||||
});
|
||||
|
||||
//自定义排版
|
||||
laypage.render({
|
||||
elem: 'demo8'
|
||||
,count: 1000
|
||||
,layout: ['limit', 'prev', 'page', 'next']
|
||||
//,limits: [100, 200, 300]
|
||||
,limit: 200
|
||||
});
|
||||
|
||||
|
||||
|
||||
//将一段数组分页展示
|
||||
|
||||
//测试数据
|
||||
var data = [
|
||||
'北京',
|
||||
'上海',
|
||||
'广州',
|
||||
'深圳',
|
||||
'杭州',
|
||||
'长沙',
|
||||
'合肥',
|
||||
'宁夏',
|
||||
'成都',
|
||||
'西安',
|
||||
'南昌',
|
||||
'上饶',
|
||||
'沈阳',
|
||||
'济南',
|
||||
'厦门',
|
||||
'福州',
|
||||
'九江',
|
||||
'宜春',
|
||||
'赣州',
|
||||
'宁波',
|
||||
'绍兴',
|
||||
'无锡',
|
||||
'苏州',
|
||||
'徐州',
|
||||
'东莞',
|
||||
'佛山',
|
||||
'中山',
|
||||
'成都',
|
||||
'武汉',
|
||||
'青岛',
|
||||
'天津',
|
||||
'重庆',
|
||||
'南京',
|
||||
'九江',
|
||||
'香港',
|
||||
'澳门',
|
||||
'台北'
|
||||
];
|
||||
|
||||
//调用分页
|
||||
laypage.render({
|
||||
elem: 'demo9'
|
||||
,count: data.length
|
||||
,layout: ['prev', 'page', 'next', 'refresh', 'skip']
|
||||
,jump: function(obj){
|
||||
//模拟渲染
|
||||
document.getElementById('biuuu_city_list').innerHTML = function(){
|
||||
var arr = []
|
||||
,thisData = data.concat().splice(obj.curr*obj.limit - obj.limit, obj.limit);
|
||||
layui.each(thisData, function(index, item){
|
||||
arr.push('<li>'+ item +'</li>');
|
||||
});
|
||||
return arr.join('');
|
||||
}();
|
||||
}
|
||||
});
|
||||
|
||||
});
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
240
public/frontend/layui-main/examples/laytpl.html
Executable file
240
public/frontend/layui-main/examples/laytpl.html
Executable file
@@ -0,0 +1,240 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<title>视图模板引擎 - layui</title>
|
||||
|
||||
<link rel="stylesheet" href="../src/css/layui.css">
|
||||
<style>
|
||||
.laytpl-demo{border: 1px solid #EBEBEB;}
|
||||
.laytpl-demo>textarea{position: relative; display: block; width:100%; height: 300px; padding: 11px; border: 0; box-sizing: border-box; resize: none; background-color: #fff; font-family: Courier New; font-size: 13px;}
|
||||
.laytpl-demo>div:first-child{height: 32px; line-height: 32px; padding: 6px 11px; border-bottom: 1px solid #EBEBEB; background-color: #F8F9FA;}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div>
|
||||
|
||||
<div class="layui-row">
|
||||
<div class="layui-col-xs6 laytpl-demo">
|
||||
<div>模板</div>
|
||||
<textarea id="demoTPL1"><h1>{{ d.title }}</h1>
|
||||
|
||||
<p>转义输出(HTML):{{ d.desc }}</p>
|
||||
<p>转义输出(HTML):{{= d.desc }}</p>
|
||||
<p>原始输出(HTML):{{- d.desc }}</p>
|
||||
{{#}}
|
||||
|
||||
<div class="layui-section">
|
||||
<hr>
|
||||
<ul>
|
||||
{{# var str = "a b c";
|
||||
layui.each(d.items, function(index, item){ }}
|
||||
<li class="{{ index > 0 ? 'list' : '' }}">
|
||||
<strong>{{ item.title }}</strong>
|
||||
{{# if(item.content){ }}
|
||||
<span>{{ item.content }}</span>
|
||||
{{# } }}
|
||||
<span>{{ item.time || '' }}</span>
|
||||
{{ str }}
|
||||
|
||||
|
||||
</li>
|
||||
{{# }); if(d.items.length === 0){ }}
|
||||
无数据
|
||||
{{# } }}
|
||||
</ul>
|
||||
<hr>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
{{ d.content || '' }}
|
||||
{{ }} {{}}
|
||||
{{ }}
|
||||
|
||||
\a
|
||||
'12'"""""
|
||||
"哈''哈"
|
||||
</div>
|
||||
|
||||
<p>渲染时间:{{ layui.util.toDateString(new Date()) }}</p></textarea>
|
||||
</div>
|
||||
|
||||
<div class="layui-col-xs6 laytpl-demo">
|
||||
<div class="layui-row">
|
||||
<div class="layui-col-xs3">数据</div>
|
||||
<div class="layui-col-xs9" style="text-align: right">
|
||||
<button class="layui-btn layui-btn-sm layui-btn-primary" lay-on="createData">生成数据</button>
|
||||
</div>
|
||||
</div>
|
||||
<textarea id="demoData1">
|
||||
{
|
||||
"title": "标题",
|
||||
"desc": "<a href=\"\" style=\"color:blue;\">一段描述</a>",
|
||||
"items": [
|
||||
{
|
||||
"title": "list 1",
|
||||
"child": [{
|
||||
"title": "list 1-1",
|
||||
"child": [{
|
||||
"title": "list 1-1-1"
|
||||
}]
|
||||
}]
|
||||
},
|
||||
{
|
||||
"title": "list 2",
|
||||
"child": [{
|
||||
"title": "list 2-1"
|
||||
}]
|
||||
},
|
||||
{"title": "list 3"}
|
||||
]
|
||||
}</textarea>
|
||||
</div>
|
||||
<div class="layui-col-xs12 laytpl-demo">
|
||||
<div class="layui-row">
|
||||
<div class="layui-col-xs4">视图</div>
|
||||
<div class="layui-col-xs4" style="text-align: center">
|
||||
<button class="layui-btn layui-btn-sm layui-btn-primary" lay-on="test1">性能测试</button>
|
||||
</div>
|
||||
<div class="layui-col-xs4" style="text-align: right">
|
||||
<span id="demoViewTime"></span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-padding-sm" id="demoView1"></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<script type="type/html" template id="demoTplCommon">
|
||||
公共模板 - {{ d.title }}
|
||||
</script>
|
||||
|
||||
<script type="type/html" template id="demoTplList">
|
||||
{{# if(d.items && d.items.length > 0){ }}
|
||||
<ul>
|
||||
{{# layui.each(d.items, function(index, item){ }}
|
||||
<li><strong>{{ item.title }}</strong>{{ laytpl.include('demoTplList', {items: item.child}) }}</li>
|
||||
{{# }); }}
|
||||
</ul>
|
||||
{{# } }}
|
||||
</script>
|
||||
|
||||
<script type="type/html" template id="laytplTestTpl">
|
||||
{{# for(var i = 0; i < d.items.length; i++){ }}
|
||||
第{{= d.items[i].index }}个,Name: {{- d.items[i].name }} Number: {{= d.items[i].number }}
|
||||
{{# } }}
|
||||
</script>
|
||||
|
||||
</div>
|
||||
|
||||
<script src="../src/layui.js"></script>
|
||||
<script>
|
||||
layui.use(['laytpl', 'util'], function(){
|
||||
var laytpl = layui.laytpl;
|
||||
var util = layui.util;
|
||||
var $ = layui.$;
|
||||
|
||||
//获取模板和数据
|
||||
var get = function(type){
|
||||
return {
|
||||
template: $('#demoTPL1').val() //获取模板
|
||||
,data: function(){ //获取数据
|
||||
try {
|
||||
return JSON.parse($('#demoData1').val());
|
||||
} catch(e){
|
||||
$('#demoView1').html(e);
|
||||
}
|
||||
}()
|
||||
};
|
||||
};
|
||||
|
||||
var data = get();
|
||||
|
||||
//耗时计算
|
||||
var startTime = new Date().getTime(), timer = function(startTime, title){
|
||||
var endTime = new Date().getTime();
|
||||
$('#demoViewTime').html((title || '模板解析耗时:')+ (endTime - startTime) + 'ms');
|
||||
};
|
||||
|
||||
//渲染模板
|
||||
var thisTpl = laytpl(data.template);
|
||||
|
||||
//执行渲染
|
||||
thisTpl.render(data.data, function(view){
|
||||
timer(startTime);
|
||||
$('#demoView1').html(view);
|
||||
});
|
||||
|
||||
//编辑
|
||||
$('.laytpl-demo textarea').on('input', function(){
|
||||
var data = get();
|
||||
if(!data.data) return;
|
||||
|
||||
//计算模板渲染耗时
|
||||
var startTime = new Date().getTime();
|
||||
|
||||
//若模板有变化,则重新解析模板;若模板没变,数据有变化,则从模板缓存中直接渲染(效率大增)
|
||||
if(this.id === 'demoTPL1'){
|
||||
thisTpl.parse(data.template, data.data); //解析模板
|
||||
}
|
||||
|
||||
//执行渲染
|
||||
thisTpl.render(data.data, function(view){
|
||||
timer(startTime);
|
||||
$('#demoView1').html(view);
|
||||
});
|
||||
});
|
||||
|
||||
//事件
|
||||
util.event('lay-on', {
|
||||
//性能测试
|
||||
test1: function(){
|
||||
var dataLen = 1000 //数据量
|
||||
,renderTimes = 1000; //渲染次数
|
||||
|
||||
//初始化数据
|
||||
var data = {
|
||||
title: '性能测试'
|
||||
,items: function(items){
|
||||
for(var i = 0; i < dataLen; i++){
|
||||
items.push({
|
||||
index: i
|
||||
,name: '<strong style="color: red;">张三</strong>'
|
||||
,number: 100+i
|
||||
});
|
||||
}
|
||||
return items;
|
||||
}([])
|
||||
};
|
||||
|
||||
//模板
|
||||
var startTime = new Date();
|
||||
for(var j = 0; j < renderTimes; j++){
|
||||
var template = document.getElementById('laytplTestTpl').innerHTML;
|
||||
var html = laytpl(template).render(data);
|
||||
}
|
||||
timer(startTime, '本次测试耗时:');
|
||||
$('#demoView1').html(html);
|
||||
|
||||
}
|
||||
});
|
||||
|
||||
// 自定义标签符
|
||||
laytpl(`
|
||||
<%# var job = ["前端工程师"]; %>
|
||||
<%= d.name %>是一名<%= job[d.type] %>。
|
||||
`, {
|
||||
open: '<%',
|
||||
close: '%>'
|
||||
}).render({
|
||||
name: '张三',
|
||||
type: 0
|
||||
}, function(str){
|
||||
console.log(str); // 张三是一名前端工程师。
|
||||
});
|
||||
});
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
199
public/frontend/layui-main/examples/menu.html
Executable file
199
public/frontend/layui-main/examples/menu.html
Executable file
@@ -0,0 +1,199 @@
|
||||
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
|
||||
<title>菜单元素 - layui</title>
|
||||
|
||||
<link rel="stylesheet" href="../src/css/layui.css">
|
||||
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div class="layui-container" style="padding-top: 30px;">
|
||||
|
||||
<div class="layui-btn-container">
|
||||
<button type="button" class="layui-btn" lay-active="lg">大尺寸</button>
|
||||
<button type="button" class="layui-btn" lay-active="normal">常规尺寸</button>
|
||||
</div>
|
||||
|
||||
<div class="layui-row layui-col-space30" id="demo-box" style="padding: 30px 0;">
|
||||
|
||||
<div class="layui-col-xs9 layui-col-md3">
|
||||
<div class="layui-panel">
|
||||
<ul class="layui-menu" id="demo1">
|
||||
<li lay-options="{id: 100}">
|
||||
<div class="layui-menu-body-title">menu item 1</a></div>
|
||||
</li>
|
||||
<li lay-options="{id: 101}">
|
||||
<div class="layui-menu-body-title">
|
||||
<a href="">menu item 2 <span class="layui-badge-dot"></span></a>
|
||||
</div>
|
||||
</li>
|
||||
<li class="layui-menu-item-divider"></li>
|
||||
<li class="layui-menu-item-group layui-menu-item-down" lay-options="{type: 'group'}">
|
||||
<div class="layui-menu-body-title">
|
||||
menu group <i class="layui-icon layui-icon-up"></i>
|
||||
</div>
|
||||
<ul>
|
||||
<li lay-options="{id: 103}">
|
||||
<div class="layui-menu-body-title">menu item 3-1</div>
|
||||
</li>
|
||||
<li class="layui-menu-item-group" lay-options="{type: 'group', isAllowSpread: false}">
|
||||
<div class="layui-menu-body-title">menu group 2</div>
|
||||
<ul>
|
||||
<li class="layui-menu-item-checked">
|
||||
<div class="layui-menu-body-title">menu item 3-2-1</div>
|
||||
</li>
|
||||
<li><div class="layui-menu-body-title">menu item 3-2-2</div></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><div class="layui-menu-body-title">menu item 3-3</div></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="layui-menu-item-divider"></li>
|
||||
<li><div class="layui-menu-body-title">menu item 4 <span class="layui-badge">1</span></div></li>
|
||||
<li><div class="layui-menu-body-title">menu item 5</div></li>
|
||||
<li><div class="layui-menu-body-title">menu item 6</div></li>
|
||||
<li class="layui-menu-item-parent" lay-options="{type: 'parent'}">
|
||||
<div class="layui-menu-body-title">
|
||||
menu item 7 Children
|
||||
<i class="layui-icon layui-icon-right"></i>
|
||||
</div>
|
||||
<div class="layui-panel layui-menu-body-panel">
|
||||
<ul>
|
||||
<li class="layui-menu-item-parent" lay-options="{type: 'parent'}">
|
||||
<div class="layui-menu-body-title">
|
||||
menu item 7-1
|
||||
<i class="layui-icon layui-icon-right"></i>
|
||||
</div>
|
||||
<div class="layui-panel layui-menu-body-panel">
|
||||
<ul>
|
||||
<li><div class="layui-menu-body-title">menu item 7-2-1</div></li>
|
||||
<li><div class="layui-menu-body-title">menu item 7-2-2</div></li>
|
||||
<li><div class="layui-menu-body-title">menu item 7-2-3</div></li>
|
||||
<li><div class="layui-menu-body-title">menu item 7-2-4</div></li>
|
||||
</ul>
|
||||
</div>
|
||||
</li>
|
||||
<li><div class="layui-menu-body-title">menu item 7-2</div></li>
|
||||
<li><div class="layui-menu-body-title">menu item 7-3</div></li>
|
||||
</ul>
|
||||
</div>
|
||||
</li>
|
||||
<li>menu item 8</li>
|
||||
<li class="layui-menu-item-divider"></li>
|
||||
<li class="layui-menu-item-group" lay-options="{type: 'group'}">
|
||||
<div class="layui-menu-body-title">menu group 9</div>
|
||||
<ul>
|
||||
<li><div class="layui-menu-body-title">menu item 9-1</div></li>
|
||||
<li class="layui-menu-item-parent" lay-options="{type: 'parent'}">
|
||||
<div class="layui-menu-body-title">
|
||||
menu item 9-2
|
||||
<i class="layui-icon layui-icon-right"></i>
|
||||
</div>
|
||||
<div class="layui-panel layui-menu-body-panel">
|
||||
<ul>
|
||||
<li><div class="layui-menu-body-title">menu item 9-2-1</div></li>
|
||||
<li><div class="layui-menu-body-title">menu item 9-2-2</div></li>
|
||||
<li><div class="layui-menu-body-title">menu item 9-2-3</div></li>
|
||||
</ul>
|
||||
</div>
|
||||
</li>
|
||||
<li><div class="layui-menu-body-title">menu item 9-31</div></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="layui-menu-item-divider"></li>
|
||||
<li><div class="layui-menu-body-title">menu item 10</div></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-col-xs9 layui-col-md3">
|
||||
<div class="layui-panel">
|
||||
<ul class="layui-menu" id="docDemoMenu1">
|
||||
<li lay-options="{id: 100}">
|
||||
<div class="layui-menu-body-title">menu item 1</div>
|
||||
</li>
|
||||
<li lay-options="{id: 101}">
|
||||
<div class="layui-menu-body-title">
|
||||
<a href="">menu item 2 <span class="layui-badge-dot"></span></a>
|
||||
</div>
|
||||
</li>
|
||||
<li class="layui-menu-item-divider"></li>
|
||||
<li class="layui-menu-item-group layui-menu-item-down" lay-options="{type: 'group', isAllowSpread: false}">
|
||||
<div class="layui-menu-body-title">
|
||||
menu group
|
||||
</div>
|
||||
<ul>
|
||||
<li lay-options="{id: 1031}"><div class="layui-menu-body-title">menu item 3-1</div></li>
|
||||
<li lay-options="{id: 1032}">
|
||||
<div class="layui-menu-body-title">menu item 3-2</div>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="layui-menu-item-divider"></li>
|
||||
<li class="layui-menu-item-group layui-menu-item-down" lay-options="{type: 'group', isAllowSpread: false}">
|
||||
<div class="layui-menu-body-title">menu group 2</div>
|
||||
<ul>
|
||||
<li lay-options="{id: 1031}"><div class="layui-menu-body-title">menu item 4-1</div></li>
|
||||
<li lay-options="{id: 1032}">
|
||||
<div class="layui-menu-body-title">menu item 4-2</div>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="layui-menu-item-divider"></li>
|
||||
<li class="layui-menu-item-parent" lay-options="{type: 'parent'}">
|
||||
<div class="layui-menu-body-title">
|
||||
menu item 5
|
||||
<i class="layui-icon layui-icon-right"></i>
|
||||
</div>
|
||||
<div class="layui-panel layui-menu-body-panel">
|
||||
<ul>
|
||||
<li lay-options="{id: 1051}">
|
||||
<div class="layui-menu-body-title">menu item 5-1</div>
|
||||
</li>
|
||||
<li lay-options="{id: 1051}">
|
||||
<div class="layui-menu-body-title">menu item 5-2</div>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</li>
|
||||
<li lay-options="{id: 106}">
|
||||
<div class="layui-menu-body-title">menu item 6</div>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script src="../src/layui.js"></script>
|
||||
<script>
|
||||
layui.use(['dropdown', 'util'], function(){
|
||||
var dropdown = layui.dropdown
|
||||
,util = layui.util
|
||||
,$ = layui.jquery;
|
||||
|
||||
|
||||
dropdown.on('click(demo1)', function(options){
|
||||
var thisElem = $(this);
|
||||
console.log(thisElem, options);
|
||||
});
|
||||
|
||||
util.event('lay-active', {
|
||||
normal: function(){
|
||||
$('#demo-box').children().addClass('layui-col-md3').removeClass('layui-col-md4');
|
||||
$('#demo-box').find('.layui-menu').removeClass('layui-menu-lg');
|
||||
}
|
||||
,lg: function(){
|
||||
$('#demo-box').children().addClass('layui-col-md4').removeClass('layui-col-md3')
|
||||
$('#demo-box').find('.layui-menu').addClass('layui-menu-lg');
|
||||
}
|
||||
});
|
||||
});
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
118
public/frontend/layui-main/examples/rate.html
Executable file
118
public/frontend/layui-main/examples/rate.html
Executable file
@@ -0,0 +1,118 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
|
||||
<title>评分 - layui</title>
|
||||
|
||||
<link rel="stylesheet" href="../src/css/layui.css">
|
||||
|
||||
<style>
|
||||
body{padding:20px;}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div class="layui-container">
|
||||
<div class="layui-row">
|
||||
<!-- 基础评分用法 -->
|
||||
<div class="layui-rate-div layui-col-xm4 layui-col-xm-offset4 ">
|
||||
<h3>基础用法</h3>
|
||||
<hr>
|
||||
<div id="test1"></div>
|
||||
</div>
|
||||
|
||||
<!-- 半星评分用法 -->
|
||||
<div class="layui-rate-div layui-col-xm4 layui-col-xm-offset4 ">
|
||||
<h3>选中半星</h3>
|
||||
<hr>
|
||||
<div id="test2"></div>
|
||||
</div>
|
||||
|
||||
<!-- 显示提示文字 -->
|
||||
<div class="layui-rate-div layui-col-xm4 layui-col-xm-offset4 ">
|
||||
<h3>显示提示文字</h3>
|
||||
<hr>
|
||||
<div id="test3"></div>
|
||||
<span></span>
|
||||
</div>
|
||||
|
||||
<!-- 只读 -->
|
||||
<div class="layui-rate-div layui-col-xm4 layui-col-xm-offset4 ">
|
||||
<h3>只读</h3>
|
||||
<hr>
|
||||
<div id="test4"></div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<script src="../src/layui.js"></script>
|
||||
<script>
|
||||
|
||||
layui.use(['rate'], function(){
|
||||
var rate = layui.rate;
|
||||
|
||||
//渲染
|
||||
|
||||
// rate.set({
|
||||
// elem: '#test1'
|
||||
// ,length: 7
|
||||
// ,value: 4.7
|
||||
// ,theme: '#c00'
|
||||
// ,half: true
|
||||
// ,text: true
|
||||
// ,reader: true
|
||||
// })
|
||||
|
||||
rate.render({
|
||||
elem: '#test1'
|
||||
,length: 5
|
||||
,value: 5
|
||||
,text: true
|
||||
,half: true
|
||||
,setText1: function(value){
|
||||
|
||||
var arrs = {
|
||||
'0.5': '极差'
|
||||
, '1' : '一般'
|
||||
,'1.5': '满意'
|
||||
,'2': '极满意'
|
||||
};
|
||||
|
||||
this.span.text(arrs[value] || ( value + "星"));
|
||||
}
|
||||
})
|
||||
|
||||
rate.render({
|
||||
elem: '#test2'
|
||||
,length: 6
|
||||
,value: 2
|
||||
,half: true
|
||||
,theme: '#5FB878'
|
||||
,choose: function(value){
|
||||
if( value > 3) alert("111")
|
||||
}
|
||||
})
|
||||
|
||||
rate.render({
|
||||
elem: '#test3'
|
||||
,length: 3
|
||||
,value: 2.8
|
||||
,text: true
|
||||
,half: true
|
||||
,theme: '#FF5722'
|
||||
})
|
||||
|
||||
//只读
|
||||
rate.render({
|
||||
elem: '#test4'
|
||||
,value: 3.5
|
||||
,half: true
|
||||
,readonly: true
|
||||
})
|
||||
});
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
32
public/frontend/layui-main/examples/responsive.html
Executable file
32
public/frontend/layui-main/examples/responsive.html
Executable file
@@ -0,0 +1,32 @@
|
||||
|
||||
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
|
||||
<title>响应式测试 - Layui</title>
|
||||
<link rel="stylesheet" href="../src/css/layui.css">
|
||||
<style>
|
||||
body{padding: 20px;}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<!-- 让IE8/9支持媒体查询,从而兼容栅格 -->
|
||||
<!--[if lt IE 9]>
|
||||
<script src="https://cdn.staticfile.org/html5shiv/r29/html5.min.js"></script>
|
||||
<script src="https://cdn.staticfile.org/respond.js/1.4.2/respond.min.js"></script>
|
||||
<![endif]-->
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="layui-hide-xs layui-show-sm-inline layui-show-md-block">
|
||||
移动:隐藏
|
||||
<br>平板:inline
|
||||
<br>PC:block
|
||||
</div>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
66
public/frontend/layui-main/examples/slider.html
Executable file
66
public/frontend/layui-main/examples/slider.html
Executable file
@@ -0,0 +1,66 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
|
||||
<title>滑块 - layui</title>
|
||||
|
||||
<link rel="stylesheet" href="../src/css/layui.css">
|
||||
<style>
|
||||
body{padding:100px 0;}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div class="layui-container">
|
||||
<div id="slideTest1"></div>
|
||||
<br>
|
||||
<div id="slideTest2" style="margin: 45px 30px; display: inline-block;"></div>
|
||||
</div>
|
||||
|
||||
<script src="../src/layui.js"></script>
|
||||
<script>
|
||||
|
||||
layui.use('slider', function(){
|
||||
var slider = layui.slider;
|
||||
|
||||
var sliderInst = slider.render({
|
||||
elem: '#slideTest1'
|
||||
//,type: 'vertical'
|
||||
//,min: -20 //最小值
|
||||
//,max: 20 //最大值
|
||||
//,value: 11 //[40, 60] //初始值
|
||||
//,step: 1 //间隔值
|
||||
//,showstep: true //间隔点
|
||||
//,tips: false //关闭提示文本
|
||||
,input: true //输入框
|
||||
//,range: true //范围选择
|
||||
//,theme: '#FF5722'
|
||||
,change: function(value){ // 选中值发生改变的回调
|
||||
console.log('change', value)
|
||||
}
|
||||
,done: function(value){ // 值完成选中的回调 -- v2.8.0 新增
|
||||
console.log('done', value);
|
||||
}
|
||||
,setTips: function(value){ //自定义提示文本
|
||||
return value + '%';
|
||||
}
|
||||
//,setTips: function(value){ //自定义提示文本
|
||||
//return '离世界末日还有 ' + value + ' 天';
|
||||
//}
|
||||
//,height: '300' //配合 type:'vertical' 参数使用,默认200px
|
||||
//,disabled: true //禁用滑块
|
||||
//,theme: '#c00' //主题色
|
||||
});
|
||||
|
||||
//sliderInst.setValue(30);
|
||||
|
||||
|
||||
slider.render({
|
||||
elem: '#slideTest2',
|
||||
type: 'vertical'
|
||||
});
|
||||
});
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
107
public/frontend/layui-main/examples/table-static.html
Executable file
107
public/frontend/layui-main/examples/table-static.html
Executable file
@@ -0,0 +1,107 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<title>静态表格 - layui</title>
|
||||
|
||||
<link rel="stylesheet" href="../src/css/layui.css">
|
||||
<style>
|
||||
body {padding: 32px;}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div class="layui-btn-container">
|
||||
<a href="table.html" class="layui-btn">表格综合</a>
|
||||
<a href="table-test.html" class="layui-btn">表格操作</a>
|
||||
<a href="table-static.html" class="layui-btn layui-btn-primary layui-border-green">静态表格</a>
|
||||
</div>
|
||||
|
||||
<table class="layui-table">
|
||||
<colgroup>
|
||||
<col width="150">
|
||||
<col width="150">
|
||||
<col>
|
||||
</colgroup>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>人物</th>
|
||||
<th>民族</th>
|
||||
<th>格言</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>孔子</td>
|
||||
<td>华夏</td>
|
||||
<td>有朋至远方来,不亦乐乎</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>孟子</td>
|
||||
<td>华夏</td>
|
||||
<td>穷则独善其身,达则兼济天下</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<br>
|
||||
|
||||
<table class="layui-table" lay-size="sm">
|
||||
<colgroup>
|
||||
<col width="150">
|
||||
<col width="150">
|
||||
<col>
|
||||
</colgroup>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>人物</th>
|
||||
<th>民族</th>
|
||||
<th>格言</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>孔子</td>
|
||||
<td>华夏</td>
|
||||
<td>有朋至远方来,不亦乐乎</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>孟子</td>
|
||||
<td>华夏</td>
|
||||
<td>穷则独善其身,达则兼济天下</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<br>
|
||||
|
||||
<table class="layui-table" lay-size="lg">
|
||||
<colgroup>
|
||||
<col width="150">
|
||||
<col width="150">
|
||||
<col>
|
||||
</colgroup>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>人物</th>
|
||||
<th>民族</th>
|
||||
<th>格言</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>孔子</td>
|
||||
<td>华夏</td>
|
||||
<td>有朋至远方来,不亦乐乎</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>孟子</td>
|
||||
<td>华夏</td>
|
||||
<td>穷则独善其身,达则兼济天下</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
148
public/frontend/layui-main/examples/table-test-border.html
Executable file
148
public/frontend/layui-main/examples/table-test-border.html
Executable file
@@ -0,0 +1,148 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport"
|
||||
content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
|
||||
<title>表格边框测试</title>
|
||||
<link rel="stylesheet" href="../src/css/layui.css">
|
||||
<style>
|
||||
body {
|
||||
padding: 32px; /*overflow-y: scroll;*/
|
||||
}
|
||||
|
||||
.layui-table-view {
|
||||
margin: 8px 0;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<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>
|
||||
|
||||
|
||||
<blockquote class="layui-elem-quote">
|
||||
无统计、无分页
|
||||
</blockquote>
|
||||
|
||||
<table id="test"></table>
|
||||
|
||||
<blockquote class="layui-elem-quote">
|
||||
有统计、无分页
|
||||
</blockquote>
|
||||
|
||||
<table id="test1"></table>
|
||||
|
||||
<blockquote class="layui-elem-quote">
|
||||
无统计、有分页
|
||||
</blockquote>
|
||||
|
||||
<table id="test2"></table>
|
||||
|
||||
<blockquote class="layui-elem-quote">
|
||||
有统计、有分页
|
||||
</blockquote>
|
||||
|
||||
<table id="test3"></table>
|
||||
|
||||
<script src="../src/layui.js" src1="https://cdn.staticfile.org/layui/2.7.6/layui.js"></script>
|
||||
<script>
|
||||
layui.use(['table', 'laydate'], function () {
|
||||
var $ = layui.$;
|
||||
var table = layui.table;
|
||||
|
||||
var url = 'json/table/demo1.json';
|
||||
|
||||
// 无统计、无分页
|
||||
table.render({
|
||||
elem: '#test'
|
||||
, url: url
|
||||
// , totalRow: true
|
||||
, height: 300
|
||||
, cellMinWidth: 80
|
||||
//,skin: 'line'
|
||||
//,size: 'lg'
|
||||
// , toolbar: true
|
||||
, cols: [[
|
||||
{field: 'id', hide: true}
|
||||
, {field: 'username', title: '用户名'}
|
||||
, {field: 'email', title: '邮箱'}
|
||||
, {title: '操作', align: 'center', toolbar: '#barDemo'}
|
||||
]]
|
||||
});
|
||||
|
||||
// 有统计、无分页
|
||||
table.render({
|
||||
elem: '#test1'
|
||||
, url: url
|
||||
, totalRow: true
|
||||
, height: 300
|
||||
, cellMinWidth: 80
|
||||
//,skin: 'line'
|
||||
//,size: 'lg'
|
||||
// , toolbar: true
|
||||
, cols: [[
|
||||
{field: 'id', hide: true}
|
||||
, {field: 'username', title: '用户名'}
|
||||
, {field: 'email', title: '邮箱'}
|
||||
, {title: '操作', align: 'center', toolbar: '#barDemo'}
|
||||
]]
|
||||
});
|
||||
|
||||
// 无统计、有分页
|
||||
table.render({
|
||||
elem: '#test2'
|
||||
, url: url
|
||||
//,contentType: 'application/json' // 参数为 json 格式传递
|
||||
, page: { // 详细参数可参考 laypage 组件文档
|
||||
curr: 5
|
||||
, groups: 1
|
||||
, first: false
|
||||
, last: false
|
||||
, layout: ['limit', 'prev', 'page', 'next', 'count'] //自定义分页布局
|
||||
}
|
||||
// , totalRow: true
|
||||
, height: 300
|
||||
, cellMinWidth: 80
|
||||
//,skin: 'line'
|
||||
//,size: 'lg'
|
||||
// , toolbar: true
|
||||
, cols: [[
|
||||
{field: 'id', hide: true}
|
||||
, {field: 'username', title: '用户名'}
|
||||
, {field: 'email', title: '邮箱'}
|
||||
, {title: '操作', align: 'center', toolbar: '#barDemo'}
|
||||
]]
|
||||
});
|
||||
|
||||
// 有统计、有分页
|
||||
table.render({
|
||||
elem: '#test3'
|
||||
, url: url
|
||||
//,contentType: 'application/json' // 参数为 json 格式传递
|
||||
, page: { // 详细参数可参考 laypage 组件文档
|
||||
curr: 5
|
||||
, groups: 1
|
||||
, first: false
|
||||
, last: false
|
||||
, layout: ['limit', 'prev', 'page', 'next', 'count'] //自定义分页布局
|
||||
}
|
||||
, totalRow: true
|
||||
, height: 300
|
||||
, cellMinWidth: 80
|
||||
//,skin: 'line'
|
||||
//,size: 'lg'
|
||||
// , toolbar: true
|
||||
, cols: [[
|
||||
{field: 'id', hide: true}
|
||||
, {field: 'username', title: '用户名'}
|
||||
, {field: 'email', title: '邮箱'}
|
||||
, {title: '操作', align: 'center', toolbar: '#barDemo'}
|
||||
]]
|
||||
});
|
||||
});
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
563
public/frontend/layui-main/examples/table-test.html
Executable file
563
public/frontend/layui-main/examples/table-test.html
Executable file
@@ -0,0 +1,563 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<title>表格操作 - layui</title>
|
||||
|
||||
<link rel="stylesheet" href="../src/css/layui.css">
|
||||
<style>
|
||||
body {padding: 32px; /*overflow-y: scroll;*/}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div class="layui-btn-container">
|
||||
<a href="table.html" class="layui-btn">表格综合</a>
|
||||
<a href="table-test.html" class="layui-btn layui-btn-primary layui-border-green">表格操作</a>
|
||||
<a href="table-static.html" class="layui-btn">静态表格</a>
|
||||
</div>
|
||||
|
||||
<script type="text/html" id="toolbarDemo">
|
||||
<div class="layui-btn-container">
|
||||
<button class="layui-btn layui-btn-sm" lay-event="getCheckData">获取选中行数据</button>
|
||||
<button class="layui-btn layui-btn-sm" lay-event="getData">获取当前页数据</button>
|
||||
|
||||
<button class="layui-btn layui-btn-sm" id="setRowChecked">
|
||||
设置行选中状态
|
||||
<i class="layui-icon layui-icon-down layui-font-12"></i>
|
||||
</button>
|
||||
<button class="layui-btn layui-btn-sm" id="reloadTest">
|
||||
重载测试
|
||||
<i class="layui-icon layui-icon-down layui-font-12"></i>
|
||||
</button>
|
||||
<button class="layui-btn layui-btn-sm layui-btn-primary" lay-event="multi-row"> 多行 </button>
|
||||
<button class="layui-btn layui-btn-sm layui-btn-primary" lay-event="default-row"> 单行 </button>
|
||||
<button class="layui-btn layui-btn-sm" id="moreTest">
|
||||
更多测试
|
||||
<i class="layui-icon layui-icon-down layui-font-12"></i>
|
||||
</button>
|
||||
</div>
|
||||
</script>
|
||||
|
||||
<script type="text/html" id="barDemo">
|
||||
<a class="layui-btn layui-btn-xs" lay-event="edit">编辑</a>
|
||||
{{# if(layui.$.trim(d.email)){ }}
|
||||
<a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del">删除</a>
|
||||
{{# } }}
|
||||
<input type="checkbox" name="demoTableSwitch" lay-skin="switch" {{ d.demoTableSwitch }}>
|
||||
</script>
|
||||
|
||||
<script type="text/html" id="usernameTpl">
|
||||
<a href="" class="layui-table-link">{{d.username || ''}}</a>
|
||||
</script>
|
||||
|
||||
<script type="text/html" id="switchTpl">
|
||||
<input type="checkbox" name="yyy" lay-skin="switch" lay-text="女|男">
|
||||
</script>
|
||||
|
||||
<script type="text/html" id="cityTpl">
|
||||
<select id="demoCity1" lay-unrow lay-ignore>
|
||||
<option value="浙江杭州">浙江杭州</option>
|
||||
<option value="江西南昌">江西南昌</option>
|
||||
<option value="湖北武汉">湖北武汉</option>
|
||||
</select>
|
||||
</script>
|
||||
|
||||
<script type="text/html" id="checkboxTpl">
|
||||
<input type="checkbox" name="" title="锁定" checked>
|
||||
</script>
|
||||
|
||||
<script type="text/html" id="pagebarDemo">
|
||||
<div class="layui-btn-container">
|
||||
<button class="layui-btn layui-btn-sm" lay-event="footerDemoBtn1">底部按钮1</button>
|
||||
<button class="layui-btn layui-btn-sm" lay-event="footerDemoBtn2">底部按钮2</button>
|
||||
</div>
|
||||
</script>
|
||||
|
||||
<table id="test"></table>
|
||||
|
||||
<script src="../src/layui.js"></script>
|
||||
<script>
|
||||
(function(off){
|
||||
if(!off) return;
|
||||
layui.disuse('table').extend({
|
||||
table: '{/}https://cdn.staticfile.org/layui/2.7.6/layui.js'
|
||||
});
|
||||
})();
|
||||
|
||||
layui.use(['table', 'dropdown'], function(){
|
||||
var $ = layui.$;
|
||||
var table = layui.table;
|
||||
var laytpl = layui.laytpl;
|
||||
var dropdown = layui.dropdown;
|
||||
var form = layui.form;
|
||||
|
||||
|
||||
// 仅用于各类测试的表头
|
||||
var test_cols = [[
|
||||
{type: 'checkbox', fixed: 'left'},
|
||||
{field:'id', title:'ID', width:80, fixed: 'left', unresize: true, sort: true, totalRowText: '合计:'},
|
||||
{field:'username', title:'用户名', width:120, edit: 'text'},
|
||||
{field:'email', title:'邮箱 <i class="layui-icon layui-icon-email"></i>', hide: 0, width:150, edit: 'text'},
|
||||
{field:'sex', title:'性别', width:80, edit: 'text', sort: true},
|
||||
{field:'city', title:'城市', width: 120},
|
||||
{field:'sign', title:'签名'},
|
||||
{field: 'experience', title: '积分', width:80, sort: true, align:'center', totalRow: '{{ d.TOTAL_NUMS }} 😊'},
|
||||
{fixed: 'right', title:'操作', toolbar: '#barDemo', width:150}
|
||||
]];
|
||||
|
||||
// 全局设定某参数
|
||||
table.set({
|
||||
where: {
|
||||
token: '默认 token 参数'
|
||||
},
|
||||
// defaultToolbar: ['filter'],
|
||||
limit: 30,
|
||||
// url: 'list',
|
||||
// height: 300
|
||||
});
|
||||
|
||||
// 渲染
|
||||
window.ins1 = table.render({
|
||||
elem: '#test',
|
||||
height: 520,
|
||||
// width: 600,
|
||||
title: '用户数据表',
|
||||
url: 'json/table/demo1.json',
|
||||
// method: 'post',
|
||||
|
||||
|
||||
// lineStyle: 'height: 95px;', // 行样式
|
||||
css: [ // 自定义样式
|
||||
'.layui-table-page{text-align: right;}',
|
||||
'.layui-table-pagebar{float: left;}'
|
||||
].join(''),
|
||||
// className: '.demo-table-view',
|
||||
|
||||
// size: 'sm',
|
||||
// skin: 'line',
|
||||
// even: true,
|
||||
// loading: false,
|
||||
|
||||
totalRow: true,
|
||||
pagebar: '#pagebarDemo', // 分页栏模板
|
||||
page: !1 ? false : {
|
||||
// curr: layui.data('tableCache').curr || 1 // 读取记录中的页码,赋值给起始页
|
||||
},
|
||||
limit: 30,
|
||||
toolbar: '#toolbarDemo',
|
||||
defaultToolbar: ['filter', 'exports', 'print', {
|
||||
title: '帮助',
|
||||
layEvent: 'LAYTABLE_TIPS',
|
||||
icon: 'layui-icon-tips'
|
||||
}],
|
||||
// escape: false,
|
||||
editTrigger: 'dblclick',
|
||||
// cellMaxWidth: 320
|
||||
// cellExpandedWidth: 160, // 单元格默认展开后的宽度
|
||||
// cellExpandedStyle: 'tips', // 单元格默认展开风格
|
||||
cols: !1 ? test_cols : [[
|
||||
{type: 'checkbox', fixed: 'left'},
|
||||
// {type: 'numbers', fixed: 'left'},
|
||||
{field:'id', title:'ID', width:80, fixed: 'left', unresize: true, sort: true, totalRowText: '合计:'},
|
||||
{field:'username', expandedStyle: 'tips', title:'用户名 <i class="layui-icon layui-icon-username" lay-event="username"></i>', width:120, edit: function(d){
|
||||
return !d.LAY_DISABLED;
|
||||
}, templet: '#usernameTpl'},
|
||||
{field:'xxx', title:'测试', edit: 'text'},
|
||||
{field:'email', minWidth: 160, maxWidth: 320, title:'邮箱 <i class="layui-icon layui-icon-email" lay-event="email"></i>', fieldTitle: '邮箱', hide: 0, edit: 'text', style: 'background-color: #fafafa; color: red;', templet: function(d){
|
||||
return '<em>'+ layui.util.escape(d.email) +'</em>'
|
||||
}},
|
||||
{field:'sex', title:'性别', width:80, edit: 'text', sort: true, escape: false},
|
||||
{field:'city', title:'城市', width:120, templet: '#cityTpl', exportTemplet: function(d, obj){
|
||||
// return '=HYPERLINK("https://abc.com/a.jpg","截图")'; // 测试内容存在特殊符
|
||||
// console.log(obj)
|
||||
var td = obj.td(this.field); //获取当前 td
|
||||
return td.find('select').val();
|
||||
}},
|
||||
{field:'sign', title:'签名', minWidth: 200, style:'color: #5FB878', edit: 'textarea'},
|
||||
{field: 'experience', title: '积分', width: 100, sort: true, align:'center', totalRow: !1 ? true : '{{= d.TOTAL_NUMS }} 分 😊', templet: '<div><a href="" class="layui-table-link">{{= d[d.LAY_COL.field] }}</a> 分</div>'},
|
||||
{field:'ip', title:'IP', width: 120, align: 'right'},
|
||||
{field:'checkin', title:'打卡', width: 100, sort: true, totalRow: '{{= d.TOTAL_ROW.checkin }} 次'},
|
||||
{field:'joinTime', title:'加入时间', width: 120},
|
||||
{fixed: 'right', title:'操作', toolbar: '#barDemo', width: 180}
|
||||
]],
|
||||
|
||||
// autoSort: false // 禁用前端自动排序,由服务的完成排序
|
||||
initSort111: { // 初始排序状态
|
||||
field: 'experience', // 排序字段,对应 cols 设定的各字段名
|
||||
type: 'desc' // 排序方式 asc: 升序、desc: 降序、null: 默认排序
|
||||
},
|
||||
|
||||
headers: {headers_token: 'sasasas'},
|
||||
where: {
|
||||
test: '初始 test 参数',
|
||||
token: '初始 token',
|
||||
key: 'experience',
|
||||
order: 'asc'
|
||||
},
|
||||
before: function(options){
|
||||
options.where.AAAAA = 123;
|
||||
// console.log(options)
|
||||
},
|
||||
done: function(res, curr, count){
|
||||
var id = this.id;
|
||||
|
||||
// 记录当前页码
|
||||
/*
|
||||
layui.data('tableCache', {
|
||||
key: 'curr',
|
||||
value: curr
|
||||
});
|
||||
*/
|
||||
|
||||
// 设置选中行状态
|
||||
dropdown.render({
|
||||
elem: '#setRowChecked', // 可绑定在任意元素中,此处以上述按钮为例
|
||||
data: [{
|
||||
id: 'checked',
|
||||
title: '选中某行'
|
||||
},{
|
||||
id: 'unchecked',
|
||||
title: '取消选中某行'
|
||||
},{
|
||||
id: 'reset-checked',
|
||||
title: '给选中行取消选中状态'
|
||||
}],
|
||||
// 菜单被点击的事件
|
||||
click: function(obj){
|
||||
if(obj.id === 'reset-checked'){
|
||||
// 给选中行取消选中状态
|
||||
table.setRowChecked(id, {
|
||||
index: 'all',
|
||||
checked: false
|
||||
});
|
||||
} else {
|
||||
layer.prompt({
|
||||
title: '请输入表格行号',
|
||||
value: 1,
|
||||
shade: false
|
||||
}, function(value, i){
|
||||
switch(obj.id){
|
||||
case 'checked':
|
||||
table.setRowChecked(id, {
|
||||
index: value,
|
||||
checked: true
|
||||
});
|
||||
break;
|
||||
case 'unchecked':
|
||||
table.setRowChecked(id, {
|
||||
index: value,
|
||||
checked: false
|
||||
});
|
||||
break;
|
||||
}
|
||||
layer.close(i);
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
// 重载测试
|
||||
dropdown.render({
|
||||
elem: '#reloadTest', // 可绑定在任意元素中,此处以上述按钮为例
|
||||
data: [{
|
||||
id: 'reload',
|
||||
title: '重载'
|
||||
},{
|
||||
id: 'reload-deep',
|
||||
title: '重载 - 参数叠加'
|
||||
},{
|
||||
id: 'reloadData',
|
||||
title: '仅重载数据'
|
||||
},{
|
||||
id: 'reloadData-deep',
|
||||
title: '仅重载数据 - 参数叠加'
|
||||
}],
|
||||
// 菜单被点击的事件
|
||||
click: function(obj){
|
||||
switch(obj.id){
|
||||
case 'reload':
|
||||
// 重载 - 默认(参数重置)
|
||||
table.reload('test', {
|
||||
where: {
|
||||
abc: '123456',
|
||||
// test: '新的 test2',
|
||||
// token: '新的 token2'
|
||||
},
|
||||
height: 'full-130', // 重载高度
|
||||
/*
|
||||
cols: [[ // 重置表头
|
||||
{type: 'checkbox', fixed: 'left'},
|
||||
{field:'id', title:'ID', width:80, fixed: 'left', unresize: true, sort: true, totalRowText: '合计:'},
|
||||
{field:'sex', title:'性别', width:80, edit: 'text', sort: true},
|
||||
{field:'experience', title:'积分', width:80, sort: true, totalRow: true, templet: '<div>{{ d.experience }} 分</div>'},
|
||||
{field:'logins', title:'登入次数', width:100, sort: true, totalRow: true},
|
||||
{field:'joinTime', title:'加入时间', width:120}
|
||||
]]
|
||||
*/
|
||||
|
||||
});
|
||||
break;
|
||||
case 'reload-deep':
|
||||
// 重载 - 深度(参数叠加)
|
||||
table.reload('test', {
|
||||
where: {
|
||||
abc: 123,
|
||||
test: '新的 test1'
|
||||
},
|
||||
//,defaultToolbar: ['print'] // 重载头部工具栏右侧图标
|
||||
page: {curr: 5, limit: 20}
|
||||
//,cols: ins1.config.cols
|
||||
}, true);
|
||||
break;
|
||||
case 'reloadData':
|
||||
// 数据重载 - 参数重置
|
||||
table.reloadData('test', {
|
||||
where: {
|
||||
abc: '123456',
|
||||
// test: '新的 test2',
|
||||
// token: '新的 token2'
|
||||
},
|
||||
height: 2000, // 测试无效参数
|
||||
// url: '404',
|
||||
// elem: null,
|
||||
// page: {curr: 5, limit: 20},
|
||||
scrollPos: 'fixed' // 保持滚动条位置不变
|
||||
});
|
||||
break;
|
||||
case 'reloadData-deep':
|
||||
// 数据重载 - 参数叠加
|
||||
table.reloadData('test', {
|
||||
where: {
|
||||
abc: 123,
|
||||
test: '新的 test1'
|
||||
}
|
||||
}, true);
|
||||
break;
|
||||
}
|
||||
layer.msg('可观察 Network 请求参数的变化');
|
||||
}
|
||||
});
|
||||
|
||||
// 更多测试
|
||||
dropdown.render({
|
||||
elem: '#moreTest', // 可绑定在任意元素中,此处以上述按钮为例
|
||||
data: [{
|
||||
id: 'add',
|
||||
title: '添加'
|
||||
},{
|
||||
id: 'update',
|
||||
title: '编辑'
|
||||
},{
|
||||
id: 'delete',
|
||||
title: '删除'
|
||||
}],
|
||||
// 菜单被点击的事件
|
||||
click: function(obj){
|
||||
var checkStatus = table.checkStatus(id)
|
||||
var data = checkStatus.data; // 获取选中的数据
|
||||
|
||||
switch(obj.id){
|
||||
case 'add':
|
||||
layer.open({
|
||||
title: '添加',
|
||||
type: 1,
|
||||
area: ['80%','80%'],
|
||||
content: '<div style="padding: 16px;">自定义表单元素</div>'
|
||||
});
|
||||
break;
|
||||
case 'update':
|
||||
layer.open({
|
||||
title: '编辑',
|
||||
type: 1,
|
||||
area: ['80%','80%'],
|
||||
content: '<div style="padding: 16px;">自定义表单元素</div>'
|
||||
});
|
||||
break;
|
||||
case 'delete':
|
||||
if(data.length === 0){
|
||||
return layer.msg('请选择一行');
|
||||
}
|
||||
layer.msg('delete event');
|
||||
break;
|
||||
}
|
||||
}
|
||||
});
|
||||
},
|
||||
|
||||
/*
|
||||
request: { // 自定义请求参数名称
|
||||
pageName: 'curr', // 页码的参数名称,默认:page
|
||||
limitName: 'nums' // 每页数据量的参数名,默认:limit
|
||||
},
|
||||
parseData: function(res){ // 任意数据格式的解析
|
||||
return {
|
||||
"status": res.status,
|
||||
"msg": res.message,
|
||||
"count": res.total,
|
||||
"data": res.data.list
|
||||
};
|
||||
},
|
||||
*/
|
||||
|
||||
error: function(res, msg){
|
||||
console.log(res, msg)
|
||||
}
|
||||
});
|
||||
|
||||
// 排序事件
|
||||
table.on('sort(test)', function(obj){
|
||||
// console.log(obj);
|
||||
|
||||
// return;
|
||||
layer.msg('服务端排序。order by '+ obj.field + ' ' + obj.type);
|
||||
|
||||
// 服务端排序
|
||||
table.reloadData('test', {
|
||||
// initSort: obj,
|
||||
// page: {curr: 1}, // 重新从第一页开始
|
||||
where: { // 向服务端传入排序参数
|
||||
key: obj.field, // 排序字段
|
||||
order: obj.type // 排序方式
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
// 头部工具栏事件
|
||||
table.on('toolbar(test)', function(obj){
|
||||
var id = obj.config.id;
|
||||
var checkStatus = table.checkStatus(id);
|
||||
|
||||
switch(obj.event){
|
||||
case 'getCheckData':
|
||||
var data = checkStatus.data;
|
||||
layer.alert(layui.util.escape(JSON.stringify(data)));
|
||||
break;
|
||||
case 'getData':
|
||||
var getData = table.getData(id);
|
||||
console.log(getData);
|
||||
layer.alert(layui.util.escape(JSON.stringify(getData)));
|
||||
break;
|
||||
case 'isAll':
|
||||
layer.msg(checkStatus.isAll ? '全选': '未全选')
|
||||
break;
|
||||
case 'multi-row':
|
||||
table.reload('test', {
|
||||
// 设置行样式,此处以设置多行高度为例。若为单行,则没必要设置改参数 - 注:v2.7.0 新增
|
||||
lineStyle: 'height: 95px;'
|
||||
});
|
||||
layer.msg('即通过设置 lineStyle 参数可开启多行');
|
||||
break;
|
||||
case 'default-row':
|
||||
table.reload('test', {
|
||||
lineStyle: null // 恢复单行
|
||||
});
|
||||
layer.msg('已设为单行');
|
||||
break;
|
||||
case 'LAYTABLE_TIPS':
|
||||
layer.alert('Table for layui-v'+ layui.v);
|
||||
break;
|
||||
};
|
||||
});
|
||||
|
||||
// 表头自定义元素工具事件
|
||||
table.on('colTool(test)', function(obj){
|
||||
console.log(obj);
|
||||
});
|
||||
|
||||
// 触发单元格工具事件
|
||||
table.on('tool(test)', function(obj){ // 双击 toolDouble
|
||||
var data = obj.data;
|
||||
// console.log(obj)
|
||||
if (obj.event === 'edit') {
|
||||
layer.prompt({
|
||||
formType: 2
|
||||
,value: data.email
|
||||
}, function(value, index){
|
||||
obj.update({
|
||||
email: value
|
||||
}, true); // 参数 true 为新版新增功能,详见文档
|
||||
|
||||
/*
|
||||
// 上述 obj.update() 只是在前端临时更新数据视图
|
||||
// 在实际业务中,当发送修改请求成功后,可再执行 reloadData 来重载数据
|
||||
table.reloadData('test', {
|
||||
scrollPos: 'fixed' // 保持滚动条位置不变
|
||||
});
|
||||
*/
|
||||
layer.close(index);
|
||||
});
|
||||
} else if (obj.event === 'del') {
|
||||
layer.confirm('真的删除行么', function(index){
|
||||
obj.del();
|
||||
layer.close(index);
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
// 触发表格复选框选择
|
||||
table.on('checkbox(test)', function(obj){
|
||||
console.log(obj)
|
||||
});
|
||||
|
||||
// 触发表格单选框选择
|
||||
table.on('radio(test)', function(obj){
|
||||
console.log(obj)
|
||||
});
|
||||
|
||||
// 行单击事件
|
||||
table.on('row(test)', function(obj){
|
||||
console.log(obj);
|
||||
// layer.closeAll('tips');
|
||||
obj.setRowChecked({
|
||||
// type: 'radio'
|
||||
});
|
||||
// layer.msg('row 事件')
|
||||
});
|
||||
|
||||
// 行双击事件
|
||||
table.on('rowDouble(test)', function(obj){
|
||||
console.log(obj);
|
||||
});
|
||||
|
||||
// 单元格编辑事件
|
||||
table.on('edit(test)', function(obj){
|
||||
var field = obj.field // 得到字段
|
||||
var value = obj.value // 得到修改后的值
|
||||
var oldValue = obj.oldValue // 得到修改前的值 -- v2.8.0 新增
|
||||
var data = obj.data; // 得到当前编辑所在行的数据
|
||||
var col = obj.getCol(); // 得到当前列的表头配置属性
|
||||
|
||||
// 值的校验
|
||||
if(field === 'email'){
|
||||
if(!/^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/.test(obj.value)){
|
||||
layer.tips('输入的'+ col.fieldTitle +'格式不正确,请重新编辑', this, {tips: 1});
|
||||
return obj.reedit(); // 重新编辑 -- v2.8.0 新增
|
||||
}
|
||||
}
|
||||
|
||||
// 编辑后续操作,如提交更新请求,以完成真实的数据更新
|
||||
// …
|
||||
layer.msg('编辑成功', {icon: 1});
|
||||
|
||||
// 其他更新操作
|
||||
var update = {};
|
||||
update[field] = value;
|
||||
obj.update(update, true); // 参数 true 为 v2.7.4 新增功能,即同步更新其他包含自定义模板并可能存在关联的列视图
|
||||
});
|
||||
|
||||
|
||||
// 列拖拽宽度后的事件 -- v2.8.0 新增
|
||||
table.on('colResized(test)', function(obj){
|
||||
console.log(obj);
|
||||
});
|
||||
|
||||
// 列拖拽宽度后的事件 -- v2.8.0 新增
|
||||
table.on('colToggled(test)', function(obj){
|
||||
console.log(obj);
|
||||
});
|
||||
});
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
339
public/frontend/layui-main/examples/table.html
Executable file
339
public/frontend/layui-main/examples/table.html
Executable file
@@ -0,0 +1,339 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
|
||||
<title>表格操作 - layui</title>
|
||||
<link rel="stylesheet" href="../src/css/layui.css">
|
||||
<style>
|
||||
body{padding: 32px; /*overflow-y: scroll;*/}
|
||||
.layui-table-view{margin: 8px 0;}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div class="layui-btn-container">
|
||||
<a href="table.html" class="layui-btn layui-btn-primary layui-border-green">表格综合</a>
|
||||
<a href="table-test.html" class="layui-btn">表格操作</a>
|
||||
<a href="table-static.html" class="layui-btn">静态表格</a>
|
||||
</div>
|
||||
|
||||
<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>
|
||||
|
||||
<table id="test"></table>
|
||||
<table id="test-data"></table>
|
||||
<table id="test-arr"></table>
|
||||
<table id="test-json"></table>
|
||||
|
||||
<div style="display: none1;">
|
||||
<table class="layui-table" lay-data="{width:800, height: 300, url:'json/table/demo2.json', page: true, even: true, limit: 6, toolbar: true}">
|
||||
<thead>
|
||||
<tr>
|
||||
<th lay-data="{checkbox:true, fixed:'left'}" rowspan="2"></th>
|
||||
<th lay-data="{field:'username', width:80}" rowspan="2">联系人</th>
|
||||
<th lay-data="{field:'amount', width:120}" rowspan="2">金额</th>
|
||||
<th lay-data="{align:'center'}" colspan="5">地址</th>
|
||||
<th lay-data="{fixed: 'right', width: 155, align: 'center', toolbar: '#barDemo'}" rowspan="2">操作</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<th lay-data="{field:'province', width:130}">省</th>
|
||||
<th lay-data="{field:'city', width:130}">市</th>
|
||||
<th lay-data="{field:'zone', width:200}">区</th>
|
||||
<th lay-data="{field:'address', width:120}">小区</th>
|
||||
<th lay-data="{field:'house', width:150}">单元</th>
|
||||
</tr>
|
||||
</thead>
|
||||
</table>
|
||||
|
||||
<table class="layui-table" lay-data="{url:'json/table/demo2.json', page: true, limit: 6, toolbar: true}">
|
||||
<thead>
|
||||
<tr>
|
||||
<th lay-data="{field:'username'}" rowspan="3">联系人</th>
|
||||
<th lay-data="{field:'amount', width:120,hide:1}" rowspan="3">金额</th>
|
||||
<th lay-data="{align:'center'}" colspan="5">地址1</th>
|
||||
<th lay-data="{align:'center'}" colspan="2">地址2</th>
|
||||
<th lay-data="{fixed: 'right', width: 120, align: 'center', toolbar: '#barDemo'}" rowspan="3">操作</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<th lay-data="{field:'province', width:120,hide:1}" rowspan="2">省</th>
|
||||
<th lay-data="{field:'city', width:80,hide:1}" rowspan="2">市</th>
|
||||
<th lay-data="{align:'center'}" colspan="2">详细</th>
|
||||
<th lay-data="{field:'zone'}" rowspan="2">区</th>
|
||||
<th lay-data="{field:'province', width:80}" rowspan="2">省</th>
|
||||
<th lay-data="{field:'city', width:80}" rowspan="2">市</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<th lay-data="{field:'address', width:120,hide:1}">小区</th>
|
||||
<th lay-data="{field:'house', width:150,hide:1}">单元</th>
|
||||
</tr>
|
||||
</thead>
|
||||
</table>
|
||||
|
||||
<div class="layui-btn-group">
|
||||
<button class="layui-btn" data-type="parseTable">转化为数据表格</button>
|
||||
</div>
|
||||
|
||||
<table class="layui-table" lay-skin="line" lay-filter="parse-table-demo">
|
||||
<thead>
|
||||
<tr>
|
||||
<th lay-data="{checkbox:true}"></th>
|
||||
<th lay-data="{field:'username', width:200}">昵称</th>
|
||||
<th lay-data="{field:'joinTime', width:150}">加入时间</th>
|
||||
<th lay-data="{field:'sign'}">签名</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td>贤心1</td>
|
||||
<td>2016-11-28</td>
|
||||
<td>人生就像是一场修行a</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td>贤心2</td>
|
||||
<td>2016-11-29</td>
|
||||
<td>人生就像是一场修行b</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td>贤心3</td>
|
||||
<td>2016-11-30</td>
|
||||
<td>人生就像是一场修行c</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<table class="layui-table" lay-filter="parse-table-demo">
|
||||
<thead>
|
||||
<tr>
|
||||
<td rowspan="2" lay-data="{field:'louceng'}">楼层</td>
|
||||
<td colspan="2">1单元</td>
|
||||
<td colspan="2">2单元</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td lay-data="{field:'men1', width:80}">1门</td>
|
||||
<td lay-data="{field:'men2', width:80}">2门</td>
|
||||
<td lay-data="{field:'men3', width:80}">1门</td>
|
||||
<td lay-data="{field:'men4', width:80}">2门</td>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>3楼</td>
|
||||
<td>301</td>
|
||||
<td>302</td>
|
||||
<td>301</td>
|
||||
<td>302</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>2楼</td>
|
||||
<td>201</td>
|
||||
<td>202</td>
|
||||
<td>201</td>
|
||||
<td>202</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>1楼</td>
|
||||
<td>101</td>
|
||||
<td>102</td>
|
||||
<td>101</td>
|
||||
<td>102</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<script src="../src/layui.js" src1="https://cdn.staticfile.org/layui/2.7.6/layui.js"></script>
|
||||
<script>
|
||||
layui.use('table', function(){
|
||||
var $ = layui.$;
|
||||
var table = layui.table;
|
||||
|
||||
// 常规示例
|
||||
table.render({
|
||||
elem: '#test'
|
||||
,url: 'json/table/demo1.json'
|
||||
//,contentType: 'application/json' // 参数为 json 格式传递
|
||||
,page: !1 ? false : { // 详细参数可参考 laypage 组件文档
|
||||
curr: 5
|
||||
,groups: 1
|
||||
,first: false
|
||||
,last: false
|
||||
,layout: ['limit', 'prev', 'page', 'next', 'count'] //自定义分页布局
|
||||
}
|
||||
,height: 300
|
||||
,cellMinWidth: 80
|
||||
//,skin: 'line'
|
||||
//,size: 'lg'
|
||||
,toolbar: true
|
||||
,cols: [[
|
||||
{field: 'id', hide: true}
|
||||
,{field: 'username', title: '用户名'}
|
||||
,{field: 'email', title: '邮箱'}
|
||||
,{title:'操作', align:'center', toolbar: '#barDemo'}
|
||||
]]
|
||||
});
|
||||
|
||||
//return;
|
||||
|
||||
// 直接赋值数据
|
||||
table.render({
|
||||
elem: '#test-data'
|
||||
//,width: 900
|
||||
//,height: 274
|
||||
,toolbar: true
|
||||
,cols: [[ //标题栏
|
||||
//{type: 'space'},
|
||||
{type: 'checkbox', LAY_CHECKED: true},
|
||||
{field: 'id', title: 'ID', width: 80, sort: true},
|
||||
{field: 'username', title: '用户名', width: 120},
|
||||
{field: 'email', title: '邮箱', width: 150},
|
||||
{field: 'sign', title: '签名', minWidth: 150},
|
||||
{field: 'sex', title: '性别', width: 80},
|
||||
{field: 'city', title: '城市', width: 100},
|
||||
{field: 'experience', title: '积分', width: 80, sort: true, totalRow: '{{= parseInt(d.TOTAL_NUMS) }}'}
|
||||
,{field:'ip', title:'IP', width: 120, align: 'right'}
|
||||
,{field:'joinTime', title:'加入时间', width: 120}
|
||||
]]
|
||||
,data: [{
|
||||
"id": "10001"
|
||||
,"username": "杜甫"
|
||||
,"email": "xianxin@layui.com"
|
||||
,"sex": "男"
|
||||
,"city": "浙江杭州"
|
||||
,"sign": "人生恰似一场修行"
|
||||
,"experience": "116"
|
||||
,"ip": "192.168.0.8"
|
||||
,"logins": "108"
|
||||
,"joinTime": "2016-10-14"
|
||||
}, {
|
||||
"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"
|
||||
}, {
|
||||
"id": "10007"
|
||||
,"username": "贤心"
|
||||
,"email": "xianxin@layui.com"
|
||||
,"sex": "男"
|
||||
,"city": "浙江杭州"
|
||||
,"sign": "人生恰似一场修行"
|
||||
,"experience": "16"
|
||||
,"ip": "192.168.0.8"
|
||||
,"logins": "106"
|
||||
,"joinTime": "2016-10-14"
|
||||
}, {
|
||||
"id": "10008"
|
||||
,"username": "贤心"
|
||||
,"email": "xianxin@layui.com"
|
||||
,"sex": "男"
|
||||
,"city": "浙江杭州"
|
||||
,"sign": "人生恰似一场修行"
|
||||
,"experience": "106"
|
||||
,"ip": "192.168.0.8"
|
||||
,"logins": "106"
|
||||
,"joinTime": "2016-10-14"
|
||||
}]
|
||||
|
||||
,skin: 'row' //表格风格
|
||||
,even: true
|
||||
//,size: 'lg' //尺寸
|
||||
|
||||
,page: true //是否显示分页
|
||||
,limits: [3,5,10]
|
||||
,limit: 3 //每页默认显示的数量
|
||||
,totalRow: true
|
||||
//,loading: false //请求数据时,是否显示loading
|
||||
});
|
||||
|
||||
// 渲染数组成员非对象的内容(v2.8.0 新增)
|
||||
table.render({
|
||||
elem: '#test-arr',
|
||||
data: ['a','b','c','d','e','f','g','h','i'],
|
||||
page: true,
|
||||
limit: 3,
|
||||
cols: [[
|
||||
{type: 'numbers', title: '序号'},
|
||||
{field: 'LAY_KEY', title: '内容'}
|
||||
]]
|
||||
});
|
||||
|
||||
|
||||
|
||||
var $ = layui.jquery, active = {
|
||||
parseTable: function(){
|
||||
table.init('parse-table-demo', {
|
||||
limit: 3
|
||||
});
|
||||
}
|
||||
,add: function(){
|
||||
table.addRow('test')
|
||||
}
|
||||
};
|
||||
$('i').on('click', function(){
|
||||
var type = $(this).data('type');
|
||||
active[type] ? active[type].call(this) : '';
|
||||
});
|
||||
$('.layui-btn').on('click', function(){
|
||||
var type = $(this).data('type');
|
||||
active[type] ? active[type].call(this) : '';
|
||||
});
|
||||
});
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
50
public/frontend/layui-main/examples/text.md.html
Executable file
50
public/frontend/layui-main/examples/text.md.html
Executable file
@@ -0,0 +1,50 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<title>text for markdown - layui</title>
|
||||
<link rel="stylesheet" href="../src/css/layui.css">
|
||||
</head>
|
||||
<body>
|
||||
<div class="layui-container layui-row">
|
||||
<div class="layui-col-md4 layui-text">
|
||||
<h1>标题1</h1>
|
||||
<h2>标题2</h2>
|
||||
<h3>标题3</h3>
|
||||
<h4>标题4</h4>
|
||||
<h5>标题5</h5>
|
||||
<h6>标题6</h6>
|
||||
<p>段落1段落1段落1段落1段落1段落1段落1段落1段落1段落1段落1段落1段落1段落1段落1段落1 <sup class="footnote-ref"><a href="#ref-1">[1]</a></sup></p>
|
||||
<p>段落2段落2段落2段落2段落2段落2段落2段落2段落2段落2段落2段落2段落2段落2段落2段落2</p>
|
||||
<p>段落3段落3段落3段落3段落3段落3段落3段落3段落3段落3段落3段落3 <a href="">链接</a></p>
|
||||
<ul>
|
||||
<li>无序1</li>
|
||||
<li>无序2</li>
|
||||
<li>无序3</li>
|
||||
</ul>
|
||||
<ol>
|
||||
<li>有序1</li>
|
||||
<li>有序2</li>
|
||||
<li>有序3</li>
|
||||
</ol>
|
||||
<br>
|
||||
<blockquote>
|
||||
<p>引用</p>
|
||||
<blockquote>内嵌引用<blockquote>内嵌引用</blockquote></blockquote>
|
||||
</blockquote>
|
||||
|
||||
<br>
|
||||
|
||||
<pre>
|
||||
var cp = function(){
|
||||
return gulp.src('./dist/**/*')
|
||||
.pipe(gulp.dest(dest));
|
||||
};</pre>
|
||||
|
||||
<p id="ref-1">REF-1</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
102
public/frontend/layui-main/examples/transfer.html
Executable file
102
public/frontend/layui-main/examples/transfer.html
Executable file
@@ -0,0 +1,102 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
|
||||
<title>穿梭框</title>
|
||||
|
||||
<link rel="stylesheet" href="../src/css/layui.css">
|
||||
<style>
|
||||
body{padding: 100px;}
|
||||
#text1,#text2{padding-bottom: 60px;}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div class="layui-btn-container">
|
||||
<button type="button" class="layui-btn" lay-demo="getData">获取右侧数据</button>
|
||||
<button type="button" class="layui-btn" lay-demo="reload">重载实例</button>
|
||||
</div>
|
||||
|
||||
|
||||
<div id="text1"></div>
|
||||
|
||||
|
||||
<div class="layui-form">
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">职位</label>
|
||||
<div class="layui-input-block">
|
||||
<div id="text2"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="text3"></div>
|
||||
|
||||
|
||||
<script src="../src/layui.js"></script>
|
||||
<script>
|
||||
layui.use(['transfer', 'util'], function(){
|
||||
var $ = layui.$
|
||||
,transfer = layui.transfer
|
||||
,util = layui.util;
|
||||
|
||||
var ins1 = transfer.render({
|
||||
elem: '#text1'
|
||||
,title: ['候选文人', '获奖文人']
|
||||
,data: [
|
||||
{"value": "1", "title": "李白"}
|
||||
,{"value": "2", "title": "杜甫"}
|
||||
,{"value": "3", "title": "贤心"}
|
||||
,{"value": "11", "title": "鲁迅", "disabled": true}
|
||||
,{"value": "15", "title": "巴金"}
|
||||
,{"value": "16", "title": "冰心"},
|
||||
{"value": "6", "title": "冰心"},{"value": "6", "title": "冰心"},{"value": "6", "title": "冰心"},{"value": "6", "title": "冰心"},{"value": "6", "title": "冰心"},{"value": "6", "title": "Bbb"},{"value": "6", "title": "BB"},{"value": "6", "title": "Aa"},{"value": "6", "title": "aa"}
|
||||
]
|
||||
,id: 'demoId'
|
||||
,value: ["1", "15", "16"]
|
||||
,showSearch: true // 若区分大小写,设置 'cs'
|
||||
});
|
||||
|
||||
//按钮事件
|
||||
util.event('lay-demo', {
|
||||
getData: function(othis){
|
||||
alert(JSON.stringify(ins1.getData()))
|
||||
}
|
||||
,reload: function(){
|
||||
transfer.reload('demoId', {
|
||||
value: ["6"]
|
||||
//,data: [{"value": "1", "title": "李白"}]
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
var ins2 = transfer.render({
|
||||
elem: '#text2'
|
||||
,showSearch: true
|
||||
,onchange: function(obj){
|
||||
console.log(obj)
|
||||
}
|
||||
,parseData: function(res){
|
||||
return {
|
||||
"value": res.id
|
||||
,"title": res.label
|
||||
,"disabled": res.disabled
|
||||
,"checked": res.checked
|
||||
}
|
||||
}
|
||||
,data: [
|
||||
{"id": "1", "label": "瓦罐汤"}
|
||||
,{"id": "2", "label": "油酥饼"}
|
||||
,{"id": "3", "label": "炸酱面"}
|
||||
,{"id": "4", "label": "串串香", "disabled": true}
|
||||
,{"id": "5", "label": "豆腐脑"}
|
||||
,{"id": "6", "label": "驴打滚"}
|
||||
]
|
||||
,value: ["1", "5"]
|
||||
});
|
||||
});
|
||||
</script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
254
public/frontend/layui-main/examples/tree.html
Executable file
254
public/frontend/layui-main/examples/tree.html
Executable file
@@ -0,0 +1,254 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
|
||||
<title>树组件 - layui</title>
|
||||
<link rel="stylesheet" href="../src/css/layui.css" media="all">
|
||||
<style>
|
||||
body{padding: 100px;}
|
||||
#test1,#test2{margin-bottom: 100px; width: 400px;}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div class="layui-btn-container">
|
||||
<button type="button" class="layui-btn" lay-demo="getChecked">获取选中数据</button>
|
||||
<button type="button" class="layui-btn" lay-demo="setChecked">设置节点勾选</button>
|
||||
<button type="button" class="layui-btn" lay-demo="reload">重载实例</button>
|
||||
</div>
|
||||
|
||||
<div class="layui-form">
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">表单内</label>
|
||||
<div class="layui-input-block">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="test1"></div>
|
||||
<div id="test2"></div>
|
||||
|
||||
<script src="../src/layui.js"></script>
|
||||
<script>
|
||||
layui.use(['tree', 'layer', 'util'], function(){
|
||||
var $ = layui.$
|
||||
,tree = layui.tree
|
||||
,layer = layui.layer
|
||||
,util = layui.util
|
||||
,index = 100;
|
||||
|
||||
//数据源
|
||||
var data1 = [{
|
||||
title: 'A-1'
|
||||
,id: 1
|
||||
,children: [{
|
||||
title: 'B-1-1'
|
||||
,id: 3
|
||||
,href: 'https://www.layui.com/doc/'
|
||||
,children: [{
|
||||
title: 'C-1-1-3'
|
||||
,id: 23
|
||||
,children: [{
|
||||
title: 'D-1-1-3-1'
|
||||
,id: 24
|
||||
,children: [{
|
||||
title: 'E-1-1-3-1-1'
|
||||
,id: 30
|
||||
},{
|
||||
title: 'E-1-1-3-1-2'
|
||||
,id: 31
|
||||
}]
|
||||
}]
|
||||
},{
|
||||
title: 'C-1-1-1'
|
||||
,id: 7
|
||||
,checked: true
|
||||
,children: [{
|
||||
title: 'D-1-1-1-1'
|
||||
,id: 15
|
||||
//,checked: true
|
||||
,href: 'https://www.layui.com/doc/base/infrastructure.html'
|
||||
}]
|
||||
},{
|
||||
title: 'C-1-1-2'
|
||||
,id: 8
|
||||
,children: [{
|
||||
title: 'D-1-1-2-1'
|
||||
,id: 32
|
||||
}]
|
||||
}]
|
||||
},{
|
||||
title: 'B-1-2'
|
||||
,id: 4
|
||||
,spread: true
|
||||
,children: [{
|
||||
title: 'C-1-2-1'
|
||||
,id: 9
|
||||
,checked: true
|
||||
,disabled: true
|
||||
},{
|
||||
title: 'C-1-2-2'
|
||||
,id: 10
|
||||
}]
|
||||
},{
|
||||
title: 'B-1-3'
|
||||
,id: 20
|
||||
,children: [{
|
||||
title: 'C-1-3-1'
|
||||
,id: 21
|
||||
},{
|
||||
title: 'C-1-3-2'
|
||||
,id: 22
|
||||
}]
|
||||
}]
|
||||
},{
|
||||
title: 'A-2'
|
||||
,id: 2
|
||||
,spread: true
|
||||
,children: [{
|
||||
title: 'B-2-1'
|
||||
,id: 5
|
||||
,spread: true
|
||||
,children: [{
|
||||
title: 'C-2-1-1'
|
||||
,id: 11
|
||||
},{
|
||||
title: 'C-2-1-2'
|
||||
,id: 12
|
||||
}]
|
||||
},{
|
||||
title: 'B-2-2'
|
||||
,id: 6
|
||||
,checked: true
|
||||
,children: [{
|
||||
title: 'C-2-2-1'
|
||||
,id: 13
|
||||
},{
|
||||
title: 'C-2-2-2'
|
||||
,id: 14
|
||||
,disabled: true
|
||||
}]
|
||||
}]
|
||||
},{
|
||||
title: 'A-3'
|
||||
,id: 16
|
||||
,children: [{
|
||||
title: 'B-3-1'
|
||||
,id: 17
|
||||
,fixed: true
|
||||
,children: [{
|
||||
title: 'C-3-1-1'
|
||||
,id: 18
|
||||
},{
|
||||
title: 'C-3-1-2'
|
||||
,id: 19
|
||||
}]
|
||||
},{
|
||||
title: 'B-3-2'
|
||||
,id: 27
|
||||
,children: [{
|
||||
title: 'C-3-2-1'
|
||||
,id: 28
|
||||
},{
|
||||
title: 'C-3-2-2'
|
||||
,id: 29
|
||||
}]
|
||||
}]
|
||||
}];
|
||||
|
||||
//数据源
|
||||
var data2 = [{
|
||||
title: '控制台'
|
||||
,id: '1000'
|
||||
,spread: true
|
||||
,checked: true
|
||||
,children: [{
|
||||
title: '概览'
|
||||
,id: '1001'
|
||||
,spread: true
|
||||
,checked: true
|
||||
},{
|
||||
title: '域名'
|
||||
,id: '1002'
|
||||
,spread: true
|
||||
,checked: true
|
||||
}]
|
||||
}]
|
||||
|
||||
tree.render({
|
||||
elem: '#test1'
|
||||
,data: data1
|
||||
,id: 'demoId1'
|
||||
,click: function(obj){
|
||||
layer.msg(JSON.stringify(obj.data));
|
||||
console.log(obj);
|
||||
}
|
||||
,oncheck: function(obj){
|
||||
//console.log(obj);
|
||||
}
|
||||
,operate: function(obj){
|
||||
var type = obj.type;
|
||||
if(type == 'add'){
|
||||
//ajax操作,返回key值
|
||||
return index++;
|
||||
}else if(type == 'update'){
|
||||
console.log(obj.elem.find('.layui-tree-txt').html());
|
||||
}else if(type == 'del'){
|
||||
console.log(obj);
|
||||
};
|
||||
}
|
||||
,showCheckbox: true //是否显示复选框
|
||||
,accordion: 0 //是否开启手风琴模式
|
||||
|
||||
,onlyIconControl: true //是否仅允许节点左侧图标控制展开收缩
|
||||
,isJump: 0 //点击文案跳转地址
|
||||
,edit: true //操作节点图标
|
||||
});
|
||||
|
||||
//按钮事件
|
||||
util.event('lay-demo', {
|
||||
getChecked: function(othis){
|
||||
var checkedData = tree.getChecked('demoId1');
|
||||
layer.alert(JSON.stringify(checkedData), {shade:0});
|
||||
console.log(checkedData);
|
||||
}
|
||||
,setChecked: function(){
|
||||
tree.setChecked('demoId1', [11,12]);
|
||||
}
|
||||
,reload: function(){
|
||||
tree.reload('demoId1', {
|
||||
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
tree.render({
|
||||
elem: '#test2'
|
||||
,data: data1
|
||||
//,expandClick: false
|
||||
,showLine: false //关闭连接线
|
||||
,click: function(obj, state){
|
||||
console.log(obj);
|
||||
}
|
||||
,oncheck: function(obj, checked, child){
|
||||
if(checked){
|
||||
console.log(obj[0]);
|
||||
}
|
||||
}
|
||||
,onsearch: function(data, num){
|
||||
console.log(num);
|
||||
}
|
||||
,dragstart: function(obj, parent){
|
||||
console.log(obj, parent);
|
||||
}
|
||||
,dragend: function(state, obj, target){
|
||||
console.log(state, obj, target);
|
||||
}
|
||||
});
|
||||
|
||||
});
|
||||
</script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
114
public/frontend/layui-main/examples/treeTable.html
Executable file
114
public/frontend/layui-main/examples/treeTable.html
Executable file
@@ -0,0 +1,114 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<title>树形表格 - layui</title>
|
||||
<link rel="stylesheet" href="../src/css/layui.css">
|
||||
<style>
|
||||
body {padding: 32px;}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<table class="layui-hide" id="test"></table>
|
||||
|
||||
<script type="text/html" id="TPL-treeTable-demo">
|
||||
<div class="layui-btn-container">
|
||||
<button class="layui-btn layui-btn-sm" lay-event="getChecked">获取选中数据</button>
|
||||
</div>
|
||||
</script>
|
||||
|
||||
<script src="../src/layui.js"></script>
|
||||
<script>
|
||||
layui.use(['treeTable'], function(){
|
||||
var treeTable = layui.treeTable;
|
||||
|
||||
// 渲染
|
||||
treeTable.render({
|
||||
elem: '#test',
|
||||
url: './json/treeTable/demo-1.json',
|
||||
maxHeight: 'full-32',
|
||||
toolbar: '#TPL-treeTable-demo',
|
||||
tree: {
|
||||
customName: {
|
||||
name: 'name'
|
||||
},
|
||||
view: {
|
||||
iconLeaf: ''
|
||||
}
|
||||
},
|
||||
cols: [[
|
||||
{type: 'checkbox', fixed: 'left'},
|
||||
{type: 'numbers', fixed: 'left'},
|
||||
{field: 'id', title: 'ID', width: 145, sort: true, fixed: 'left', totalRow: '合计:'},
|
||||
{field: 'name', title: '用户名', width: 180, fixed: 'left'},
|
||||
{field: 'experience', title: '积分', width: 90, sort: true},
|
||||
{field: 'sex', title: '性别', width: 80, sort: true},
|
||||
{field: 'score', title: '评分', width: 80, sort: true},
|
||||
{field: 'city', title: '城市', width: 150},
|
||||
{field: 'description', title: '描述', minWidth: 200},
|
||||
{field: 'createTime', title: '创建时间', width: 170, fixed: 'right'}
|
||||
]],
|
||||
page: true
|
||||
});
|
||||
|
||||
// 单元格工具事件
|
||||
treeTable.on('row(test)', function (obj) {
|
||||
console.log(obj);
|
||||
});
|
||||
});
|
||||
</script>
|
||||
|
||||
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/Mock.js/1.0.0/mock-min.js"></script>
|
||||
<script>
|
||||
// 生成模拟数据
|
||||
const createData = () => {
|
||||
// 生成随机 ID 函数
|
||||
const createId = (() => {
|
||||
let nextId = 1
|
||||
return () => nextId++
|
||||
})()
|
||||
// 生成节点函数
|
||||
const createNode = (parentId = null, level = 0) => {
|
||||
const id = createId()
|
||||
const children = level < 3 ? Mock.mock({
|
||||
'array|0-5': [
|
||||
createNode.bind(null, id, level + 1)
|
||||
]
|
||||
}).array : []
|
||||
return {
|
||||
id,
|
||||
name: `User-${id}`,
|
||||
type: Mock.mock('@d6'),
|
||||
status: Mock.Random.d4(),
|
||||
score: Mock.Random.d100(),
|
||||
experience: Mock.Random.integer(1000, 99999),
|
||||
sex: Mock.Random.cword('男女', 1),
|
||||
city: Mock.Random.city(),
|
||||
description: '-',
|
||||
createTime: Mock.mock('@datetime'),
|
||||
parentId,
|
||||
children,
|
||||
isParent: !!children.length
|
||||
}
|
||||
}
|
||||
// 生成树
|
||||
const rootNodes = Mock.mock({
|
||||
'array|10-20': [
|
||||
createNode
|
||||
]
|
||||
}).array
|
||||
const getTreeData = function (nodes) {
|
||||
let result = []
|
||||
nodes.forEach(node => {
|
||||
result.push({...node, parentId: null, children: getTreeData(node.children)});
|
||||
})
|
||||
return result
|
||||
};
|
||||
return getTreeData(rootNodes);
|
||||
};
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
350
public/frontend/layui-main/examples/upload.html
Executable file
350
public/frontend/layui-main/examples/upload.html
Executable file
@@ -0,0 +1,350 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
|
||||
<title>上传组件 - layui</title>
|
||||
|
||||
<link rel="stylesheet" href="../src/css/layui.css">
|
||||
|
||||
<style>
|
||||
body{padding: 50px 100px;}
|
||||
.layui-upload-img{width: 92px; height: 92px; margin: 0 10px 10px 0;}
|
||||
hr{margin: 30px 0;}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div class="layui-upload">
|
||||
<button type="button" class="layui-btn" id="test1" name="123">上传图片</button>
|
||||
|
||||
<div class="layui-upload-list">
|
||||
<img class="layui-upload-img" src="" id="demo1">
|
||||
<p id="demoText"></p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-progress layui-progress-big" lay-showPercent="yes" lay-filter="demo">
|
||||
<div class="layui-progress-bar" lay-percent=""></div>
|
||||
</div>
|
||||
|
||||
|
||||
<hr>
|
||||
|
||||
<div class="layui-upload">
|
||||
<button type="button" class="layui-btn" id="test2">多图片上传</button>
|
||||
<div class="layui-upload-list" id="demo2"></div>
|
||||
</div>
|
||||
|
||||
<hr>
|
||||
|
||||
<div class="layui-upload">
|
||||
<button type="button" class="layui-btn layui-btn-normal" id="testList">选择多文件</button>
|
||||
<div class="layui-upload-list">
|
||||
<table class="layui-table">
|
||||
<thead>
|
||||
<th>文件名</th>
|
||||
<th>大小</th>
|
||||
<th>上传进度</th>
|
||||
<th>操作</th>
|
||||
</thead>
|
||||
<tbody id="demoList"></tbody>
|
||||
</table>
|
||||
</div>
|
||||
<button type="button" class="layui-btn" id="testListAction">开始上传</button>
|
||||
</div>
|
||||
|
||||
<hr>
|
||||
|
||||
<div class="layui-btn-container">
|
||||
<button type="button" class="layui-btn test333" lay-data="{size:10,url:'a'}" id="test3"><i class="layui-icon"></i>上传文件</button>
|
||||
<button type="button" class="layui-btn layui-btn-primary test333" lay-data="{size:20,url:'b'}" id="test33"><i class="layui-icon"></i>换个样式</button>
|
||||
|
||||
<button type="button" class="layui-btn" id="test4"><i class="layui-icon"></i>上传视频</button>
|
||||
<button type="button" class="layui-btn" id="test5"><i class="layui-icon"></i>上传音频</button>
|
||||
</div>
|
||||
|
||||
<hr>
|
||||
|
||||
<div class="layui-btn-container">
|
||||
<button class="layui-btn testm" lay-data="{url: '/a/'}">参数设在元素上</button>
|
||||
<button class="layui-btn testm" lay-data="{url: '/b/', accept: 'file',size:5}">参数设在元素上</button>
|
||||
</div>
|
||||
|
||||
<hr>
|
||||
|
||||
<div class="layui-btn-container">
|
||||
<button type="button" class="layui-btn layui-btn-normal" id="test6">选择文件</button>
|
||||
<button type="button" class="layui-btn" id="test7">开始上传</button>
|
||||
</div>
|
||||
|
||||
<hr><br>
|
||||
|
||||
<div class="layui-upload-drag" id="test8">
|
||||
<i class="layui-icon"></i>
|
||||
<p>点击上传,或将文件拖拽到此处</p>
|
||||
</div>
|
||||
|
||||
<hr><br>
|
||||
|
||||
绑定原始文件域:<input type="file" name="file" id="test9">
|
||||
|
||||
<script src="../src/layui.js" src1="https://cdn.staticfile.org/layui/2.6.8/layui.js"></script>
|
||||
<script>
|
||||
layui.use(['upload', 'element'], function(){
|
||||
var $ = layui.$;
|
||||
var upload = layui.upload;
|
||||
var element = layui.element;
|
||||
|
||||
var uploadInst = upload.render({
|
||||
elem: '#test1',
|
||||
url: 'https://httpbin.org/post',
|
||||
// size: 2000, //限制文件大小,单位 KB
|
||||
// accept: 'file',
|
||||
method: 'get',
|
||||
fileAccept: 'image/*',
|
||||
exts: 'jpg|png|gif|bmp|jpeg|pdf',
|
||||
data: { // 额外参数
|
||||
a: 1,
|
||||
b: function(){
|
||||
return 2
|
||||
}
|
||||
},
|
||||
choose: function(obj){
|
||||
console.log('choose', obj);
|
||||
},
|
||||
before: function(obj){
|
||||
//预读本地文件示例,不支持ie8
|
||||
obj.preview(function(index, file, result){
|
||||
$('#demo1').attr('src', result); //图片链接(base64)
|
||||
});
|
||||
|
||||
return;
|
||||
layer.msg('不允许上传')
|
||||
return false;
|
||||
},
|
||||
done: function(res, index){
|
||||
|
||||
//如果上传失败
|
||||
if(res.code > 0){
|
||||
return layer.msg('上传失败');
|
||||
}
|
||||
//上传成功
|
||||
console.log(res, index);
|
||||
},
|
||||
error: function(index, upload){
|
||||
this.item.html('重选上传');
|
||||
|
||||
//演示失败状态,并实现重传
|
||||
var demoText = $('#demoText');
|
||||
demoText.html('<span style="color: #FF5722;">上传失败</span> <a class="layui-btn layui-btn-mini demo-reload">重试</a>');
|
||||
demoText.find('.demo-reload').on('click', function(){
|
||||
uploadInst.upload();
|
||||
});
|
||||
|
||||
element.progress('demo', '0%');
|
||||
},
|
||||
progress: function(n, elem, res, index){
|
||||
console.log(n + '%', elem, res, index); //获取进度百分比
|
||||
element.progress('demo', n + '%'); //可配合 layui 进度条元素使用
|
||||
}
|
||||
});
|
||||
|
||||
// 重置上述 upload 实例
|
||||
uploadInst.reload({
|
||||
name:'avatar',
|
||||
accept: 'images', // 只允许上传图片
|
||||
acceptMime: 'image/*', // 只筛选图片
|
||||
//,size: 2
|
||||
});
|
||||
|
||||
// 演示多图片上传
|
||||
upload.render({
|
||||
elem: '#test2',
|
||||
url: 'https://httpbin.org/post',
|
||||
multiple: true, // 多文件
|
||||
unified: true, // 一起上传 --- 2.8.8+
|
||||
accept: 'images',
|
||||
number: 3, // 同时上传的数量
|
||||
size: 1024,
|
||||
before: function(obj){
|
||||
// 预读本地文件示例,不支持ie8
|
||||
obj.preview(function(index, file, result){
|
||||
$('#demo2').append('<img src="'+ result +'" alt="'+ file.name +'" class="layui-upload-img">')
|
||||
});
|
||||
|
||||
// this.files = obj.pushFile();
|
||||
},
|
||||
done: function(res, index){
|
||||
// 上传完毕
|
||||
console.log(res, index)
|
||||
},
|
||||
allDone: function(obj){
|
||||
console.log(obj)
|
||||
}
|
||||
});
|
||||
|
||||
// 演示多文件列表 --- 本示例仅演示未开启 unified 属性的情况
|
||||
var demoListView = $('#demoList');
|
||||
var uploadListIns = upload.render({
|
||||
elem: '#testList',
|
||||
url: 'https://httpbin.org/post',
|
||||
accept: 'file',
|
||||
multiple: true,
|
||||
number: 5,
|
||||
auto: false,
|
||||
bindAction: '#testListAction',
|
||||
// size: 30,
|
||||
choose: function(obj){
|
||||
var files = this.files = obj.pushFile(); // 将每次选择的文件追加到文件队列
|
||||
//读取本地文件
|
||||
obj.preview(function(index, file, result){
|
||||
var tr = $(['<tr id="upload-'+ index +'">'
|
||||
,'<td>'+ file.name +'</td>'
|
||||
,'<td>'+ (file.size/1014).toFixed(1) +'kb</td>'
|
||||
,'<td><div class="layui-progress" lay-filter="progress-'+ index +'"><div class="layui-progress-bar" lay-percent=""></div></div></td>'
|
||||
,'<td>'
|
||||
,'<button class="layui-btn layui-btn-xs demo-reload layui-hide">重传</button>'
|
||||
,'<button class="layui-btn layui-btn-xs layui-btn-danger demo-delete">删除</button>'
|
||||
,'</td>'
|
||||
,'</tr>'].join(''));
|
||||
|
||||
//单个重传
|
||||
tr.find('.demo-reload').on('click', function(){
|
||||
obj.upload(index, file);
|
||||
});
|
||||
|
||||
//删除
|
||||
var that = this;
|
||||
tr.find('.demo-delete').on('click', function(){
|
||||
console.log(files, index);
|
||||
delete files[index]; //删除对应的文件
|
||||
tr.remove();
|
||||
uploadListIns.config.elem.next()[0].value = ''; //清空 input file 值,以免删除后出现同名文件不可选
|
||||
});
|
||||
|
||||
demoListView.append(tr);
|
||||
|
||||
element.render('progress');
|
||||
});
|
||||
},
|
||||
done: function(res, index, upload){
|
||||
//if(res.code == 0){ //上传成功
|
||||
var tr = demoListView.find('tr#upload-'+ index)
|
||||
,tds = tr.children();
|
||||
tds.eq(3).html(''); //清空操作
|
||||
delete this.files[index]; //删除文件队列已经上传成功的文件
|
||||
return;
|
||||
//}
|
||||
this.error(index, upload);
|
||||
},
|
||||
allDone: function(obj){
|
||||
console.log(obj)
|
||||
},
|
||||
error: function(index, upload){
|
||||
var tr = demoListView.find('tr#upload-'+ index)
|
||||
,tds = tr.children();
|
||||
tds.eq(3).find('.demo-reload').removeClass('layui-hide'); //显示重传
|
||||
},
|
||||
progress: function(n, elem, e, index){
|
||||
console.log(n);
|
||||
console.log(index);
|
||||
element.progress('progress-'+ index, n + '%'); //进度条
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
upload.render({
|
||||
elem: '.test333',
|
||||
url: 'a',
|
||||
accept: 'file',
|
||||
before: function(obj){
|
||||
console.log(this.item);
|
||||
},
|
||||
done: function(res){
|
||||
console.log(res)
|
||||
}
|
||||
});
|
||||
|
||||
upload.render({
|
||||
elem: '.testm',
|
||||
done: function(res, index, upload){
|
||||
//获取当前触发上传的元素,一般用于 elem 绑定 class 的情况,注意:此乃 layui 2.1.0 新增
|
||||
var item = this.item;
|
||||
}
|
||||
})
|
||||
|
||||
/*
|
||||
upload.render({
|
||||
elem: '#test33',
|
||||
url: '',
|
||||
accept: 'file',
|
||||
done: function(res){
|
||||
console.log(res)
|
||||
}
|
||||
});*/
|
||||
|
||||
upload.render({
|
||||
elem: '#test4',
|
||||
url: '',
|
||||
accept: 'video',
|
||||
done: function(res){
|
||||
console.log(res)
|
||||
}
|
||||
});
|
||||
|
||||
upload.render({
|
||||
elem: '#test5',
|
||||
url: '',
|
||||
accept: 'audio',
|
||||
done: function(res){
|
||||
console.log(res)
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
//手动上传
|
||||
upload.render({
|
||||
elem: '#test6',
|
||||
url: '',
|
||||
auto: false,
|
||||
// multiple: true,
|
||||
bindAction: '#test7',
|
||||
choose: function(obj){
|
||||
var that = this;
|
||||
obj.preview(function(index, file){
|
||||
that.elem.after('<span class="layui-inline layui-upload-choose">'+ file.name +'</span>');
|
||||
console.log(file.name);
|
||||
//obj.resetFile(index, file, '123.jpg');
|
||||
});
|
||||
},
|
||||
before: function(){
|
||||
console.log(345);
|
||||
},
|
||||
done: function(res){
|
||||
console.log(res);
|
||||
}
|
||||
});
|
||||
|
||||
upload.render({
|
||||
elem: '#test8',
|
||||
url: 'https://httpbin.org/post',
|
||||
done: function(res){
|
||||
console.log(res);
|
||||
}
|
||||
});
|
||||
|
||||
upload.render({
|
||||
elem: '#test9',
|
||||
url: '',
|
||||
done: function(res){
|
||||
console.log(res);
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
|
||||
});
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
146
public/frontend/layui-main/examples/util.html
Executable file
146
public/frontend/layui-main/examples/util.html
Executable file
@@ -0,0 +1,146 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
|
||||
<title>util 组件 - layui</title>
|
||||
|
||||
<link rel="stylesheet" href="../src/css/layui.css">
|
||||
|
||||
<style>
|
||||
body{padding: 50px;}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<button class="layui-btn" lay-active="e1">事件1</button>
|
||||
<button class="layui-btn" lay-active="e2">事件2</button>
|
||||
<button class="layui-btn" lay-active="e3">事件3</button>
|
||||
|
||||
<button class="layui-btn" lay-active2="e4">事件4</button>
|
||||
|
||||
<hr>
|
||||
|
||||
<div id="test"></div>
|
||||
|
||||
<hr>
|
||||
|
||||
<div id="test1"></div>
|
||||
|
||||
<hr>
|
||||
|
||||
请编辑格式:
|
||||
<div class="layui-inline">
|
||||
<input type="text" value="yyyy-MM-dd HH:mm:ss" class="layui-input" id="test2"/>
|
||||
</div>
|
||||
<span class="layui-word-aux" id="test3"></span>
|
||||
|
||||
<hr>
|
||||
|
||||
<div id="target-test" style1="position: relative; height: 300px; overflow: auto;">
|
||||
1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>
|
||||
</div>
|
||||
|
||||
<script src="../src/layui.js"></script>
|
||||
<script>
|
||||
layui.use(['util', 'layer'], function(){
|
||||
var $ = layui.$;
|
||||
var util = layui.util;
|
||||
var layer = layui.layer;
|
||||
|
||||
// 固定块
|
||||
util.fixbar({
|
||||
bars: [{ // 定义可显示的 bar 列表信息 -- v2.8.0 新增
|
||||
type: 'share',
|
||||
icon: 'layui-icon-share'
|
||||
}, {
|
||||
type: 'help',
|
||||
icon: 'layui-icon-help'
|
||||
}, {
|
||||
type: 'cart',
|
||||
icon: 'layui-icon-cart',
|
||||
style: 'background-color: #FF5722;'
|
||||
}, {
|
||||
type: 'groups',
|
||||
content: '群',
|
||||
style: 'font-size: 21px;'
|
||||
}],
|
||||
// bar1: true,
|
||||
// bar2: true,
|
||||
// default: false, 是否显示默认的 bar 列表 -- v2.8.0 新增
|
||||
// bgcolor: '#393D52', // bar 的默认背景色
|
||||
// css: {right: 100, bottom: 100},
|
||||
// target: '#target-test', // 插入 fixbar 节点的目标元素选择器
|
||||
// duration: 300, // top bar 等动画时长(毫秒)
|
||||
on: { // 任意事件 -- v2.8.0 新增
|
||||
mouseenter: function(type){
|
||||
layer.tips(type, this, {
|
||||
tips: 4,
|
||||
fixed: true
|
||||
});
|
||||
},
|
||||
mouseleave: function(type){
|
||||
layer.closeAll('tips');
|
||||
}
|
||||
},
|
||||
// 点击事件
|
||||
click: function(type){
|
||||
console.log(this, type);
|
||||
// layer.msg(type);
|
||||
}
|
||||
});
|
||||
|
||||
//倒计时
|
||||
var endTime = new Date(2099,1,1).getTime() //假设为结束日期
|
||||
,serverTime = new Date().getTime(); //假设为当前服务器时间,这里采用的是本地时间,实际使用一般是取服务端的
|
||||
|
||||
util.countdown(endTime, serverTime, function(date, serverTime, timer){
|
||||
var str = date[0] + '天' + date[1] + '时' + date[2] + '分' + date[3] + '秒';
|
||||
$('#test').html('距离2099年1月1日还有:'+ str);
|
||||
});
|
||||
|
||||
//某个时间在当前时间的多久前
|
||||
var str = util.timeAgo(new Date(2017,7,15,2,58,0));
|
||||
$('#test1').html('示例写于:'+ str);
|
||||
|
||||
//处理属性 为 lay-active 的所有元素事件
|
||||
util.event('lay-active', {
|
||||
e1: function(othis){
|
||||
alert(othis.html())
|
||||
}
|
||||
,e2: function(othis){
|
||||
alert(othis.html())
|
||||
}
|
||||
,e3: function(othis){
|
||||
alert(othis.html())
|
||||
}
|
||||
});
|
||||
|
||||
//测试是否重复绑定
|
||||
util.event('lay-active', {
|
||||
e1: function(othis){
|
||||
alert(othis.html() + '新事件')
|
||||
}
|
||||
});
|
||||
|
||||
//测试绑定新事件
|
||||
util.event('lay-active2', {
|
||||
e4: function(othis){
|
||||
alert(othis.html())
|
||||
}
|
||||
});
|
||||
|
||||
// 转换日期格式
|
||||
var timer = null
|
||||
var toDateString = function (format) {
|
||||
var dateString = util.toDateString(new Date(), format);
|
||||
$('#test3').html(dateString)
|
||||
}
|
||||
timer = setInterval(() => {
|
||||
toDateString($('#test2').val())
|
||||
}, 50)
|
||||
|
||||
});
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
Reference in New Issue
Block a user