悠悠楠杉
网站页面
layui自带的导出表格,只能导出当前页面,如果当前页包含全部数据,那不就是导出全部数据了吗,所以我给导出事件单独定义了一个请求,当触发这个请求时,在后台查询数据时不要按接收的page 和 limit查询,而是查询全部,这样就实现了导出全部数据。
<!--导出表 不展示-->
<div style="display: none;">
<table id="data_export">
</table>
</div>
<!-- 工具栏 -->
<script type="text/html" id="toolbarDemo">
<button class="layui-btn" lay-event="export">导出</button>
</script>
<script>
layui.use(['table', 'layer'], function() {
var table = layui.table,
layer = layui.layer;
// 监听工具栏事件
table.on('toolbar(order-list)',function(obj){
if(obj.event == 'export'){
//导出表格
var ins1 = table.render({
elem: '#data_export',
url: '{:url("order/orderlist")}', //数据接口
method: 'post',
title: 'orderlist',
where: {
status: $("input[name='status']").val()
,start: $("input[name='start']").val()
,end: $("input[name='end']").val()
,order_number: $("input[name='order_number']").val()
},
limit: obj.config.page.count,
cols: [[
{type:'checkbox'}
,{field:'id',title:'ID',width:60,sort:true}
,{field:'order_number',title:'订单编号',sort: true,templet:function(d){
return d.order_number+"\t";
}}
,{field:'commodity',title:'商品',sort:true}
,{field:'consignee',title:'收货人',width:80,sort:true}
,{field:'address',title:'收货地址',sort:true}
,{field:'phone',title:'手机号',sort:true,templet:function(d){
return d.phone+"\t";
}}
]],
done: function (res, curr, count) {
exportData=res.data;
table.exportFile(ins1.config.id,exportData, 'xls');
}
});
}
})
})
</script>