Browse Source

2026-01-07

固定载具标签优化、固定打印模板A004优化
master
fengyuan_yang 6 months ago
parent
commit
8938954dd7
  1. 56
      src/mixins/labelPrintTemplates.js
  2. 23
      src/views/modules/fixedCarrier/fixedCarrier.vue
  3. 2
      src/views/modules/print/PoPartPrint.vue
  4. 2
      src/views/modules/print/rePrintPoPart.vue
  5. 2
      src/views/modules/shopOrder/productionReport/searchSfdcRollsReport.vue
  6. 2
      src/views/modules/yieldReport/com_abnormal_continue_roll.vue
  7. 2
      src/views/modules/yieldReport/com_abnormal_material_offline.vue
  8. 2
      src/views/modules/yieldReport/com_cutting_material.vue
  9. 2
      src/views/modules/yieldReport/com_material_loss.vue
  10. 2
      src/views/modules/yieldReport/com_produce_report_normal.vue
  11. 25
      src/views/modules/yieldReport/com_separate_roll.vue

56
src/mixins/labelPrintTemplates.js

@ -2,7 +2,7 @@ import QRCode from 'qrcode';
/**
* 标签打印模板 Mixin
* 提供 A001A002A003 种标签打印模板的通用方法
* 提供 A001A002A003A004 种标签打印模板的通用方法
*/
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);
}
}
}

23
src/views/modules/fixedCarrier/fixedCarrier.vue

@ -562,21 +562,28 @@ export default {
// 线
LODOP.ADD_PRINT_LINE('1mm', '50mm', '19mm', '50mm', 0, 1)
// 线
LODOP.ADD_PRINT_LINE('10mm', '1mm', '10mm', '50mm', 0, 1)
// 线
LODOP.ADD_PRINT_LINE('7mm', '1mm', '7mm', '50mm', 0, 1)
LODOP.ADD_PRINT_LINE('13mm', '1mm', '13mm', '50mm', 0, 1)
// -
const text1 = LODOP.ADD_PRINT_TEXT('4.5mm', '2mm', '46mm', '5mm', '标签条码: ' + (carrier.carrierNo || ''))
// -
const text1 = LODOP.ADD_PRINT_TEXT('2.5mm', '2mm', '46mm', '5mm', '标签条码: ' + (carrier.carrierNo || ''))
LODOP.SET_PRINT_STYLEA(text1, "FontName", "Microsoft YaHei")
LODOP.SET_PRINT_STYLEA(text1, "FontSize", 8)
LODOP.SET_PRINT_STYLEA(text1, "FontSize", 7)
LODOP.SET_PRINT_STYLEA(text1, "Bold", 1)
// -
const text2 = LODOP.ADD_PRINT_TEXT('13.5mm', '2mm', '46mm', '5mm', '可用数量: ' + (carrier.availableQty || 0))
// -
const text2 = LODOP.ADD_PRINT_TEXT('8.5mm', '2mm', '46mm', '5mm', '类型编码: ' + (carrier.carrierTypeCode || ''))
LODOP.SET_PRINT_STYLEA(text2, "FontName", "Microsoft YaHei")
LODOP.SET_PRINT_STYLEA(text2, "FontSize", 8)
LODOP.SET_PRINT_STYLEA(text2, "FontSize", 7)
LODOP.SET_PRINT_STYLEA(text2, "Bold", 1)
// -
const text3 = LODOP.ADD_PRINT_TEXT('14.5mm', '2mm', '46mm', '5mm', '类型名称: ' + (carrier.carrierTypeName || ''))
LODOP.SET_PRINT_STYLEA(text3, "FontName", "Microsoft YaHei")
LODOP.SET_PRINT_STYLEA(text3, "FontSize", 7)
LODOP.SET_PRINT_STYLEA(text3, "Bold", 1)
// 使 LODOP
const qrIndex = LODOP.ADD_PRINT_BARCODE('1.5mm', '51mm', '19mm', '19mm', 'QRCode', carrier.carrierNo || '')
LODOP.SET_PRINT_STYLEA(qrIndex, "QRCodeVersion", 4)

2
src/views/modules/print/PoPartPrint.vue

@ -1470,6 +1470,8 @@ export default {
await this.printLabelA002(LODOP, printData, i > 0 || times > 0);
} else if(printData.labelNo === 'A003'){
await this.printLabelA003(LODOP, printData, i > 0 || times > 0);
} else if(printData.labelNo === 'A004'){
this.printLabelA004(LODOP, printData, i > 0 || times > 0);
} else {
this.$message.warning(`未知的标签模板:${printData.labelNo}`);
}

2
src/views/modules/print/rePrintPoPart.vue

@ -1240,6 +1240,8 @@ export default {
await this.printLabelA002(LODOP, printData, i > 0 || times > 0);
} else if(printData.labelNo === 'A003'){
await this.printLabelA003(LODOP, printData, i > 0 || times > 0);
} else if(printData.labelNo === 'A004'){
this.printLabelA004(LODOP, printData, i > 0 || times > 0);
} else {
this.$message.warning(`未知的标签模板:${printData.labelNo}`);
}

2
src/views/modules/shopOrder/productionReport/searchSfdcRollsReport.vue

@ -1173,6 +1173,8 @@ import labelPrintTemplates from '@/mixins/labelPrintTemplates.js';
this.printLabelA002(LODOP, printData, i > 0 || times > 0);
} else if(printData.labelNo === 'A003'){
this.printLabelA003(LODOP, printData, i > 0 || times > 0);
} else if(printData.labelNo === 'A004'){
this.printLabelA004(LODOP, printData, i > 0 || times > 0);
} else {
this.$message.warning(`未知的标签模板:${printData.labelNo}`);
}

2
src/views/modules/yieldReport/com_abnormal_continue_roll.vue

@ -491,6 +491,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 {
console.warn(`未知的标签模板:${labelNo},跳过该标签`);
continue;

2
src/views/modules/yieldReport/com_abnormal_material_offline.vue

@ -349,6 +349,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 {
console.warn(`未知的标签模板:${labelNo}`);
continue;

2
src/views/modules/yieldReport/com_cutting_material.vue

@ -374,6 +374,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 {
console.warn(`未知的标签模板:${labelNo},跳过该标签`);
continue;

2
src/views/modules/yieldReport/com_material_loss.vue

@ -349,6 +349,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 {
console.warn(`未知的标签模板:${labelNo}`);
continue;

2
src/views/modules/yieldReport/com_produce_report_normal.vue

@ -4955,6 +4955,8 @@ export default {
this.printLabelA002(LODOP, printData, false);
} else if (printData.labelNo === 'A003') {
this.printLabelA003(LODOP, printData, false);
} else if (printData.labelNo === 'A004') {
this.printLabelA004(LODOP, printData, false);
} else {
this.$message.warning(`未知的标签模板:${printData.labelNo}`);
continue;

25
src/views/modules/yieldReport/com_separate_roll.vue

@ -1062,21 +1062,28 @@ export default {
// 线
LODOP.ADD_PRINT_LINE('1mm', '50mm', '19mm', '50mm', 0, 1)
// 线
LODOP.ADD_PRINT_LINE('10mm', '1mm', '10mm', '50mm', 0, 1)
// 线
LODOP.ADD_PRINT_LINE('7mm', '1mm', '7mm', '50mm', 0, 1)
LODOP.ADD_PRINT_LINE('13mm', '1mm', '13mm', '50mm', 0, 1)
// -
const text1 = LODOP.ADD_PRINT_TEXT('4.5mm', '2mm', '46mm', '5mm', '标签条码: ' + (row.carrierNo || ''))
// -
const text1 = LODOP.ADD_PRINT_TEXT('2.5mm', '2mm', '46mm', '5mm', '标签条码: ' + (row.carrierNo || ''))
LODOP.SET_PRINT_STYLEA(text1, "FontName", "Microsoft YaHei")
LODOP.SET_PRINT_STYLEA(text1, "FontSize", 8)
LODOP.SET_PRINT_STYLEA(text1, "FontSize", 7)
LODOP.SET_PRINT_STYLEA(text1, "Bold", 1)
// -
const text2 = LODOP.ADD_PRINT_TEXT('13.5mm', '2mm', '46mm', '5mm', '可用数量: ' + (row.availableQty || 0))
// -
const text2 = LODOP.ADD_PRINT_TEXT('8.5mm', '2mm', '46mm', '5mm', '类型编码: ' + (row.carrierTypeCode || ''))
LODOP.SET_PRINT_STYLEA(text2, "FontName", "Microsoft YaHei")
LODOP.SET_PRINT_STYLEA(text2, "FontSize", 8)
LODOP.SET_PRINT_STYLEA(text2, "FontSize", 7)
LODOP.SET_PRINT_STYLEA(text2, "Bold", 1)
// -
const text3 = LODOP.ADD_PRINT_TEXT('14.5mm', '2mm', '46mm', '5mm', '类型名称: ' + (row.carrierTypeName || ''))
LODOP.SET_PRINT_STYLEA(text3, "FontName", "Microsoft YaHei")
LODOP.SET_PRINT_STYLEA(text3, "FontSize", 7)
LODOP.SET_PRINT_STYLEA(text3, "Bold", 1)
// 使 LODOP
const qrIndex = LODOP.ADD_PRINT_BARCODE('1.5mm', '51mm', '19mm', '19mm', 'QRCode', row.carrierNo || '')
LODOP.SET_PRINT_STYLEA(qrIndex, "QRCodeVersion", 4)
@ -1435,6 +1442,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 {
console.warn(`未知的标签模板:${labelNo},跳过该标签`);
continue;

Loading…
Cancel
Save