|
|
|
@ -87,6 +87,26 @@ |
|
|
|
</el-col> |
|
|
|
|
|
|
|
<el-col :span="12"> |
|
|
|
<el-form-item label="PJM负责人"> |
|
|
|
<el-select |
|
|
|
v-model="saveHeaderData.pjmLeaderUserId" |
|
|
|
:disabled="readonly" |
|
|
|
clearable |
|
|
|
filterable |
|
|
|
placeholder="请选择PJM负责人(非必填)" |
|
|
|
style="width: 100%" |
|
|
|
@change="handlePjmLeaderChange"> |
|
|
|
<el-option |
|
|
|
v-for="item in pjmLeaderList" |
|
|
|
: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"> |
|
|
|
<el-input |
|
|
|
v-model="saveHeaderData.purpose" |
|
|
|
@ -220,7 +240,7 @@ |
|
|
|
</template> |
|
|
|
|
|
|
|
<script> |
|
|
|
import { saveExpApply } from '@/api/erf/erf' |
|
|
|
import { saveExpApply, getPjmLeaderList } from '@/api/erf/erf' |
|
|
|
import { getBuList } from '@/api/factory/site' |
|
|
|
import Chooselist from '@/views/modules/common/Chooselist' |
|
|
|
|
|
|
|
@ -243,6 +263,7 @@ export default { |
|
|
|
data() { |
|
|
|
return { |
|
|
|
buList: [], |
|
|
|
pjmLeaderList: [], |
|
|
|
saveHeaderData: { |
|
|
|
applyNo: '', |
|
|
|
originalApplyNo: '', |
|
|
|
@ -257,6 +278,8 @@ export default { |
|
|
|
expectedFinishDate: '', |
|
|
|
projectLeaderName: this.$store.state.user.name, |
|
|
|
projectLeader: this.$store.state.user.userDisplay, |
|
|
|
pjmLeaderUserId: null, |
|
|
|
pjmLeaderName: '', |
|
|
|
contactMethod: '', |
|
|
|
processRequirement: '', |
|
|
|
creatorUserId: this.$store.state.user.id, |
|
|
|
@ -289,6 +312,25 @@ export default { |
|
|
|
} |
|
|
|
}, |
|
|
|
|
|
|
|
watch: { |
|
|
|
'saveHeaderData.buNo'(newVal, oldVal) { |
|
|
|
if (!newVal) { |
|
|
|
this.saveHeaderData.pjmLeaderUserId = null |
|
|
|
this.saveHeaderData.pjmLeaderName = '' |
|
|
|
// BU为空时回退查询全部PJM负责人 |
|
|
|
this.loadPjmLeaderList('') |
|
|
|
return |
|
|
|
} |
|
|
|
if (newVal !== oldVal) { |
|
|
|
if (oldVal !== undefined && oldVal !== null && oldVal !== '') { |
|
|
|
this.saveHeaderData.pjmLeaderUserId = null |
|
|
|
this.saveHeaderData.pjmLeaderName = '' |
|
|
|
} |
|
|
|
this.loadPjmLeaderList(newVal) |
|
|
|
} |
|
|
|
} |
|
|
|
}, |
|
|
|
|
|
|
|
mounted() { |
|
|
|
this.loadBuList() |
|
|
|
if (this.applyData && this.applyData.applyNo) { |
|
|
|
@ -298,6 +340,8 @@ export default { |
|
|
|
} |
|
|
|
this.isEdit = true |
|
|
|
} |
|
|
|
// 首次打开弹窗时也查询一次PJM负责人(BU为空时查询全量) |
|
|
|
this.loadPjmLeaderList(this.saveHeaderData.buNo || '') |
|
|
|
}, |
|
|
|
|
|
|
|
methods: { |
|
|
|
@ -316,6 +360,58 @@ export default { |
|
|
|
}) |
|
|
|
}, |
|
|
|
|
|
|
|
/** |
|
|
|
* 加载PJM负责人列表(产品文档收美-PM角色) |
|
|
|
*/ |
|
|
|
loadPjmLeaderList(buNo) { |
|
|
|
getPjmLeaderList({ buNo: buNo || '' }).then(({data}) => { |
|
|
|
if (data && data.code === 0) { |
|
|
|
this.pjmLeaderList = data.list || [] |
|
|
|
this.ensurePjmLeaderOption() |
|
|
|
if (this.saveHeaderData.pjmLeaderUserId && !this.saveHeaderData.pjmLeaderName) { |
|
|
|
this.handlePjmLeaderChange(this.saveHeaderData.pjmLeaderUserId) |
|
|
|
} |
|
|
|
} else { |
|
|
|
this.pjmLeaderList = [] |
|
|
|
this.$message.error(data.msg || '加载PJM负责人失败') |
|
|
|
} |
|
|
|
}).catch(() => { |
|
|
|
this.pjmLeaderList = [] |
|
|
|
this.$message.error('加载PJM负责人异常') |
|
|
|
}) |
|
|
|
}, |
|
|
|
|
|
|
|
/** |
|
|
|
* 处理PJM负责人变更 |
|
|
|
*/ |
|
|
|
handlePjmLeaderChange(userId) { |
|
|
|
if (!userId) { |
|
|
|
this.saveHeaderData.pjmLeaderName = '' |
|
|
|
return |
|
|
|
} |
|
|
|
const selected = this.pjmLeaderList.find(item => item.userId === userId) |
|
|
|
this.saveHeaderData.pjmLeaderName = selected |
|
|
|
? (selected.userDisplay || selected.username || '') |
|
|
|
: (this.saveHeaderData.pjmLeaderName || '') |
|
|
|
}, |
|
|
|
|
|
|
|
/** |
|
|
|
* 编辑场景兜底:已选PJM负责人不在当前下拉项时补充显示 |
|
|
|
*/ |
|
|
|
ensurePjmLeaderOption() { |
|
|
|
if (!this.saveHeaderData.pjmLeaderUserId) { |
|
|
|
return |
|
|
|
} |
|
|
|
const exist = this.pjmLeaderList.some(item => item.userId === this.saveHeaderData.pjmLeaderUserId) |
|
|
|
if (!exist && this.saveHeaderData.pjmLeaderName) { |
|
|
|
this.pjmLeaderList.push({ |
|
|
|
userId: this.saveHeaderData.pjmLeaderUserId, |
|
|
|
username: this.saveHeaderData.pjmLeaderName, |
|
|
|
userDisplay: this.saveHeaderData.pjmLeaderName |
|
|
|
}) |
|
|
|
} |
|
|
|
}, |
|
|
|
|
|
|
|
/** |
|
|
|
* 获取表单数据(用于验证) |
|
|
|
*/ |
|
|
|
|