diff --git a/src/mixins/labelPrintTemplates.js b/src/mixins/labelPrintTemplates.js index 54dff69..0aedc8b 100644 --- a/src/mixins/labelPrintTemplates.js +++ b/src/mixins/labelPrintTemplates.js @@ -2,7 +2,7 @@ import QRCode from 'qrcode'; /** * 标签打印模板 Mixin - * 提供 A001、A002、A003 三种标签打印模板的通用方法 + * 提供 A001、A002、A003、A004 四种标签打印模板的通用方法 */ export default { methods: { @@ -263,6 +263,60 @@ export default { const text5 = LODOP.ADD_PRINT_TEXT('14mm', '44mm', '24mm', '3mm', `Bad QTY:${printData.badQuantity || ''}`); LODOP.SET_PRINT_STYLEA(text5, "FontName", "Microsoft YaHei"); LODOP.SET_PRINT_STYLEA(text5, "FontSize", fontSize); + }, + + // A004 标签打印(70mm x 20mm)- 基于A002,去掉不良品、总数和良率 + printLabelA004(LODOP, printData, isNewPage){ + if(isNewPage){ + LODOP.NEWPAGE(); + } + + // ============================================================ + // 1. 纸张设置 + // ============================================================ + // 设置纸张大小 70mm x 20mm (0=纵向) + LODOP.SET_PRINT_PAGESIZE(0, 700, 200, ''); + + // ============================================================ + // 2. 绘制边框 + // ============================================================ + // 外边框(2mm边距,66mm宽 x 16mm高) + LODOP.ADD_PRINT_RECT('1mm', '1mm', '68mm', '18mm', 0, 1); + + // ============================================================ + // 3. 左侧二维码(使用LODOP自带二维码) + // ============================================================ + // 二维码区域:上下左贴合边框,右贴合文字区域 + // 边框从2mm开始,高度16mm;文字从20mm开始 + // 二维码设置稍大让静区溢出,可见内容贴合边框 + const qrContent = printData.rollNo || ''; + if (qrContent) { + const qrIndex = LODOP.ADD_PRINT_BARCODE('2.5mm', '2mm', '20mm', '20mm', 'QRCode', qrContent); + LODOP.SET_PRINT_STYLEA(qrIndex, "QRCodeVersion", 0); // 自动选择版本 + LODOP.SET_PRINT_STYLEA(qrIndex, "QRCodeErrorLevel", "M"); + } + + // ============================================================ + // 4. 右侧文字信息(3行)- 字体5号 + // ============================================================ + const startX = '17mm'; // 文字左边距 + const textWidth = '54mm'; // 文字区域宽度 + const fontSize = 5; // 字体大小(比A002稍大,因为只有3行) + + // 第1行:编码 + const text1 = LODOP.ADD_PRINT_TEXT('3.5mm', startX, textWidth, '4mm', `编码:${printData.partNo || ''}`); + LODOP.SET_PRINT_STYLEA(text1, "FontName", "Microsoft YaHei"); + LODOP.SET_PRINT_STYLEA(text1, "FontSize", fontSize); + + // 第2行:卷号 + const text2 = LODOP.ADD_PRINT_TEXT('8mm', startX, textWidth, '4mm', `卷号:${printData.rollNo || ''}`); + LODOP.SET_PRINT_STYLEA(text2, "FontName", "Microsoft YaHei"); + LODOP.SET_PRINT_STYLEA(text2, "FontSize", fontSize); + + // 第3行:良品 + const text3 = LODOP.ADD_PRINT_TEXT('12.5mm', startX, textWidth, '4mm', `良品:${printData.goodQuantity || ''}`); + LODOP.SET_PRINT_STYLEA(text3, "FontName", "Microsoft YaHei"); + LODOP.SET_PRINT_STYLEA(text3, "FontSize", fontSize); } } } diff --git a/src/views/modules/label-split-merge/labelSplitMerge.vue b/src/views/modules/label-split-merge/labelSplitMerge.vue index 43e86e0..51c39d3 100644 --- a/src/views/modules/label-split-merge/labelSplitMerge.vue +++ b/src/views/modules/label-split-merge/labelSplitMerge.vue @@ -462,6 +462,8 @@ export default { this.printLabelA002(LODOP, printData, false); } else if (labelNo === 'A003') { this.printLabelA003(LODOP, printData, false); + } else if (labelNo === 'A004') { + this.printLabelA004(LODOP, printData, false); } else { // 默认使用 A001 模板 console.warn('未知标签模板:', labelNo, ',使用默认模板 A001'); diff --git a/src/views/modules/other-inout/otherInboundDetail.vue b/src/views/modules/other-inout/otherInboundDetail.vue index 520f46b..a11d2c0 100644 --- a/src/views/modules/other-inout/otherInboundDetail.vue +++ b/src/views/modules/other-inout/otherInboundDetail.vue @@ -731,6 +731,8 @@ export default { this.printLabelA002(LODOP, printData, false); } else if (labelNo === 'A003') { this.printLabelA003(LODOP, printData, false); + } else if (labelNo === 'A004') { + this.printLabelA004(LODOP, printData, false); } // 执行打印