跳到主要内容

实用工具 - 自定义打印

仅适用于电脑端浏览器中使用。

在搭建宜搭应用的过程中,你可能会遇到以下这些问题。

  • 普通表单和流程表单能够使用打印模板进行数据打印,自定义页面如何实现打印呢

前提条件

本教程使用到宜搭部分基础功能,你可以先了解以下功能。

本教程使用到 Web 开发技术,你可以先了解以下技术。

实现效果

实现步骤

创建自定义页面

往页面内容中拖入一个容器组件,将需要打印的内容拖入这个容器中,同时开启【将唯一标识用作 DOM ID】选项。

往页面内容中拖入一个容器组件,并拖入一个按钮组件。

对容器设置下述样式。

:root {
margin-top: 12px;
display: flex;
flex-direction: row-reverse;
}

@media print {
:root {
display: none;
}
}

添加打印函数

将下述代码拷贝至页面 JS 面板中。

// 自定义打印函数
// printPartDomId:指定打印区域的id,若无此id,默认打印全页
export function printPage(printPartDomId = '') {
const printPartDom = document.querySelector(printPartDomId ? `#${printPartDomId}` : (self === top ? '.next-shell-main' : '#App'));
if (printPartDom) {
if (!printPartDomId) {
// 默认打印当前页面 - 若存在底部 footer 关闭底部 footer
const footerDom = document.querySelectorAll('.stickyFooter');
if (footerDom.length) {
// 打印时移除底部 footer
const footerParent = footerDom[0].parentElement;
footerParent.removeChild(footerDom[0]);
};
};
window.document.body.innerHTML = '';
window.document.body.appendChild(printPartDom);
setTimeout(() => {
window.print();
location.reload();
}, 1000);
} else {
this.utils.toast({
title: '未获取到打印内容,请使用浏览器手动打印',
type: 'error'
});
};
}

使用打印函数

按钮绑定事件,这里的div_lbq7kcu0为上面开启【将唯一标识用作 DOM ID】的容器的唯一标识。

export function onClick(){
this.printPage('div_lbq7kcu0');
}

保存页面

在线试玩

Copyright © 2024钉钉(中国)信息技术有限公司和/或其关联公司浙ICP备18037475号-4