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) export const saveExpApply = data => createAPI(`/erf/expApply/saveExpApply`, 'post', data)
/** /**
* 获取PJM负责人列表产品文档收美-PM角色
* 获取负责人列表PJM负责人 + 生产车间负责人
*/ */
export const getPjmLeaderList = data => createAPI(`/erf/expApply/getPjmLeaderList`, 'post', data) 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-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12">
<el-col :span="8">
<el-form-item label="试验负责人"> <el-form-item label="试验负责人">
<span v-if="!readonly" style="cursor: pointer" slot="label" @click="getBaseList(103)"><a href="#">试验负责人</a></span> <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-input v-model="saveHeaderData.projectLeader" disabled></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12">
<el-col :span="8">
<el-form-item label="PJM负责人"> <el-form-item label="PJM负责人">
<el-select <el-select
v-model="saveHeaderData.pjmLeaderUserId" v-model="saveHeaderData.pjmLeaderUserId"
:disabled="readonly" :disabled="readonly"
clearable clearable
filterable filterable
placeholder="请选择PJM负责人(非必填"
placeholder="非必填"
style="width: 100%" style="width: 100%"
@change="handlePjmLeaderChange"> @change="handlePjmLeaderChange">
<el-option <el-option
@ -105,6 +105,25 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </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-col :span="24">
<el-form-item label="试验目的" prop="purpose"> <el-form-item label="试验目的" prop="purpose">
@ -264,6 +283,7 @@ export default {
return { return {
buList: [], buList: [],
pjmLeaderList: [], pjmLeaderList: [],
workshopLeaderList: [],
saveHeaderData: { saveHeaderData: {
applyNo: '', applyNo: '',
originalApplyNo: '', originalApplyNo: '',
@ -281,6 +301,8 @@ export default {
projectLeader: this.$store.state.user.userDisplay, projectLeader: this.$store.state.user.userDisplay,
pjmLeaderUserId: null, pjmLeaderUserId: null,
pjmLeaderName: '', pjmLeaderName: '',
workshopLeaderUserId: null,
workshopLeaderName: '',
contactMethod: '', contactMethod: '',
processRequirement: '', processRequirement: '',
creatorUserId: this.$store.state.user.id, creatorUserId: this.$store.state.user.id,
@ -318,7 +340,9 @@ export default {
if (!newVal) { if (!newVal) {
this.saveHeaderData.pjmLeaderUserId = null this.saveHeaderData.pjmLeaderUserId = null
this.saveHeaderData.pjmLeaderName = '' this.saveHeaderData.pjmLeaderName = ''
// BU退PJM
this.saveHeaderData.workshopLeaderUserId = null
this.saveHeaderData.workshopLeaderName = ''
// BU退
this.loadPjmLeaderList('') this.loadPjmLeaderList('')
return return
} }
@ -326,6 +350,8 @@ export default {
if (oldVal !== undefined && oldVal !== null && oldVal !== '') { if (oldVal !== undefined && oldVal !== null && oldVal !== '') {
this.saveHeaderData.pjmLeaderUserId = null this.saveHeaderData.pjmLeaderUserId = null
this.saveHeaderData.pjmLeaderName = '' this.saveHeaderData.pjmLeaderName = ''
this.saveHeaderData.workshopLeaderUserId = null
this.saveHeaderData.workshopLeaderName = ''
} }
this.loadPjmLeaderList(newVal) this.loadPjmLeaderList(newVal)
} }
@ -343,7 +369,7 @@ export default {
} }
this.isEdit = true this.isEdit = true
} }
// PJMBU
// BU
this.loadPjmLeaderList(this.saveHeaderData.buNo || '') this.loadPjmLeaderList(this.saveHeaderData.buNo || '')
}, },
@ -364,23 +390,30 @@ export default {
}, },
/** /**
* 加载PJM负责人列表产品文档收美-PM角色
* 加载负责人列表PJM负责人 + 生产车间负责人
*/ */
loadPjmLeaderList(buNo) { loadPjmLeaderList(buNo) {
getPjmLeaderList({ buNo: buNo || '' }).then(({data}) => { getPjmLeaderList({ buNo: buNo || '' }).then(({data}) => {
if (data && data.code === 0) { if (data && data.code === 0) {
this.pjmLeaderList = data.list || []
this.pjmLeaderList = data.pjmLeaderList || data.list || []
this.workshopLeaderList = data.workshopLeaderList || []
this.ensurePjmLeaderOption() this.ensurePjmLeaderOption()
this.ensureWorkshopLeaderOption()
if (this.saveHeaderData.pjmLeaderUserId && !this.saveHeaderData.pjmLeaderName) { if (this.saveHeaderData.pjmLeaderUserId && !this.saveHeaderData.pjmLeaderName) {
this.handlePjmLeaderChange(this.saveHeaderData.pjmLeaderUserId) this.handlePjmLeaderChange(this.saveHeaderData.pjmLeaderUserId)
} }
if (this.saveHeaderData.workshopLeaderUserId && !this.saveHeaderData.workshopLeaderName) {
this.handleWorkshopLeaderChange(this.saveHeaderData.workshopLeaderUserId)
}
} else { } else {
this.pjmLeaderList = [] this.pjmLeaderList = []
this.$message.error(data.msg || '加载PJM负责人失败')
this.workshopLeaderList = []
this.$message.error(data.msg || '加载负责人失败')
} }
}).catch(() => { }).catch(() => {
this.pjmLeaderList = [] this.pjmLeaderList = []
this.$message.error('加载PJM负责人异常')
this.workshopLeaderList = []
this.$message.error('加载负责人异常')
}) })
}, },
@ -398,6 +431,20 @@ export default {
: (this.saveHeaderData.pjmLeaderName || '') : (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负责人不在当前下拉项时补充显示 * 编辑场景兜底已选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