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 {