|
|
|
@ -206,7 +206,7 @@ |
|
|
|
align="center" |
|
|
|
align="center" |
|
|
|
:width="isDetail ? '120' : ''" |
|
|
|
:width="isDetail ? '120' : ''" |
|
|
|
label="里程碑负责人" |
|
|
|
label="里程碑负责人" |
|
|
|
prop="milestoneMan" |
|
|
|
prop="milestoneMemo" |
|
|
|
> |
|
|
|
> |
|
|
|
<template #header> |
|
|
|
<template #header> |
|
|
|
<span><i style="color: red">*</i>里程碑负责人</span> |
|
|
|
<span><i style="color: red">*</i>里程碑负责人</span> |
|
|
|
@ -215,14 +215,15 @@ |
|
|
|
<template v-if="!isDetail"> |
|
|
|
<template v-if="!isDetail"> |
|
|
|
<el-form-item |
|
|
|
<el-form-item |
|
|
|
label-width="0" |
|
|
|
label-width="0" |
|
|
|
:prop="`stoneList[${scope.$index}].milestoneMan`" |
|
|
|
:prop="`stoneList[${scope.$index}].milestoneMemo`" |
|
|
|
:rules="addRules.milestoneMan" |
|
|
|
:rules="addRules.milestoneMemo" |
|
|
|
> |
|
|
|
> |
|
|
|
<el-select |
|
|
|
<el-select |
|
|
|
v-model="scope.row.milestoneMan" |
|
|
|
v-model="scope.row.milestoneMemo" |
|
|
|
placeholder="请选择里程碑负责人" |
|
|
|
placeholder="请选择里程碑负责人" |
|
|
|
clearable |
|
|
|
clearable |
|
|
|
filterable |
|
|
|
filterable |
|
|
|
|
|
|
|
@change="handleStoneListChange(scope.$index, scope.row, 'milestoneMemo')" |
|
|
|
> |
|
|
|
> |
|
|
|
<el-option |
|
|
|
<el-option |
|
|
|
v-for="item in memberList" |
|
|
|
v-for="item in memberList" |
|
|
|
@ -291,7 +292,9 @@ |
|
|
|
</el-form-item> |
|
|
|
</el-form-item> |
|
|
|
</template> |
|
|
|
</template> |
|
|
|
<template v-else> |
|
|
|
<template v-else> |
|
|
|
<span>{{ scope.row.milestoneNode }}</span> |
|
|
|
<span>{{ |
|
|
|
|
|
|
|
scope.row.milestoneNode ? scope.row.milestoneNode.substring(0, 10) : '' |
|
|
|
|
|
|
|
}}</span> |
|
|
|
</template> |
|
|
|
</template> |
|
|
|
</template> |
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
</el-table-column> |
|
|
|
@ -302,7 +305,12 @@ |
|
|
|
label="执行类型" |
|
|
|
label="执行类型" |
|
|
|
prop="executeType" |
|
|
|
prop="executeType" |
|
|
|
:width="isDetail ? '120' : ''" |
|
|
|
:width="isDetail ? '120' : ''" |
|
|
|
></el-table-column> |
|
|
|
> |
|
|
|
|
|
|
|
<template #default="scope"> |
|
|
|
|
|
|
|
<!-- {{ executeTypeFn(scope.row.executeType) }} --> |
|
|
|
|
|
|
|
{{ scope.row.executeTypeText }} |
|
|
|
|
|
|
|
</template> |
|
|
|
|
|
|
|
</el-table-column> |
|
|
|
<el-table-column |
|
|
|
<el-table-column |
|
|
|
v-if="isDetail" |
|
|
|
v-if="isDetail" |
|
|
|
align="center" |
|
|
|
align="center" |
|
|
|
@ -316,7 +324,13 @@ |
|
|
|
label="核查结果" |
|
|
|
label="核查结果" |
|
|
|
prop="checkResult" |
|
|
|
prop="checkResult" |
|
|
|
:width="isDetail ? '120' : ''" |
|
|
|
:width="isDetail ? '120' : ''" |
|
|
|
></el-table-column> |
|
|
|
> |
|
|
|
|
|
|
|
<template #default="scope"> |
|
|
|
|
|
|
|
<span v-if="scope.row.checkResult === 0">未核查</span> |
|
|
|
|
|
|
|
<span v-else-if="scope.row.checkResult === 1">已核查</span> |
|
|
|
|
|
|
|
<span v-else-if="scope.row.checkResult === 2">已核准</span> |
|
|
|
|
|
|
|
</template> |
|
|
|
|
|
|
|
</el-table-column> |
|
|
|
<el-table-column |
|
|
|
<el-table-column |
|
|
|
v-if="isDetail" |
|
|
|
v-if="isDetail" |
|
|
|
align="center" |
|
|
|
align="center" |
|
|
|
@ -328,16 +342,21 @@ |
|
|
|
v-if="isDetail" |
|
|
|
v-if="isDetail" |
|
|
|
align="center" |
|
|
|
align="center" |
|
|
|
label="评价等级" |
|
|
|
label="评价等级" |
|
|
|
prop="grade" |
|
|
|
prop="gradeTitle" |
|
|
|
:width="isDetail ? '120' : ''" |
|
|
|
:width="isDetail ? '120' : ''" |
|
|
|
></el-table-column> |
|
|
|
> |
|
|
|
|
|
|
|
</el-table-column> |
|
|
|
<el-table-column |
|
|
|
<el-table-column |
|
|
|
v-if="isDetail" |
|
|
|
v-if="isDetail" |
|
|
|
align="center" |
|
|
|
align="center" |
|
|
|
label="评价人" |
|
|
|
label="评价人" |
|
|
|
prop="gradeMan" |
|
|
|
prop="gradeMan" |
|
|
|
:width="isDetail ? '120' : ''" |
|
|
|
:width="isDetail ? '120' : ''" |
|
|
|
></el-table-column> |
|
|
|
> |
|
|
|
|
|
|
|
<template #default="scope"> |
|
|
|
|
|
|
|
{{ scope.row.gradeTitle == '待评价' ? '' : scope.row.gradeMan }} |
|
|
|
|
|
|
|
</template> |
|
|
|
|
|
|
|
</el-table-column> |
|
|
|
<el-table-column |
|
|
|
<el-table-column |
|
|
|
v-if="isDetail" |
|
|
|
v-if="isDetail" |
|
|
|
width="200" |
|
|
|
width="200" |
|
|
|
@ -360,8 +379,8 @@ |
|
|
|
<!-- 弹窗底部按钮 --> |
|
|
|
<!-- 弹窗底部按钮 --> |
|
|
|
<template #footer> |
|
|
|
<template #footer> |
|
|
|
<span class="dialog-footer"> |
|
|
|
<span class="dialog-footer"> |
|
|
|
<el-button @click="handleClose">取 消</el-button> |
|
|
|
<el-button @click="handleClose" :loading="loadingShow">取 消</el-button> |
|
|
|
<el-button type="primary" @click="handleSubmitForm">确 定</el-button> |
|
|
|
<el-button type="primary" @click="handleSubmitForm" :loading="loadingShow">确 定</el-button> |
|
|
|
</span> |
|
|
|
</span> |
|
|
|
</template> |
|
|
|
</template> |
|
|
|
</el-dialog> |
|
|
|
</el-dialog> |
|
|
|
@ -392,6 +411,7 @@ export default { |
|
|
|
}, |
|
|
|
}, |
|
|
|
data() { |
|
|
|
data() { |
|
|
|
return { |
|
|
|
return { |
|
|
|
|
|
|
|
loadingShow:false, |
|
|
|
formError: '', |
|
|
|
formError: '', |
|
|
|
addRules: { |
|
|
|
addRules: { |
|
|
|
projectName: [{ required: true, message: '请填写项目名称', trigger: ['blur', 'submit'] }], |
|
|
|
projectName: [{ required: true, message: '请填写项目名称', trigger: ['blur', 'submit'] }], |
|
|
|
@ -440,7 +460,7 @@ export default { |
|
|
|
milestonePlan: [ |
|
|
|
milestonePlan: [ |
|
|
|
{ required: true, message: '请填写里程碑计划', trigger: ['blur', 'submit'] }, |
|
|
|
{ required: true, message: '请填写里程碑计划', trigger: ['blur', 'submit'] }, |
|
|
|
], |
|
|
|
], |
|
|
|
milestoneMan: [ |
|
|
|
milestoneMemo: [ |
|
|
|
{ required: true, message: '请选择里程碑负责人', trigger: ['change', 'submit'] }, |
|
|
|
{ required: true, message: '请选择里程碑负责人', trigger: ['change', 'submit'] }, |
|
|
|
], |
|
|
|
], |
|
|
|
outputMaterial: [ |
|
|
|
outputMaterial: [ |
|
|
|
@ -457,6 +477,7 @@ export default { |
|
|
|
addForm: { |
|
|
|
addForm: { |
|
|
|
stoneList: [], |
|
|
|
stoneList: [], |
|
|
|
}, |
|
|
|
}, |
|
|
|
|
|
|
|
executeResultList: [], // 执行类型 |
|
|
|
}; |
|
|
|
}; |
|
|
|
}, |
|
|
|
}, |
|
|
|
computed: { |
|
|
|
computed: { |
|
|
|
@ -472,9 +493,26 @@ export default { |
|
|
|
this.getDeplList(); |
|
|
|
this.getDeplList(); |
|
|
|
if (this.title === '详情' || this.title === '修改') { |
|
|
|
if (this.title === '详情' || this.title === '修改') { |
|
|
|
this.getDetails(); |
|
|
|
this.getDetails(); |
|
|
|
|
|
|
|
this.getExecuteResultList(); |
|
|
|
} |
|
|
|
} |
|
|
|
}, |
|
|
|
}, |
|
|
|
methods: { |
|
|
|
methods: { |
|
|
|
|
|
|
|
executeTypeFn(type) { |
|
|
|
|
|
|
|
const item = this.executeResultList.find(item => item.dictKey === type); |
|
|
|
|
|
|
|
return item ? item.dictValue : ''; |
|
|
|
|
|
|
|
}, |
|
|
|
|
|
|
|
getExecuteTypeText(type) { |
|
|
|
|
|
|
|
const item = this.executeResultList.find(item => item.dictKey === type); |
|
|
|
|
|
|
|
console.log('item', item); |
|
|
|
|
|
|
|
return item ? item.dictValue : ''; |
|
|
|
|
|
|
|
}, |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
handleStoneListChange(index, row, type) { |
|
|
|
|
|
|
|
if (type === 'milestoneMemo') { |
|
|
|
|
|
|
|
let sel = this.memberList.filter(item => item.id == row.milestoneMemo)[0]; |
|
|
|
|
|
|
|
this.addForm.stoneList[index].milestoneMan = sel.realName; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
}, |
|
|
|
handleChange(type) { |
|
|
|
handleChange(type) { |
|
|
|
// 制单部门 |
|
|
|
// 制单部门 |
|
|
|
if (type == 'touchingDeptId') { |
|
|
|
if (type == 'touchingDeptId') { |
|
|
|
@ -506,11 +544,22 @@ export default { |
|
|
|
this.projectType = res.data.data; |
|
|
|
this.projectType = res.data.data; |
|
|
|
}); |
|
|
|
}); |
|
|
|
}, |
|
|
|
}, |
|
|
|
|
|
|
|
// 获取执行类型字典 |
|
|
|
|
|
|
|
getExecuteResultList() { |
|
|
|
|
|
|
|
getDictionary({ code: 'flow_project_executeResult' }).then(res => { |
|
|
|
|
|
|
|
this.executeResultList = res.data.data; |
|
|
|
|
|
|
|
}); |
|
|
|
|
|
|
|
}, |
|
|
|
// 获取详情数据 |
|
|
|
// 获取详情数据 |
|
|
|
getDetails() { |
|
|
|
getDetails() { |
|
|
|
getProcessDetail(this.rowItem.id).then(res => { |
|
|
|
getProcessDetail(this.rowItem.id).then(res => { |
|
|
|
console.log(res.data.data, 'res'); |
|
|
|
console.log(res.data.data, 'res'); |
|
|
|
this.addForm = res.data.data; |
|
|
|
this.addForm = res.data.data; |
|
|
|
|
|
|
|
const records = res.data.data; |
|
|
|
|
|
|
|
this.addForm.stoneList = records.stoneList.map(item => { |
|
|
|
|
|
|
|
item.executeTypeText = this.getExecuteTypeText(item.executeType); |
|
|
|
|
|
|
|
return item; |
|
|
|
|
|
|
|
}); |
|
|
|
// 安全地处理 memberName 回显 |
|
|
|
// 安全地处理 memberName 回显 |
|
|
|
if (res.data.data.memberName) { |
|
|
|
if (res.data.data.memberName) { |
|
|
|
this.addForm.memberName = String(res.data.data.memberName) |
|
|
|
this.addForm.memberName = String(res.data.data.memberName) |
|
|
|
@ -537,13 +586,12 @@ export default { |
|
|
|
// 插入里程碑行 |
|
|
|
// 插入里程碑行 |
|
|
|
handleOpenDialog() { |
|
|
|
handleOpenDialog() { |
|
|
|
const newRow = { |
|
|
|
const newRow = { |
|
|
|
id: 0, |
|
|
|
id: null, |
|
|
|
fmProjectApplication: {}, |
|
|
|
fmProjectApplication: {}, |
|
|
|
attachList: [], // 附件列表默认空数组 |
|
|
|
attachList: [], // 附件列表默认空数组 |
|
|
|
paId: 0, |
|
|
|
paId: 0, |
|
|
|
paIndex: `${(this.addForm.stoneList?.length || 0) + 1}`, |
|
|
|
paIndex: `${(this.addForm.stoneList?.length || 0) + 1}`, |
|
|
|
milestonePlan: '', |
|
|
|
milestonePlan: '', |
|
|
|
milestoneMan: '', |
|
|
|
|
|
|
|
outputMaterial: '', |
|
|
|
outputMaterial: '', |
|
|
|
milestoneNode: '', |
|
|
|
milestoneNode: '', |
|
|
|
milestoneMemo: '', |
|
|
|
milestoneMemo: '', |
|
|
|
@ -610,6 +658,7 @@ export default { |
|
|
|
}); |
|
|
|
}); |
|
|
|
return; |
|
|
|
return; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
this.loadingShow = true |
|
|
|
const submitData = this.formatSubmitData(this.addForm); |
|
|
|
const submitData = this.formatSubmitData(this.addForm); |
|
|
|
submitData.projectStartTime = submitData.projectStartTime + ' 00:00:00'; |
|
|
|
submitData.projectStartTime = submitData.projectStartTime + ' 00:00:00'; |
|
|
|
submitData.projectDesiredEnd = submitData.projectDesiredEnd + ' 00:00:00'; |
|
|
|
submitData.projectDesiredEnd = submitData.projectDesiredEnd + ' 00:00:00'; |
|
|
|
@ -617,13 +666,19 @@ export default { |
|
|
|
updateProcess({ ...submitDat, approvalStatus: 1 }).then(res => { |
|
|
|
updateProcess({ ...submitDat, approvalStatus: 1 }).then(res => { |
|
|
|
this.$message.success('修改成功'); |
|
|
|
this.$message.success('修改成功'); |
|
|
|
this.handleClose(true); |
|
|
|
this.handleClose(true); |
|
|
|
}); |
|
|
|
this.loadingShow = false |
|
|
|
|
|
|
|
}).catch(err=>{ |
|
|
|
|
|
|
|
this.loadingShow = false |
|
|
|
|
|
|
|
}) |
|
|
|
return; |
|
|
|
return; |
|
|
|
} else { |
|
|
|
} else { |
|
|
|
addProcess({ ...submitData, approvalStatus: 1 }).then(res => { |
|
|
|
addProcess({ ...submitData, approvalStatus: 1 }).then(res => { |
|
|
|
this.$message.success('提交成功'); |
|
|
|
this.$message.success('提交成功'); |
|
|
|
this.handleClose(true); |
|
|
|
this.handleClose(true); |
|
|
|
}); |
|
|
|
this.loadingShow = false |
|
|
|
|
|
|
|
}).catch(err=>{ |
|
|
|
|
|
|
|
this.loadingShow = false |
|
|
|
|
|
|
|
}) |
|
|
|
} |
|
|
|
} |
|
|
|
}); |
|
|
|
}); |
|
|
|
}, |
|
|
|
}, |
|
|
|
|