|
|
|
|
@ -2,7 +2,7 @@ |
|
|
|
|
<el-dialog |
|
|
|
|
append-to-body="false" |
|
|
|
|
:title="title" |
|
|
|
|
:model-value="visible" |
|
|
|
|
:model-value="openShow" |
|
|
|
|
width="80%" |
|
|
|
|
@close="handleClose" |
|
|
|
|
> |
|
|
|
|
@ -17,15 +17,18 @@ |
|
|
|
|
</el-col> |
|
|
|
|
<el-col :span="8"> |
|
|
|
|
<el-form-item label="项目类型" prop="bcId"> |
|
|
|
|
<el-select :disabled="isDetail" v-model="addForm.bcId"> |
|
|
|
|
<el-option label="成本效率" :value="'310'"></el-option> |
|
|
|
|
<el-option label="成本效率1" :value="'311'"></el-option> |
|
|
|
|
<el-select :disabled="isDetail" v-model="addForm.bcId" clearable filterable> |
|
|
|
|
<el-option |
|
|
|
|
v-for="(item, index) in projectType" |
|
|
|
|
:label="item.dictValue" |
|
|
|
|
:value="item.dictKey" |
|
|
|
|
></el-option> |
|
|
|
|
</el-select> |
|
|
|
|
</el-form-item> |
|
|
|
|
</el-col> |
|
|
|
|
<el-col :span="8"> |
|
|
|
|
<el-form-item label="制单部门" prop="touchingDept"> |
|
|
|
|
<el-select :disabled="isDetail" v-model="addForm.touchingDept"> |
|
|
|
|
<el-select :disabled="isDetail" v-model="addForm.touchingDept" clearable filterable> |
|
|
|
|
<el-option label="化学镀镍一班崔胜伟" value="61"></el-option> |
|
|
|
|
<el-option label="部门二" value="62"></el-option> |
|
|
|
|
</el-select> |
|
|
|
|
@ -68,9 +71,12 @@ |
|
|
|
|
<el-row> |
|
|
|
|
<el-col :span="8"> |
|
|
|
|
<el-form-item label="项目负责人" prop="projectHead"> |
|
|
|
|
<el-select :disabled="isDetail" v-model="addForm.projectHead"> |
|
|
|
|
<el-option label="admin" :value="1"></el-option> |
|
|
|
|
<el-option label="负责人二" :value="2"></el-option> |
|
|
|
|
<el-select :disabled="isDetail" v-model="addForm.projectHead" clearable filterable> |
|
|
|
|
<el-option |
|
|
|
|
v-for="item in memberList" |
|
|
|
|
:label="item.realName" |
|
|
|
|
:value="item.id" |
|
|
|
|
></el-option> |
|
|
|
|
</el-select> |
|
|
|
|
</el-form-item> |
|
|
|
|
</el-col> |
|
|
|
|
@ -81,9 +87,14 @@ |
|
|
|
|
v-model="addForm.memberName" |
|
|
|
|
multiple |
|
|
|
|
placeholder="请选择成员名称" |
|
|
|
|
clearable |
|
|
|
|
filterable |
|
|
|
|
> |
|
|
|
|
<el-option label="测试" :value="521"></el-option> |
|
|
|
|
<el-option label="成员二" :value="2"></el-option> |
|
|
|
|
<el-option |
|
|
|
|
v-for="item in memberList" |
|
|
|
|
:label="item.realName" |
|
|
|
|
:value="item.id" |
|
|
|
|
></el-option> |
|
|
|
|
</el-select> |
|
|
|
|
</el-form-item> |
|
|
|
|
</el-col> |
|
|
|
|
@ -91,9 +102,17 @@ |
|
|
|
|
<el-row> |
|
|
|
|
<el-col :span="8"> |
|
|
|
|
<el-form-item label="项目支持人" prop="projectSupportMan"> |
|
|
|
|
<el-select :disabled="isDetail" v-model="addForm.projectSupportMan"> |
|
|
|
|
<el-option label="测试" value="521"></el-option> |
|
|
|
|
<el-option label="支持人二" value="2"></el-option> |
|
|
|
|
<el-select |
|
|
|
|
:disabled="isDetail" |
|
|
|
|
v-model="addForm.projectSupportMan" |
|
|
|
|
clearable |
|
|
|
|
filterable |
|
|
|
|
> |
|
|
|
|
<el-option |
|
|
|
|
v-for="item in memberList" |
|
|
|
|
:label="item.realName" |
|
|
|
|
:value="item.id" |
|
|
|
|
></el-option> |
|
|
|
|
</el-select> |
|
|
|
|
</el-form-item> |
|
|
|
|
</el-col> |
|
|
|
|
@ -183,9 +202,17 @@ |
|
|
|
|
:prop="`stoneList[${scope.$index}].milestoneMan`" |
|
|
|
|
:rules="addRules.milestoneMan" |
|
|
|
|
> |
|
|
|
|
<el-select v-model="scope.row.milestoneMan" placeholder="请选择里程碑负责人"> |
|
|
|
|
<el-option label="负责人一" :value="1"></el-option> |
|
|
|
|
<el-option label="负责人二" :value="2"></el-option> |
|
|
|
|
<el-select |
|
|
|
|
v-model="scope.row.milestoneMan" |
|
|
|
|
placeholder="请选择里程碑负责人" |
|
|
|
|
clearable |
|
|
|
|
filterable |
|
|
|
|
> |
|
|
|
|
<el-option |
|
|
|
|
v-for="item in memberList" |
|
|
|
|
:label="item.realName" |
|
|
|
|
:value="item.id" |
|
|
|
|
></el-option> |
|
|
|
|
</el-select> |
|
|
|
|
</el-form-item> |
|
|
|
|
</template> |
|
|
|
|
@ -258,36 +285,42 @@ |
|
|
|
|
align="center" |
|
|
|
|
label="执行类型" |
|
|
|
|
prop="executeType" |
|
|
|
|
:width="isDetail ? '120' : ''" |
|
|
|
|
></el-table-column> |
|
|
|
|
<el-table-column |
|
|
|
|
v-if="isDetail" |
|
|
|
|
align="center" |
|
|
|
|
label="延期时间" |
|
|
|
|
prop="delayTime" |
|
|
|
|
:width="isDetail ? '120' : ''" |
|
|
|
|
></el-table-column> |
|
|
|
|
<el-table-column |
|
|
|
|
v-if="isDetail" |
|
|
|
|
align="center" |
|
|
|
|
label="核查结果" |
|
|
|
|
prop="checkResult" |
|
|
|
|
:width="isDetail ? '120' : ''" |
|
|
|
|
></el-table-column> |
|
|
|
|
<el-table-column |
|
|
|
|
v-if="isDetail" |
|
|
|
|
align="center" |
|
|
|
|
label="核查人" |
|
|
|
|
prop="checkMan" |
|
|
|
|
:width="isDetail ? '120' : ''" |
|
|
|
|
></el-table-column> |
|
|
|
|
<el-table-column |
|
|
|
|
v-if="isDetail" |
|
|
|
|
align="center" |
|
|
|
|
label="评价等级" |
|
|
|
|
prop="grade" |
|
|
|
|
:width="isDetail ? '120' : ''" |
|
|
|
|
></el-table-column> |
|
|
|
|
<el-table-column |
|
|
|
|
v-if="isDetail" |
|
|
|
|
align="center" |
|
|
|
|
label="评价人" |
|
|
|
|
prop="gradeMan" |
|
|
|
|
:width="isDetail ? '120' : ''" |
|
|
|
|
></el-table-column> |
|
|
|
|
<el-table-column |
|
|
|
|
v-if="isDetail" |
|
|
|
|
@ -295,8 +328,9 @@ |
|
|
|
|
align="center" |
|
|
|
|
label="业务领导评价" |
|
|
|
|
prop="evaluate" |
|
|
|
|
:width="isDetail ? '120' : ''" |
|
|
|
|
></el-table-column> |
|
|
|
|
<el-table-column v-if="isDetail" align="center" label="附件"> |
|
|
|
|
<el-table-column v-if="isDetail" align="center" label="附件" :width="isDetail ? '120' : ''"> |
|
|
|
|
<el-button type="text">附件</el-button> |
|
|
|
|
</el-table-column> |
|
|
|
|
<!-- 通用操作列 --> |
|
|
|
|
@ -310,7 +344,7 @@ |
|
|
|
|
<!-- 弹窗底部按钮 --> |
|
|
|
|
<template #footer> |
|
|
|
|
<span class="dialog-footer"> |
|
|
|
|
<el-button @click="visible = false">取 消</el-button> |
|
|
|
|
<el-button @click="handleClose">取 消</el-button> |
|
|
|
|
<el-button type="primary" @click="handleSubmitForm">确 定</el-button> |
|
|
|
|
</span> |
|
|
|
|
</template> |
|
|
|
|
@ -318,8 +352,9 @@ |
|
|
|
|
</template> |
|
|
|
|
|
|
|
|
|
<script> |
|
|
|
|
import { addProcess } from '../../api/flowManagement/index'; |
|
|
|
|
import { addProcess, getProcessDetail } from '@/api/flowManagement/index'; |
|
|
|
|
import { getRoleUserList } from '@/api/processManagement/taskDispatch'; |
|
|
|
|
import { getDictionary } from '@/api/system/dict'; |
|
|
|
|
export default { |
|
|
|
|
name: 'AddDialog', |
|
|
|
|
props: { |
|
|
|
|
@ -332,30 +367,10 @@ export default { |
|
|
|
|
required: true, |
|
|
|
|
default: false, |
|
|
|
|
}, |
|
|
|
|
addForm: { |
|
|
|
|
rowItem: { |
|
|
|
|
type: Object, |
|
|
|
|
required: true, |
|
|
|
|
default: () => ({ |
|
|
|
|
id: 0, |
|
|
|
|
paCode: '', |
|
|
|
|
touchingMan: '', |
|
|
|
|
touchingDept: '', |
|
|
|
|
touchingTime: '', |
|
|
|
|
projectName: '', |
|
|
|
|
bcId: 0, |
|
|
|
|
projectBackcloth: '', |
|
|
|
|
projectTarget: '', |
|
|
|
|
desiredResult: '', |
|
|
|
|
projectStartTime: '', |
|
|
|
|
projectDesiredEnd: '', |
|
|
|
|
projectEnd: '', |
|
|
|
|
projectSupportMan: '', |
|
|
|
|
projectHead: '', |
|
|
|
|
memberId: 0, |
|
|
|
|
memberName: '', |
|
|
|
|
approvalStatus: 0, |
|
|
|
|
stoneList: [], // 里程碑数组 |
|
|
|
|
}), |
|
|
|
|
default: () => ({}), |
|
|
|
|
}, |
|
|
|
|
}, |
|
|
|
|
data() { |
|
|
|
|
@ -418,6 +433,12 @@ export default { |
|
|
|
|
{ required: true, message: '请选择里程碑节点', trigger: ['change', 'submit'] }, |
|
|
|
|
], |
|
|
|
|
}, |
|
|
|
|
memberList: [], //人员列表 |
|
|
|
|
projectType: [], //项目类型 |
|
|
|
|
openShow: false, |
|
|
|
|
addForm:{ |
|
|
|
|
stoneList:[] |
|
|
|
|
} |
|
|
|
|
}; |
|
|
|
|
}, |
|
|
|
|
computed: { |
|
|
|
|
@ -426,19 +447,47 @@ export default { |
|
|
|
|
return this.title === '详情'; |
|
|
|
|
}, |
|
|
|
|
}, |
|
|
|
|
mounted(){ |
|
|
|
|
mounted() { |
|
|
|
|
this.openShow = this.visible; |
|
|
|
|
this.getRoleUserList(); |
|
|
|
|
this.getDictionary(); |
|
|
|
|
if (this.title === '详情' || this.title === '修改') { |
|
|
|
|
this.getDetails(); |
|
|
|
|
} |
|
|
|
|
}, |
|
|
|
|
methods: { |
|
|
|
|
getRoleUserList(){ |
|
|
|
|
getRoleUserList().then(res => { |
|
|
|
|
this.memberList = res.data.data; |
|
|
|
|
// 获取人员 |
|
|
|
|
getRoleUserList() { |
|
|
|
|
getRoleUserList({ size: 999999, current: 1 }).then(res => { |
|
|
|
|
this.memberList = res.data.data.records; |
|
|
|
|
}); |
|
|
|
|
}, |
|
|
|
|
// 获取项目类型 getDictionary |
|
|
|
|
getDictionary() { |
|
|
|
|
getDictionary({ code: 'flow_project_type' }).then(res => { |
|
|
|
|
this.projectType = res.data.data; |
|
|
|
|
}); |
|
|
|
|
}, |
|
|
|
|
// 获取详情数据 |
|
|
|
|
getDetails() { |
|
|
|
|
getProcessDetail(this.rowItem.id).then(res => { |
|
|
|
|
console.log(res.data.data,'res'); |
|
|
|
|
this.addForm = res.data.data; |
|
|
|
|
// 安全地处理 memberName 回显 |
|
|
|
|
if (res.data.data.memberName) { |
|
|
|
|
this.addForm.memberName = String(res.data.data.memberName) |
|
|
|
|
.split(',') |
|
|
|
|
.map(id => id.trim()) |
|
|
|
|
.filter(Boolean); |
|
|
|
|
} else { |
|
|
|
|
this.addForm.memberName = []; |
|
|
|
|
} |
|
|
|
|
}); |
|
|
|
|
}, |
|
|
|
|
handleClose() { |
|
|
|
|
this.$emit('close ', false); |
|
|
|
|
handleClose(type) { |
|
|
|
|
this.formError = ''; |
|
|
|
|
this.$refs.addForm?.resetFields(); |
|
|
|
|
this.openShow = false; |
|
|
|
|
this.$emit('close ', type); |
|
|
|
|
}, |
|
|
|
|
selectChange(list, row) { |
|
|
|
|
row._select = !row._select; |
|
|
|
|
@ -521,21 +570,17 @@ export default { |
|
|
|
|
return; |
|
|
|
|
} |
|
|
|
|
const submitData = this.formatSubmitData(this.addForm); |
|
|
|
|
console.log('submitData', submitData); |
|
|
|
|
try { |
|
|
|
|
const res = addProcess(submitData); |
|
|
|
|
if (res.code === 200) { |
|
|
|
|
if (this.title === '详情') { |
|
|
|
|
updateProcess({ ...submitDat, approvalStatus: 1 }).then(res => { |
|
|
|
|
this.$message.success('修改成功'); |
|
|
|
|
this.handleClose(true); |
|
|
|
|
}); |
|
|
|
|
return; |
|
|
|
|
} else { |
|
|
|
|
addProcess({ ...submitData, approvalStatus: 1 }).then(res => { |
|
|
|
|
this.$message.success('提交成功'); |
|
|
|
|
this.visible = false; |
|
|
|
|
this.$emit('submit-form', submitData); |
|
|
|
|
} else { |
|
|
|
|
this.$message.error(res.msg || '提交失败'); |
|
|
|
|
} |
|
|
|
|
this.visible = false; |
|
|
|
|
this.$emit('submit-form', submitData); |
|
|
|
|
} catch (err) { |
|
|
|
|
this.$message.error(err.message); |
|
|
|
|
console.error('提交失败:', err); |
|
|
|
|
this.handleClose(true); |
|
|
|
|
}); |
|
|
|
|
} |
|
|
|
|
}); |
|
|
|
|
}, |
|
|
|
|
|