From 8074d5d83c285a259d02c9596dee54c5ea2ca22b Mon Sep 17 00:00:00 2001 From: fengyuan_yang <1976974459@qq.com> Date: Mon, 29 Dec 2025 17:26:24 +0800 Subject: [PATCH] =?UTF-8?q?2025-12-29=20=E6=89=93=E5=8D=B0=E6=A8=A1?= =?UTF-8?q?=E6=9D=BFA002=E4=BC=98=E5=8C=96=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/mixins/labelPrintTemplates.js | 94 +++++++++++++---------- src/views/modules/print/PoPartPrint.vue | 4 +- src/views/modules/print/rePrintPoPart.vue | 4 +- 3 files changed, 57 insertions(+), 45 deletions(-) diff --git a/src/mixins/labelPrintTemplates.js b/src/mixins/labelPrintTemplates.js index 8551a83..460088a 100644 --- a/src/mixins/labelPrintTemplates.js +++ b/src/mixins/labelPrintTemplates.js @@ -146,56 +146,62 @@ export default { // ============================================================ // 2. 绘制边框 // ============================================================ - // 外边框(1mm边距,68mm宽 x 18mm高) + // 外边框(2mm边距,66mm宽 x 16mm高) LODOP.ADD_PRINT_RECT('1mm', '1mm', '68mm', '18mm', 0, 1); // ============================================================ - // 3. 左侧二维码 + // 3. 左侧二维码(使用LODOP自带二维码) // ============================================================ - // 二维码位置:距上1.6mm,距左3.4mm,尺寸18.2mm x 18.2mm - const qrIndex = LODOP.ADD_PRINT_BARCODE('1.6mm', '3.4mm', '18.2mm', '18.2mm', 'QRCode', printData.rollNo || ''); - LODOP.SET_PRINT_STYLEA(qrIndex, "QRCodeVersion", 4); - LODOP.SET_PRINT_STYLEA(qrIndex, "QRCodeErrorLevel", "M"); + // 二维码区域:上下左贴合边框,右贴合文字区域 + // 边框从2mm开始,高度16mm;文字从20mm开始 + // 二维码设置稍大让静区溢出,可见内容贴合边框 + const qrContent = printData.rollNo || ''; + if (qrContent) { + const qrIndex = LODOP.ADD_PRINT_BARCODE('2.5mm', '2.5mm', '21mm', '19mm', 'QRCode', qrContent); + LODOP.SET_PRINT_STYLEA(qrIndex, "QRCodeVersion", 0); // 自动选择版本 + LODOP.SET_PRINT_STYLEA(qrIndex, "QRCodeErrorLevel", "M"); + } // ============================================================ - // 4. 右侧文字信息(4行)- 向左移动,字体缩小 + // 4. 右侧文字信息(4行)- 字体5号 // ============================================================ - const startX = '22mm'; // 文字左边距(从23mm改为22mm,向左移动1mm) - const textWidth = '46mm'; // 文字区域宽度(从43mm增加到46mm) + const startX = '17mm'; // 文字左边距 + const textWidth = '50mm'; // 文字区域宽度 + const fontSize = 4; // 字体大小(从7号改为5号) // 第1行:编码 - const text1 = LODOP.ADD_PRINT_TEXT('3mm', startX, textWidth, '3mm', `编码:${printData.partNo || ''}`); + const text1 = LODOP.ADD_PRINT_TEXT('3mm', startX, textWidth, '3mm', `编码:${printData.partNo || ''}`); LODOP.SET_PRINT_STYLEA(text1, "FontName", "Microsoft YaHei"); - LODOP.SET_PRINT_STYLEA(text1, "FontSize", 7); + LODOP.SET_PRINT_STYLEA(text1, "FontSize", fontSize); // 第2行:卷号 - const text2 = LODOP.ADD_PRINT_TEXT('7mm', startX, textWidth, '3mm', `卷号:${printData.rollNo || ''}`); + const text2 = LODOP.ADD_PRINT_TEXT('6.5mm', startX, textWidth, '3mm', `卷号:${printData.rollNo || ''}`); LODOP.SET_PRINT_STYLEA(text2, "FontName", "Microsoft YaHei"); - LODOP.SET_PRINT_STYLEA(text2, "FontSize", 7); + LODOP.SET_PRINT_STYLEA(text2, "FontSize", fontSize); // 第3行:良品 + 不良品(左右分布) // 良品(左侧) - const text3 = LODOP.ADD_PRINT_TEXT('11mm', startX, '22mm', '3mm', `良品:${printData.goodQuantity || ''}`); + const text3 = LODOP.ADD_PRINT_TEXT('10mm', startX, '24mm', '3mm', `良品:${printData.goodQuantity || ''}`); LODOP.SET_PRINT_STYLEA(text3, "FontName", "Microsoft YaHei"); - LODOP.SET_PRINT_STYLEA(text3, "FontSize", 7); + LODOP.SET_PRINT_STYLEA(text3, "FontSize", fontSize); // 不良品(右侧) - const text4 = LODOP.ADD_PRINT_TEXT('11mm', '44mm', '24mm', '3mm', `不良品:${printData.badQuantity || ''}`); + const text4 = LODOP.ADD_PRINT_TEXT('10mm', '44mm', '24mm', '3mm', `不良品:${printData.badQuantity || ''}`); LODOP.SET_PRINT_STYLEA(text4, "FontName", "Microsoft YaHei"); - LODOP.SET_PRINT_STYLEA(text4, "FontSize", 7); + LODOP.SET_PRINT_STYLEA(text4, "FontSize", fontSize); // 第4行:总数 + 良率(左右分布) // 总数(左侧) - const text5 = LODOP.ADD_PRINT_TEXT('15mm', startX, '22mm', '3mm', `总数:${printData.quantity || ''}`); + const text5 = LODOP.ADD_PRINT_TEXT('13.5mm', startX, '24mm', '3mm', `总数:${printData.quantity || ''}`); LODOP.SET_PRINT_STYLEA(text5, "FontName", "Microsoft YaHei"); - LODOP.SET_PRINT_STYLEA(text5, "FontSize", 7); + LODOP.SET_PRINT_STYLEA(text5, "FontSize", fontSize); // 良率(右侧) const yieldValue = printData['yield'] || printData.yield || ''; - const yieldText = yieldValue ? `良率:${yieldValue}%` : '良率:'; - const text6 = LODOP.ADD_PRINT_TEXT('15mm', '44mm', '24mm', '3mm', yieldText); + const yieldText = yieldValue ? `良率: ${yieldValue}%` : '良率:'; + const text6 = LODOP.ADD_PRINT_TEXT('13.5mm', '44mm', '24mm', '3mm', yieldText); LODOP.SET_PRINT_STYLEA(text6, "FontName", "Microsoft YaHei"); - LODOP.SET_PRINT_STYLEA(text6, "FontSize", 7); + LODOP.SET_PRINT_STYLEA(text6, "FontSize", fontSize); }, // A003 标签打印(70mm x 20mm)- 绑定用 @@ -213,48 +219,54 @@ export default { // ============================================================ // 2. 绘制边框 // ============================================================ - // 外边框(1mm边距,68mm宽 x 18mm高) + // 外边框(2mm边距,66mm宽 x 16mm高) LODOP.ADD_PRINT_RECT('1mm', '1mm', '68mm', '18mm', 0, 1); // ============================================================ - // 3. 左侧二维码 + // 3. 左侧二维码(使用LODOP自带二维码) // ============================================================ - // 二维码位置:距上1.6mm,距左3.4mm,尺寸18.2mm x 18.2mm - const qrIndex = LODOP.ADD_PRINT_BARCODE('1.6mm', '3.4mm', '18.2mm', '18.2mm', 'QRCode', printData.rollNo || ''); - LODOP.SET_PRINT_STYLEA(qrIndex, "QRCodeVersion", 4); - LODOP.SET_PRINT_STYLEA(qrIndex, "QRCodeErrorLevel", "M"); + // 二维码区域:上下左贴合边框,右贴合文字区域 + // 边框从2mm开始,高度16mm;文字从20mm开始 + // 二维码设置稍大让静区溢出,可见内容贴合边框 + const qrContent = printData.rollNo || ''; + if (qrContent) { + const qrIndex = LODOP.ADD_PRINT_BARCODE('1.5mm', '1.5mm', '19mm', '20mm', 'QRCode', qrContent); + LODOP.SET_PRINT_STYLEA(qrIndex, "QRCodeVersion", 0); // 自动选择版本 + LODOP.SET_PRINT_STYLEA(qrIndex, "QRCodeErrorLevel", "M"); + } // ============================================================ - // 4. 右侧文字信息(4行) + // 4. 右侧文字信息(4行)- 字体6号 // ============================================================ - const startX = '23mm'; // 文字左边距 - const textWidth = '43mm'; // 文字区域宽度 + const startX = '20mm'; // 文字左边距 + const textWidth = '47mm'; // 文字区域宽度 + const fontSize = 6; // 字体大小(从8号改为6号) // 第1行:ERP No. - const text1 = LODOP.ADD_PRINT_TEXT('3mm', startX, textWidth, '3mm', `ERP No.: ${printData.partNo || ''}`); + const text1 = LODOP.ADD_PRINT_TEXT('3mm', startX, textWidth, '3mm', `ERP No.:${printData.partNo || ''}`); LODOP.SET_PRINT_STYLEA(text1, "FontName", "Microsoft YaHei"); - LODOP.SET_PRINT_STYLEA(text1, "FontSize", 8); + LODOP.SET_PRINT_STYLEA(text1, "FontSize", fontSize); // 第2行:Batch No. + Reel No.(左右分布) // Batch No.(左侧) - const text2 = LODOP.ADD_PRINT_TEXT('7mm', startX, '20mm', '3mm', `Batch No.: ${printData.batchNo || ''}`); + const text2 = LODOP.ADD_PRINT_TEXT('6.5mm', startX, '24mm', '3mm', `Batch No.:${printData.batchNo || ''}`); LODOP.SET_PRINT_STYLEA(text2, "FontName", "Microsoft YaHei"); - LODOP.SET_PRINT_STYLEA(text2, "FontSize", 8); + LODOP.SET_PRINT_STYLEA(text2, "FontSize", fontSize); // Reel No.(右侧) - const text3 = LODOP.ADD_PRINT_TEXT('7mm', '43mm', '23mm', '3mm', `Reel No.: ${printData.reelNo || ''}`); + const text3 = LODOP.ADD_PRINT_TEXT('6.5mm', '44mm', '24mm', '3mm', `Reel No.:${printData.reelNo || ''}`); LODOP.SET_PRINT_STYLEA(text3, "FontName", "Microsoft YaHei"); - LODOP.SET_PRINT_STYLEA(text3, "FontSize", 8); + LODOP.SET_PRINT_STYLEA(text3, "FontSize", fontSize); // 第3行:Good QTY - const text4 = LODOP.ADD_PRINT_TEXT('11mm', startX, textWidth, '3mm', `Good QTY: ${printData.goodQuantity || ''}`); + const text4 = LODOP.ADD_PRINT_TEXT('10mm', startX, textWidth, '3mm', `Good QTY:${printData.goodQuantity || ''}`); LODOP.SET_PRINT_STYLEA(text4, "FontName", "Microsoft YaHei"); - LODOP.SET_PRINT_STYLEA(text4, "FontSize", 8); + LODOP.SET_PRINT_STYLEA(text4, "FontSize", fontSize); // 第4行:Bad QTY - const text5 = LODOP.ADD_PRINT_TEXT('15mm', startX, textWidth, '3mm', `Bad QTY: ${printData.badQuantity || ''}`); + const text5 = LODOP.ADD_PRINT_TEXT('13.5mm', startX, textWidth, '3mm', `Bad QTY:${printData.badQuantity || ''}`); LODOP.SET_PRINT_STYLEA(text5, "FontName", "Microsoft YaHei"); - LODOP.SET_PRINT_STYLEA(text5, "FontSize", 8); + LODOP.SET_PRINT_STYLEA(text5, "FontSize", fontSize); } } } diff --git a/src/views/modules/print/PoPartPrint.vue b/src/views/modules/print/PoPartPrint.vue index 3281504..fc58a47 100644 --- a/src/views/modules/print/PoPartPrint.vue +++ b/src/views/modules/print/PoPartPrint.vue @@ -1341,9 +1341,9 @@ export default { if(printData.labelNo === 'A001'){ await this.printLabelA001(LODOP, printData, i > 0 || times > 0); } else if(printData.labelNo === 'A002'){ - this.printLabelA002(LODOP, printData, i > 0 || times > 0); + await this.printLabelA002(LODOP, printData, i > 0 || times > 0); } else if(printData.labelNo === 'A003'){ - this.printLabelA003(LODOP, printData, i > 0 || times > 0); + await this.printLabelA003(LODOP, printData, i > 0 || times > 0); } else { this.$message.warning(`未知的标签模板:${printData.labelNo}`); } diff --git a/src/views/modules/print/rePrintPoPart.vue b/src/views/modules/print/rePrintPoPart.vue index 00b56f4..ad8e549 100644 --- a/src/views/modules/print/rePrintPoPart.vue +++ b/src/views/modules/print/rePrintPoPart.vue @@ -1237,9 +1237,9 @@ export default { if(printData.labelNo === 'A001'){ await this.printLabelA001(LODOP, printData, i > 0 || times > 0); } else if(printData.labelNo === 'A002'){ - this.printLabelA002(LODOP, printData, i > 0 || times > 0); + await this.printLabelA002(LODOP, printData, i > 0 || times > 0); } else if(printData.labelNo === 'A003'){ - this.printLabelA003(LODOP, printData, i > 0 || times > 0); + await this.printLabelA003(LODOP, printData, i > 0 || times > 0); } else { this.$message.warning(`未知的标签模板:${printData.labelNo}`); }