1.廢話不多說, 先看效果圖
2.layui增刪查改及根據某個字段顯示不同按鈕及文字信息
<!DOCTYPE html>
<html>
<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" type="text/css" href="https://www.layuicdn.com/layui/css/layui.css" />
<style>
body{margin: 10px;}
.demo-carousel{height: 200px; line-height: 200px; text-align: center;}
</style>
</head>
<body>
<table class="layui-hide" id="demo" lay-filter="test"></table>
<script type="text/html" id="barDemo">
<a class="layui-btn layui-btn-primary layui-btn-xs" lay-event="detail">查看</a>
<a class="layui-btn layui-btn-xs" lay-event="edit">編輯</a>
<a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del">刪除</a>
</script>
<script type="text/html" id="switchTpl">
<!-- 這裏的 checked 的狀態只是演示 -->
<input type="checkbox" name="sex" value="{{d.id}}" lay-skin="switch" lay-text="女|男" lay-filter="sexDemo" {{ d.id == 10003 ? 'checked' : '' }}>
</script>
<script type="text/html" id="checkboxTpl">
<!-- 這裏的 checked 的狀態只是演示 -->
<input type="checkbox" name="lock" value="{{d.id}}" title="鎖定" lay-filter="lockDemo" {{ d.id == 10006 ? 'checked' : '' }}>
</script>
<script type="text/html" id="cTime">
{{#
var fn = function(data){
return data.substring(0,10);
};
}}
{{ fn(d.publishTime) }}
</script>
<script type="text/html" id="code">
<!--table中需要判斷某個字段值進行相應處理後顯示的-->
{{# if(d.code==1) { }}
一
{{# } else if(d.code==2) { }}
二
{{# } else if(d.code==3) { }}
三
{{# } else if(d.code==4) { }}
四
{{# } else if(d.code==5) { }}
五
{{# } else{ }}
大於五
{{# }}}
</script>
<script type="text/html" id="value_mapping">
<!--able中某個字段值爲obj類型的,需要遍歷每個值進行處理後顯示時-->
<div class="rowspan">
{{# layui.each(d.value_mapping, function(key, value){ }}
<span>
<span style = "font-weight:bold;">{{ key}}</span>:<span>{{value}}</span>
</span>
{{# }); }}
</div>
</script>
<div class="layui-tab layui-tab-brief" lay-filter="demo">
<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="test1">
<div carousel-item>
<div><p class="layui-bg-green demo-carousel">在這裏,你將以最直觀的形式體驗 layui!</p></div>
<div><p class="layui-bg-red demo-carousel">在編輯器中可以執行 layui 相關的一切代碼</p></div>
<div><p class="layui-bg-blue demo-carousel">你也可以點擊左側導航針對性地試驗我們提供的示例</p></div>
<div><p class="layui-bg-orange demo-carousel">如果最左側的導航的高度超出了你的屏幕</p></div>
<div><p class="layui-bg-cyan demo-carousel">你可以將鼠標移入導航區域,然後滑動鼠標滾輪即可</p></div>
</div>
</div>
</div>
<div class="layui-tab-item">
<div id="laydateDemo"></div>
</div>
<div class="layui-tab-item">
<div id="pageDemo"></div>
</div>
<div class="layui-tab-item">
<div class="layui-upload-drag" id="uploadDemo">
<i class="layui-icon"></i>
<p>點擊上傳,或將文件拖拽到此處</p>
</div>
</div>
<div class="layui-tab-item">
<div id="sliderDemo" style="margin: 50px 20px;"></div>
</div>
</div>
</div>
<blockquote class="layui-elem-quote layui-quote-nm layui-hide" id="footer">layui {{ layui.v }} 提供強力驅動</blockquote>
<script src="http://libs.baidu.com/jquery/2.0.0/jquery.min.js"></script>
<script src="https://www.layuicdn.com/layui/layui.js"></script>
<script>
var prefix = "/app/cmsContent";
layui.config({
version: '1575889601627' //爲了更新 js 緩存,可忽略
});
layui.use(['laydate', 'laypage', 'layer', 'table', 'carousel', 'upload', 'element', 'slider','laytpl'], function(){
layui.$.support.cors = true;
var laydate = layui.laydate //日期
,laypage = layui.laypage //分頁
,layer = layui.layer //彈層
,table = layui.table //表格
,carousel = layui.carousel //輪播
,upload = layui.upload //上傳
,element = layui.element //元素操作
,slider = layui.slider //滑塊
//向世界問個好
layer.msg('Hello World');
//監聽Tab切換,
element.on('tab(demo)', function(data){
layer.tips('切換了 '+ data.index +':'+ this.innerHTML, this, {
tips: 1
});
});
//執行一個 table 實例
table.render({
elem: '#demo'
,height: 500
,url: 'http://localhost:8080/app/cmsContent/list' //數據接口
,title: '用戶表'
,page: true //開啓分頁
,toolbar: 'default' //開啓工具欄,此處顯示默認圖標,可以自定義模板,詳見文檔
,totalRow: true //開啓合計行
,cols: [[ //表頭
{type: 'checkbox', fixed: 'left'}
,{field: 'id', title: 'ID', width:80, sort: true, fixed: 'left', totalRowText: '合計:'}
,{field: 'title', title: '標題', width:150}
,{field: 'publishTime', title: '發佈時間', width: 150, sort: true, totalRow: true, toolbar: '#cTime'}
,{field: 'sex', title: '性別', width:80, sort: true}
,{field: 'score', title: '評分', width: 80, sort: true, totalRow: true}
,{field: 'city', title: '城市', width:150}
,{field: 'sign', title: '簽名', width: 100}
,{field: 'classify', title: '職業', width: 100}
,{field: 'wealth', title: '財富', width: 135, sort: true, totalRow: true}
,{field:'sex', title:'性別', width:85, templet: '#switchTpl', unresize: true}
,{field:'lock', title:'是否鎖定', width:110, templet: '#checkboxTpl', unresize: true}
,{fixed: 'right', width: 165, align:'center', toolbar: '#barDemo'}
]]
});
//監聽頭工具欄事件
table.on('toolbar(test)', function(obj){
var checkStatus = table.checkStatus(obj.config.id)
,data = checkStatus.data; //獲取選中的數據
switch(obj.event){
case 'add':
layer.msg('添加');
// iframe層
layer.open({
type: 2,
title: '添加文章',
maxmin: true,
shadeClose: false, // 點擊遮罩關閉層
area: ['80%', '80%'],
content: prefix + '/add/' + data[0].id
});
break;
case 'update':
if(data.length === 0){
layer.msg('請選擇一行');
} else if(data.length > 1){
layer.msg('只能同時編輯一個');
} else {
layer.open({
type: 2,
title: '修改文章',
maxmin: true,
shadeClose: false,
area: ['80%', '80%'],
content: prefix + '/edit/' + data[0].id // iframe的url
});
}
break;
case 'delete':
if(data.length === 0){
layer.msg('請選擇一行');
} else {
del(data);
}
break;
};
});
function del(data){
layer.alert('您確認要刪除'+data.length+'條數據嗎?', {
skin: 'layui-layer-molv' //樣式類名layui-layer-lan或layui-layer-molv 自定義樣式
,closeBtn: 1 // 是否顯示關閉按鈕
,anim: 1 //動畫類型
,btn: ['確定','取消'] //按鈕
,icon: 2 // icon
,yes:function() {
// layer.msg('確定', { icon: 1, time: 1500 });
for (var i = 0; i < data.length; i++) {
console.debug("id:======" + data[i].id)
//發送請求到後臺
deleteAjax(data[i].id);
}
}
})
}
//監聽行工具事件
table.on('tool(test)', function(obj){ //注:tool 是工具條事件名,test 是 table 原始容器的屬性 lay-filter="對應的值"
var data = obj.data //獲得當前行數據
,layEvent = obj.event; //獲得 lay-event 對應的值
if(layEvent === 'detail'){
layer.open({
type: 2,
title: '詳情',
maxmin: true,
shadeClose: false,
area: ['80%', '80%'],
content: prefix + '/contentDtl/' + data.id // iframe的url
});
} else if(layEvent === 'del'){
layer.confirm('真的刪除行麼'+data.id, function(index){
// obj.del(); //刪除對應行(tr)的DOM結構
deleteAjax(data.id);
layer.close(index);
//向服務端發送刪除指令
});
} else if(layEvent === 'edit'){
layer.open({
type: 2,
title: '修改文章',
maxmin: true,
shadeClose: false,
area: ['80%', '80%'],
content: prefix + '/edit/' + data.id // iframe的url
});
}
});
function deleteAjax(id){
$.post("/app/cmsContent/recycle", {id: id}, function (result) {
if (result.code == "0") {//刪除成功,刷新當前頁表格
// obj.del(); //刪除對應行(tr)的DOM結構,並更新緩存
layer.msg(result.msg, {icon: 1, time: 1500});
// layer.close(index);
$(".layui-laypage-btn").click();//點擊分頁刷新當前頁
} else if (result.code == "1") { //刪除失敗
layer.alert(result.msg, {icon: 2}, function () {
$(".layui-laypage-btn").click();
window.location.reload();
});
}
});
}
//執行一個輪播實例
carousel.render({
elem: '#test1'
,width: '100%' //設置容器寬度
,height: 200
,arrow: 'none' //不顯示箭頭
,anim: 'fade' //切換動畫方式
});
//將日期直接嵌套在指定容器中
var dateIns = laydate.render({
elem: '#laydateDemo'
,position: 'static'
,calendar: true //是否開啓公曆重要節日
,mark: { //標記重要日子
'0-10-14': '生日'
,'2018-08-28': '新版'
,'2018-10-08': '神祕'
}
,done: function(value, date, endDate){
if(date.year == 2017 && date.month == 11 && date.date == 30){
dateIns.hint('一不小心就月底了呢');
}
}
,change: function(value, date, endDate){
layer.msg(value)
}
});
//分頁
laypage.render({
elem: 'pageDemo' //分頁容器的id
,count: 100 //總頁數
,skin: '#1E9FFF' //自定義選中色值
,skip: true //開啓跳頁
,jump: function(obj, first){
if(!first){
layer.msg('第'+ obj.curr +'頁', {offset: 'b'});
}
}
});
//上傳
upload.render({
elem: '#uploadDemo'
,url: '' //上傳接口
,done: function(res){
console.log(res)
}
});
//滑塊
var sliderInst = slider.render({
elem: '#sliderDemo'
,input: true //輸入框
});
//底部信息
var footerTpl = lay('#footer')[0].innerHTML;
lay('#footer').html(layui.laytpl(footerTpl).render({}))
.removeClass('layui-hide');
});
</script>
</body>
</html>