Browse Source

生产车间负责人

master
han\hanst 2 weeks ago
parent
commit
2ad2dce413
  1. 2
      src/api/erf/erf.js
  2. 82
      src/views/modules/erf/components/expApplyForm.vue

2
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)

82
src/views/modules/erf/components/expApplyForm.vue

@ -79,21 +79,21 @@
</el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-col :span="8">
<el-form-item label="试验负责人">
<span v-if="!readonly" style="cursor: pointer" slot="label" @click="getBaseList(103)"><a href="#">试验负责人</a></span>
<el-input v-model="saveHeaderData.projectLeader" disabled></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-col :span="8">
<el-form-item label="PJM负责人">
<el-select
v-model="saveHeaderData.pjmLeaderUserId"
:disabled="readonly"
clearable
filterable
placeholder="请选择PJM负责人(非必填"
placeholder="非必填"
style="width: 100%"
@change="handlePjmLeaderChange">
<el-option
@ -105,6 +105,25 @@
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="生产车间负责人">
<el-select
v-model="saveHeaderData.workshopLeaderUserId"
:disabled="readonly"
clearable
filterable
placeholder="非必填"
style="width: 100%"
@change="handleWorkshopLeaderChange">
<el-option
v-for="item in workshopLeaderList"
:key="item.userId"
:label="item.userDisplay || item.username"
:value="item.userId">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="试验目的" prop="purpose">
@ -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
}
// PJMBU
// 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
})
}
},
/**
* 获取表单数据用于验证
*/

Loading…
Cancel
Save