From 28d6c19e9b20fc5d3e3ea841525dbf9da5c45586 Mon Sep 17 00:00:00 2001 From: "han\\hanst" Date: Fri, 28 Aug 2026 17:27:20 +0800 Subject: [PATCH] =?UTF-8?q?1=E3=80=81NPI=E4=B8=8B=E8=BE=BE=E6=89=93?= =?UTF-8?q?=E6=A0=B7=E5=8D=95=E5=A2=9E=E5=8A=A0=E9=99=90=E5=88=B6=EF=BC=8C?= =?UTF-8?q?=E5=8F=AA=E6=9C=89RF/RFID=E9=9C=80=E8=A6=81=EF=BC=8CNPI?= =?UTF-8?q?=E5=AD=98=E5=9C=A8=E6=89=93=E6=A0=B7=E5=8D=95=EF=BC=8CSample?= =?UTF-8?q?=E4=B8=8D=E5=AD=98=E5=9C=A8=E6=89=93=E6=A0=B7=E5=8D=95=EF=BC=8C?= =?UTF-8?q?=E9=82=A3=E4=B9=88=E7=82=B9=E4=B8=8B=E8=BE=BE=E9=9C=80=E8=A6=81?= =?UTF-8?q?=E8=AD=A6=E5=91=8A=EF=BC=9ASample=20Tracking=E6=9C=AA=E7=BB=B4?= =?UTF-8?q?=E6=8A=A4=E8=AF=A5=E6=89=93=E6=A0=B7=E5=8D=95=EF=BC=8C=E8=AF=B7?= =?UTF-8?q?=E7=BB=B4=E6=8A=A4=E5=90=8E=E5=86=8D=E4=B8=8B=E8=BE=BE=202?= =?UTF-8?q?=E3=80=81NPI=E4=B8=8B=E8=BE=BE=E6=89=93=E6=A0=B7=E5=8D=95?= =?UTF-8?q?=E9=9C=80=E8=A6=81=E5=B0=86=E6=89=93=E6=A0=B7=E5=8D=95=E7=8A=B6?= =?UTF-8?q?=E6=80=81=E5=90=8C=E6=AD=A5=E8=87=B3Sample=20Tracking=203?= =?UTF-8?q?=E3=80=81Sample=20Tracking=E7=82=B9Delivery&Package=E7=A1=AE?= =?UTF-8?q?=E8=AE=A4=E5=90=8E=EF=BC=8C=20=E9=9C=80=E8=A6=81=E8=87=AA?= =?UTF-8?q?=E5=8A=A8=E4=BF=AE=E6=94=B9Sample=20Tracking=E7=9A=84=E6=89=93?= =?UTF-8?q?=E6=A0=B7=E7=8A=B6=E6=80=81=E4=B8=BA=EF=BC=9A=E6=89=93=E6=A0=B7?= =?UTF-8?q?=E5=AE=8C=E6=88=90=EF=BC=8CTracking=20Status=E4=B8=BA=EF=BC=9AC?= =?UTF-8?q?omplete=20=E9=9C=80=E8=A6=81=E5=90=8C=E6=AD=A5=E8=87=B3NPI?= =?UTF-8?q?=EF=BC=8C=E6=89=93=E6=A0=B7=E7=8A=B6=E6=80=81=E4=B8=BA=EF=BC=9A?= =?UTF-8?q?=E5=AE=8C=E6=88=90=EF=BC=8C=E5=AE=9E=E9=99=85=E5=AE=8C=E6=88=90?= =?UTF-8?q?=E6=97=A5=E6=9C=9F=E4=B8=BA=EF=BC=9ADelivery&Package=E6=9C=80?= =?UTF-8?q?=E6=96=B0=E6=97=A5=E6=9C=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/sampleTracking/sampleTracking.js | 2 - src/views/modules/eam/eamProjectInfo.vue | 29 +- .../sampleTracking/projectProofTracking.vue | 354 +++++------------- 3 files changed, 121 insertions(+), 264 deletions(-) diff --git a/src/api/sampleTracking/sampleTracking.js b/src/api/sampleTracking/sampleTracking.js index 2d65644..6c2d33e 100644 --- a/src/api/sampleTracking/sampleTracking.js +++ b/src/api/sampleTracking/sampleTracking.js @@ -18,7 +18,6 @@ export const exportProofTracking = data => createAPI('/sampleTracking/proofTrack export const oneKeyCreateProofTracking = data => createAPI('/sampleTracking/proofTracking/oneKeyCreate', 'POST', data) export const oneKeyUpdateProofTracking = data => createAPI('/sampleTracking/proofTracking/oneKeyUpdate', 'POST', data) export const createProofTrackingRecord = data => createAPI('/sampleTracking/proofTracking/createProofRecord', 'POST', data) -export const batchUpdateProofTrackingPlan = data => createAPI('/sampleTracking/proofTracking/batchUpdatePlan', 'POST', data) export const updateProofTrackingProcess = data => createAPI('/sampleTracking/proofTracking/updateProcess', 'POST', data) export const updateProofTrackingComments = data => createAPI('/sampleTracking/proofTracking/updateComments', 'POST', data) export const finishProofTracking = data => createAPI('/sampleTracking/proofTracking/finishProofing', 'POST', data) @@ -26,7 +25,6 @@ export const deleteProofTracking = data => createAPI('/sampleTracking/proofTrack export const queryProofTrackingProcessHistory = data => createAPI('/sampleTracking/proofTracking/processHistory', 'POST', data) export const queryProofTrackingBuProcessConfig = data => createAPI('/sampleTracking/proofTracking/buProcessConfig/list', 'POST', data) export const saveProofTrackingBuProcessConfig = data => createAPI('/sampleTracking/proofTracking/buProcessConfig/save', 'POST', data) -export const deleteProofTrackingBuProcessConfig = data => createAPI('/sampleTracking/proofTracking/buProcessConfig/delete', 'POST', data) export const queryProofTrackingProcessColumns = data => createAPI('/sampleTracking/proofTracking/processColumns/list', 'POST', data) export const queryProofTrackingProcessColumnsManage = data => createAPI('/sampleTracking/proofTracking/processColumns/manageList', 'POST', data) export const saveProofTrackingProcessColumnsManage = data => createAPI('/sampleTracking/proofTracking/processColumns/manageSave', 'POST', data) diff --git a/src/views/modules/eam/eamProjectInfo.vue b/src/views/modules/eam/eamProjectInfo.vue index a6ce18b..58a8edb 100644 --- a/src/views/modules/eam/eamProjectInfo.vue +++ b/src/views/modules/eam/eamProjectInfo.vue @@ -562,7 +562,10 @@ - SQE-ME + + * + SQE-ME + @@ -578,7 +581,7 @@ - * + * PE @@ -1266,6 +1269,14 @@ import {updateColumnSize} from "../../../api/table"; isAlphaOrAntennaBu () { return this.isAlphaBu || this.isAntennaBu }, + // buy-in-sell 在历史配置里存在 buy-in-shell 写法,校验时统一兼容两种值。 + isBuyInSellProjectCategory () { + if (this.modalData.projectCategory === null || this.modalData.projectCategory === undefined) { + return false + } + let projectCategoryText = String(this.modalData.projectCategory).trim().toLowerCase() + return projectCategoryText === 'buy-in-sell' || projectCategoryText === 'buy-in-shell' + }, // RF/Alpha / 天线 / 硬标,分类字段不要求手工选择。 isDryWetTypeOptionalBu () { return this.isAlphaOrAntennaBu || this.isHardtagBu || this.isRfBu @@ -4095,7 +4106,13 @@ import {updateColumnSize} from "../../../api/table"; this.$message.warning('请输入QC!') return } - if (this.modalData.peEngineer === '' || this.modalData.peEngineer == null) { + // buy-in-sell/shell 分类改为 SQE 必填、PE 选填,其他分类保持 PE 必填。 + if (this.isBuyInSellProjectCategory) { + if (this.modalData.sqemeEngineer === '' || this.modalData.sqemeEngineer == null) { + this.$message.warning('请输入SQE!') + return + } + } else if (this.modalData.peEngineer === '' || this.modalData.peEngineer == null) { this.$message.warning('请输入PE!') return } @@ -4941,6 +4958,9 @@ import {updateColumnSize} from "../../../api/table"; if (this.modalData.sqeeeEngineer) { this.modalData.sqeeeEngineerName = this.getUserDisplayName(this.modalData.sqeeeEngineer) } + // 新增产品弹窗的 BU 为只读,不会触发 BU change 事件,这里主动按 BU 加载项目分类下拉。 + let addPartBuNo = this.getBuNoByJoinedValue(this.modalData.bu) + this.loadModalProjectCategory(addPartBuNo, this.modalData.projectCategory, this.modalData.site) this.syncBusinessSearchSite(this.modalData.site) this.modalDisableFlag = true this.modalPartDisableFlag = true @@ -5035,6 +5055,9 @@ import {updateColumnSize} from "../../../api/table"; if (this.modalData.sqeeeEngineer) { this.modalData.sqeeeEngineerName = this.getUserDisplayName(this.modalData.sqeeeEngineer) } + // 编辑产品同样是只读 BU,保持与新增产品一致的项目分类加载行为。 + let editPartBuNo = this.getBuNoByJoinedValue(this.modalData.bu) + this.loadModalProjectCategory(editPartBuNo, this.modalData.projectCategory, this.modalData.site) this.syncBusinessSearchSite(this.modalData.site) this.modalDisableFlag = true this.modalPartDisableFlag = true diff --git a/src/views/modules/sampleTracking/projectProofTracking.vue b/src/views/modules/sampleTracking/projectProofTracking.vue index b226222..eef9d30 100644 --- a/src/views/modules/sampleTracking/projectProofTracking.vue +++ b/src/views/modules/sampleTracking/projectProofTracking.vue @@ -59,8 +59,6 @@ 一键创建 - 新增打样 同步项目物料到NPI 同步打样到NPI @@ -73,9 +71,13 @@ @click="openBuProcessConfigDialog" >事业部进度设置 默认进度设置 - + @@ -94,7 +96,7 @@ @row-click="rowClick" style="width: 100%; margin-top: 8px" > - +