layui如何做Tab列表切换功能

本文介绍了如何利用layui框架创建Tab列表切换功能。首先,参照官方文档中的选项卡实例复制代码,接着说明了必须引入JS以实现点击切换效果。然后详细讲解了四个步骤:为div添加过滤器,为每个Tab li添加data-status属性,每个li对应的div内放置表格,以及通过JQ获取并显示不同表格数据的技巧。

第一步:找到官方文档中的选项卡实例,复制代码

https://www.layui.com/demo/tab.html

 

默认风格Tab的代码:

<div class="layui-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">
      1. 高度默认自适应,也可以随意固宽。
      <br>2. Tab进行了响应式处理,所以无需担心数量多少。
    </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>

必须加上JS,否则不能实现点击切换TAB的效果。

JS代码:

<script src="//res.layui.com/layui/dist/layui.js" charset="utf-8"></script>
<!-- 注意:如果你直接复制所有代码到本地,上述 JS 路径需要改成你本地的 -->
<script>
layui.use('element', function(){
  var $ = layui.jquery
  ,element = layui.element; //Tab的切换功能,切换事件监听等,需要依赖element模块
  
  //触发事件
  var active = {
    tabAdd: function(){
      //新增一个Tab项
      element.tabAdd('demo', {
        title: '新选项'+ (Math.random()*1000|0) //用于演示
        ,content: '内容'+ (Math.random()*1000|0)
        ,id: new Date().getTime() //实际使用一般是规定好的id,这里以时间戳模拟下
      })
    }
    ,tabDelete: function(othis){
      //删除指定Tab项
      element.tabDelete('demo', '44'); //删除:“商品管理”
      
      
      othis.addClass('layui-btn-disabled');
    }
    ,tabChange: function(){
      //切换到指定Tab项
      element.tabChange('demo', '22'); //切换到:用户管理
    }
  };
  
  $('.site-demo-active').on('click', function(){
    var othis = $(this), type = othis.data('type');
    active[type] ? active[type].call(this, othis) : '';
  });
  
  //Hash地址的定位
  var layid = location.hash.replace(/^#test=/, '');
  element.tabChange('test', layid);
  
  element.on('tab(test)', function(elem){
    location.hash = 'test='+ $(this).attr('lay-id');
  });
  
});
</script>

最后一步,如何通过切换Tab选项卡,显示不同的表格数据列表

1、给div添加过滤器 

lay-filter="tab-all"

2、给每个tab li添加data-status

<li data-status="" class="layui-this">汇总营收统计</li>
<li data-status="1">日营收统计</li>
<li data-status="2">按日统计图表</li>
<li data-status="3">按月统计图表</li>

3、每个li对应的div里面放table

<div class="layui-tab-item layui-show">
    <table id="table" lay-filter="table"></table>
</div>
<div class="layui-tab-item">
    <table id="table1" lay-filter="table1"></table>
</div>
<div class="layui-tab-item">
    按日统计图表
</div>
<div class="layui-tab-item">
    按月统计图表
</div>

4、写JQ获取表数据

tablist = table.render({
            elem: '#table',
            url: '/admin/Test/index',
            method: 'post',
            page:true,
            limit: 15,
            limits: [15, 20, 50, 100],
            cellMinWidth: 95,
            height: "full-85",
            id: "table",
            cols: [[
                {type: "checkbox", fixed: "left", width: 50},
                {field:'order_number',title:'订单号',align:'center',width:180},
                {field:'inventory',title:'项目名称',align:'center'},
                {field:'shop',title:'门店名称',align:'center'},
                {field:'receivable_money',title:'应收金额',align:'center',width:100},
                {field:'actual_money',title:'实收金额',align:'center',width:100},
                {field:'voucher',title:'代金券',align:'center',width:120},
                {field:'pay',title:'支付方式',align:'center',width:120},
                {field:'create_date',title:'购票时间',align:'center',width:200},
                {field:'source',title:'来源',align:'center',width:120},
                {field:'conductor',title:'售票员',align:'center',width:120},
                {field:'ticket_number',title:'票券数',align:'center',width:100},
                {title: '详情',templet:'#tool', width:130,fixed: "right", align: "center"}
            ]]
        });
<div class="layui-tab" lay-filter="tab-all">
    <ul class="layui-tab-title">
        <li data-status="" class="layui-this">汇总营收统计</li>
        <li data-status="1">日营收统计</li>
        <li data-status="2">按日统计图表</li>
        <li data-status="3">按月统计图表</li>
    </ul>
    <div class="layui-tab-content">
        <div class="layui-tab-item layui-show">
            <table id="table" lay-filter="table"></table>
        </div>
        <div class="layui-tab-item">
            <table id="table1" lay-filter="table1"></table>
        </div>
        <div class="layui-tab-item">
            按日统计图表
        </div>
        <div class="layui-tab-item">
            按月统计图表
        </div>
    </div>
</div>

 

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值