Browse Source

2025-12-29

打印模板A002优化调整
master
fengyuan_yang 2 weeks ago
parent
commit
8074d5d83c
  1. 90
      src/mixins/labelPrintTemplates.js
  2. 4
      src/views/modules/print/PoPartPrint.vue
  3. 4
      src/views/modules/print/rePrintPoPart.vue

90
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);
// 二维码区域:上下左贴合边框,右贴合文字区域
// 边框从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);
// 二维码区域:上下左贴合边框,右贴合文字区域
// 边框从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);
}
}
}

4
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}`);
}

4
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}`);
}

Loading…
Cancel
Save