vue-print-nb-jeecg
Version:
This is a directive wrapper for printed, Simple, fast, convenient, light. ( 特定改造版本: 解决IE兼容问题和支持Canvas自适应打印 )
42 lines (37 loc) • 863 B
JavaScript
import Print from './printarea.js';
/**
* @file 打印
* 指令`v-print`,默认打印整个窗口
* 传入参数`v-print="'#id'"` , 参数为需要打印局部的盒子标识.
*/
export default {
directiveName: 'print',
bind(el, binding, vnode) {
let vue = vnode.context;
let closeBtn = true;
el.addEventListener('click', (event) => {
if (binding.value) {
localPrint();
} else {
window.print();
}
});
const localPrint = () => {
vue.$nextTick(() => {
if (closeBtn) {
closeBtn = false;
let print = new Print({
el: binding.value,
endCallback() {
closeBtn = true;
}
});
}
});
};
},
update(el, binding) {
},
unbind(el) {
}
};