Browse Source

2025-11-14

采购标签生成标签打印
master
fengyuan_yang 11 months ago
parent
commit
69b2c90d8c
  1. 121
      src/views/modules/print/PoPartPrint.vue

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

@ -1286,7 +1286,12 @@ export default {
const {data} = await callUspPartLabelTemplate(params); const {data} = await callUspPartLabelTemplate(params);
if (data && data.code === 0) { if (data && data.code === 0) {
printDataList.push(data.row);
// 确保 labelNo 字段存在(统一字段名)
const printData = {
...data.row,
labelNo: data.row.labelNo
};
printDataList.push(printData);
} else { } else {
this.$message.error(`获取标签 ${item.rollNo} 的打印参数失败:${data.msg}`); this.$message.error(`获取标签 ${item.rollNo} 的打印参数失败:${data.msg}`);
this.printLoading = false; this.printLoading = false;
@ -1317,6 +1322,12 @@ export default {
return; return;
} }
// 初始化打印任务
LODOP.PRINT_INIT('物料标签打印');
// 设置打印模式,隐藏水印
LODOP.SET_PRINT_MODE("PRINT_NOCOLLATE", true);
// 设置打印机 // 设置打印机
LODOP.SET_PRINTER_INDEX(this.printDialogData.printerName); LODOP.SET_PRINTER_INDEX(this.printDialogData.printerName);
@ -1337,8 +1348,8 @@ export default {
} }
} }
// 打印
LODOP.PRINT();
// 预览打印(避免水印)
LODOP.PREVIEW();
}, },
// A001 标签打印(70mm x 30mm)- 左边二维码,右边文字信息 // A001 标签打印(70mm x 30mm)- 左边二维码,右边文字信息
@ -1347,46 +1358,92 @@ export default {
LODOP.NEWPAGE(); LODOP.NEWPAGE();
} }
// 设置纸张大小 70mm x 30mm
LODOP.SET_PRINT_PAGESIZE(1, '70mm', '30mm', '');
// ============================================================
// 1. 纸张设置
// ============================================================
// SET_PRINT_PAGESIZE(方向, 宽度, 高度, 纸张名称)
// 方向: 0=纵向, 1=横向
// 宽度/高度: 单位为 1/10 毫米,如 700 = 70mm
LODOP.SET_PRINT_PAGESIZE(0, 700, 300, '');
// 绘制外边框
// ============================================================
// 2. 绘制边框和分隔线
// ============================================================
// ADD_PRINT_RECT(上边距, 左边距, 宽度, 高度, 边框样式, 边框粗细)
// 边框样式: 0=实线
// 边框粗细: 单位为像素
// 外边框(2mm边距,66mm宽 x 26mm高)
LODOP.ADD_PRINT_RECT('2mm', '2mm', '66mm', '26mm', 0, 1); LODOP.ADD_PRINT_RECT('2mm', '2mm', '66mm', '26mm', 0, 1);
// 绘制左右分隔线
// ADD_PRINT_LINE(起点Y, 起点X, 终点Y, 终点X, 线条样式, 线条粗细)
// 线条样式: 0=实线
// 垂直分隔线:左右分隔(从上到下)
// 参数说明:起点(2mm, 22mm) -> 终点(28mm, 22mm)
LODOP.ADD_PRINT_LINE('2mm', '22mm', '28mm', '22mm', 0, 1); LODOP.ADD_PRINT_LINE('2mm', '22mm', '28mm', '22mm', 0, 1);
// 左侧二维码(20mm x 20mm)
const qrIndex = LODOP.ADD_PRINT_BARCODE('5mm', '3mm', '18mm', '18mm', 'QRCode', printData.rollNo || '');
// 水平分隔线1:编码下方
// 参数说明:起点(8mm, 22mm) -> 终点(8mm, 68mm)
LODOP.ADD_PRINT_LINE('8mm', '22mm', '8mm', '68mm', 0, 1);
// 水平分隔线2:型号下方
// 参数说明:起点(13mm, 22mm) -> 终点(13mm, 68mm)
LODOP.ADD_PRINT_LINE('13mm', '22mm', '13mm', '68mm', 0, 1);
// 水平分隔线3:数量下方
// 参数说明:起点(18mm, 22mm) -> 终点(18mm, 68mm)
LODOP.ADD_PRINT_LINE('18mm', '22mm', '18mm', '68mm', 0, 1);
// 水平分隔线4:批号下方
// 参数说明:起点(23mm, 22mm) -> 终点(23mm, 68mm)
LODOP.ADD_PRINT_LINE('23mm', '22mm', '23mm', '68mm', 0, 1);
// ============================================================
// 3. 左侧二维码
// ============================================================
// ADD_PRINT_BARCODE(上边距, 左边距, 宽度, 高度, 条码类型, 条码内容)
// 二维码位置:距上7mm,距左3mm,尺寸20mm x 20mm
const qrIndex = LODOP.ADD_PRINT_BARCODE('7mm', '3mm', '20mm', '20mm', 'QRCode', printData.rollNo || '');
LODOP.SET_PRINT_STYLEA(qrIndex, "QRCodeVersion", 4); LODOP.SET_PRINT_STYLEA(qrIndex, "QRCodeVersion", 4);
LODOP.SET_PRINT_STYLEA(qrIndex, "QRCodeErrorLevel", "M"); LODOP.SET_PRINT_STYLEA(qrIndex, "QRCodeErrorLevel", "M");
// 右侧文字信息(5行)
const startX = '23mm';
const textWidth = '43mm';
// ============================================================
// 4. 右侧文字信息(5行)
// ============================================================
// ADD_PRINT_TEXT(上边距, 左边距, 宽度, 高度, 文字内容)
// 文字起始X位置(左边距)和宽度
const startX = '23mm'; // 可调整:文字左边距,增大向右移,减小向左移
const textWidth = '43mm'; // 可调整:文字区域宽度
// 编码
const text1 = LODOP.ADD_PRINT_TEXT('4mm', startX, textWidth, '4mm', `编码:${printData.partCode || printData.partNo || ''}`);
// 编码(第1行)
// 上边距4mm:可调整,增大向下移,减小向上移
const text1 = LODOP.ADD_PRINT_TEXT('4mm', startX, textWidth, '4mm', `编码:${printData.partNo || ''}`);
LODOP.SET_PRINT_STYLEA(text1, "FontName", "Microsoft YaHei"); LODOP.SET_PRINT_STYLEA(text1, "FontName", "Microsoft YaHei");
LODOP.SET_PRINT_STYLEA(text1, "FontSize", 8);
LODOP.SET_PRINT_STYLEA(text1, "FontSize", 8); // 可调整:字体大小
// 型号
const text2 = LODOP.ADD_PRINT_TEXT('9mm', startX, textWidth, '4mm', `型号:${printData.partModel || ''}`);
// 型号(第2行)
// 上边距9mm:可调整
const text2 = LODOP.ADD_PRINT_TEXT('9mm', startX, textWidth, '4mm', `型号:${printData.spec || ''}`);
LODOP.SET_PRINT_STYLEA(text2, "FontName", "Microsoft YaHei"); LODOP.SET_PRINT_STYLEA(text2, "FontName", "Microsoft YaHei");
LODOP.SET_PRINT_STYLEA(text2, "FontSize", 8); LODOP.SET_PRINT_STYLEA(text2, "FontSize", 8);
// 数量
const text3 = LODOP.ADD_PRINT_TEXT('14mm', startX, textWidth, '4mm', `数量:${printData.qty || printData.rollQty || ''}`);
// 数量(第3行)
// 上边距14mm:可调整
const text3 = LODOP.ADD_PRINT_TEXT('14mm', startX, textWidth, '4mm', `数量:${printData.quantity || ''}`);
LODOP.SET_PRINT_STYLEA(text3, "FontName", "Microsoft YaHei"); LODOP.SET_PRINT_STYLEA(text3, "FontName", "Microsoft YaHei");
LODOP.SET_PRINT_STYLEA(text3, "FontSize", 8); LODOP.SET_PRINT_STYLEA(text3, "FontSize", 8);
// 批号
// 批号(第4行)
// 上边距19mm:可调整
const text4 = LODOP.ADD_PRINT_TEXT('19mm', startX, textWidth, '4mm', `批号:${printData.batchNo || ''}`); const text4 = LODOP.ADD_PRINT_TEXT('19mm', startX, textWidth, '4mm', `批号:${printData.batchNo || ''}`);
LODOP.SET_PRINT_STYLEA(text4, "FontName", "Microsoft YaHei"); LODOP.SET_PRINT_STYLEA(text4, "FontName", "Microsoft YaHei");
LODOP.SET_PRINT_STYLEA(text4, "FontSize", 8); LODOP.SET_PRINT_STYLEA(text4, "FontSize", 8);
// 日期
const text5 = LODOP.ADD_PRINT_TEXT('24mm', startX, textWidth, '4mm', `日期:${printData.productionDate || ''}`);
// 日期(第5行)
// 上边距24mm:可调整
const text5 = LODOP.ADD_PRINT_TEXT('24mm', startX, textWidth, '4mm', `日期:${printData.documentDate || ''}`);
LODOP.SET_PRINT_STYLEA(text5, "FontName", "Microsoft YaHei"); LODOP.SET_PRINT_STYLEA(text5, "FontName", "Microsoft YaHei");
LODOP.SET_PRINT_STYLEA(text5, "FontSize", 8); LODOP.SET_PRINT_STYLEA(text5, "FontSize", 8);
}, },
@ -1397,8 +1454,8 @@ export default {
LODOP.NEWPAGE(); LODOP.NEWPAGE();
} }
// 设置纸张大小 70mm x 20mm
LODOP.SET_PRINT_PAGESIZE(1, '70mm', '20mm', '');
// 设置纸张大小 70mm x 20mm (0=纵向)
LODOP.SET_PRINT_PAGESIZE(0, 700, 200, '');
// 绘制外边框 // 绘制外边框
LODOP.ADD_PRINT_RECT('2mm', '2mm', '66mm', '16mm', 0, 1); LODOP.ADD_PRINT_RECT('2mm', '2mm', '66mm', '16mm', 0, 1);
@ -1425,7 +1482,7 @@ export default {
const startX = '23mm'; const startX = '23mm';
const textWidth = '43mm'; const textWidth = '43mm';
const text1 = LODOP.ADD_PRINT_TEXT('7mm', startX, textWidth, '3mm', `ERP No.: ${printData.erpNo || ''}`);
const text1 = LODOP.ADD_PRINT_TEXT('7mm', startX, textWidth, '3mm', `ERP No.: ${printData.partNo || ''}`);
LODOP.SET_PRINT_STYLEA(text1, "FontName", "Microsoft YaHei"); LODOP.SET_PRINT_STYLEA(text1, "FontName", "Microsoft YaHei");
LODOP.SET_PRINT_STYLEA(text1, "FontSize", 7); LODOP.SET_PRINT_STYLEA(text1, "FontSize", 7);
@ -1433,11 +1490,11 @@ export default {
LODOP.SET_PRINT_STYLEA(text2, "FontName", "Microsoft YaHei"); LODOP.SET_PRINT_STYLEA(text2, "FontName", "Microsoft YaHei");
LODOP.SET_PRINT_STYLEA(text2, "FontSize", 7); LODOP.SET_PRINT_STYLEA(text2, "FontSize", 7);
const text3 = LODOP.ADD_PRINT_TEXT('13mm', startX, textWidth, '3mm', `Good QTY: ${printData.goodQty || ''} pcs`);
const text3 = LODOP.ADD_PRINT_TEXT('13mm', startX, textWidth, '3mm', `Good QTY: ${printData.goodQuantity || ''}`);
LODOP.SET_PRINT_STYLEA(text3, "FontName", "Microsoft YaHei"); LODOP.SET_PRINT_STYLEA(text3, "FontName", "Microsoft YaHei");
LODOP.SET_PRINT_STYLEA(text3, "FontSize", 7); LODOP.SET_PRINT_STYLEA(text3, "FontSize", 7);
const text4 = LODOP.ADD_PRINT_TEXT('16mm', startX, textWidth, '3mm', `Bad QTY: ${printData.badQty || ''} pcs`);
const text4 = LODOP.ADD_PRINT_TEXT('16mm', startX, textWidth, '3mm', `Bad QTY: ${printData.badQuantity || ''}`);
LODOP.SET_PRINT_STYLEA(text4, "FontName", "Microsoft YaHei"); LODOP.SET_PRINT_STYLEA(text4, "FontName", "Microsoft YaHei");
LODOP.SET_PRINT_STYLEA(text4, "FontSize", 7); LODOP.SET_PRINT_STYLEA(text4, "FontSize", 7);
}, },
@ -1448,8 +1505,8 @@ export default {
LODOP.NEWPAGE(); LODOP.NEWPAGE();
} }
// 设置纸张大小 70mm x 20mm
LODOP.SET_PRINT_PAGESIZE(1, '70mm', '20mm', '');
// 设置纸张大小 70mm x 20mm (0=纵向)
LODOP.SET_PRINT_PAGESIZE(0, 700, 200, '');
// 绘制外边框 // 绘制外边框
LODOP.ADD_PRINT_RECT('2mm', '2mm', '66mm', '16mm', 0, 1); LODOP.ADD_PRINT_RECT('2mm', '2mm', '66mm', '16mm', 0, 1);
@ -1476,7 +1533,7 @@ export default {
const startX = '23mm'; const startX = '23mm';
const textWidth = '43mm'; const textWidth = '43mm';
const text1 = LODOP.ADD_PRINT_TEXT('7mm', startX, textWidth, '3mm', `ERP No.: ${printData.erpNo || ''}`);
const text1 = LODOP.ADD_PRINT_TEXT('7mm', startX, textWidth, '3mm', `ERP No.: ${printData.partNo || ''}`);
LODOP.SET_PRINT_STYLEA(text1, "FontName", "Microsoft YaHei"); LODOP.SET_PRINT_STYLEA(text1, "FontName", "Microsoft YaHei");
LODOP.SET_PRINT_STYLEA(text1, "FontSize", 7); LODOP.SET_PRINT_STYLEA(text1, "FontSize", 7);
@ -1484,11 +1541,11 @@ export default {
LODOP.SET_PRINT_STYLEA(text2, "FontName", "Microsoft YaHei"); LODOP.SET_PRINT_STYLEA(text2, "FontName", "Microsoft YaHei");
LODOP.SET_PRINT_STYLEA(text2, "FontSize", 7); LODOP.SET_PRINT_STYLEA(text2, "FontSize", 7);
const text3 = LODOP.ADD_PRINT_TEXT('13mm', startX, textWidth, '3mm', `Good QTY: ${printData.goodQty || ''} pcs`);
const text3 = LODOP.ADD_PRINT_TEXT('13mm', startX, textWidth, '3mm', `Good QTY: ${printData.goodQuantity || ''}`);
LODOP.SET_PRINT_STYLEA(text3, "FontName", "Microsoft YaHei"); LODOP.SET_PRINT_STYLEA(text3, "FontName", "Microsoft YaHei");
LODOP.SET_PRINT_STYLEA(text3, "FontSize", 7); LODOP.SET_PRINT_STYLEA(text3, "FontSize", 7);
const text4 = LODOP.ADD_PRINT_TEXT('16mm', startX, textWidth, '3mm', `Bad QTY: ${printData.badQty || ''} pcs`);
const text4 = LODOP.ADD_PRINT_TEXT('16mm', startX, textWidth, '3mm', `Bad QTY: ${printData.badQuantity || ''}`);
LODOP.SET_PRINT_STYLEA(text4, "FontName", "Microsoft YaHei"); LODOP.SET_PRINT_STYLEA(text4, "FontName", "Microsoft YaHei");
LODOP.SET_PRINT_STYLEA(text4, "FontSize", 7); LODOP.SET_PRINT_STYLEA(text4, "FontSize", 7);
}, },

Loading…
Cancel
Save