From 65c0206d6e080899d6f389c1274da8eb241ad29a Mon Sep 17 00:00:00 2001 From: shenzhouyu Date: Wed, 15 Jul 2026 15:39:02 +0800 Subject: [PATCH] =?UTF-8?q?=E6=89=93=E5=8D=B0=E6=8C=89=E9=92=AE=E4=BF=AE?= =?UTF-8?q?=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../modules/shipment/shipmentNotification.vue | 153 ++++++++---------- 1 file changed, 63 insertions(+), 90 deletions(-) diff --git a/src/views/modules/shipment/shipmentNotification.vue b/src/views/modules/shipment/shipmentNotification.vue index 57897da..e30e507 100644 --- a/src/views/modules/shipment/shipmentNotification.vue +++ b/src/views/modules/shipment/shipmentNotification.vue @@ -248,7 +248,12 @@ @@ -636,7 +641,7 @@ - +
此数量为打印到标签上的数量
+ +
打印总数 @@ -764,7 +772,8 @@ import { deleteNotifyUnissue, saveShipmentMaterialDetail, searchUnissueNotifyMaterialList, - getShipmentLine + getShipmentLine, + getShipmentListForIssure } from '@/api/shipment/shipmentIssue.js' // rqrq - 导入预留标签清单API import { searchMaterialListDetail } from '@/api/orderIssure/soIssueNotify.js' @@ -775,8 +784,8 @@ import { getTableUserListLanguage, } from '@/api/table.js' import { - getLabelSettingList, - getUserLabelPrinters, + // getLabelSettingList, // 打印弹框停用,不再手动选模板 + // getUserLabelPrinters, // 打印弹框停用,不再手动选打印机 printLabelCommon, } from '@/api/labelSetting/label_setting.js' export default { @@ -1970,11 +1979,13 @@ export default { shipmentLineList: [], shipmentLineLoading: false, currentShipmentId: '', + currentReceiverId: '', shipmentLinePrintDialogVisible: false, printLoading: false, printShipmentLineRow: null, - labelTemplateList: [], - printerList: [], + // labelTemplateList / printerList:红框已注释,模板与打印机由 customerId 自动匹配 + // labelTemplateList: [], + // printerList: [], printForm: { copies: 1, assignQty: 0, @@ -2098,13 +2109,11 @@ export default { computed: { canStartShipmentLinePrint() { - console.log("this.printForm",this.printForm.reportId,this.printForm.printerName,this.printForm.copies,this.printForm.assignQty,this.printShipmentLineRow); - return !!( - this.printForm.reportId && this.printForm.copies > 0 && this.printForm.assignQty > 0 && - this.printShipmentLineRow + this.printShipmentLineRow && + this.currentReceiverId ) }, }, @@ -3190,13 +3199,38 @@ export default { return {} }, - handleShipmentRowDblClick(row) { + async handleShipmentRowDblClick(row) { const shipmentId = row.soorderNo if (!shipmentId) { this.$message.warning('该行没有SHIPMENTID') return } this.currentShipmentId = shipmentId + this.currentReceiverId = '' + + let receiverId = row.receiverId || row.RECEIVER_ID + if (!receiverId) { + try { + const site = row.site || this.currentRow.site || this.$store.state.user.site + const { data } = await getShipmentListForIssure({ + site, + orderNo: shipmentId, + }) + if (data && data.code === 0 && data.rows && data.rows.length > 0) { + const matched = data.rows.find(item => + String(item.SHIPMENT_ID || item.shipmentId) === String(shipmentId) + ) || data.rows[0] + receiverId = matched.receiverId || matched.RECEIVER_ID + } + } catch (e) { + this.$message.error('获取shipment信息失败') + } + } + + if (!receiverId) { + this.$message.warning('未获取到receiverId') + } + this.currentReceiverId = receiverId || '' this.loadShipmentLineList(row) }, @@ -3246,11 +3280,14 @@ export default { }, printShipmentLine(row) { + if (!this.currentReceiverId) { + this.$message.warning('未获取到receiverId,请先双击已申请SHIPMENT') + return + } this.printShipmentLineRow = row this.resetShipmentLinePrintForm() this.printForm.assignQty = row.qtyAssigned != null ? row.qtyAssigned : 0 this.shipmentLinePrintDialogVisible = true - this.loadShipmentLinePrintOptions(row) }, resetShipmentLinePrintForm() { @@ -3261,83 +3298,14 @@ export default { reportId: '', printerName: '', } - this.labelTemplateList = [] - this.printerList = [] - }, - - async loadShipmentLinePrintOptions(row) { - await this.loadLabelTemplateList(row) - await this.loadPrinterList() }, - async loadLabelTemplateList(row) { - try { - const { data } = await getLabelSettingList({ - searchFlag: 'Y', - labelType: this.printForm.labelType, - }) - this.labelTemplateList = (data && data.rows) ? data.rows : [] - if (this.labelTemplateList.length === 0) { - this.printForm.reportId = '' - return - } - const partNo = (row && row.inventoryPartNo) || '' - const matchedTemplate = this.labelTemplateList.find(item => { - const labelName = item.labelName || '' - return partNo && labelName.includes(partNo) - }) - const selectedTemplate = matchedTemplate || this.labelTemplateList[0] - this.printForm.reportId = selectedTemplate.labelNo - this.printForm.labelType = selectedTemplate.labelType || this.printForm.labelType - } catch (error) { - this.labelTemplateList = [] - this.printForm.reportId = '' - this.$message.error('获取标签模板失败') - } - }, - - async loadPrinterList() { - if (!this.printForm.reportId) { - this.printerList = [] - this.printForm.printerName = '' - return - } - try { - const { data } = await getUserLabelPrinters({ - userId: localStorage.getItem('userName'), - username: localStorage.getItem('userName'), - site: this.currentRow.site || this.$store.state.user.site, - searchFlag: 'Y', - labelNo: this.printForm.reportId, - }) - this.printerList = (data && data.rows) ? data.rows : [] - this.printForm.printerName = this.printerList.length > 0 - ? this.printerList[0].printerName - : '' - } catch (error) { - this.printerList = [] - this.printForm.printerName = '' - this.$message.error('获取打印机列表失败') - } - }, - - async handlePrintLabelTypeChange() { - if (!this.printShipmentLineRow) { - return - } - await this.loadLabelTemplateList(this.printShipmentLineRow) - await this.loadPrinterList() - }, - - async handlePrintTemplateChange() { - const selectedTemplate = this.labelTemplateList.find( - item => item.labelNo === this.printForm.reportId - ) - if (selectedTemplate && selectedTemplate.labelType) { - this.printForm.labelType = selectedTemplate.labelType - } - await this.loadPrinterList() - }, + // 红框相关:模板/打印机加载已停用,由后端按 customerId(receiverId) 自动匹配 + // loadShipmentLinePrintOptions(row) { ... } + // loadLabelTemplateList(row) { ... } + // loadPrinterList() { ... } + // handlePrintLabelTypeChange() { ... } + // handlePrintTemplateChange() { ... } buildShipmentLinePrintRequest() { const row = this.printShipmentLineRow @@ -3367,8 +3335,9 @@ export default { customFields, } - if (this.currentRow && this.currentRow.receiver) { - printRequest.customerId = this.currentRow.receiver + // 将 shipment 的 receiverId 作为 customerId 传给打印接口,由后端按客户匹配标签模板 + if (this.currentReceiverId) { + printRequest.customerId = this.currentReceiverId } return printRequest @@ -3381,6 +3350,10 @@ export default { } const row = this.printShipmentLineRow + if (!this.currentReceiverId) { + this.$message.warning('未获取到receiverId,无法打印') + return + } if (!row.shipmentId || !row.sourceRef1 || row.sourceRef2 == null || row.sourceRef3 == null || row.shipmentLineNo == null) { this.$message.warning('当前行缺少打印所需的IFS参数') return