From 4ad694e64fab995d56e436b4f178b3a44059daef Mon Sep 17 00:00:00 2001 From: fengyuan_yang <1976974459@qq.com> Date: Sun, 4 Jan 2026 14:55:56 +0800 Subject: [PATCH] =?UTF-8?q?2026-01-04=20=E5=9B=BA=E5=AE=9A=E8=BD=BD?= =?UTF-8?q?=E5=85=B7=E6=89=93=E5=8D=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/utils/LodopFuncs.js | 2 +- .../modules/yieldReport/com_separate_roll.vue | 128 ++++++------------ 2 files changed, 40 insertions(+), 90 deletions(-) diff --git a/src/utils/LodopFuncs.js b/src/utils/LodopFuncs.js index c58d646..85277c0 100644 --- a/src/utils/LodopFuncs.js +++ b/src/utils/LodopFuncs.js @@ -114,7 +114,7 @@ function getLodop(oOBJECT, oEMBED) { } catch (err) {} if (!LODOP) { - logger.info("LodopFuncs.js getLodop no CLodop"); + console.log("LodopFuncs.js getLodop no CLodop"); MessageBox({ title: '打印组件', type: 'warning', diff --git a/src/views/modules/yieldReport/com_separate_roll.vue b/src/views/modules/yieldReport/com_separate_roll.vue index 412fdab..fc15526 100644 --- a/src/views/modules/yieldReport/com_separate_roll.vue +++ b/src/views/modules/yieldReport/com_separate_roll.vue @@ -1043,100 +1043,50 @@ export default { // 打印固定载具 printCarrier(row) { - // 构造打印数据 - const printData = { - carrierNo: row.carrierNo, - carrierTypeName: row.carrierTypeName, - specification: row.specification, - dimensions: row.dimensions, - availableQty: row.availableQty || 0, - site: this.scheduleData.site + const LODOP = getLodop() + if (!LODOP) { + this.$message.error('未检测到打印控件,请安装CLodop打印控件!') + return } - // 调用打印功能 - this.printCarrierLabel(printData) - }, - - // 打印载具标签 - printCarrierLabel(data) { try { - // 生成二维码(使用 QRCode.js 或者使用在线二维码API) - const qrCodeUrl = `https://api.qrserver.com/v1/create-qr-code/?size=120x120&data=${encodeURIComponent(data.carrierNo)}` - - // 打印HTML模板 - const printContent = ` -
- -
- QR Code -
- - -
- 固定载具标签 -
- - - - - - - - - - - - - - - - - - - - - - - -
标签条码:${data.carrierNo || ''}
载具类型:${data.carrierTypeName || ''}
规格描述:${data.specification || ''}
尺寸:${data.dimensions || ''}
可用数量:${data.availableQty}
- - -
- 打印时间: ${this.dayjs(new Date()).format('YYYY-MM-DD HH:mm:ss')} -
-
- ` - - // 创建打印窗口 - const printWindow = window.open('', '_blank') - printWindow.document.write(` - - - 打印固定载具标签 - - - - - ${printContent} - - - `) - printWindow.document.close() - - // 延迟打印,确保二维码图片加载完成 - setTimeout(() => { - printWindow.print() - printWindow.close() - }, 500) + // 初始化打印 + LODOP.PRINT_INIT('固定载具标签打印') + + // 设置纸张尺寸:70mm x 20mm + LODOP.SET_PRINT_PAGESIZE(0, 700, 200, '') + + // 绘制外边框 + LODOP.ADD_PRINT_RECT('1mm', '1mm', '68mm', '18mm', 0, 1) + + // 绘制中间竖线(左右分隔) + LODOP.ADD_PRINT_LINE('1mm', '50mm', '19mm', '50mm', 0, 1) + + // 绘制左侧横线(标签条码和可用数量之间的分隔) + LODOP.ADD_PRINT_LINE('10mm', '1mm', '10mm', '50mm', 0, 1) + + // 左侧文字信息 - 标签条码 + const text1 = LODOP.ADD_PRINT_TEXT('4.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, "Bold", 1) + + // 左侧文字信息 - 可用数量 + const text2 = LODOP.ADD_PRINT_TEXT('13.5mm', '2mm', '46mm', '5mm', '可用数量: ' + (row.availableQty || 0)) + LODOP.SET_PRINT_STYLEA(text2, "FontName", "Microsoft YaHei") + LODOP.SET_PRINT_STYLEA(text2, "FontSize", 8) + LODOP.SET_PRINT_STYLEA(text2, "Bold", 1) + + // 右侧二维码(使用 LODOP 原生二维码) + const qrIndex = LODOP.ADD_PRINT_BARCODE('1.5mm', '51mm', '19mm', '19mm', 'QRCode', row.carrierNo || '') + LODOP.SET_PRINT_STYLEA(qrIndex, "QRCodeVersion", 4) + LODOP.SET_PRINT_STYLEA(qrIndex, "QRCodeErrorLevel", "M") + + // 执行打印 + LODOP.PRINT() - this.$message.success('正在打印载具标签...') } catch (error) { + console.error('打印失败:', error) this.$message.error('打印失败: ' + error.message) } },