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('该物料未获取编码,不能新增技术参数卡!')