Browse Source

2025-12-02

机台工作台异常下机调用打印功能
master
fengyuan_yang 1 month ago
parent
commit
228fff3fda
  1. 101
      src/views/modules/yieldReport/com_abnormal_material_offline.vue

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

@ -116,10 +116,13 @@
import {
materialReturnDuringProduction
} from '@/api/yieldReport/com_abnormal_material_offline.js';
import getLodop from '@/utils/LodopFuncs.js'; //
import labelPrintTemplates from '@/mixins/labelPrintTemplates.js'; // mixin
var functionId = 'C10000019';
export default {
mixins: [labelPrintTemplates], // mixin
data() {
return {
titleCon: '异常下机',
@ -238,7 +241,7 @@ export default {
orderNo: this.pageData.orderNo,
itemNo: this.pageData.itemNo,
seqNo: this.pageData.seqNo,
rollNo: this.pageData.rollNo,
rollNo: this.pageData.rmRollNo,
returnQty: this.pageData.returnQty,
histSeqNo: this.pageData.histSeqNo,
operatorId: this.pageData.operatorId,
@ -250,6 +253,21 @@ export default {
//
if(data.code == 500 || data.code == 400){
this.$message.error(data.msg || data.message);
} else if (data.code == 201) {
// code=201
this.$message.success(data.msg || '操作成功');
// printData
if (data.printData) {
//
const printDataList = [data.printData];
this.executePrint(printDataList);
} else {
console.warn('未获取到打印参数');
}
//
this.closeDialog();
} else {
//
this.$message.success(data.msg || data.message || '操作成功');
@ -260,6 +278,87 @@ export default {
this.$message.error('操作失败:' + (error.message || '未知错误'));
});
},
/**
* 执行打印直接使用存储过程返回的打印参数
* @param {Array} printDataList - 存储过程返回的打印数据列表
*/
executePrint(printDataList) {
try {
// 1. LODOP
const LODOP = getLodop();
if (!LODOP) {
this.$message.warning('无法连接到打印控件,跳过打印');
return;
}
// 2.
const printerCount = LODOP.GET_PRINTER_COUNT();
if (printerCount === 0) {
this.$message.warning('未检测到打印机,跳过打印');
return;
}
const defaultPrinterName = LODOP.GET_PRINTER_NAME(0);
// 3. labelNo
if (!printDataList || printDataList.length === 0) {
console.warn('打印数据为空');
return;
}
// labelNo
const labelNo = printDataList[0].labelNo;
if (!labelNo) {
console.warn('未找到标签模板编号');
return;
}
// 4.
this.executePrintWithTemplate(LODOP, printDataList, labelNo, defaultPrinterName);
this.$message.success('标签打印任务已发送!');
} catch (error) {
console.error('打印失败:', error);
this.$message.warning('打印失败: ' + error.message);
}
},
/**
* 执行模板打印
* @param {Object} LODOP - 打印控件对象
* @param {Array} printDataList - 打印数据列表
* @param {String} labelNo - 标签模板编号 (A001/A002/A003)
* @param {String} printerName - 打印机名称
*/
executePrintWithTemplate(LODOP, printDataList, labelNo, printerName) {
LODOP.PRINT_INIT('异常下机标签打印');
//
LODOP.SET_PRINT_MODE("PRINT_NOCOLLATE", true);
//
LODOP.SET_PRINTER_INDEX(printerName);
//
for (let i = 0; i < printDataList.length; i++) {
const printData = printDataList[i];
const isNewPage = i > 0;
// labelNo labelPrintTemplates mixin
if (labelNo === 'A001') {
this.printLabelA001(LODOP, printData, isNewPage);
} else if (labelNo === 'A002') {
this.printLabelA002(LODOP, printData, isNewPage);
} else if (labelNo === 'A003') {
this.printLabelA003(LODOP, printData, isNewPage);
} else {
console.warn(`未知的标签模板:${labelNo}`);
}
}
//
LODOP.PREVIEW();
},
},
}
</script>

Loading…
Cancel
Save