update 项目合规流程

This commit is contained in:
赵霄
2023-12-18 11:00:50 +08:00
parent f596e92fac
commit 7eb96e7627
2 changed files with 125 additions and 56 deletions
+12 -1
View File
@@ -360,6 +360,9 @@ const savePostMeetingManage = (params) => postAction('/process/meetingManageFlow
// 权限申请流程业务数据 // 权限申请流程业务数据
const getPostMeetingManageDataById = (params) => getAction('/meetingmanage/processMeetingManage/queryByProjectId', params) const getPostMeetingManageDataById = (params) => getAction('/meetingmanage/processMeetingManage/queryByProjectId', params)
// 流程中心统一转办
const processTransfer = (params) => postAction('/workCenter/transfer', params)
/* 项目合规评估流程 */ /* 项目合规评估流程 */
// 获取项目法规清单 // 获取项目法规清单
const queryProjectRegulationList = (params) => getAction('/projectLibrary/lawsAssess/page', params) const queryProjectRegulationList = (params) => getAction('/projectLibrary/lawsAssess/page', params)
@@ -373,6 +376,10 @@ const submitProjectComplianceEvaluation = (params) => postAction('/process/proje
const saveProjectComplianceEvaluation = (params) => postAction('/process/projectAssess/saveToDraft', params) const saveProjectComplianceEvaluation = (params) => postAction('/process/projectAssess/saveToDraft', params)
// 获取流程数据 // 获取流程数据
const queryProjectComplianceEvaluation = (params) => getAction('/process/projectAssess/queryProcessInfoVO', params) const queryProjectComplianceEvaluation = (params) => getAction('/process/projectAssess/queryProcessInfoVO', params)
// 同意
const agreeProjectComplianceEvaluation = (params) => postAction('/process/projectAssess/agree', params)
// 驳回
const rejectProjectComplianceEvaluation = (params) => postAction('/process/projectAssess/reject', params)
export { export {
getProcessNodeList, getProcessNodeList,
@@ -556,10 +563,14 @@ export {
savePostMeetingManage, savePostMeetingManage,
getPostMeetingManageDataById, getPostMeetingManageDataById,
processTransfer,
queryProjectRegulationList, queryProjectRegulationList,
queryStandardClauseList, queryStandardClauseList,
initiateProjectComplianceEvaluation, initiateProjectComplianceEvaluation,
submitProjectComplianceEvaluation, submitProjectComplianceEvaluation,
saveProjectComplianceEvaluation, saveProjectComplianceEvaluation,
queryProjectComplianceEvaluation queryProjectComplianceEvaluation,
agreeProjectComplianceEvaluation,
rejectProjectComplianceEvaluation
} }
@@ -165,15 +165,15 @@
</template> </template>
<!--设计工程师--> <!--设计工程师-->
<template v-slot:designEngineer="{text, record, index}"> <template v-slot:designEngineers="{text, record, index}">
<!--不涉及不需要选模块负责人需要填写不涉及理由--> <!--不涉及不需要选模块负责人需要填写不涉及理由-->
<user-selection :name-str="record.designEngineer_dictText" <user-selection :name-str="record.designEngineer_dictText"
:show-btn="false" :show-btn="false"
:value="record.designEngineer" :value="record.designEngineers"
:placeholder="$t('pleaseSelect') + $t('workCenter.standardConsultationProcess.designEngineer')" :placeholder="$t('pleaseSelect') + $t('workCenter.standardConsultationProcess.designEngineer')"
type="checkbox" type="checkbox"
v-if="!record.notInvolved" v-if="!record.notInvolved"
@listChange="value => handleUserChange(value, record, index, 'designEngineer')" /> @listChange="value => handleUserChange(value, record, index, 'designEngineers')" />
<div v-else>{{ global.emptyLine }}</div> <div v-else>{{ global.emptyLine }}</div>
</template> </template>
@@ -198,22 +198,24 @@
:pagination="false" :pagination="false"
:all-disabled="expandTableDisabled" :all-disabled="expandTableDisabled"
form-is-depend="evaluationFeedback" form-is-depend="evaluationFeedback"
:extra-form="extraForm" :extra-form="extraForm">
:row-selection="{ selectedRowKeys: selectedRowKeys, onChange: onSelectChange }">
<!--条文内容-->
<template v-slot:clauseContent="{text}">
<div class="table-text" @click="showContent(text)" v-if="text">
{{ text && text !== 'null' ? text.replace(/<.*?>/ig, ' ') : '' }}
</div>
<div class="table-text" v-else>{{ global.emptyLine }}</div>
</template>
<!--评估反馈-->
<template v-slot:evaluationFeedback="{text, record, index}"> <template v-slot:evaluationFeedback="{text, record, index}">
<j-dict-select-tag <j-dict-select-tag
v-if="!expandTableDisabled" v-if="!expandTableDisabled"
style="width: 100%" style="width: 100%"
:placeholde="$t('pleaseSelect') + $t('workCenter.projectComplianceEvaluationProcess.evaluationFeedback')" :placeholder="$t('pleaseSelect') + $t('workCenter.projectComplianceEvaluationProcess.evaluationFeedback')"
:value="record.evaluationFeedback" :value="record.evaluationFeedback"
:options="[ dict-code="assess_results"
{value:'1', text: '符合'},
{value:'2', text: '不符合'},
{value:'3', text: '待验证'},
{value:'4', text: '不涉及'},
]"
@change="value => handleEvaluationFeedBackChange(value, record, index)" /> @change="value => handleEvaluationFeedBackChange(value, record, index)" />
<template v-else> <template v-else>
@@ -267,7 +269,7 @@
<div class="detail-page-scroll-content p-0" v-show="switchValue === 'user'"> <div class="detail-page-scroll-content p-0" v-show="switchValue === 'user'">
<process-detail-list> <process-detail-list>
<template #personnelInfo> <template #personnelInfo>
<personnel-info ref="personnelInfo" :data="personnelInfoData" /> <personnel-info ref="personnelInfo" :data="personnelInfoData" :current-node="currentNode" />
</template> </template>
</process-detail-list> </process-detail-list>
</div> </div>
@@ -305,7 +307,7 @@
</div> </div>
<!--选人--> <!--选人-->
<user-select-modal type="checkbox" ref="userSelectModal" @listChange="handleBatchSelectorOk" /> <user-select-modal type="checkbox" ref="userSelectModal" @listChange="handleBatchSelectorOk" @change="continueTransfer" />
<!--不涉及--> <!--不涉及-->
<uninvolved-modal ref="uninvolvedModal" @ok="handleUninvolvedOk" /> <uninvolved-modal ref="uninvolvedModal" @ok="handleUninvolvedOk" />
<!--条文内容--> <!--条文内容-->
@@ -330,7 +332,10 @@ import {
initiateProjectComplianceEvaluation, initiateProjectComplianceEvaluation,
submitProjectComplianceEvaluation, submitProjectComplianceEvaluation,
saveProjectComplianceEvaluation, saveProjectComplianceEvaluation,
queryProjectComplianceEvaluation queryProjectComplianceEvaluation,
processTransfer,
agreeProjectComplianceEvaluation,
rejectProjectComplianceEvaluation
} from '../../../api/workCenter' } from '../../../api/workCenter'
import SplitClauseDetail from '../../documentTool/documentSplit/modules/SplitClauseDetail' import SplitClauseDetail from '../../documentTool/documentSplit/modules/SplitClauseDetail'
@@ -473,13 +478,13 @@ export default {
'1': { '1': {
rules: { rules: {
// 依据描述 // 依据描述
basisDescription: { description: {
required: true, required: true,
message: this.$t('pleaseEnter') + this.$t('projectLibrary.specialProjectLibrary.basisDescription'), message: this.$t('pleaseEnter') + this.$t('projectLibrary.specialProjectLibrary.basisDescription'),
trigger: 'blur' trigger: 'blur'
}, },
// 佐证材料 // 佐证材料
basisFile: { fileId: {
required: false, required: false,
message: this.$t('pleaseUpload') + this.$t('projectLibrary.specialProjectLibrary.supportingMaterial'), message: this.$t('pleaseUpload') + this.$t('projectLibrary.specialProjectLibrary.supportingMaterial'),
trigger: 'change' trigger: 'change'
@@ -489,12 +494,12 @@ export default {
{ {
fieldShowType: 1, fieldShowType: 1,
dbFieldTxt: this.$t('projectLibrary.specialProjectLibrary.basisDescription'), dbFieldTxt: this.$t('projectLibrary.specialProjectLibrary.basisDescription'),
dbFieldName: 'basisDescription' dbFieldName: 'description'
}, },
{ {
fieldShowType: 2, fieldShowType: 2,
dbFieldTxt: this.$t('projectLibrary.specialProjectLibrary.supportingMaterial'), dbFieldTxt: this.$t('projectLibrary.specialProjectLibrary.supportingMaterial'),
dbFieldName: 'basisFile', dbFieldName: 'fileId',
fileType: 'pdf,doc,docx,pptx,ppt,jpg,jpeg,png,xls,xlsx,bmp' fileType: 'pdf,doc,docx,pptx,ppt,jpg,jpeg,png,xls,xlsx,bmp'
} }
] ]
@@ -503,13 +508,13 @@ export default {
'2': { '2': {
rules: { rules: {
// 依据描述 // 依据描述
basisDescription: { description: {
required: true, required: true,
message: this.$t('pleaseEnter') + this.$t('projectLibrary.specialProjectLibrary.basisDescription'), message: this.$t('pleaseEnter') + this.$t('projectLibrary.specialProjectLibrary.basisDescription'),
trigger: 'blur' trigger: 'blur'
}, },
// 预计整改完成日期 // 预计整改完成日期
basisFile: { expectedTime: {
required: true, required: true,
message: this.$t('pleaseSelect') + this.$t('projectLibrary.vehicleItemLibrary.estimatedDateOfCompletionOfRectification'), message: this.$t('pleaseSelect') + this.$t('projectLibrary.vehicleItemLibrary.estimatedDateOfCompletionOfRectification'),
trigger: 'change' trigger: 'change'
@@ -519,12 +524,12 @@ export default {
{ {
fieldShowType: 1, fieldShowType: 1,
dbFieldTxt: this.$t('projectLibrary.specialProjectLibrary.basisDescription'), dbFieldTxt: this.$t('projectLibrary.specialProjectLibrary.basisDescription'),
dbFieldName: 'basisDescription' dbFieldName: 'description'
}, },
{ {
fieldShowType: 3, fieldShowType: 3,
dbFieldTxt: this.$t('projectLibrary.vehicleItemLibrary.estimatedDateOfCompletionOfRectification'), dbFieldTxt: this.$t('projectLibrary.vehicleItemLibrary.estimatedDateOfCompletionOfRectification'),
dbFieldName: 'basisFile' dbFieldName: 'expectedTime'
} }
] ]
}, },
@@ -532,13 +537,13 @@ export default {
'3': { '3': {
rules: { rules: {
// 依据描述 // 依据描述
basisDescription: { description: {
required: true, required: true,
message: this.$t('pleaseEnter') + this.$t('projectLibrary.specialProjectLibrary.basisDescription'), message: this.$t('pleaseEnter') + this.$t('projectLibrary.specialProjectLibrary.basisDescription'),
trigger: 'blur' trigger: 'blur'
}, },
// 预计整改完成日期 // 预计整改完成日期
basisFile: { expectedTime: {
required: true, required: true,
message: this.$t('pleaseSelect') + this.$t('projectLibrary.vehicleItemLibrary.estimatedDateOfCompletionOfRectification'), message: this.$t('pleaseSelect') + this.$t('projectLibrary.vehicleItemLibrary.estimatedDateOfCompletionOfRectification'),
trigger: 'change' trigger: 'change'
@@ -548,12 +553,12 @@ export default {
{ {
fieldShowType: 1, fieldShowType: 1,
dbFieldTxt: this.$t('projectLibrary.specialProjectLibrary.basisDescription'), dbFieldTxt: this.$t('projectLibrary.specialProjectLibrary.basisDescription'),
dbFieldName: 'basisDescription' dbFieldName: 'description'
}, },
{ {
fieldShowType: 3, fieldShowType: 3,
dbFieldTxt: this.$t('projectLibrary.vehicleItemLibrary.estimatedDateOfCompletionOfRectification'), dbFieldTxt: this.$t('projectLibrary.vehicleItemLibrary.estimatedDateOfCompletionOfRectification'),
dbFieldName: 'basisFile' dbFieldName: 'expectedTime'
} }
] ]
}, },
@@ -561,7 +566,7 @@ export default {
'4': { '4': {
rules: { rules: {
// 依据描述 // 依据描述
basisDescription: { description: {
required: true, required: true,
message: this.$t('pleaseEnter') + this.$t('projectLibrary.specialProjectLibrary.basisDescription'), message: this.$t('pleaseEnter') + this.$t('projectLibrary.specialProjectLibrary.basisDescription'),
trigger: 'blur' trigger: 'blur'
@@ -571,12 +576,13 @@ export default {
{ {
fieldShowType: 1, fieldShowType: 1,
dbFieldTxt: this.$t('projectLibrary.specialProjectLibrary.basisDescription'), dbFieldTxt: this.$t('projectLibrary.specialProjectLibrary.basisDescription'),
dbFieldName: 'basisDescription' dbFieldName: 'description'
} }
] ]
} }
}, },
businessId: null businessId: null,
isTransfer: false // 是否转办选人
} }
}, },
computed: { computed: {
@@ -707,9 +713,9 @@ export default {
// 设计工程师 // 设计工程师
{ {
title: this.$t('workCenter.standardConsultationProcess.designEngineer'), title: this.$t('workCenter.standardConsultationProcess.designEngineer'),
dataIndex: 'designEngineer', dataIndex: 'designEngineers',
width: 150, width: 150,
scopedSlots: { customRender: 'designEngineer' } scopedSlots: { customRender: 'designEngineers' }
}, },
// 操作 // 操作
{ {
@@ -735,7 +741,7 @@ export default {
// 评估反馈 // 评估反馈
{ {
title: this.$t('workCenter.projectComplianceEvaluationProcess.evaluationFeedback'), title: this.$t('workCenter.projectComplianceEvaluationProcess.evaluationFeedback'),
dataIndex: 'evaluationFeedback', dataIndex: 'evaluationFeedback_dictText',
width: 150, width: 150,
align: 'center', align: 'center',
scopedSlots: { customRender: 'evaluationFeedback' } scopedSlots: { customRender: 'evaluationFeedback' }
@@ -804,7 +810,7 @@ export default {
} }
// 流程审批信息 // 流程审批信息
this.approvalInfo = Object.assign({}, draftResult.approvalInfo) this.approvalInfo = Object.assign({}, draftResult.approvalInfo)
} else if (this.currentNode === ProjectComplianceEvaluationProcessNode.departLeaderIssued.value) { } else {
const dataList = result.businessInfoDTO.processProjectAssessTermList || [] const dataList = result.businessInfoDTO.processProjectAssessTermList || []
this.dataSource = dataList.map((item, index) => { this.dataSource = dataList.map((item, index) => {
item.tableRowKey = index item.tableRowKey = index
@@ -947,9 +953,13 @@ export default {
this.$message.warning(this.$t('selectOne')) this.$message.warning(this.$t('selectOne'))
return return
} }
this.isTransfer = false
this.$refs.userSelectModal.open() this.$refs.userSelectModal.open()
}, },
handleBatchSelectorOk (list) { handleBatchSelectorOk (list) {
if (this.isTransfer) {
return
}
let fieldName let fieldName
switch (this.currentNode) { switch (this.currentNode) {
// 发起节点,批量选择的是责任单位负责人 // 发起节点,批量选择的是责任单位负责人
@@ -962,7 +972,7 @@ export default {
break break
// 模块负责人分发,批量选择的是设计工程师 // 模块负责人分发,批量选择的是设计工程师
case ProjectComplianceEvaluationProcessNode.moduleOwnerIssued.value: case ProjectComplianceEvaluationProcessNode.moduleOwnerIssued.value:
fieldName = 'designEngineer' fieldName = 'designEngineers'
break break
default: default:
break break
@@ -1056,25 +1066,11 @@ export default {
processProjectAssessLinkList = JSON.parse(JSON.stringify(this.standardDataSource)) processProjectAssessLinkList = JSON.parse(JSON.stringify(this.standardDataSource))
// 关联条款列表(发起第四步) // 关联条款列表(发起第四步)
processProjectAssessTermList = JSON.parse(JSON.stringify(this.dataSource)) processProjectAssessTermList = JSON.parse(JSON.stringify(this.dataSource))
// // 校验责任单位必填
// if (processProjectAssessTermList.some(tt => !tt.responsibleUnits)) {
// this.$message.warning(this.$t('workCenter.projectComplianceEvaluationProcess.pleaseSelectResponsibleUnit'))
// flag = false
// }
// 校验责任单位负责人必填 // 校验责任单位负责人必填
if (processProjectAssessTermList.some(tt => !tt.responsibleUnitLeaders)) { if (processProjectAssessTermList.some(tt => !tt.responsibleUnitLeaders && tt.canAssignFlag + '' === '1')) {
this.$message.warning(this.$t('workCenter.projectComplianceEvaluationProcess.pleaseSelectResponsibleUnitLeader')) this.$message.warning(this.$t('workCenter.projectComplianceEvaluationProcess.pleaseSelectResponsibleUnitLeader'))
flag = false flag = false
} }
// // 校验责任单位和责任单位负责人是一对一的关系
// if (processProjectAssessTermList.some(tt => {
// const responsibleUnitList = (tt.responsibleUnits || '').split(',')
// const responsibleUnitLeadersList = (tt.responsibleUnitLeaders || '').split(',')
// return responsibleUnitList.length !== responsibleUnitLeadersList.length
// })) {
// this.$message.warning(this.$t('workCenter.projectComplianceEvaluationProcess.aUnitOnlyALeader'))
// flag = false
// }
formData.businessInfoDTO = { formData.businessInfoDTO = {
processProjectAssess, processProjectAssessLinkList, processProjectAssessTermList processProjectAssess, processProjectAssessLinkList, processProjectAssessTermList
} }
@@ -1157,7 +1153,6 @@ export default {
*/ */
handleSubmit () { handleSubmit () {
const formData = this.dealFormData() const formData = this.dealFormData()
console.log('提交表单数据===', formData)
if (!formData) { if (!formData) {
return return
} }
@@ -1183,14 +1178,77 @@ export default {
this.loading = false this.loading = false
}) })
}, },
/**
* 转办
*/
handleTurnTo () { handleTurnTo () {
this.isTransfer = true
this.$refs.userSelectModal.open()
}, },
continueTransfer (userId) {
if (!this.isTransfer) {
return
}
const params = {
taskId: this.$route.query.taskId,
userId
}
this.loading = true
processTransfer(params).then(res => {
if (res.success) {
this.$message.success(res.message)
this.goBack()
} else {
this.$message.warning(res.message)
}
}).finally(() => {
this.loading = false
})
},
/**
* 同意
*/
handleAgree () { handleAgree () {
this.validatorRules.handleText.rules[0].required = false
if (!this.approvalInfoForm.getFieldValue('handleText')) {
this.approvalInfoForm.setFieldsValue({ handleText: '同意' })
}
const formData = this.dealFormData()
if (!formData) {
return
}
this.loading = true
agreeProjectComplianceEvaluation(formData).then(res => {
if (res.success) {
this.$message.success(res.message)
this.goBack()
} else {
this.$message.warning(res.message)
}
}).finally(() => {
this.loading = false
})
}, },
/**
* 驳回
*/
handleReject () { handleReject () {
this.validatorRules.handleText.rules[0].required = true
const formData = this.dealFormData()
if (!formData) {
return
}
this.loading = true
rejectProjectComplianceEvaluation(formData).then(res => {
if (res.success) {
this.$message.success(res.message)
this.goBack()
} else {
this.$message.warning(res.message)
}
}).finally(() => {
this.loading = false
})
}, },
handleTableChange (pagination) { handleTableChange (pagination) {
this.ipagination = pagination this.ipagination = pagination