From 252320f72318ccee0f02c66dfa1ce7fa61df0f58 Mon Sep 17 00:00:00 2001
From: spring <2396852758@qq.com>
Date: 星期一, 26 一月 2026 16:51:47 +0800
Subject: [PATCH] fix: 流转卡直接打印
---
src/views/productionManagement/workOrder/index.vue | 53 ++++++++++++++++++++++++++++++++++++++++++++++++++++-
1 files changed, 52 insertions(+), 1 deletions(-)
diff --git a/src/views/productionManagement/workOrder/index.vue b/src/views/productionManagement/workOrder/index.vue
index 3ca6206..291ca18 100644
--- a/src/views/productionManagement/workOrder/index.vue
+++ b/src/views/productionManagement/workOrder/index.vue
@@ -221,6 +221,7 @@
productWorkOrderPage,
updateProductWorkOrder,
addProductMain,
+ downProductWorkOrder,
} from "@/api/productionManagement/workOrder.js";
import { getUserProfile, userListNoPageByTenantId } from "@/api/system/user.js";
import QRCode from "qrcode";
@@ -309,7 +310,7 @@
{
name: "娴佽浆鍗�",
clickFun: row => {
- showTransferCard(row);
+ downloadAndPrintWorkOrder(row);
},
},
{
@@ -404,6 +405,56 @@
});
};
+ // 涓嬭浇骞舵墦鍗板伐鍗曟祦杞崱锛堟枃浠舵祦锛�
+ const downloadAndPrintWorkOrder = async row => {
+ if (!row || !row.id) {
+ proxy.$modal.msgError("缂哄皯宸ュ崟ID锛屾棤娉曚笅杞芥祦杞崱");
+ return;
+ }
+ const fileName = row.workOrderNo
+ ? `宸ュ崟娴佽浆鍗${row.workOrderNo}.xlsx`
+ : "宸ュ崟娴佽浆鍗�.xlsx";
+ try {
+ // 璋冪敤鎺ュ彛锛屼互 responseType: 'blob' 鑾峰彇鏂囦欢娴�
+ const blob = await downProductWorkOrder(row.id);
+
+ if (!blob) {
+ proxy.$modal.msgError("鏈幏鍙栧埌娴佽浆鍗℃枃浠�");
+ return;
+ }
+
+ // 鍒涘缓 Blob URL
+ const fileBlob =
+ blob instanceof Blob ? blob : new Blob([blob], { type: blob.type || "application/octet-stream" });
+ const url = window.URL.createObjectURL(fileBlob);
+
+ // 鍒涘缓闅愯棌 iframe锛岀敤浜庤Е鍙戞祻瑙堝櫒鎵撳嵃
+ const iframe = document.createElement("iframe");
+ iframe.style.position = "fixed";
+ iframe.style.right = "0";
+ iframe.style.bottom = "0";
+ iframe.style.width = "0";
+ iframe.style.height = "0";
+ iframe.style.border = "0";
+ iframe.src = url;
+ document.body.appendChild(iframe);
+
+ iframe.onload = () => {
+ try {
+ iframe.contentWindow?.focus();
+ iframe.contentWindow?.print();
+ } catch (e) {
+ console.error("鑷姩璋冪敤鎵撳嵃澶辫触", e);
+ // 閫�鑰屾眰鍏舵锛屾墦寮�鏂扮獥鍙g敱鐢ㄦ埛鎵嬪姩鎵撳嵃
+ window.open(url);
+ }
+ };
+ } catch (e) {
+ console.error("涓嬭浇宸ュ崟娴佽浆鍗″け璐�", e);
+ proxy.$modal.msgError("涓嬭浇宸ュ崟娴佽浆鍗″け璐�");
+ }
+ };
+
const showTransferCard = async row => {
transferCardRowData.value = row;
const qrContent = String(row.id);
--
Gitblit v1.9.3