700 710 711 713 bug 修复

This commit is contained in:
Ranyunqiao
2026-06-12 10:40:39 +08:00
parent babd8d0c04
commit f407a2a886
6 changed files with 341 additions and 291 deletions

View File

@@ -301,9 +301,19 @@ export function executePrint(data, template, printerName, options = {}, business
let processedTemplate;
try {
processedTemplate = JSON.parse(
JSON.stringify(template).replace(/{{HOSPITAL_NAME}}/g, userStore.hospitalName)
);
let templateStr = JSON.stringify(template);
// 统一处理医院名称占位符(支持大小写)
const hospitalName = userStore.hospitalName || data.hospitalName || "中联医院";
templateStr = templateStr.replace(/\{\{HOSPITAL_NAME\}\}/gi, hospitalName);
if (data && typeof data === 'object') {
Object.keys(data).forEach(key => {
// 使用更安全的替换方式
const val = data[key] ?? '';
templateStr = templateStr.split(`{{${key}}}`).join(val);
});
}
processedTemplate = JSON.parse(templateStr);
console.log('[4] 模板处理成功');
} catch (parseError) {
console.error('[4] 模板处理失败:', parseError);
@@ -332,8 +342,8 @@ export function executePrint(data, template, printerName, options = {}, business
const printOptions = {
title: '打印标题',
height: 210,
width: 148,
width: 210,
height: 297,
...options,
};
console.log('[7] 打印选项:', printOptions);
@@ -385,7 +395,13 @@ export function executePrint(data, template, printerName, options = {}, business
hiprintTemplate.print(data, printOptions, {
styleHandler: () => {
console.log('[10] styleHandler被调用');
return '<style>@media print { @page { margin: 0; } }</style>';
// 从 printOptions 获取纸张尺寸mm用于 @page size
const pageWidth = printOptions.width || 210;
const pageHeight = printOptions.height || 297;
const pageStyle = `<style>@media print { @page { size: ${pageWidth}mm ${pageHeight}mm; margin: 0; } }</style>`;
// 合并外部传入的 styleHandler包含元素定位样式与内部 @page 样式
const externalStyle = (options && typeof options.styleHandler === 'function') ? options.styleHandler() : '';
return pageStyle + externalStyle;
},
callback: (e) => {
console.log('[10] 打印回调被调用:', e);