|
|
@ -48,10 +48,12 @@ import { |
|
|
processCuttingMaterialRoll, |
|
|
processCuttingMaterialRoll, |
|
|
} from "@/api/yieldReport/com_cutting_material.js"; |
|
|
} from "@/api/yieldReport/com_cutting_material.js"; |
|
|
|
|
|
|
|
|
/*打印标签专用的js*/ |
|
|
|
|
|
import { |
|
|
import { |
|
|
printMaterialLabel, |
|
|
|
|
|
} from "@/views/modules/yieldReport/print_roll_label.js" |
|
|
|
|
|
|
|
|
callUspPartLabelTemplate |
|
|
|
|
|
} from '@/api/wms/wms'; |
|
|
|
|
|
|
|
|
|
|
|
import getLodop from '@/utils/LodopFuncs.js'; |
|
|
|
|
|
import labelPrintTemplates from '@/mixins/labelPrintTemplates.js'; |
|
|
|
|
|
|
|
|
import { |
|
|
import { |
|
|
searchSysLanguagePackList, |
|
|
searchSysLanguagePackList, |
|
|
@ -69,6 +71,7 @@ import { |
|
|
var functionId = 'C10000017'; |
|
|
var functionId = 'C10000017'; |
|
|
|
|
|
|
|
|
export default { |
|
|
export default { |
|
|
|
|
|
mixins: [labelPrintTemplates], |
|
|
data() { |
|
|
data() { |
|
|
return { |
|
|
return { |
|
|
titleCon: '材料退料', |
|
|
titleCon: '材料退料', |
|
|
@ -280,15 +283,110 @@ export default { |
|
|
this.$message.success(data.msg); |
|
|
this.$message.success(data.msg); |
|
|
//刷新报工的页面 |
|
|
//刷新报工的页面 |
|
|
this.$emit('refreshPageData'); |
|
|
this.$emit('refreshPageData'); |
|
|
//打印材料卷标签 |
|
|
|
|
|
let printList = data.printList; |
|
|
|
|
|
printMaterialLabel(printList); |
|
|
|
|
|
|
|
|
//获取返回的卷号并打印 |
|
|
|
|
|
const printRollNo = data.printRollNo; |
|
|
|
|
|
if (printRollNo) { |
|
|
|
|
|
this.printLabelWithTemplate(printRollNo); |
|
|
|
|
|
} |
|
|
//关闭当前的页面 |
|
|
//关闭当前的页面 |
|
|
this.closeDialog(); |
|
|
this.closeDialog(); |
|
|
} |
|
|
} |
|
|
}); |
|
|
}); |
|
|
}, |
|
|
}, |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
|
* 使用模板打印标签 |
|
|
|
|
|
* @param {String} rollNo - 卷号 |
|
|
|
|
|
*/ |
|
|
|
|
|
async printLabelWithTemplate(rollNo) { |
|
|
|
|
|
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传空,由存储过程返回) |
|
|
|
|
|
const params = { |
|
|
|
|
|
site: this.scheduleData.site, |
|
|
|
|
|
buNo: this.scheduleData.buNo, |
|
|
|
|
|
menuID: '104003006', // 功能ID |
|
|
|
|
|
relatedOrderNo: this.scheduleData.orderNo, |
|
|
|
|
|
relatedOrderLineNo: this.scheduleData.seqNo, |
|
|
|
|
|
documentNo: '', |
|
|
|
|
|
partNo: this.scheduleData.partNo, |
|
|
|
|
|
labelNo: '', // 传空字符串,由存储过程返回labelNo |
|
|
|
|
|
rollNo: rollNo |
|
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
const {data: printData} = await callUspPartLabelTemplate(params); |
|
|
|
|
|
|
|
|
|
|
|
if (printData && printData.code === 0 && printData.row) { |
|
|
|
|
|
const labelNo = printData.row.labelNo; |
|
|
|
|
|
if (!labelNo) { |
|
|
|
|
|
console.warn('未获取到标签模板编号,跳过打印'); |
|
|
|
|
|
return; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
// 4. 执行模板打印 |
|
|
|
|
|
this.executePrintWithTemplate(LODOP, [printData.row], labelNo, defaultPrinterName); |
|
|
|
|
|
this.$message.success('标签打印任务已发送!'); |
|
|
|
|
|
} else { |
|
|
|
|
|
console.warn('获取打印参数失败'); |
|
|
|
|
|
} |
|
|
|
|
|
} 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(); |
|
|
|
|
|
}, |
|
|
|
|
|
|
|
|
// 保存 默认配置 列 |
|
|
// 保存 默认配置 列 |
|
|
async saveMultiLanguage() { |
|
|
async saveMultiLanguage() { |
|
|
// 保存页面 button label title 属性 |
|
|
// 保存页面 button label title 属性 |
|
|
|