From 4c0e22f6eee174b056197a952f05114129a2b9f6 Mon Sep 17 00:00:00 2001 From: fengyuan_yang <1976974459@qq.com> Date: Fri, 14 Nov 2025 11:00:12 +0800 Subject: [PATCH] =?UTF-8?q?2025-11-14=20=E9=87=87=E8=B4=AD=E6=A0=87?= =?UTF-8?q?=E7=AD=BE=E7=94=9F=E6=88=90=E6=A0=87=E7=AD=BE=E6=89=93=E5=8D=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/modules/print/PoPartPrint.vue | 158 ++++++++++-------- .../modules/yieldReport/com_separate_roll.vue | 6 +- 2 files changed, 93 insertions(+), 71 deletions(-) diff --git a/src/views/modules/print/PoPartPrint.vue b/src/views/modules/print/PoPartPrint.vue index 6a97d66..9a85c85 100644 --- a/src/views/modules/print/PoPartPrint.vue +++ b/src/views/modules/print/PoPartPrint.vue @@ -1373,31 +1373,31 @@ export default { // 边框样式: 0=实线 // 边框粗细: 单位为像素 - // 外边框(2mm边距,66mm宽 x 26mm高) - LODOP.ADD_PRINT_RECT('2mm', '2mm', '66mm', '26mm', 0, 1); + // 外边框(1mm边距,68mm宽 x 28mm高) + LODOP.ADD_PRINT_RECT('1mm', '1mm', '68mm', '28mm', 0, 1); // ADD_PRINT_LINE(起点Y, 起点X, 终点Y, 终点X, 线条样式, 线条粗细) // 线条样式: 0=实线 // 垂直分隔线:左右分隔(从上到下) - // 参数说明:起点(2mm, 22mm) -> 终点(28mm, 22mm) - LODOP.ADD_PRINT_LINE('2mm', '22mm', '28mm', '22mm', 0, 1); + // 参数说明:起点(1mm, 22mm) -> 终点(29mm, 22mm) + LODOP.ADD_PRINT_LINE('1mm', '22mm', '29mm', '22mm', 0, 1); // 水平分隔线1:编码下方 - // 参数说明:起点(8mm, 22mm) -> 终点(8mm, 68mm) - LODOP.ADD_PRINT_LINE('8mm', '22mm', '8mm', '68mm', 0, 1); + // 参数说明:起点(8mm, 22mm) -> 终点(8mm, 69mm) + LODOP.ADD_PRINT_LINE('8mm', '22mm', '8mm', '69mm', 0, 1); // 水平分隔线2:型号下方 - // 参数说明:起点(13mm, 22mm) -> 终点(13mm, 68mm) - LODOP.ADD_PRINT_LINE('13mm', '22mm', '13mm', '68mm', 0, 1); + // 参数说明:起点(13mm, 22mm) -> 终点(13mm, 69mm) + LODOP.ADD_PRINT_LINE('13mm', '22mm', '13mm', '69mm', 0, 1); // 水平分隔线3:数量下方 - // 参数说明:起点(18mm, 22mm) -> 终点(18mm, 68mm) - LODOP.ADD_PRINT_LINE('18mm', '22mm', '18mm', '68mm', 0, 1); + // 参数说明:起点(18mm, 22mm) -> 终点(18mm, 69mm) + LODOP.ADD_PRINT_LINE('18mm', '22mm', '18mm', '69mm', 0, 1); // 水平分隔线4:批号下方 - // 参数说明:起点(23mm, 22mm) -> 终点(23mm, 68mm) - LODOP.ADD_PRINT_LINE('23mm', '22mm', '23mm', '68mm', 0, 1); + // 参数说明:起点(23mm, 22mm) -> 终点(23mm, 69mm) + LODOP.ADD_PRINT_LINE('23mm', '22mm', '23mm', '69mm', 0, 1); // ============================================================ // 3. 左侧二维码 @@ -1454,49 +1454,63 @@ export default { LODOP.NEWPAGE(); } + // ============================================================ + // 1. 纸张设置 + // ============================================================ // 设置纸张大小 70mm x 20mm (0=纵向) LODOP.SET_PRINT_PAGESIZE(0, 700, 200, ''); - // 绘制外边框 - LODOP.ADD_PRINT_RECT('2mm', '2mm', '66mm', '16mm', 0, 1); - - // 标题 "其他工序用" - const title = LODOP.ADD_PRINT_TEXT('2mm', '2mm', '66mm', '4mm', '其他工序用'); - LODOP.SET_PRINT_STYLEA(title, "FontName", "Microsoft YaHei"); - LODOP.SET_PRINT_STYLEA(title, "FontSize", 10); - LODOP.SET_PRINT_STYLEA(title, "Bold", 1); - LODOP.SET_PRINT_STYLEA(title, "Alignment", 2); // 居中 - - // 横线分隔标题 - LODOP.ADD_PRINT_LINE('6mm', '2mm', '6mm', '68mm', 0, 1); - - // 纵线分隔左右 - LODOP.ADD_PRINT_LINE('6mm', '22mm', '18mm', '22mm', 0, 1); + // ============================================================ + // 2. 绘制边框 + // ============================================================ + // 外边框(2mm边距,66mm宽 x 16mm高) + LODOP.ADD_PRINT_RECT('1mm', '1mm', '68mm', '18mm', 0, 1); - // 左侧二维码 - const qrIndex = LODOP.ADD_PRINT_BARCODE('8mm', '3mm', '18mm', '9mm', 'QRCode', printData.rollNo || ''); + // ============================================================ + // 3. 左侧二维码 + // ============================================================ + // 二维码位置:距上3mm,距左3mm,尺寸15mm x 15mm + 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"); - // 右侧信息 - const startX = '23mm'; - const textWidth = '43mm'; + // ============================================================ + // 4. 右侧文字信息(4行) + // ============================================================ + const startX = '23mm'; // 文字左边距 + const textWidth = '43mm'; // 文字区域宽度 - const text1 = LODOP.ADD_PRINT_TEXT('7mm', startX, textWidth, '3mm', `ERP No.: ${printData.partNo || ''}`); + // 第1行:编码 + 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", 8); - const text2 = LODOP.ADD_PRINT_TEXT('10mm', startX, textWidth, '3mm', `Batch No.: ${printData.batchNo || ''}`); + // 第2行:卷号 + const text2 = LODOP.ADD_PRINT_TEXT('7mm', 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", 8); - const text3 = LODOP.ADD_PRINT_TEXT('13mm', startX, textWidth, '3mm', `Good QTY: ${printData.goodQuantity || ''}`); + // 第3行:良品 + 不良品(左右分布) + // 良品(左侧) + const text3 = LODOP.ADD_PRINT_TEXT('11mm', startX, '20mm', '3mm', `良品:${printData.goodQuantity || ''}`); LODOP.SET_PRINT_STYLEA(text3, "FontName", "Microsoft YaHei"); - LODOP.SET_PRINT_STYLEA(text3, "FontSize", 7); + LODOP.SET_PRINT_STYLEA(text3, "FontSize", 8); - const text4 = LODOP.ADD_PRINT_TEXT('16mm', startX, textWidth, '3mm', `Bad QTY: ${printData.badQuantity || ''}`); + // 不良品(右侧) + const text4 = LODOP.ADD_PRINT_TEXT('11mm', '43mm', '23mm', '3mm', `不良品:${printData.badQuantity || ''}`); LODOP.SET_PRINT_STYLEA(text4, "FontName", "Microsoft YaHei"); - LODOP.SET_PRINT_STYLEA(text4, "FontSize", 7); + LODOP.SET_PRINT_STYLEA(text4, "FontSize", 8); + + // 第4行:总数 + 良率(左右分布) + // 总数(左侧) + const text5 = LODOP.ADD_PRINT_TEXT('15mm', startX, '20mm', '3mm', `总数:${printData.quantity || ''}`); + LODOP.SET_PRINT_STYLEA(text5, "FontName", "Microsoft YaHei"); + LODOP.SET_PRINT_STYLEA(text5, "FontSize", 8); + + // 良率(右侧) + const text6 = LODOP.ADD_PRINT_TEXT('15mm', '43mm', '23mm', '3mm', `良率:${printData.yield || ''}%`); + LODOP.SET_PRINT_STYLEA(text6, "FontName", "Microsoft YaHei"); + LODOP.SET_PRINT_STYLEA(text6, "FontSize", 8); }, // A003 标签打印(70mm x 20mm)- 绑定用 @@ -1505,49 +1519,57 @@ export default { LODOP.NEWPAGE(); } + // ============================================================ + // 1. 纸张设置 + // ============================================================ // 设置纸张大小 70mm x 20mm (0=纵向) LODOP.SET_PRINT_PAGESIZE(0, 700, 200, ''); - // 绘制外边框 - LODOP.ADD_PRINT_RECT('2mm', '2mm', '66mm', '16mm', 0, 1); - - // 标题 "绑定用" - const title = LODOP.ADD_PRINT_TEXT('2mm', '2mm', '66mm', '4mm', '绑定用'); - LODOP.SET_PRINT_STYLEA(title, "FontName", "Microsoft YaHei"); - LODOP.SET_PRINT_STYLEA(title, "FontSize", 10); - LODOP.SET_PRINT_STYLEA(title, "Bold", 1); - LODOP.SET_PRINT_STYLEA(title, "Alignment", 2); // 居中 - - // 横线分隔标题 - LODOP.ADD_PRINT_LINE('6mm', '2mm', '6mm', '68mm', 0, 1); - - // 纵线分隔左右 - LODOP.ADD_PRINT_LINE('6mm', '22mm', '18mm', '22mm', 0, 1); + // ============================================================ + // 2. 绘制边框 + // ============================================================ + // 外边框(1mm边距,68mm宽 x 18mm高) + LODOP.ADD_PRINT_RECT('1mm', '1mm', '68mm', '18mm', 0, 1); - // 左侧二维码 - const qrIndex = LODOP.ADD_PRINT_BARCODE('8mm', '3mm', '18mm', '9mm', 'QRCode', printData.rollNo || ''); + // ============================================================ + // 3. 左侧二维码 + // ============================================================ + // 二维码位置:距上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"); - // 右侧信息 - const startX = '23mm'; - const textWidth = '43mm'; + // ============================================================ + // 4. 右侧文字信息(4行) + // ============================================================ + const startX = '23mm'; // 文字左边距 + const textWidth = '43mm'; // 文字区域宽度 - const text1 = LODOP.ADD_PRINT_TEXT('7mm', startX, textWidth, '3mm', `ERP No.: ${printData.partNo || ''}`); + // 第1行:ERP No. + 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", 7); + LODOP.SET_PRINT_STYLEA(text1, "FontSize", 8); - const text2 = LODOP.ADD_PRINT_TEXT('10mm', startX, textWidth, '3mm', `Batch No.: ${printData.batchNo || ''} Reel No.: ${printData.reelNo || ''}`); + // 第2行:Batch No. + Reel No.(左右分布) + // Batch No.(左侧) + const text2 = LODOP.ADD_PRINT_TEXT('7mm', startX, '20mm', '3mm', `Batch No.: ${printData.batchNo || ''}`); LODOP.SET_PRINT_STYLEA(text2, "FontName", "Microsoft YaHei"); - LODOP.SET_PRINT_STYLEA(text2, "FontSize", 7); + LODOP.SET_PRINT_STYLEA(text2, "FontSize", 8); - const text3 = LODOP.ADD_PRINT_TEXT('13mm', startX, textWidth, '3mm', `Good QTY: ${printData.goodQuantity || ''}`); + // Reel No.(右侧) + const text3 = LODOP.ADD_PRINT_TEXT('7mm', '43mm', '23mm', '3mm', `Reel No.: ${printData.reelNo || ''}`); LODOP.SET_PRINT_STYLEA(text3, "FontName", "Microsoft YaHei"); - LODOP.SET_PRINT_STYLEA(text3, "FontSize", 7); + LODOP.SET_PRINT_STYLEA(text3, "FontSize", 8); - const text4 = LODOP.ADD_PRINT_TEXT('16mm', startX, textWidth, '3mm', `Bad QTY: ${printData.badQuantity || ''}`); + // 第3行:Good QTY + const text4 = LODOP.ADD_PRINT_TEXT('11mm', startX, textWidth, '3mm', `Good QTY: ${printData.goodQuantity || ''}`); LODOP.SET_PRINT_STYLEA(text4, "FontName", "Microsoft YaHei"); - LODOP.SET_PRINT_STYLEA(text4, "FontSize", 7); + LODOP.SET_PRINT_STYLEA(text4, "FontSize", 8); + + // 第4行:Bad QTY + const text5 = LODOP.ADD_PRINT_TEXT('15mm', startX, textWidth, '3mm', `Bad QTY: ${printData.badQuantity || ''}`); + LODOP.SET_PRINT_STYLEA(text5, "FontName", "Microsoft YaHei"); + LODOP.SET_PRINT_STYLEA(text5, "FontSize", 8); }, deleteLabels(){ if(this.selectionDataList.length===0){ diff --git a/src/views/modules/yieldReport/com_separate_roll.vue b/src/views/modules/yieldReport/com_separate_roll.vue index f0c3852..0bada69 100644 --- a/src/views/modules/yieldReport/com_separate_roll.vue +++ b/src/views/modules/yieldReport/com_separate_roll.vue @@ -34,7 +34,7 @@ - + @@ -574,10 +574,10 @@ export default { // 每行高度约为32px const rowHeight = 32 const totalHeight = currentRollRows * rowHeight - + // textarea的实际高度约为24px(单行) const textareaHeight = 24 - + // 计算需要的padding-top来实现垂直居中 const paddingTop = (totalHeight - textareaHeight) / 2