优化打印

This commit is contained in:
xianyi
2026-01-06 10:21:31 +08:00
parent 6a6e7dd83d
commit 43182051a7

View File

@@ -1102,6 +1102,9 @@ export const ExamSignPanel = ({ examId, onBusyChange }: ExamSignPanelProps) => {
margin: 0; margin: 0;
padding: 0; padding: 0;
} }
.print-button {
display: none;
}
img { img {
max-width: 100%; max-width: 100%;
page-break-after: always; page-break-after: always;
@@ -1115,6 +1118,9 @@ export const ExamSignPanel = ({ examId, onBusyChange }: ExamSignPanelProps) => {
margin: 0; margin: 0;
padding: 0; padding: 0;
} }
.print-button {
display: none;
}
img { img {
display: block; display: block;
width: 100%; width: 100%;
@@ -1123,6 +1129,7 @@ export const ExamSignPanel = ({ examId, onBusyChange }: ExamSignPanelProps) => {
</style> </style>
</head> </head>
<body> <body>
<button class="print-button" onclick="window.print()">打印</button>
`); `);
canvasImages.forEach((imgData) => { canvasImages.forEach((imgData) => {
@@ -1196,6 +1203,9 @@ export const ExamSignPanel = ({ examId, onBusyChange }: ExamSignPanelProps) => {
margin: 0; margin: 0;
padding: 0; padding: 0;
} }
.print-button {
display: none;
}
img { img {
max-width: 100%; max-width: 100%;
page-break-after: always; page-break-after: always;
@@ -1209,6 +1219,9 @@ export const ExamSignPanel = ({ examId, onBusyChange }: ExamSignPanelProps) => {
margin: 0; margin: 0;
padding: 0; padding: 0;
} }
.print-button {
display: none;
}
img { img {
display: block; display: block;
width: 100%; width: 100%;
@@ -1217,6 +1230,7 @@ export const ExamSignPanel = ({ examId, onBusyChange }: ExamSignPanelProps) => {
</style> </style>
</head> </head>
<body> <body>
<button class="print-button" onclick="window.print()">打印</button>
`); `);
canvasImages.forEach((imgData) => { canvasImages.forEach((imgData) => {
@@ -1228,24 +1242,22 @@ export const ExamSignPanel = ({ examId, onBusyChange }: ExamSignPanelProps) => {
</html> </html>
`); `);
printWindow.document.close(); // 在关闭文档前设置 onload 事件
// 更新导检单打印状态
if (examId) {
try {
await editDaojiandanPrintStatus({ exam_id: examId });
} catch (err) {
console.error('更新导检单打印状态失败', err);
// 不阻塞打印流程,仅记录错误
}
}
printWindow.onload = () => { printWindow.onload = () => {
printWindow.focus(); printWindow.focus();
setTimeout(() => { setTimeout(() => {
printWindow.print(); printWindow.print();
}, 1000); }, 1000);
}; };
printWindow.document.close();
// 更新导检单打印状态(不阻塞打印流程)
if (examId) {
editDaojiandanPrintStatus({ exam_id: examId }).catch((err) => {
console.error('更新导检单打印状态失败', err);
});
}
} catch (err) { } catch (err) {
console.error('打印失败', err); console.error('打印失败', err);
alert('打印失败,请稍后重试'); alert('打印失败,请稍后重试');
@@ -1387,6 +1399,9 @@ export const ExamSignPanel = ({ examId, onBusyChange }: ExamSignPanelProps) => {
margin: 0; margin: 0;
padding: 0; padding: 0;
} }
.print-button {
display: none;
}
img { img {
max-width: 100%; max-width: 100%;
page-break-after: always; page-break-after: always;
@@ -1400,6 +1415,9 @@ export const ExamSignPanel = ({ examId, onBusyChange }: ExamSignPanelProps) => {
margin: 0; margin: 0;
padding: 0; padding: 0;
} }
.print-button {
display: none;
}
img { img {
display: block; display: block;
width: 100%; width: 100%;
@@ -1408,6 +1426,7 @@ export const ExamSignPanel = ({ examId, onBusyChange }: ExamSignPanelProps) => {
</style> </style>
</head> </head>
<body> <body>
<button class="print-button" onclick="window.print()">打印</button>
`); `);
allImages.forEach((imgData) => { allImages.forEach((imgData) => {
@@ -1431,7 +1450,7 @@ export const ExamSignPanel = ({ examId, onBusyChange }: ExamSignPanelProps) => {
} }
} }
// 等待图片加载完成后执行打印 // 等待图片加载完成后自动弹出打印窗口
printWindow.onload = () => { printWindow.onload = () => {
printWindow.focus(); printWindow.focus();
setTimeout(() => { setTimeout(() => {