22
11月
2021
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Playground</title>
<link href="//unpkg.com/layui@2.9.16/dist/css/layui.css" rel="stylesheet">
</head>
<body>
<blockquote class="layui-elem-quote layui-text" id="version">
当前版本: Layui-v{{= layui.v }}
</blockquote>
<table class="layui-hide" id="ID-test-table"></table>
<script type="text/html" id="ID-demo-table-tool">
<a class="layui-btn layui-btn-primary layui-btn-xs" lay-event="detail">查看</a>
<a class="layui-btn layui-btn-xs" lay-event="more">更多 <i class="layui-icon layui-icon-down"></i></a>
</script>
<div class="layui-tab layui-tab-brief" lay-filter="filter-test-tab">
<ul class="layui-tab-title">
<li class="layui-this">演示说明</li>
<li>日期</li>
<li>分页</li>
<li>上传</li>
<li>滑块</li>
</ul>
<div class="layui-tab-content">
<div class="layui-tab-item layui-show">
<div class="layui-carousel" id="ID-test-carousel">
<style>.demo-carousel{height: 200px; line-height: 200px; text-align: center;}</style>
<div carousel-item>
<div><p class="demo-carousel">在这里,您将以最直观的形式体验 Layui</p></div>
<div><p class="layui-bg-red demo-carousel">在编辑器中输入 Layui 相关的代码</p></div>
<div><p class="layui-bg-green demo-carousel">也可以结合 Layui 官方文档来此处进行示例演示</p></div>
</div>
</div>
</div>
<div class="layui-tab-item">
<div id="ID-test-laydate"></div>
</div>
<div class="layui-tab-item">
<div id="ID-test-laypage"></div>
</div>
<div class="layui-tab-item">
<div class="layui-upload-drag" id="ID-test-upload">
<i class="layui-icon"></i>
<p>点击上传,或将文件拖拽到此处</p>
<div class="layui-hide" id="ID-test-upload-view">
<hr>
<img src="" alt="上传成功后渲染" style="max-width: 100%">
</div>
</div>
</div>
<div class="layui-tab-item">
<div id="ID-test-slider" style="margin: 52px 18px;"></div>
</div>
</div>
</div>
<script src="//unpkg.com/layui@2.9.16/dist/layui.js"></script>
<script>
layui.use(function() {
// 获得需要的内置组件
var layer = layui.layer; // 弹层
var laypage = layui.laypage; // 分页
var laydate = layui.laydate; // 日期
var table = layui.table; // 表格
var carousel = layui.carousel; // 轮播
var upload = layui.upload; // 上传
var element = layui.element; // 元素操作
var slider = layui.slider; // 滑块
var dropdown = layui.dropdown; // 下拉菜单
// 向世界问个好
layer.msg('Hello World');
// Tab 切换
element.on('tab(filter-test-tab)', function(data) {
layer.tips('切换了 '+ data.index +' : '+ this.innerHTML, this, {
tips: 1
});
});
// 执行一个 table 实例
table.render({
elem: '#ID-test-table',
height: 420,
url: '/static/json/2/table/user.json', // 数据接口(此处为静态数据,仅作演示)
title: '用户表',
page: true, // 开启分页
toolbar: 'default', // 开启工具栏,此处显示默认图标,可以自定义模板,详见文档
totalRow: true, // 开启合计行
cols: [[ // 表头
{type: 'checkbox', fixed: 'left'},
{field: 'id', title: 'ID', width:80, sort: true, fixed: 'left', totalRow: '合计 : '},
{field: 'username', title: '用户名', width:80},
{field: 'experience', title: '积分', width: 90, sort: true, totalRow: '{{= d.TOTAL_NUMS }}'},
{field: 'sex', title: '性别', width:80, sort: true},
{field: 'score', title: '评分', width: 80, sort: true, totalRow: true},
{field: 'city', title: '城市', width:150},
{field: 'sign', title: '签名', minWidth: 200},
{field: 'classify', title: '职业', width: 100},
{field: 'words', title: '字数', width: 135, sort: true, totalRow: true},
{fixed: 'right', title: '操作', width: 150, align:'center', toolbar: '#ID-demo-table-tool'}
]]
});
// 头工具栏事件
table.on('toolbar(ID-test-table)', function(obj) {
var checkStatus = table.checkStatus(obj.config.id);
var data = checkStatus.data; // 获取选中的数据
switch(obj.event){
case 'add':
layer.msg('添加');
break;
case 'update':
if (data.length === 0) {
layer.msg('请选择一行');
} else if(data.length > 1) {
layer.msg('只能同时编辑一个');
} else {
layer.alert('编辑 [id] : '+ checkStatus.data[0].id);
}
break;
case 'delete':
if (data.length === 0) {
layer.msg('请选择一行');
} else {
layer.msg('删除');
}
break;
};
});
// 单元格工具事件
table.on('tool(ID-test-table)', function(obj) {
var data = obj.data; // 获得当前行数据
var layEvent = obj.event; // 获得 lay-event 对应的值
if (layEvent === 'detail') {
layer.msg('查看操作');
} else if(layEvent === 'more') {
// 下拉菜单
dropdown.render({
elem: this, // 触发事件的 DOM 对象
show: true, // 外部事件触发即显示
data: [{
title: '编辑',
id: 'edit'
}, {
title: '删除',
id: 'del'
}],
click: function(menudata){
if (menudata.id === 'del') {
layer.confirm('真的删除行么', function(index) {
obj.del(); // 删除对应行(tr)的DOM结构
layer.close(index);
// 向服务端发送删除指令
});
} else if(menudata.id === 'edit') {
layer.msg('编辑操作,当前行 ID:'+ data.id);
}
},
align: 'right', // 右对齐弹出
style: 'box-shadow: 1px 1px 10px rgb(0 0 0 / 12%);' // 设置额外样式
})
}
});
// 执行一个轮播实例
carousel.render({
elem: '#ID-test-carousel',
width: '100%', // 设置容器宽度
height: 200,
arrow: 'none', // 不显示箭头
anim: 'fade' // 切换动画方式
});
// 将日期直接嵌套在指定容器中
var dateIns = laydate.render({
elem: '#ID-test-laydate',
position: 'static',
calendar: true, // 是否开启公历重要节日
mark: { // 标记重要日子
'0-10-14': '生日',
'2016-10-14': '首版',
'2017-08-21': '2.0',
'2100-01-01': '新纪'
},
done: function(value, date, endDate) {
if(date.date == 1){
dateIns.hint('这个月的第一天');
}
},
change: function(value, date, endDate) {
layer.msg(value)
}
});
// 分页
laypage.render({
elem: 'ID-test-laypage', // 分页容器的id
count: 1000, // 数据总数
limit: 10, // 每页显示的数据条数
skin: '#1E9FFF', // 自定义选中色值
// layout: ['prev', 'page', 'next', 'count', 'limit', 'refresh', 'skip'], // 自定义排版
jump: function(obj, first) {
if (!first) {
layer.msg('第'+ obj.curr +'页', {offset: 'b'});
}
}
});
// 上传
upload.render({
elem: '#ID-test-upload',
url: '', // 若需模拟上传过程,而不真实上传文件,可使用开源的 HTTP 模拟接口: https://httpbin.org/post
done: function(res) {
layer.msg('上传成功');
layui.$('#ID-test-upload-view').removeClass('layui-hide').find('img').attr('src', res.files.file);
console.log(res)
},
before: function() {
layer.msg('上传中', {icon: 16, time: 0});
}
});
// 滑块
slider.render({
elem: '#ID-test-slider',
input: true // 输入框
});
// 显示 Layui 版本
var versionTPL = lay('#version')[0].innerHTML;
lay('#version').html(layui.laytpl(versionTPL).render({}))
});
</script>
</body>
</html>