layui复选框跨页回显

全局JS声明变量

var checkDatas = [];//选中的数据
var dataArr= [];//当前页面数据
var eqVal='lineId';

监听的复选框函数

table.on('checkbox(test)', function(obj) {
            let  checked = obj.checked; //当前选择的状态,是否选中
            let  tempAllCheckDatas=[];  //存放所有页面选中数据的id
            if(checked){
                if( obj.type == 'one'){
                    checkDatas.push(obj.data);//选中,直接向ids push当前选中的数据
                    checkDatas.forEach(row=>{
                        tempAllCheckDatas.push(row[eqVal])
                    })
                }
                else{
                    checkDatas.forEach(row=>{
                        tempAllCheckDatas.push(row[eqVal])
                    })
                    for(var i=0;i<dataArr.length;i++){
                        if(tempAllCheckDatas.indexOf(dataArr[i][eqVal])<0){
                            tempAllCheckDatas.push(dataArr[i][eqVal])
                            checkDatas.push(dataArr[i])
                        }
                    }

                }
            }
            else{
                if(obj.type == 'one'){
                    checkDatas.map((item, index) => {//取消选择,循环判断是否相等,相等就删除
                        if (obj.data.eqVal == item.eqVal) {
                            checkDatas.splice(index, 1);
                        }
                    })
                }
            	else{
                    dataArr.forEach(row=>{
                        for(let i=0;i<checkDatas.length;i++){
                            if(checkDatas[i][eqVal]==row[eqVal]){
                                checkDatas.splice(i, 1);
                            }
                        }
                    })
                }
            }
            //console.log(checkDatas);
            //console.log(dataArr);
        });

table的渲染处理

table.render({
            elem: '#LAY_table_id(你的tableId)',
            url: (你的接口链接)
            ,defaultToolbar:[]
            ,toolbar: '#toolbarHtml' //开启头部工具栏
            ,title: '用户数据表',
            cols: [
                [
                    {checkbox: true, fixed: true},
                    {
                        title: '序号',
                        width: 80,
                        sort: true,
                        fixed: true,
                        type: 'numbers'
                    },{
                    field: 'lineId',
                    title: '线路id',
                    sort: true,
                    width: 110,
                    hide:true
                   }
                 ]
            ]
			,done: function(res, curr, count) {
			                dataArr = res.data;
			                set();
			 }
 });

抽取的回显函数

function set(){
            var len = dataArr.length;//当前页面数据长度
            var chooseNum = 0; //记录当前页选中的数据行数
            for (var i = 0; i < dataArr.length; i++) {
                for (var j = 0; j < checkDatas.length; j++) {
                    if(dataArr[i][eqVal] === checkDatas[j][eqVal]){
                        dataArr[i]["LAY_CHECKED"] = 'true';
                        var index=i;
                        $('.layui-table tr[data-index=' + i + '] input[type="checkbox"]').prop('checked', true);
                        $('.layui-table tr[data-index=' + i + '] input[type="checkbox"]').next().addClass('layui-form-checked');
                        chooseNum++;
                    }
                }
            }
            //console.log(len)
            //console.log(chooseNum)

            if (len !== 0 && chooseNum === len) {   //表示该页全选  --  全选按钮样式回显
                alert("本页已被全选")
                $(' .layui-table-header tr  input[lay-filter="layTableAllChoose"]').prop('checked', true);
                $(' .layui-table-header tr  input[lay-filter="layTableAllChoose"]').next().addClass('layui-form-checked');
            }
        };

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值