import { nextTick } from 'vue';
import $printJS, { Configuration } from 'print-js';
import Print from 'vue-print-nb-jeecg/src/printarea';
/**
* 调用 printJS,如果type = html,就走 printNB 的方法
*/
export function printJS(configuration: Configuration) {
if (configuration?.type === 'html') {
printNb(configuration.printable);
} else {
return $printJS(configuration);
}
}
/** 调用 printNB 打印 */
export function printNb(domId) {
if (domId) {
localPrint(domId);
} else {
window.print();
}
}
let closeBtn = true;
function localPrint(domId) {
if (typeof domId === 'string' && !domId.startsWith('#')) {
domId = '#' + domId;
}
nextTick(() => {
if (closeBtn) {
closeBtn = false;
new Print({
el: domId,
endCallback() {
closeBtn = true;
},
});
}
});
}