layui表格學習

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>        
        
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章