layui 全选、批量删除、删除一行

layui 取得所有数据,假调一个id为insureTableId的表格

var oldData = table.cache["insureTableId"];

是一个json对象

全选或点选时,定义一个事件

var checkedArr=[]; //复选框 选择表格索引行号
table.on('checkbox(insureTableFilter)', function(obj){
    var oldData = table.cache["insureTableId"];
    //layer.alert(JSON.stringify(oldData));
    
    if (obj.type=='all'){
        if(obj.checked){
            //全选选中
            for (var i=0; i<oldData.length; i++){
                checkedArr.push(oldData[i].LAY_TABLE_INDEX);
            }
        }else{
            //取消选中
            checkedArr.splice(0);
        }
    } else {
        //one 单行选择
        if (obj.checked){
            checkedArr.push(obj.tr.data('index'));
        } else {
            checkedArr.splice(obj.tr.data('index'), 1); //根据索引删除当前行
        }
    }
    //layer.alert(JSON.stringify(checkedArr));
});

批量删除

/**
 * toolbar事件监听
 */
table.on('toolbar(insureTableFilter)', function (obj) {
    if (obj.event === 'insureAdd') {   // 监听添加操作
    //这里省略添加的代码
    } else if (obj.event === 'insureAllDelete') {  // 监听删除操作
        var checkStatus = table.checkStatus('insureTableId')
            , data = checkStatus.data;
        var oldData = table.cache["insureTableId"];
        //layer.alert(JSON.stringify(checkStatus));
        //删除库里真实数据
        var delList=[];
        data.forEach(function(item,index){
            if(item.id>0){
                delList.push(item.id);
            }
        });
        if(delList.length>0){
            insure_del(delList.join(','));
            //layer.alert(delList.join(','));
        }
        
        //以下为删除表格临时数据
        if (checkStatus.isAll){
            for (var i=0; i<data.length; i++){
                checkedArr.push[i];
                //checkedArr[data[i].id]=i;
            }
        }
        // $(".layui-table-view .layui-table tbody tr[data-index="+checkedArr[i]+"]").remove();
        var newData = $.grep(oldData, function(n, i) {
            return $.inArray(i, checkedArr) ==-1;
        });
        
        table.reload('insureTableId', {
            url: '',
            data: newData
	  });
    }
});

删除一行

table.on('tool(insureTableFilter)', function (obj) {
    var data = obj.data;
    console.log(data);
    if (obj.event === 'insureDeleteMe') {
        layer.confirm('真的删除行么', function (index) {
            if(data.id>0){
                insure_del(data.id);
            }
            //删除一行并清空缓存
            var oldData = table.cache["insureTableId"];
            console.log('删除'+obj.tr.data('index'));
            if (obj.tr.data('index') != '') {
                oldData.splice(obj.tr.data('index'), 1)//根据索引删除当前行
            }
            //obj.del(); //此del有问题,会出现[]空数据
            table.reload('insureTableId', {
	            url: '',
	  	        data: oldData
	  		});
            layer.close(index);
        });
    }
});
点赞

发表评论

电子邮件地址不会被公开。必填项已用 * 标注