|
|
|
|
@ -112,20 +112,6 @@ |
|
|
|
|
</el-col> |
|
|
|
|
<el-col :span="8"> |
|
|
|
|
<el-form-item label="成员名称:" prop="memberName"> |
|
|
|
|
<!-- <el-select |
|
|
|
|
:disabled="isDetail" |
|
|
|
|
v-model="addForm.memberName" |
|
|
|
|
multiple |
|
|
|
|
placeholder="请选择成员名称" |
|
|
|
|
clearable |
|
|
|
|
filterable |
|
|
|
|
> |
|
|
|
|
<el-option |
|
|
|
|
v-for="item in memberList" |
|
|
|
|
:label="item.realName" |
|
|
|
|
:value="item.id" |
|
|
|
|
></el-option> |
|
|
|
|
</el-select> --> |
|
|
|
|
<jhSelect |
|
|
|
|
:value="addForm.memberName" |
|
|
|
|
@input="val => (addForm.memberName = val)" |
|
|
|
|
@ -150,18 +136,6 @@ |
|
|
|
|
<el-row> |
|
|
|
|
<el-col :span="8"> |
|
|
|
|
<el-form-item label="项目支持人:" prop="projectSupportMan"> |
|
|
|
|
<!-- <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> --> |
|
|
|
|
<jhSelect |
|
|
|
|
:value="addForm.projectSupportMan" |
|
|
|
|
@input="val => (addForm.projectSupportMan = val)" |
|
|
|
|
@ -226,10 +200,15 @@ |
|
|
|
|
border |
|
|
|
|
@select="selectChange" |
|
|
|
|
class="table_project" |
|
|
|
|
:cell-class-name="tableCellClassName" |
|
|
|
|
> |
|
|
|
|
<el-table-column type="selection"></el-table-column> |
|
|
|
|
<el-table-column type="index" width="80" label="序号"></el-table-column> |
|
|
|
|
<el-table-column align="center" :width="isDetail ? '120' : ''" label="里程碑计划"> |
|
|
|
|
<el-table-column |
|
|
|
|
align="center" |
|
|
|
|
:width="isDetail || isStatusEdit ? '120' : ''" |
|
|
|
|
label="里程碑计划" |
|
|
|
|
> |
|
|
|
|
<template #header> |
|
|
|
|
<span><i style="color: red">*</i>里程碑计划</span> |
|
|
|
|
</template> |
|
|
|
|
@ -253,7 +232,7 @@ |
|
|
|
|
</el-table-column> |
|
|
|
|
<el-table-column |
|
|
|
|
align="center" |
|
|
|
|
:width="isDetail ? '120' : ''" |
|
|
|
|
:width="isDetail || isStatusEdit ? '120' : ''" |
|
|
|
|
label="里程碑负责人" |
|
|
|
|
prop="milestoneMemo" |
|
|
|
|
> |
|
|
|
|
@ -307,7 +286,7 @@ |
|
|
|
|
</el-table-column> |
|
|
|
|
<el-table-column |
|
|
|
|
align="center" |
|
|
|
|
:width="isDetail ? '120' : ''" |
|
|
|
|
:width="isDetail || isStatusEdit ? '120' : ''" |
|
|
|
|
label="里程碑输出物" |
|
|
|
|
prop="outputMaterial" |
|
|
|
|
> |
|
|
|
|
@ -334,7 +313,7 @@ |
|
|
|
|
</el-table-column> |
|
|
|
|
<el-table-column |
|
|
|
|
align="center" |
|
|
|
|
:width="isDetail ? '180' : ''" |
|
|
|
|
:width="isDetail || isStatusEdit ? '180' : ''" |
|
|
|
|
label="里程碑节点" |
|
|
|
|
prop="milestoneNode" |
|
|
|
|
> |
|
|
|
|
@ -365,7 +344,7 @@ |
|
|
|
|
</el-table-column> |
|
|
|
|
<!-- 详情页专属列 --> |
|
|
|
|
<el-table-column |
|
|
|
|
v-if="isDetail" |
|
|
|
|
v-if="isDetail || isStatusEdit" |
|
|
|
|
align="center" |
|
|
|
|
label="执行类型" |
|
|
|
|
prop="executeType" |
|
|
|
|
@ -376,18 +355,18 @@ |
|
|
|
|
</template> |
|
|
|
|
</el-table-column> |
|
|
|
|
<el-table-column |
|
|
|
|
v-if="isDetail" |
|
|
|
|
v-if="isDetail || isStatusEdit" |
|
|
|
|
align="center" |
|
|
|
|
label="延期时间" |
|
|
|
|
prop="delayTime" |
|
|
|
|
:width="isDetail ? '120' : ''" |
|
|
|
|
:width="isDetail || isStatusEdit ? '120' : ''" |
|
|
|
|
></el-table-column> |
|
|
|
|
<el-table-column |
|
|
|
|
v-if="isDetail" |
|
|
|
|
v-if="isDetail || isStatusEdit" |
|
|
|
|
align="center" |
|
|
|
|
label="核查结果" |
|
|
|
|
prop="checkResult" |
|
|
|
|
:width="isDetail ? '120' : ''" |
|
|
|
|
:width="isDetail || isStatusEdit ? '120' : ''" |
|
|
|
|
> |
|
|
|
|
<template #default="scope"> |
|
|
|
|
<span v-if="scope.row.checkResult === 0">未核查</span> |
|
|
|
|
@ -396,40 +375,45 @@ |
|
|
|
|
</template> |
|
|
|
|
</el-table-column> |
|
|
|
|
<el-table-column |
|
|
|
|
v-if="isDetail" |
|
|
|
|
v-if="isDetail || isStatusEdit" |
|
|
|
|
align="center" |
|
|
|
|
label="核查人" |
|
|
|
|
prop="checkMan" |
|
|
|
|
:width="isDetail ? '120' : ''" |
|
|
|
|
:width="isDetail || isStatusEdit ? '120' : ''" |
|
|
|
|
></el-table-column> |
|
|
|
|
<el-table-column |
|
|
|
|
v-if="isDetail" |
|
|
|
|
v-if="isDetail || isStatusEdit" |
|
|
|
|
align="center" |
|
|
|
|
label="评价等级" |
|
|
|
|
prop="gradeTitle" |
|
|
|
|
:width="isDetail ? '120' : ''" |
|
|
|
|
:width="isDetail || isStatusEdit ? '120' : ''" |
|
|
|
|
> |
|
|
|
|
</el-table-column> |
|
|
|
|
<el-table-column |
|
|
|
|
v-if="isDetail" |
|
|
|
|
v-if="isDetail || isStatusEdit" |
|
|
|
|
align="center" |
|
|
|
|
label="评价人" |
|
|
|
|
prop="gradeMan" |
|
|
|
|
:width="isDetail ? '120' : ''" |
|
|
|
|
:width="isDetail || isStatusEdit ? '120' : ''" |
|
|
|
|
> |
|
|
|
|
<template #default="scope"> |
|
|
|
|
{{ scope.row.gradeTitle == '待评价' ? '' : scope.row.gradeMan }} |
|
|
|
|
</template> |
|
|
|
|
</el-table-column> |
|
|
|
|
<el-table-column |
|
|
|
|
v-if="isDetail" |
|
|
|
|
v-if="isDetail || isStatusEdit" |
|
|
|
|
width="200" |
|
|
|
|
align="center" |
|
|
|
|
label="业务领导评价" |
|
|
|
|
prop="evaluate" |
|
|
|
|
:width="isDetail ? '120' : ''" |
|
|
|
|
:width="isDetail || isStatusEdit ? '120' : ''" |
|
|
|
|
></el-table-column> |
|
|
|
|
<el-table-column v-if="isDetail" align="center" label="附件" :width="isDetail ? '120' : ''"> |
|
|
|
|
<el-table-column |
|
|
|
|
v-if="isDetail || isStatusEdit" |
|
|
|
|
align="center" |
|
|
|
|
label="附件" |
|
|
|
|
:width="isDetail || isStatusEdit ? '120' : ''" |
|
|
|
|
> |
|
|
|
|
<el-button type="text">附件</el-button> |
|
|
|
|
</el-table-column> |
|
|
|
|
</el-table> |
|
|
|
|
@ -445,11 +429,10 @@ |
|
|
|
|
</template> |
|
|
|
|
|
|
|
|
|
<script> |
|
|
|
|
import { addProcess, getProcessDetail, getDeplList } from '@/api/flowManagement/index'; |
|
|
|
|
import { addProcess, getProcessDetail, getDeplList,updateProcess } from '@/api/flowManagement/index'; |
|
|
|
|
import { getRoleUserList } from '@/api/processManagement/taskDispatch'; |
|
|
|
|
import { getDictionary } from '@/api/system/dict'; |
|
|
|
|
import jhSelect from '@/components/jh-select/index.vue'; |
|
|
|
|
import { vi } from 'element-plus/es/locales.mjs'; |
|
|
|
|
export default { |
|
|
|
|
name: 'AddDialog', |
|
|
|
|
components: { jhSelect }, |
|
|
|
|
@ -547,11 +530,14 @@ export default { |
|
|
|
|
isDetail() { |
|
|
|
|
return this.title === '详情'; |
|
|
|
|
}, |
|
|
|
|
// 判断是否是审批之后和已完成之前的修改 |
|
|
|
|
isStatusEdit() { |
|
|
|
|
return (this.rowItem.approvalStatus != 8 && this.approvalStatus != 1)&&(this.title=='修改'); |
|
|
|
|
}, |
|
|
|
|
}, |
|
|
|
|
mounted() { |
|
|
|
|
this.openShow = this.visible; |
|
|
|
|
this.getDeplLists(); |
|
|
|
|
// this.getRoleUserList(); |
|
|
|
|
this.getDictionary(); |
|
|
|
|
|
|
|
|
|
if (this.title === '详情' || this.title === '修改') { |
|
|
|
|
@ -560,6 +546,13 @@ export default { |
|
|
|
|
} |
|
|
|
|
}, |
|
|
|
|
methods: { |
|
|
|
|
// 动态添加类名 |
|
|
|
|
tableCellClassName({ row, column, rowIndex, columnIndex }) { |
|
|
|
|
if (row.checkResult == 1 || row.checkResult == 2) { |
|
|
|
|
return 'highlight-row'; |
|
|
|
|
} |
|
|
|
|
return ''; |
|
|
|
|
}, |
|
|
|
|
executeTypeFn(type) { |
|
|
|
|
const item = this.executeResultList.find(item => item.dictKey === type); |
|
|
|
|
return item ? item.dictValue : ''; |
|
|
|
|
@ -578,14 +571,7 @@ export default { |
|
|
|
|
if (!val) { |
|
|
|
|
row.milestoneMan = ''; |
|
|
|
|
} |
|
|
|
|
// 如果 val 有值但 item 为空,说明是远程分页导致的匹配失败 |
|
|
|
|
// 此时 jhSelect 内部应该已经显示了 label (姓名),所以 UI 上用户能看到姓名 |
|
|
|
|
// 如果提交需要 milestoneMan,建议在 submit 时处理,或者接受此时 milestoneMan 为空/旧值 |
|
|
|
|
} |
|
|
|
|
// if (type === 'milestoneMemo') { |
|
|
|
|
// let sel = this.memberList.filter(item => item.id == row.milestoneMemo)[0]; |
|
|
|
|
// row.milestoneMan = item.realName; |
|
|
|
|
// } |
|
|
|
|
}, |
|
|
|
|
// 制单部门名称 |
|
|
|
|
deptChange() { |
|
|
|
|
@ -598,36 +584,19 @@ export default { |
|
|
|
|
this.addForm.projectHead = item.realName; |
|
|
|
|
} |
|
|
|
|
}, |
|
|
|
|
handleChange(value, item) { |
|
|
|
|
// // 制单部门 |
|
|
|
|
// if (type == 'touchingDeptId') { |
|
|
|
|
// let sel = this.deplList.filter(item => item.id == this.addForm.touchingDeptId)[0]; |
|
|
|
|
// this.addForm.touchingDept = sel.deptName; |
|
|
|
|
// } |
|
|
|
|
// // 项目负责人 |
|
|
|
|
// if (type == 'projectHeadId') { |
|
|
|
|
// let sel = this.memberList.filter(item => item.id == this.addForm.projectHeadId)[0]; |
|
|
|
|
// this.addForm.projectHead = sel.realName; |
|
|
|
|
// } |
|
|
|
|
}, |
|
|
|
|
// 获取部门列表 |
|
|
|
|
getDeplLists() { |
|
|
|
|
getDeplList().then(res => { |
|
|
|
|
let data = res.data.data |
|
|
|
|
let data = res.data.data; |
|
|
|
|
data.forEach(item => { |
|
|
|
|
if (item.deptName == '热表分厂') { |
|
|
|
|
console.log(item.children, 'item.deptName'); |
|
|
|
|
this.deplList = item.children||[]; |
|
|
|
|
this.deplList = item.children || []; |
|
|
|
|
} |
|
|
|
|
}); |
|
|
|
|
}); |
|
|
|
|
}, |
|
|
|
|
// 获取人员 |
|
|
|
|
getRoleUserList() { |
|
|
|
|
getRoleUserList({ size: 999999, current: 1 }).then(res => { |
|
|
|
|
this.memberList = res.data.data.records; |
|
|
|
|
}); |
|
|
|
|
}, |
|
|
|
|
|
|
|
|
|
// 获取项目类型 getDictionary |
|
|
|
|
getDictionary() { |
|
|
|
|
getDictionary({ code: 'flow_project_type' }).then(res => { |
|
|
|
|
@ -757,8 +726,8 @@ export default { |
|
|
|
|
const submitData = this.formatSubmitData(this.addForm); |
|
|
|
|
submitData.projectStartTime = submitData.projectStartTime + ' 00:00:00'; |
|
|
|
|
submitData.projectDesiredEnd = submitData.projectDesiredEnd + ' 00:00:00'; |
|
|
|
|
if (this.title === '详情') { |
|
|
|
|
updateProcess({ ...submitDat, approvalStatus: 1 }) |
|
|
|
|
if (this.title === '修改') { |
|
|
|
|
updateProcess({ ...submitData, approvalStatus: this.isStatusEdit ? this.rowItem.approvalStatus : 1, }) |
|
|
|
|
.then(res => { |
|
|
|
|
this.$message.success('修改成功'); |
|
|
|
|
this.handleClose(true); |
|
|
|
|
@ -769,7 +738,32 @@ export default { |
|
|
|
|
}); |
|
|
|
|
return; |
|
|
|
|
} else { |
|
|
|
|
addProcess({ ...submitData, approvalStatus: 1 }) |
|
|
|
|
if (this.isStatusEdit) { |
|
|
|
|
this.$confirm('确定要保存修改过的数据吗?', '提示', { |
|
|
|
|
confirmButtonText: '确定', |
|
|
|
|
cancelButtonText: '取消', |
|
|
|
|
type: 'warning', |
|
|
|
|
}) |
|
|
|
|
.then(() => { |
|
|
|
|
addProcess({ |
|
|
|
|
...submitData, |
|
|
|
|
approvalStatus: this.isStatusEdit ? this.rowItem.approvalStatus : 1, |
|
|
|
|
}) |
|
|
|
|
.then(res => { |
|
|
|
|
this.$message.success('提交成功'); |
|
|
|
|
this.handleClose(true); |
|
|
|
|
this.loadingShow = false; |
|
|
|
|
}) |
|
|
|
|
.catch(err => { |
|
|
|
|
this.loadingShow = false; |
|
|
|
|
}); |
|
|
|
|
}) |
|
|
|
|
.catch(() => {}); |
|
|
|
|
} else { |
|
|
|
|
addProcess({ |
|
|
|
|
...submitData, |
|
|
|
|
approvalStatus: this.isStatusEdit ? this.rowItem.approvalStatus : 1, |
|
|
|
|
}) |
|
|
|
|
.then(res => { |
|
|
|
|
this.$message.success('提交成功'); |
|
|
|
|
this.handleClose(true); |
|
|
|
|
@ -779,6 +773,7 @@ export default { |
|
|
|
|
this.loadingShow = false; |
|
|
|
|
}); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
}); |
|
|
|
|
}, |
|
|
|
|
}, |
|
|
|
|
@ -819,4 +814,10 @@ export default { |
|
|
|
|
padding: 0 !important; |
|
|
|
|
line-height: 50px !important; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/* 高亮行样式 */ |
|
|
|
|
:deep(.highlight-row) { |
|
|
|
|
background-color: rgba(40, 167, 69, 0.5) !important; /* 浅绿色背景,可根据需求修改 */ |
|
|
|
|
// color: #67c23a; |
|
|
|
|
} |
|
|
|
|
</style> |
|
|
|
|
|