From 2913aafc36c5eaf53e0d245f41fadc20e84c7f01 Mon Sep 17 00:00:00 2001 From: fengyuan_yang <1976974459@qq.com> Date: Fri, 21 Aug 2026 14:15:43 +0800 Subject: [PATCH] =?UTF-8?q?2026-08-21=20=E6=96=B0=E5=A2=9E=E6=8A=80?= =?UTF-8?q?=E6=9C=AF=E5=8F=82=E6=95=B0=E5=8D=A1=E5=92=8CBOM=E5=AD=90?= =?UTF-8?q?=E7=89=A9=E6=96=99=E6=97=B6=E6=A0=A1=E9=AA=8C=E5=BF=85=E9=A1=BB?= =?UTF-8?q?=E7=BB=B4=E6=8A=A4=E2=80=9D=E7=BC=96=E7=A0=81=E2=80=9C;?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/modules/part/bomManagement.vue | 58 +++++++++++++++---- .../com_technical-add-or-update.vue | 13 ++++- 2 files changed, 59 insertions(+), 12 deletions(-) diff --git a/src/views/modules/part/bomManagement.vue b/src/views/modules/part/bomManagement.vue index 355786a..12761d6 100644 --- a/src/views/modules/part/bomManagement.vue +++ b/src/views/modules/part/bomManagement.vue @@ -4862,6 +4862,46 @@ export default { this.$refs.byProductTable.toggleRowSelection(row) }, + isDrawingNoMaintained (drawingNo) { + if (drawingNo === null || drawingNo === undefined) { + return false + } + const normalizedDrawingNo = String(drawingNo).trim().toUpperCase() + return normalizedDrawingNo !== '' && normalizedDrawingNo !== 'NA' + }, + + validateComponentDrawingNoForCreate () { + return partInformationSearch({ + site: this.$store.state.user.site, + partNo: this.componentData.componentPart, + limit: 1, + page: 1 + }).then(({data}) => { + const firstPart = data && data.code === 0 && data.page && data.page.list && data.page.list.length > 0 + ? data.page.list[0] + : null + if (!firstPart) { + this.$message.warning('子物料【' + this.componentData.componentPart + '】未查询到物料信息,不能保存!') + return false + } + + const materialStatus = (firstPart.status || '').toString().trim().toUpperCase() + if (materialStatus !== 'Y') { + // 临时物料不做编码校验 + return true + } + + if (this.isDrawingNoMaintained(firstPart.drawingNo)) { + return true + } + this.$message.warning('子物料【' + this.componentData.componentPart + '】未维护编码,不能保存!') + return false + }).catch(() => { + this.$message.error('验证子物料编码信息失败,请重试!') + return false + }) + }, + // 新增子明细方法 componentDataSave (isClose) { if (this.componentData.lineSequence === '' || this.componentData.lineSequence == null) { @@ -4953,19 +4993,15 @@ export default { } } - partInformationSearch({ - site: this.$store.state.user.site, - partNo: this.componentData.componentPart, - limit: 1, - page: 1 - }).then(({data}) => { - if (data && data.code === 0 && data.page.list.length > 0 && data.page.list[0].drawingNo) { + if (this.componentData.flag !== '1') { + doSaveBomComponent() + return + } + + this.validateComponentDrawingNoForCreate().then((isValid) => { + if (isValid) { doSaveBomComponent() - } else { - this.$message.warning('子物料【' + this.componentData.componentPart + '】未获取编码,不能保存!') } - }).catch(() => { - this.$message.error('验证子物料编码信息失败,请重试!') }) }, diff --git a/src/views/modules/sampleManagement/com_technical-add-or-update.vue b/src/views/modules/sampleManagement/com_technical-add-or-update.vue index 15dd79a..968ff2b 100644 --- a/src/views/modules/sampleManagement/com_technical-add-or-update.vue +++ b/src/views/modules/sampleManagement/com_technical-add-or-update.vue @@ -1140,6 +1140,14 @@ this.ownerFlag = false }, + isDrawingNoMaintained (drawingNo) { + if (drawingNo === null || drawingNo === undefined) { + return false + } + const normalizedDrawingNo = String(drawingNo).trim().toUpperCase() + return normalizedDrawingNo !== '' && normalizedDrawingNo !== 'NA' + }, + // 表单提交 dataFormSubmit () { if (this.dataForm.testPartNo === '') { @@ -1210,7 +1218,10 @@ limit: 1, page: 1 }).then(({data}) => { - if (data && data.code === 0 && data.page.list.length > 0 && data.page.list[0].drawingNo) { + const firstPart = data && data.code === 0 && data.page && data.page.list && data.page.list.length > 0 + ? data.page.list[0] + : null + if (firstPart && this.isDrawingNoMaintained(firstPart.drawingNo)) { doSave() } else { this.$message.warning('该物料未获取编码,不能新增技术参数卡!')