diff --git a/src/api/erf/erf.js b/src/api/erf/erf.js index 216ee1c..92a1469 100644 --- a/src/api/erf/erf.js +++ b/src/api/erf/erf.js @@ -21,7 +21,7 @@ export const getExpApplyDetail = data => createAPI(`/erf/expApply/getExpApplyDet export const saveExpApply = data => createAPI(`/erf/expApply/saveExpApply`, 'post', data) /** - * 获取PJM负责人列表(产品文档收美-PM角色) + * 获取负责人列表(PJM负责人 + 生产车间负责人) */ export const getPjmLeaderList = data => createAPI(`/erf/expApply/getPjmLeaderList`, 'post', data) diff --git a/src/views/modules/erf/components/expApplyForm.vue b/src/views/modules/erf/components/expApplyForm.vue index cc73c61..36fceed 100644 --- a/src/views/modules/erf/components/expApplyForm.vue +++ b/src/views/modules/erf/components/expApplyForm.vue @@ -79,21 +79,21 @@ - + 试验负责人 - + + + + + + + + + @@ -264,6 +283,7 @@ export default { return { buList: [], pjmLeaderList: [], + workshopLeaderList: [], saveHeaderData: { applyNo: '', originalApplyNo: '', @@ -281,6 +301,8 @@ export default { projectLeader: this.$store.state.user.userDisplay, pjmLeaderUserId: null, pjmLeaderName: '', + workshopLeaderUserId: null, + workshopLeaderName: '', contactMethod: '', processRequirement: '', creatorUserId: this.$store.state.user.id, @@ -318,7 +340,9 @@ export default { if (!newVal) { this.saveHeaderData.pjmLeaderUserId = null this.saveHeaderData.pjmLeaderName = '' - // BU为空时回退查询全部PJM负责人 + this.saveHeaderData.workshopLeaderUserId = null + this.saveHeaderData.workshopLeaderName = '' + // BU为空时回退查询全部负责人 this.loadPjmLeaderList('') return } @@ -326,6 +350,8 @@ export default { if (oldVal !== undefined && oldVal !== null && oldVal !== '') { this.saveHeaderData.pjmLeaderUserId = null this.saveHeaderData.pjmLeaderName = '' + this.saveHeaderData.workshopLeaderUserId = null + this.saveHeaderData.workshopLeaderName = '' } this.loadPjmLeaderList(newVal) } @@ -343,7 +369,7 @@ export default { } this.isEdit = true } - // 首次打开弹窗时也查询一次PJM负责人(BU为空时查询全量) + // 首次打开弹窗时查询负责人列表(BU为空时查询全量) this.loadPjmLeaderList(this.saveHeaderData.buNo || '') }, @@ -364,23 +390,30 @@ export default { }, /** - * 加载PJM负责人列表(产品文档收美-PM角色) + * 加载负责人列表(PJM负责人 + 生产车间负责人) */ loadPjmLeaderList(buNo) { getPjmLeaderList({ buNo: buNo || '' }).then(({data}) => { if (data && data.code === 0) { - this.pjmLeaderList = data.list || [] + this.pjmLeaderList = data.pjmLeaderList || data.list || [] + this.workshopLeaderList = data.workshopLeaderList || [] this.ensurePjmLeaderOption() + this.ensureWorkshopLeaderOption() if (this.saveHeaderData.pjmLeaderUserId && !this.saveHeaderData.pjmLeaderName) { this.handlePjmLeaderChange(this.saveHeaderData.pjmLeaderUserId) } + if (this.saveHeaderData.workshopLeaderUserId && !this.saveHeaderData.workshopLeaderName) { + this.handleWorkshopLeaderChange(this.saveHeaderData.workshopLeaderUserId) + } } else { this.pjmLeaderList = [] - this.$message.error(data.msg || '加载PJM负责人失败') + this.workshopLeaderList = [] + this.$message.error(data.msg || '加载负责人失败') } }).catch(() => { this.pjmLeaderList = [] - this.$message.error('加载PJM负责人异常') + this.workshopLeaderList = [] + this.$message.error('加载负责人异常') }) }, @@ -398,6 +431,20 @@ export default { : (this.saveHeaderData.pjmLeaderName || '') }, + /** + * 处理生产车间负责人变更 + */ + handleWorkshopLeaderChange(userId) { + if (!userId) { + this.saveHeaderData.workshopLeaderName = '' + return + } + const selected = this.workshopLeaderList.find(item => item.userId === userId) + this.saveHeaderData.workshopLeaderName = selected + ? (selected.userDisplay || selected.username || '') + : (this.saveHeaderData.workshopLeaderName || '') + }, + /** * 编辑场景兜底:已选PJM负责人不在当前下拉项时补充显示 */ @@ -415,6 +462,23 @@ export default { } }, + /** + * 编辑场景兜底:已选生产车间负责人不在当前下拉项时补充显示 + */ + ensureWorkshopLeaderOption() { + if (!this.saveHeaderData.workshopLeaderUserId) { + return + } + const exist = this.workshopLeaderList.some(item => item.userId === this.saveHeaderData.workshopLeaderUserId) + if (!exist && this.saveHeaderData.workshopLeaderName) { + this.workshopLeaderList.push({ + userId: this.saveHeaderData.workshopLeaderUserId, + username: this.saveHeaderData.workshopLeaderName, + userDisplay: this.saveHeaderData.workshopLeaderName + }) + } + }, + /** * 获取表单数据(用于验证) */