From ccf243f31a06d2b94f00a11a0e340696d04b0c10 Mon Sep 17 00:00:00 2001 From: "pikachu1995@126.com" Date: Fri, 30 Oct 2026 07:22:16 +0800 Subject: [PATCH] =?UTF-8?q?feat(order):=20=E4=BC=98=E5=8C=96=E8=AE=A2?= =?UTF-8?q?=E5=8D=95=E8=AF=A6=E6=83=85=E9=A1=B5=E5=B8=83=E5=B1=80=E5=B9=B6?= =?UTF-8?q?=E9=87=8D=E6=9E=84=E6=A0=87=E5=87=86A4=E5=87=BA=E5=BA=93?= =?UTF-8?q?=E5=8F=91=E8=B4=A7=E5=8D=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- manager/src/utils/print.js | 206 ++++++- manager/src/views/order/order/orderDetail.vue | 533 +++++++++++++++--- 2 files changed, 637 insertions(+), 102 deletions(-) diff --git a/manager/src/utils/print.js b/manager/src/utils/print.js index 49a0f0f12..73ac669a4 100644 --- a/manager/src/utils/print.js +++ b/manager/src/utils/print.js @@ -1,7 +1,7 @@ /** - * 打印指定 DOM 区域(替代 vue-print-nb) + * 打印指定 DOM 区域(支持标准 A4 纵向与完整打印样式隔离) */ -export function printElement(elementId, title = "打印") { +export function printElement(elementId, title = "打印发货单") { const el = document.getElementById(elementId); if (!el) { return; @@ -13,22 +13,196 @@ export function printElement(elementId, title = "打印") { doc.open(); doc.write( `${title}${el.innerHTML}` ); doc.close(); iframe.contentWindow.focus(); - iframe.contentWindow.print(); - setTimeout(() => document.body.removeChild(iframe), 1000); + setTimeout(() => { + iframe.contentWindow.print(); + setTimeout(() => { + if (document.body.contains(iframe)) { + document.body.removeChild(iframe); + } + }, 1500); + }, 100); } diff --git a/manager/src/views/order/order/orderDetail.vue b/manager/src/views/order/order/orderDetail.vue index 828e9323f..fb20813d9 100644 --- a/manager/src/views/order/order/orderDetail.vue +++ b/manager/src/views/order/order/orderDetail.vue @@ -498,43 +498,179 @@ - - + + -