导出选中数据,导出当前查询条件下的所有数据
打印选中数据
var tableDataCount;//记录查询到数据的总条数
var exportUrl = 'xxx';//记录查询url
var currTable = table.render({
elem: "#LAY-list-manage",
url: exportUrl,
where: whereStr,
toolbar: '#toolbarDemo',
defaultToolbar: ['filter', 'print'],
cellMinWidth: 150,
cols: [cols],
done: function(res, curr, count){
tableDataCount = count;
}
});
//单独设置导出按钮
table.on('toolbar(LAY-list-manage)', function (obj) {
var checkStatus = i.checkStatus(obj.config.id);
switch (obj.event) {
case 'custExportExcel': //导出
if (device.ie) {
layer.tips('导出功能不支持 IE,请用 Chrome 等高级浏览器导出',
this,
{
tips: 3
});
} else {
//获取选中的行
var datas = checkStatus.data;
if (datas.length>0) {
//导出选中行
table.exportFile(obj.config.id, datas, 'xls');
} else {
//导出当前查询条件下的所有数据
whereStr.page = 1;
whereStr.limit = tableDataCount;
$.ajax({
type: 'get',
url: exportUrl,
data: whereStr,
success: function (res) {
table.exportFile(obj.config.id, res.data, 'xls');
}
});
}
}
break;
case 'printSel': //打印选中数据
//选中数据
var datas = checkStatus.data;
var style = [
'<style>', 'body{font-size: 12px; color: #666;}',
'table{width: 100%; border-collapse: collapse; border-spacing: 0;}',
'th,td{line-height: 20px; padding: 9px 15px; border: 1px solid #ccc; text-align: left; font-size: 12px; color: #666;}', '</style>'
].join('');
if (datas.length > 0) {
//获取列名和列值
var cols = obj.config.cols[0];
var tableHtml = '<table><tr>';
for (var j = 0; j < cols.length; j++) {
if (!cols[j].hide && cols[j].type !== "checkbox") {
tableHtml += '<td>' + cols[j].title+'</td>';
}
}
tableHtml += '</tr>';
for (var l = 0; l < datas.length; l++) {
tableHtml += '<tr>';
for (var m = 0; m < cols.length; m++) {
if (!cols[m].hide && cols[m].type !== "checkbox" && cols[m].type !=="cols[m].type !==") {
tableHtml += '<td>' + datas[l][cols[m].field] + '</td>';
}
}
tableHtml += '</tr>';
}
tableHtml += '</table>';
//创建一个打印窗口
var printWindow = window.open("打印窗口", "_blank");
//将明细页面拷贝到新的窗口,这样新的窗口就有了明细页面的样式
var htmlbox = '<html><head>' + style+'</head><body></body></html>';
printWindow.document.write(htmlbox);
//获得要打印的内容
var printbox = tableHtml;
//将要打印的内容替换到新窗口的body中
printWindow.document.body.innerHTML = printbox;
//脚本向窗口(不管是本窗口或其他窗口)写完内容后,必须关闭输出流。在延时脚本的最后一个document.write()方法后面,必须确保含有document.close()方法,不这样做就不能显示图像和表单。
//并且,任何后面调用的document.write()方法只会把内容追加到页面后,而不会清除现有内容来写入新值。
printWindow.document.close();
//打印
//chrome浏览器使用jqprint插件打印时偶尔空白页问题
//解决方案:有时候页面总是加载不出来,打印出现空白页,可以设置延迟时间来等待页面的渲染,但是渲染时间的长短跟页面的大小有关,是不固定的。所以这里使用事件监听器。
printWindow.addEventListener('load', function () {
printWindow.print();
//关闭窗口
printWindow.close();
});
} else {
alert('请先选中要打印的数据!');
}
break;
}
});