|
|
|
@ -442,6 +442,7 @@ |
|
|
|
label="操作"> |
|
|
|
<template slot-scope="scope"> |
|
|
|
<!-- <a class="customer-a" @click="deleteSfdcMaterialHist(scope.row)">删除</a>--> |
|
|
|
<a class="customer-a" @click="printMaterialLabel(scope.row)">打印</a> |
|
|
|
<a class="customer-a" v-if="operatorData.operatorName != '' && scope.row.rollNo != '*' && scope.row.sAPBOMItemNo >= 0 |
|
|
|
&& scope.row.finishedFlag == 'N' && scope.row.histType == '发料'" |
|
|
|
@click="replaceMaterialModal(scope.row)">换料</a> |
|
|
|
@ -4838,6 +4839,73 @@ export default { |
|
|
|
} |
|
|
|
}, |
|
|
|
|
|
|
|
/** |
|
|
|
* 打印材料清单中的卷标签 |
|
|
|
* @param {Object} row - 材料清单行数据 |
|
|
|
*/ |
|
|
|
async printMaterialLabel(row) { |
|
|
|
try { |
|
|
|
// 1. 获取 LODOP 打印控件 |
|
|
|
const LODOP = getLodop(); |
|
|
|
if (!LODOP) { |
|
|
|
this.$message.error('无法连接到打印控件,请确保已安装并启动 CLodop!'); |
|
|
|
return; |
|
|
|
} |
|
|
|
|
|
|
|
// 2. 获取默认打印机 |
|
|
|
const printerCount = LODOP.GET_PRINTER_COUNT(); |
|
|
|
if (printerCount <= 0) { |
|
|
|
this.$message.error('未检测到打印机,请确保已安装并连接打印机!'); |
|
|
|
return; |
|
|
|
} |
|
|
|
|
|
|
|
// 3. 调用存储过程获取打印参数 |
|
|
|
const params = { |
|
|
|
site: this.scheduleData.site, |
|
|
|
buNo: this.scheduleData.buNo, |
|
|
|
menuID: '104003006', |
|
|
|
relatedOrderNo: this.scheduleData.orderNo, |
|
|
|
relatedOrderLineNo: this.scheduleData.seqNo, |
|
|
|
documentNo: '', |
|
|
|
partNo: row.partNo, |
|
|
|
labelNo: '', |
|
|
|
rollNo: row.rmRollNo |
|
|
|
}; |
|
|
|
|
|
|
|
const {data: printData} = await callUspPartLabelTemplate(params); |
|
|
|
if (printData && printData.code === 0 && printData.row) { |
|
|
|
const labelData = printData.row; |
|
|
|
|
|
|
|
// 初始化打印任务 |
|
|
|
LODOP.PRINT_INIT('材料卷标签打印_' + row.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 { |
|
|
|
this.$message.warning(`未知的标签模板:${labelData.labelNo}`); |
|
|
|
return; |
|
|
|
} |
|
|
|
|
|
|
|
// 执行打印 |
|
|
|
LODOP.PRINT(); |
|
|
|
this.$message.success('打印任务已发送!'); |
|
|
|
} else { |
|
|
|
this.$message.error(printData.msg || '获取打印参数失败'); |
|
|
|
} |
|
|
|
} catch (error) { |
|
|
|
console.error('打印材料标签失败:', error); |
|
|
|
this.$message.error('打印失败: ' + (error.message || '请重试')); |
|
|
|
} |
|
|
|
}, |
|
|
|
|
|
|
|
/** |
|
|
|
* 使用模板打印标签(优化版) |
|
|
|
* @param {Array} printList - 打印数据列表 |
|
|
|
|