layui-table 伪重写 表格导出事件

layui-table 自带的defaultToolbar: ['filter', 'print','exports'],中的exports ,导出既是当前页面的导出,由于我的数据是分页拿到的,所以需要重定义导出  事件。

html

监听,导出事件

 //头工具栏事件
            table.on('toolbar(networktable)', function (obj) {
                console.log(obj, "obj")

                switch (obj.event) {
                    case 'getExcel':
                        layer.confirm("是否要导出当前数据?", {
                            icon: 3,
                            btn: ["确定", "取消"]
                        }, function (layerIndex) {
                            layer.close(layerIndex);
                            indexload = layer.load(2, {
                                //  content: '正在导出...',
                                icon: 16,
                                success: function (layero) {
                                    layero.find('.layui-layer-content').css({
                                        'paddingTop': '40px',
                                        'width': '100px',
                                        'textAlign': 'center',
                                        'backgroundPositionX': 'center'
                                    });
                                }
                            });
                            var datalength = deviceTotal;
                            if (datalength > 0) {
                                for (var i = 0; i < Math.ceil(datalength / 1000); i++) //
                                {
                                    exportData(obj, i * 1000, 1000)
                                }
                            }
                        });
                        break;
                };

            });

ajax   一次请求所有数据(我是分批拿的,也可以一次拿完)

 var dataExport = new Array;
    function exportData(obj, offset, limit) {
        //请求所有数据
        $.ajax({
            type: 'get',
            url: '/index/accessequipment/api_getdomaindevice',
            dataType: 'json',
            data: {
                'domain': domainname,
                'offset': offset,
                'limit': limit,
                'sort': "",
                'sorttype': ""
            },
            success: function (res) {
                dataExport = dataExport.concat(res.deviceinfo);

                if (dataExport.length == deviceTotal) {
                    layer.close(indexload)
                    table.exportFile(obj.config.id, dataExport, 'xls');
                }
            }
        });
    }

最后效果

layui-table 伪重写 表格导出事件_第1张图片

 

layui-table 伪重写 表格导出事件_第2张图片

你可能感兴趣的:(前端,layui-table)