++import SeenewPrinter from '@ali/seenew-printer'; //新版打印组件
componentDidMount() {
this.searchChange(this.props.patientSelectedRowKeys, this.props.masterPatientIndex, this.props.patientId);
//* 在挂载时就将新增模版加载出来
++SeenewPrinter.config({
//* bussType中添加模版表示获取此模版内容
bussType: ['FH0142.704'], // 务必写,不然无法通过 alt + p 唤醒调试窗口
});
}
printLabel = async (code, isPre) => {
// 新版打印
++if (code === 'FH0142.704') {
//由于原接口只返回旧模版有效数据,所以需要自己另调接口获取新模版数据
const res = await api.queryPrintResultTemplateList({
// 这里写死新增模版号,多个新增新模板号能直接加这里?
bussType: ['FH0142.704'],
isNewTemplate: '1',
// 获取打印模版地址
macAddress: localStorage.getItem('sysMacAddress'),
});
//解构数据
const { printTemplateDTO: { templateValue } } = res[0];
const data = {
...this.state.surgeryDate,
macAddress: window.localStorage.getItem('sysMacAddress'),
//控制是否可以预览,单打印可以预览,多条打印要强制设置为false
isPre,
};
//* 由于是在就模版代码中使用新模版,所以只调用旧模版的预览,打印单独提出来
//* 如果是纯旧或者纯新模版则不需要此判断
if (isPre === false) {
// 此处已添加打印,所以模版中要删除打印的api
const printer = new SeenewPrinter();
printer.print('FH0142.704', data);
} else {
// isPre为true时,打印预览,这个exejs是旧版打印中的方法
//* 这一步是传递接口取到的数据调取模版打印功能
this.myPrint.print((LODOP) => {
this.myPrint.exejs(utils.restoreHtml(templateValue), 'printData', data, LODOP);
});
}
} else {
// 旧版打印
this.myPrint...
}
在旧打印模版代码中使用新打印模板
于 2023-09-28 14:10:15 首次发布