[update 查看详情] 会后管理流程

This commit is contained in:
danshihao
2024-07-25 19:26:30 +08:00
parent 9b8d1053d1
commit 7cef89ff1b
@@ -1,7 +1,7 @@
<template>
<internal-detail-page :title="pageTitle" :content-padding="0" :loading="loading">
<!-- 标题右侧tab -->
<template v-slot:titleRightCustom>
<template v-slot:titleRightCustom v-if="!disabled">
<div class="table-operator-tab">
<!-- 基础信息 -->
<a class="switch-item" :class="switchValue === 'base' ? 'table-operator-tab-active' : ''"
@@ -58,7 +58,7 @@
<!-- 业务基本信息 -->
<div class="process-part-title">{{ $t('basicServiceInformation') }}</div>
<base-info-form ref="baseInfoForm" :disabled="currentNode !== PostMeetingManage.initiate.value" :current-node="currentNode"/>
<base-info-form ref="baseInfoForm" :disabled="(currentNode !== PostMeetingManage.initiate.value) || disabled" :current-node="currentNode"/>
<!-- 流程审批信息 -->
<div class="process-part-title">{{ $t('processApprovalInformation') }}</div>
@@ -67,12 +67,13 @@
<a-form-item :labelCol="longLabelCol" :wrapperCol="longWrapperCol" :label="$t('remarks')">
<a-textarea :placeholder="$t('pleaseEnter') + $t('remarks')"
:maxLength="500"
:disabled="disabled"
:rows="4"
v-decorator="['commitText', validatorRules.remarks]" />
</a-form-item>
<!--附件-->
<a-form-item :labelCol="longLabelCol" :wrapperCol="longWrapperCol" :label="$t('businessSupport.questionAnswer.attach')">
<j-upload v-decorator="['commitFile']" return-id multiple />
<j-upload v-decorator="['commitFile']" return-id multiple :disabled="disabled" />
</a-form-item>
</a-form>
</div>
@@ -85,7 +86,7 @@
</process-detail-list>
</div>
<div class="detail-page-bottom-operate-box">
<div class="detail-page-bottom-operate-box" v-if="!disabled">
<!--未参加-->
<a-button v-if="btn.includes('uncommitted')" type="primary" :loading="loading" @click="handleUncommitted" ghost>{{ $t('workCenter.postMeetingManageProcess.uncommitted') }}</a-button>
<!--转办-->
@@ -108,12 +109,12 @@ import InternalDetailPage from '@comp/InternalDetailPage'
import BaseInfoForm from '@views/workCenter/postMeetingManageProcess/modules/BaseInfoForm'
import { WorkCenterMixin } from '@/mixins/WorkCenterMixin'
import UserSelectModal from '@comp/selection/UserSelectModal'
import { ApprovalOpinions, PostMeetingManage, ProcessKey } from '@/enums/commonEnums'
import { ApprovalOpinions, PostMeetingManage, ProcessKey, ProcessType } from '@/enums/commonEnums'
import {
approvalPostMeetingManage,
approvalPostMeetingManage, getLookData,
getPostMeetingManageDataById,
getPostMeetingManageDetail,
getPostMeetingManageProjectId, savePostMeetingManage, startPostMeetingManage, transferPostMeetingManage
getPostMeetingManageProjectId, savePostMeetingManage, saveSnapShot, startPostMeetingManage, transferPostMeetingManage
} from '@api/workCenter'
const tabList = ['base', 'user']
@@ -127,7 +128,7 @@ export default {
isShowProcessInfo: true,
loading: false,
switchValue: 'base',
disabled: false,
disabled: false, // 禁用全部
labelCol: {
xs: { span: 24 },
sm: { span: 4 }
@@ -204,7 +205,8 @@ export default {
}
},
created () {
const { projectId, nodeId, taskName } = this.$route.query
const { projectId, nodeId, taskName, isLook } = this.$route.query
this.disabled = isLook === '1'
// 发起、草稿进来没有nodeId,就默认发起节点
this.currentNode = nodeId || PostMeetingManage.initiate.value
this.currentNodeName = taskName || PostMeetingManage.initiate.text
@@ -215,6 +217,11 @@ export default {
// 提交按钮
this.btn = ['submit']
}
// 快照回显
if (this.$route.query.snapshotId) {
this.loadSnapshotPage()
return
}
// 查询人员信息
this.getPersonInfoStructure(this.processKey, () => {
this.initPersonInfoData(this.isInitiate)
@@ -365,6 +372,8 @@ export default {
// 保存清空校验
this.approvalInfoForm.validateFields(['commitText'], { force: true }, () => {})
}
// 保存一下所有表单收集的数据用于快照回显
params.formDataList = formDataList
// 收集人员信息
const personInfo = this.getPersonInfo(isValidate && !flag)
@@ -406,7 +415,9 @@ export default {
// 人员信息(要重新获取,流程里的信息不能直接用,后端需要多选人员处理成数组了)
personInfo: this.$refs.personnelInfo.getDataObj(),
// 业务数据,用于强制撤回后回显
draftData: params.processMeetingManage
draftData: params.processMeetingManage,
// 将流程数据保存json,后续进行快照回显
prcData: params
})
}
@@ -416,6 +427,65 @@ export default {
}
return params
},
/**
* 保存快照信息
*/
saveSnapShotInfo (prcParams) {
// 没有taskId就不保存
if (!this.$route.query.taskId) {
return Promise.resolve({ success: true })
}
const { processAll = {}, processApprovalRecord = {} } = prcParams
const params = Object.assign({}, {
taskId: this.$route.query.taskId,
pcrType: ProcessType.POST_MEETING_MANAGE.value,
// 流程信息
prcName: processAll.prcName,
processDueDate: processAll.dueTime,
processDescription: processAll.prcMes,
// 流程审批信息
handleText: processApprovalRecord.commitText,
handleFile: processApprovalRecord.commitFile,
// 流程json字符串存储全部信息
infoJsonStr: JSON.stringify({
// 人员信息
personInfo: this.$refs.personnelInfo.getDataObj(),
// 流程信息
prcData: prcParams
})
})
return saveSnapShot(params)
},
// 回显快照页面
loadSnapshotPage () {
const { snapshotId } = this.$route.query
if (!snapshotId) {
return
}
this.loading = true
getLookData({ snapshotId }).then(res => {
const result = res.result || {}
const jsonData = JSON.parse(result.infoJsonStr || '{}')
const prcData = jsonData.prcData || {}
this.info = prcData
this.processInfoForm && this.processInfoForm.setFieldsValue({
prcName: prcData.processAll.prcName,
dueTime: prcData.processAll.dueTime,
prcMes: prcData.processAll.prcMes
})
this.approvalInfoForm && this.approvalInfoForm.setFieldsValue({
commitText: prcData.processApprovalRecord.commitText,
commitFile: prcData.processApprovalRecord.commitFile
})
// 保存并回显表单信息
this.formInfo = prcData.processMeetingManage
this.$nextTick(() => {
this.$refs.baseInfoForm.initData(prcData.processMeetingManage)
})
}).finally(() => {
this.loading = false
})
},
/**
* 转办弹框
*/
@@ -513,20 +583,26 @@ export default {
handleAgree (isSubmitBtn) {
if (this.loading) return
this.loading = true
this.getPageParams().then(res => {
this.getPageParams().then(params => {
// 同意和提交一直传true
res.map.pass = true
res.notAttend = false
params.map.pass = true
params.notAttend = false
// 不是提交按钮
if (isSubmitBtn !== true) {
// 没有填写注释,就默认同意
if (!res.processApprovalRecord.commitText) {
res.processApprovalRecord.commitText = '同意'
if (!params.processApprovalRecord.commitText) {
params.processApprovalRecord.commitText = '同意'
}
// 审批意见
res.processApprovalRecord.commitFlag = ApprovalOpinions.AGREE.value
params.processApprovalRecord.commitFlag = ApprovalOpinions.AGREE.value
}
return approvalPostMeetingManage(res)
return this.saveSnapShotInfo(params).then(res => {
if (res.success) {
return approvalPostMeetingManage(params)
} else {
return res
}
})
}).then(res => {
if (res.success) {
this.$message.success(res.message)