/**
* 打印模块
* date:2019-04-23 License By http://easyweb.vip
*/
layui.define(["jquery"], function (exports) {
var $ = layui.jquery;
var hideClass = 'hide-print'; // 打印时隐藏
var printingClass = 'printing'; // 正在打印
var printer = {
// 打印当前页面
print: function (param) {
window.focus(); // 让当前窗口获取焦点
if (!param) {
param = {};
}
var hide = param.hide; // 需要隐藏的元素
var horizontal = param.horizontal; // 纸张是否是横向
var iePreview = param.iePreview; // 兼容ie打印预览
var close = param.close; // 打印完是否关闭打印窗口
var blank = param.blank; // 是否打开新窗口
// 设置参数默认值
if (iePreview == undefined) {
iePreview = true;
}
if (blank == undefined && window != top && iePreview && printer.isIE()) {
blank = true;
}
// 打印方向控制
$('#page-print-set').remove();
var htmlStr = '
';
htmlStr += ' ';
// 打印预览兼容ie
if (iePreview && printer.isIE()) {
htmlStr += ' ';
htmlStr += ' ';
}
htmlStr += '
';
// 打印
printer.hideElem(hide);
// 打印iframe兼容ie
var pWindow, pDocument;
if (blank) {
// 创建打印窗口
pWindow = window.open('', '_blank');
pDocument = pWindow.document;
pWindow.focus(); // 让打印窗口获取焦点
// 写入内容到打印窗口
var htmlOld = document.getElementsByTagName('html')[0].innerHTML;
htmlOld += htmlStr;
pDocument.open();
pDocument.write(htmlOld);
pDocument.close();
} else {
pWindow = window;
$('body').append(htmlStr);
}
(iePreview && printer.isIE()) || pWindow.print();
printer.showElem(hide);
},
// 打印html字符串
printHtml: function (param) {
if (!param) {
param = {};
}
var html = param.html; // 打印的html内容
var blank = param.blank; // 是否打开新窗口
var print = param.print; // 是否自动调用打印
var close = param.close; // 打印完是否关闭打印窗口
var horizontal = param.horizontal; // 纸张是否是横向
var iePreview = param.iePreview; // 兼容ie打印预览
// 设置参数默认值
if (print == undefined) {
print = true;
}
if (iePreview == undefined) {
iePreview = true;
}
if (printer.isIE() && blank == undefined) {
blank = true;
}
if (close == undefined) {
close = true;
if (iePreview && blank && printer.isIE()) {
close = false;
}
}
// 创建打印窗口
var pWindow, pDocument;
if (blank) {
pWindow = window.open('', '_blank');
pDocument = pWindow.document;
} else {
var printFrame = document.getElementById('printFrame');
if (!printFrame) {
$('body').append('';
for (var i = 0; i < htmls.length; i++) {
htmlStr += '
';
htmlStr += htmls[i];
htmlStr += '
';
}
htmlStr += '
';
}
// 兼容ie打印预览
if (iePreview && printer.isIE()) {
htmlStr += '