From b11a5bebb1afa922fe04fb6eb771fd2b7fa710ea Mon Sep 17 00:00:00 2001 From: fengyuan_yang <1976974459@qq.com> Date: Thu, 8 Jan 2026 15:26:12 +0800 Subject: [PATCH] =?UTF-8?q?2026-01-08=20=E5=B7=A5=E5=8D=95=E6=9D=90?= =?UTF-8?q?=E6=96=99=E4=B8=8A=E6=9C=BA=E8=AE=B0=E5=BD=95=EF=BC=8C=E5=9C=A8?= =?UTF-8?q?=E8=A1=8C=E6=93=8D=E4=BD=9C=E4=B8=8A=E5=8A=A0=E4=B8=80=E4=B8=AA?= =?UTF-8?q?=E3=80=90=E6=89=93=E5=8D=B0=E3=80=91=E6=93=8D=E4=BD=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../searchMaterialOnMachineRecord.vue | 67 ++++++++++++++++++- 1 file changed, 66 insertions(+), 1 deletion(-) diff --git a/src/views/modules/schedule/searchMaterialOnMachineRecord.vue b/src/views/modules/schedule/searchMaterialOnMachineRecord.vue index 6294035..4375076 100644 --- a/src/views/modules/schedule/searchMaterialOnMachineRecord.vue +++ b/src/views/modules/schedule/searchMaterialOnMachineRecord.vue @@ -191,10 +191,11 @@ @@ -362,6 +363,7 @@ import { materialReturnDuringProduction } from '@/api/schedule/materialOnMachineRecord.js'; import {getSiteList } from "@/api/report/partTemplateStatus.js"; +import { callUspPartLabelTemplate } from '@/api/wms/wms'; import getLodop from '@/utils/LodopFuncs.js'; import labelPrintTemplates from '@/mixins/labelPrintTemplates.js'; @@ -642,6 +644,69 @@ export default { this.returnLoading = false; }); }, + // 打印材料清单中的卷标签 + async printMaterialLabel(row) { + try { + // 1. 获取 LODOP 打印控件 + const LODOP = getLodop(); + if (!LODOP) { + this.$message.error('无法连接到打印控件,请确保已安装并启动 CLodop!'); + return; + } + + // 2. 获取默认打印机 + const printerCount = LODOP.GET_PRINTER_COUNT(); + if (printerCount <= 0) { + this.$message.error('未检测到打印机,请确保已安装并连接打印机!'); + return; + } + + // 3. 调用存储过程获取打印参数 + const params = { + site: row.site, + buNo: '', + menuID: '104003006', + relatedOrderNo: row.orderNo, + relatedOrderLineNo: row.seqNo, + documentNo: '', + partNo: row.partNo, + labelNo: '', + rollNo: row.rmRollNo + }; + + const {data: printData} = await callUspPartLabelTemplate(params); + if (printData && printData.code === 0 && printData.row) { + const labelData = printData.row; + + // 初始化打印任务 + LODOP.PRINT_INIT('材料卷标签打印_' + row.rmRollNo); + LODOP.SET_PRINT_MODE("PRINT_NOCOLLATE", true); + + // 根据 labelNo 调用不同的打印方法 + if (labelData.labelNo === 'A001') { + await this.printLabelA001(LODOP, labelData, false); + } else if (labelData.labelNo === 'A002') { + this.printLabelA002(LODOP, labelData, false); + } else if (labelData.labelNo === 'A003') { + this.printLabelA003(LODOP, labelData, false); + } else if (labelData.labelNo === 'A004') { + this.printLabelA004(LODOP, labelData, false); + } else { + this.$message.warning(`未知的标签模板:${labelData.labelNo}`); + return; + } + + // 执行打印 + LODOP.PRINT(); + this.$message.success('打印任务已发送!'); + } else { + this.$message.error(printData.msg || '获取打印参数失败'); + } + } catch (error) { + console.error('打印材料标签失败:', error); + this.$message.error('打印失败: ' + (error.message || '请重试')); + } + }, // 执行打印 executePrint(printDataList) { try {