diff --git a/src/views/modules/boxManage/saleBoxManage.vue b/src/views/modules/boxManage/saleBoxManage.vue index 1870e13..49de349 100644 --- a/src/views/modules/boxManage/saleBoxManage.vue +++ b/src/views/modules/boxManage/saleBoxManage.vue @@ -51,7 +51,7 @@ - + @@ -170,6 +170,7 @@ 新增 删除 + 打印 盒标签张数: @@ -188,7 +189,7 @@ @@ -254,7 +255,7 @@ { const windowHeight = window.innerHeight; // 根据搜索条件展开状态动态计算 - const headerHeight = this.searchExpanded ? 220 : 154; - this.tableHeight = (windowHeight - headerHeight - 178) / 2; - this.height = this.tableHeight; + const headerHeight = this.searchExpanded ? 220 : 152; + this.tableHeight = (windowHeight - headerHeight - 162) / 2; + this.height = this.tableHeight - 51; }); }, // 切换搜索展开/收起 @@ -992,7 +994,7 @@ export default { orderNo: this.currentRow.orderNo, saleOrderNo: this.currentRow.relatedOrderNo || '', // 销售订单号,用于生成箱号 boxType: this.currentRow.orderType, - height:Number(this.height)-25, + height: this.height, orderStatus: this.currentRow.orderStatus } this.$refs.boxing.init(inData) @@ -1015,7 +1017,7 @@ export default { buNo: this.currentRow ? this.currentRow.buNo : '', orderNo: this.currentRow ? this.currentRow.orderNo : '', palletType: this.currentRow ? this.currentRow.orderType : '', - height: Number(this.height)-25, + height: this.height, orderStatus: this.currentRow ? this.currentRow.orderStatus : '' } this.$refs.pallet.init(inData) @@ -1394,6 +1396,84 @@ export default { } }, + // 打印选中的盒清单卷标签 + async printSelectedCases(){ + if(this.selectedCaseRecords.length === 0){ + this.$message.warning('请先选择要打印的记录') + return + } + + this.printCasesLoading = true + try { + // 1. 获取 LODOP 打印控件 + const LODOP = getLodop() + if (!LODOP) { + this.$message.error('无法连接到打印控件,请确保已安装并启动 CLodop!') + this.printCasesLoading = false + return + } + + // 2. 获取默认打印机 + const printerCount = LODOP.GET_PRINTER_COUNT() + if (printerCount <= 0) { + this.$message.error('未检测到打印机,请确保已安装并连接打印机!') + this.printCasesLoading = false + return + } + + // 3. 循环调用存储过程获取打印参数并打印 + for (const caseRecord of this.selectedCaseRecords) { + const params = { + site: this.currentRow.site, + buNo: this.currentRow.buNo, + menuID: this.$route.meta.menuId, + relatedOrderNo: this.currentRow.orderNo, + relatedOrderLineNo: this.currentRow.relatedOrderLineNo || '', + documentNo: this.currentRow.orderNo, + partNo: caseRecord.partNo, + labelNo: '', + rollNo: caseRecord.rollNo + } + + const {data: printData} = await callUspPartLabelTemplate(params) + if (printData && printData.code === 0 && printData.row) { + const labelData = printData.row + + // 初始化打印任务 + LODOP.PRINT_INIT('卷标签打印_' + caseRecord.rollNo) + LODOP.SET_PRINT_MODE("PRINT_NOCOLLATE", true) + + // 根据 labelNo 调用不同的打印方法 + if (labelData.labelNo === 'A001') { + await this.printLabelA001(LODOP, labelData, false) + } else if (labelData.labelNo === 'A002') { + this.printLabelA002(LODOP, labelData, false) + } else if (labelData.labelNo === 'A003') { + this.printLabelA003(LODOP, labelData, false) + } else if (labelData.labelNo === 'A004') { + this.printLabelA004(LODOP, labelData, false) + } else { + console.warn(`未知的标签模板:${labelData.labelNo},跳过该标签`) + continue + } + + // 执行打印 + LODOP.PRINT() + console.log(`标签已发送打印, 卷号: ${caseRecord.rollNo}`) + } else { + console.warn(`获取卷号 ${caseRecord.rollNo} 的打印参数失败`) + } + } + + this.$message.success('打印任务已发送!') + } catch (error) { + console.error('打印标签失败:', error) + this.$message.error('打印标签失败: ' + (error.message || '请重试')) + } finally { + this.printCasesLoading = false + } + }, + async deleteCaseRecord(){ if(this.selectedCaseRecords.length === 0){ this.$message.warning('请先选择要删除的记录')