fix【客户反馈】征求意见流程无意见时无法提交流程

This commit is contained in:
赵霄
2024-02-21 14:08:47 +08:00
parent 2c31f1211d
commit 003d0cb0d1
2 changed files with 61 additions and 17 deletions
+3 -1
View File
@@ -260,7 +260,9 @@ module.exports = {
chapterName: '章节名称', chapterName: '章节名称',
pleaseSelectCriteriaFirst: '请先选择标准', pleaseSelectCriteriaFirst: '请先选择标准',
reasonForRevision: '修改意见理由(包括理由或依据)', reasonForRevision: '修改意见理由(包括理由或依据)',
processExpiration: '该征求意见流程已结束,不能办理' processExpiration: '该征求意见流程已结束,不能办理',
isThereNoOpinion: '是否没有意见?',
noOpinion: '无意见'
}, },
// 企标稽查计划 // 企标稽查计划
esInspectionPlan: { esInspectionPlan: {
@@ -215,6 +215,8 @@
bordered bordered
form-is-depend="isAdopt" form-is-depend="isAdopt"
:pagination="false" :pagination="false"
:locale="tableLocale"
:class="{'empty-no-opinion': tableEmptyShowNoOpinion}"
:extra-form="collectExtraForm" :extra-form="collectExtraForm"
:all-disabled="disabledConsultationList" :all-disabled="disabledConsultationList"
:row-selection="{ selectedRowKeys: selectedRowKeys, onChange: onSelectChange }"> :row-selection="{ selectedRowKeys: selectedRowKeys, onChange: onSelectChange }">
@@ -331,6 +333,7 @@ import UserSelectModal from '../../../components/selection/UserSelectModal'
import { getFileInfo } from '../../../api/api' import { getFileInfo } from '../../../api/api'
import TextContentModal from '../../businessSupport/askForAdvice/modules/TextContentModal' import TextContentModal from '../../businessSupport/askForAdvice/modules/TextContentModal'
import moment from 'moment' import moment from 'moment'
import { Empty } from 'ant-design-vue'
export default { export default {
name: 'StandardConsultationProcess', name: 'StandardConsultationProcess',
@@ -742,7 +745,11 @@ export default {
], ],
businessId: null, businessId: null,
currentNodePrefix: null, // 当前节点的固定前缀,用于人员信息组件处理 currentNodePrefix: null, // 当前节点的固定前缀,用于人员信息组件处理
disabledBtnClick: false disabledBtnClick: false,
tableEmptyShowNoOpinion: false, // 表格暂无数据文本在汇总节点显示无意见
tableLocale: {
emptyText: <a-empty image={Empty.PRESENTED_IMAGE_SIMPLE}><span slot="description"> {this.$t('noData')} </span></a-empty>
}
} }
}, },
computed: { computed: {
@@ -787,6 +794,11 @@ export default {
const nodes = [ConsultationProcess.leaderApproval.value, ConsultationProcess.regulatoryEngineerApproval.value] const nodes = [ConsultationProcess.leaderApproval.value, ConsultationProcess.regulatoryEngineerApproval.value]
return nodes.some(tt => this.currentNode.indexOf(tt) === 0) return nodes.some(tt => this.currentNode.indexOf(tt) === 0)
}, },
// 没有意见可以直接提交的节点
isNoOpinionSubmitNode () {
const nodes = [ConsultationProcess.moduleOwnerSummary.value, ConsultationProcess.leaderApproval.value, ConsultationProcess.leaderSummary.value, ConsultationProcess.leaderSummary.value, ConsultationProcess.regulatoryEngineerApproval.value]
return nodes.some(tt => this.currentNode.indexOf(tt) === 0)
},
columns () { columns () {
// 设计工程师填写征求意见表头 // 设计工程师填写征求意见表头
if (this.currentNode.indexOf(ConsultationProcess.designEngineerFillIn.value) === 0) { if (this.currentNode.indexOf(ConsultationProcess.designEngineerFillIn.value) === 0) {
@@ -805,6 +817,13 @@ export default {
return [] return []
} }
}, },
watch: {
tableEmptyShowNoOpinion () {
this.tableLocale.emptyText = <a-empty image={Empty.PRESENTED_IMAGE_SIMPLE}>
<span slot="description"> {this.tableEmptyShowNoOpinion ? this.$t('workCenter.standardConsultationProcess.noOpinion') : this.$t('noData')} </span>
</a-empty>
}
},
created () { created () {
// 获取人员信息数据 // 获取人员信息数据
this.getPersonInfoStructure(this.processKey, () => { this.getPersonInfoStructure(this.processKey, () => {
@@ -861,6 +880,8 @@ export default {
} }
// 征求意见列表 // 征求意见列表
this.dataSource = result.businessInfoDTO.processFbConsultationLists || [] this.dataSource = result.businessInfoDTO.processFbConsultationLists || []
// 如果是设计工程师后面的节点,没有征求意见table emptyText显示“无意见”,否则显示“暂无数据”
this.tableEmptyShowNoOpinion = (!this.dataSource || this.dataSource.length === 0) && this.isNoOpinionSubmitNode
// 统一处理表单回显 // 统一处理表单回显
this.$nextTick(() => { this.$nextTick(() => {
this.processInfoForm.setFieldsValue(this.processInfo) this.processInfoForm.setFieldsValue(this.processInfo)
@@ -965,7 +986,6 @@ export default {
}) })
}, },
onSelectChange (selectedRowKeys) { onSelectChange (selectedRowKeys) {
console.log(selectedRowKeys)
this.selectedRowKeys = selectedRowKeys this.selectedRowKeys = selectedRowKeys
}, },
handleEdit (record, index) { handleEdit (record, index) {
@@ -973,10 +993,24 @@ export default {
const pdfId = this.basicServiceInfo.standardTextFileId const pdfId = this.basicServiceInfo.standardTextFileId
this.$refs.consultationModal.edit(pdfId, record) this.$refs.consultationModal.edit(pdfId, record)
}, },
asyncConfirmData () {
return new Promise(resolve => {
this.$confirm({
title: this.$t('tips'),
content: this.$t('workCenter.standardConsultationProcess.isThereNoOpinion'),
onOk: () => {
resolve(true)
},
onCancel: () => {
resolve(false)
}
})
})
},
/** /**
* 处理页面数据 * 处理页面数据
*/ */
dealFormData (isSave) { async dealFormData (isSave) {
// 提交的表单数据,流程信息,流程审批信息,征求意见列表,业务分派信息,业务基本信息 // 提交的表单数据,流程信息,流程审批信息,征求意见列表,业务分派信息,业务基本信息
let formData = {}, processInfo = {}, approvalInfo = {}, consultationListData = [], dispatchInfo = {}, basicServiceInfo = {}, let formData = {}, processInfo = {}, approvalInfo = {}, consultationListData = [], dispatchInfo = {}, basicServiceInfo = {},
userInfoMap = {}, flag = true, baseFlag userInfoMap = {}, flag = true, baseFlag
@@ -1048,10 +1082,12 @@ export default {
this.$message.warning(this.$t('workCenter.checkTableRequired')) this.$message.warning(this.$t('workCenter.checkTableRequired'))
flag = false flag = false
} }
// 征求意见列表, 至少一行数据 // 征求意见列表且当前节点不是汇总节点, 至少一行数据
if (this.showConsultationList && (!this.dataSource || this.dataSource.length === 0)) { if (this.showConsultationList && (!this.dataSource || this.dataSource.length === 0) && !this.isNoOpinionSubmitNode) {
flag = false const listAsyncConfirmResult = await this.asyncConfirmData()
this.$message.warning(this.$t('addAtLeastOneRowOfData')) if (!listAsyncConfirmResult) {
flag = false
}
} }
if (!flag) { if (!flag) {
this.switchValue = 'base' this.switchValue = 'base'
@@ -1121,12 +1157,12 @@ export default {
/** /**
* 保存 * 保存
*/ */
handleSave () { async handleSave () {
if (this.disabledBtnClick) { if (this.disabledBtnClick) {
return return
} }
this.disabledBtnClick = true this.disabledBtnClick = true
const formData = this.dealFormData(true) const formData = await this.dealFormData(true)
if (!formData) { if (!formData) {
this.disabledBtnClick = false this.disabledBtnClick = false
return return
@@ -1154,12 +1190,12 @@ export default {
/** /**
* 提交 * 提交
*/ */
handleSubmit () { async handleSubmit () {
if (this.disabledBtnClick) { if (this.disabledBtnClick) {
return return
} }
this.disabledBtnClick = true this.disabledBtnClick = true
const formData = this.dealFormData() const formData = await this.dealFormData()
if (!formData) { if (!formData) {
this.disabledBtnClick = false this.disabledBtnClick = false
return return
@@ -1168,7 +1204,7 @@ export default {
let func let func
if (!this.currentNode || (this.currentNode.indexOf(ConsultationProcess.initiate.value) === 0 && (!this.$route.query.processInstanceId || this.$route.query.draftId))) { if (!this.currentNode || (this.currentNode.indexOf(ConsultationProcess.initiate.value) === 0 && (!this.$route.query.processInstanceId || this.$route.query.draftId))) {
func = initiateConsultationProcess func = initiateConsultationProcess
const saveForm = this.dealFormData(true) const saveForm = await this.dealFormData(true)
if (saveForm) { if (saveForm) {
formData.infoJsonStr = JSON.stringify(saveForm) formData.infoJsonStr = JSON.stringify(saveForm)
} }
@@ -1190,7 +1226,7 @@ export default {
/** /**
* 同意 * 同意
*/ */
handleAgree () { async handleAgree () {
if (this.disabledBtnClick) { if (this.disabledBtnClick) {
return return
} }
@@ -1199,7 +1235,7 @@ export default {
if (!this.approvalInfoForm.getFieldValue('handleText')) { if (!this.approvalInfoForm.getFieldValue('handleText')) {
this.approvalInfoForm.setFieldsValue({ handleText: '同意' }) this.approvalInfoForm.setFieldsValue({ handleText: '同意' })
} }
const formData = this.dealFormData() const formData = await this.dealFormData()
if (!formData) { if (!formData) {
this.disabledBtnClick = false this.disabledBtnClick = false
return return
@@ -1221,13 +1257,13 @@ export default {
/** /**
* 驳回 * 驳回
*/ */
handleReject () { async handleReject () {
if (this.disabledBtnClick) { if (this.disabledBtnClick) {
return return
} }
this.disabledBtnClick = true this.disabledBtnClick = true
this.validatorRules.handleText.rules[0].required = true this.validatorRules.handleText.rules[0].required = true
const formData = this.dealFormData() const formData = await this.dealFormData()
if (!formData) { if (!formData) {
this.disabledBtnClick = false this.disabledBtnClick = false
return return
@@ -1361,4 +1397,10 @@ export default {
.can-click { .can-click {
cursor: pointer; cursor: pointer;
} }
.empty-no-opinion {
/deep/ .ant-empty-description {
color: rgba(0, 0, 0, 0.5);
}
}
</style> </style>