layui 分页勾选。

话不多说直接上图,上代码
ui:layui
后台用的thinkphp5
不用安装啥,只要自己有layui的js,引入后提取你需要的部分。

主要部分:parseData返回数据处理、工具栏事件、单选事件方法。

有想过按照不同页面来进行,但万一选择了页数,又发生改变,数据又对不上号,又得重新来选,就直接把所有id直接存起来,勾选后保存id,取消勾选删除id,加载后匹配id设置勾选效果。

在这里插入图片描述
又不懂的可以私信我

<!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">
    {include file="common/css" /}
    <style>
        /*.layui-form-pane .layui-form-label{*/
        /*width: auto;*/
        /*}*/
        /*.layui-form-item .layui-input-inline{*/
        /*width: 100px;*/

        /*}*/
    </style>
    <!-- 注意:如果你直接复制所有代码到本地,上述css路径需要改成你本地的 -->
</head>
<body style="padding:0px 10px;">

<!--头部工具-->
<script type="text/html" id="toolAdminDemo">
    <div class="layui-btn-container" style="padding-right: 50px;text-align: right">
        <button class="layui-btn layui-btn-sm" style="float: left;" lay-event="getCheckData">全选</button>
        <button class="layui-btn layui-btn-sm"  lay-event="uploadCheckData">导出所选项</button>
    </div>
</script>

<!--右侧栏操作按钮工具-->
<script type="text/html" id="barAdminDemo">
    <a class="layui-btn layui-btn-xs" lay-event="look">查看</a>
</script>
<script type="text/html" id="rank">
    {{d.LAY_TABLE_INDEX+1}}
</script>
<script type="text/html" id="statusTpi">
    {{#  if(d.status == 1){ }}
    <span style="color: #2fa8ec">未巡查</span>
    {{#  } }}
    {{#  if(d.status == 2){ }}
    <span style="color: #2fa8ec">已巡查</span>
    {{#  } }}
</script>

<!--数据表格-->
<table class="layui-hide" id="LAY_table_user" lay-filter="listTable"></table>

<div id="test1"></div>


{include file="common/js" /}
<!-- 注意:如果你直接复制所有代码到本地,上述js路径需要改成你本地的 -->
<script>
    var page_ = 1;
    var idsData = [];
    layui.use(['table','form', 'layedit', 'laydate','laypage'], function(){
        var table = layui.table,
            form = layui.form,
            layer = layui.layer ;

        var counts_ = 0;
        var data_ = [];
        //方法级渲染

        var tableIns = table.render({
            id: 'testReload',
            text:'请求异常了',
            totalRow: true,
            elem: '#LAY_table_user',
            url: 'Jkdigit/getlist',//实际请求地址
//            data:[{
//                id:1,
//                title:'11111'
//            },{
//                id:2,
//                title:'2222'
//            },{
//                id:3,
//                title:'3333'
//            },{
//                id:4,
//                title:'114444111'
//            }],
            toolbar: '#toolAdminDemo', //开启头部工具栏,并为其绑定左侧模板
            defaultToolbar: [
                { //自定义头部工具栏右侧图标。如无需自定义,去除该参数即可
                    title: '刷新',
                    layEvent: 'refresh',
                    icon: 'layui-icon-refresh'
                },
                'filter',
                'exports',
                'print',
                { //自定义头部工具栏右侧图标。如无需自定义,去除该参数即可
                    title: '导出全部xls',
                    layEvent: 'getExcel',
                    icon: 'iconfont icon-Shape'
                },
            ],
            page:true,
            height: 'full-80',//高度最大化
            limit:2,
            limits:[1,2,3,10,15,20,30,50,100],
            parseData:function (res) {
                var resdata_ = res.data;
                //页数默认为1减去1
                var pageIds = idsData;
                for(var i in resdata_){
                    for(var k in pageIds){
                        if(resdata_[i].id === pageIds[k]){
                            resdata_[i].LAY_CHECKED = true
                        }
                    }
                }
                data_ = resdata_
                counts_ = res.count;
                return {
                    "code": res.code, //解析接口状态
                    "msg": res.message, //解析提示文本
                    "count": res.count, //解析数据长度
                    "data": resdata_ //解析数据列表
                };
            },
            where:{
                title:'',
                phone:'',
                code:''
            },
            done: function(res, curr, count){},
            title:'xxxx',
            cols: [[ //表头
                {type: 'checkbox', fixed: 'LAY_CHECKED'},
                {field: 'rank', title: '序号', width: 80,  fixed: 'left', templet: '#rank' },
                {field: 'title',minWidth: 100,title: '名称'},
                {fixed: 'right', title:'操作', toolbar: '#barAdminDemo', width:150}
            ]]
        });

        var $ = layui.$, active = {
            reload: function(){
                //执行重载
                lodinlist(1, {
                    title: $('#title').val()
                });
            }
        };

        //数据加载处理
        function lodinlist(curr,where) {
            console.log(curr,'===')
            table.reload('testReload', {
                page: {
                    curr: curr //重新从第 curr 页开始
                },
                where:where
            }, 'data');

        }

        $('.demoTable .layui-btn').on('click', function(){
            var type = $(this).data('type');
            active[type] ? active[type].call(this) : '';
        });

        //监听工具条
        table.on('tool(listTable)', function(obj){
            var data = obj.data;
            if(obj.event === 'look'){
                layer.msg('ID:'+ data.id + ' 的查看操作');
            }

        });
        //工具栏事件(添加、刷新)
        table.on('toolbar(listTable)', function(obj){
            var checkStatus = table.checkStatus(obj.config.id);
            switch(obj.event){
                //自定义头工具栏右侧图标 - 提示
                case  'getCheckData':
                    console.log('依据条件直接进行筛选')
                    break;
                case 'uploadCheckData':
                    //执行重载
                    console.log('下载地址方法')

                    console.log(idsData)
                    break;
                case 'refresh':
                    //执行重载
                    lodinlist(1,{
                        title: '',
                    })
                    break;
            };
        });
        //单选事件方法
        table.on('checkbox(listTable)', function(obj){
            var page_id = page_-1;
            if(obj.type == 'all'){
                var newData_ = [];
                for(var i in data_){
                    newData_.push(data_[i].id)
                }
                switch (obj.checked){
                    case true:
                        idsData = idsData.concat(newData_)
                        break;
                    case false:
                        for(var i in idsData){
                            for(var k in newData_){
                                if(idsData[i] == newData_[k]){
                                    idsData.splice(i,1);
                                }
                            }
                        }
                        break;
                }
            }else {
                switch (obj.checked){
                    case true:
                        idsData.push(obj.data.id);
                        break;
                    case false:
                        for(var i in idsData){
                            if(idsData[i] == obj.data.id){
                                idsData.splice(i,1);
                            }
                        }
                        break;
                }
            }
            console.log('当前选中的数据',idsData)
        });

    })
</script>

</body>
</html>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

qq_28761593

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值