[update] 外部标准流程查看详情

This commit is contained in:
lideqin
2024-07-25 16:51:37 +08:00
parent 9e9ab35597
commit 8877654419
16 changed files with 860 additions and 432 deletions
@@ -531,25 +531,22 @@ export default {
)
},
// 保存快照
saveParamJsonStr () {
saveParamJsonStr (callback) {
// 流程信息表单
const processInfoForm = Object.assign(this.processInfo, this.processInfoForm.getFieldsValue())
// 流程审批信息
const approvalInfoForm = Object.assign(this.approvalInfo, this.approvalInfoForm.getFieldsValue())
// 人员信息的数据, 处理成对象
const personnelObj = this.$refs.personnelInfo.getDataObj()
const params = { ...processInfoForm, ...approvalInfoForm }
params.infoJsonStr = JSON.stringify({
processInfo: processInfoForm,
approvalInfo: approvalInfoForm,
userInfoMap: personnelObj,
dataSource: this.dataSource
})
params.infoJsonStr = JSON.stringify(this.dealSaveJsonData())
params.taskId = this.$route.query.taskId
params.prcType = ProcessType.NO_MATCH_TRACKING.value
saveSnapShot(params).then(res => {
if (!res.success) {
console.log(res.message)
saveSnapShot(params).then(async res => {
if (res.success) {
callback && await callback()
} else {
this.$message.warning(res.message)
this.loading = false
this.disabledBtnClick = false
}
})
},
@@ -710,21 +707,34 @@ export default {
} else {
submitFunc = submitNoMatchTrackingProcess
}
submitFunc(formData).then(async res => {
if (res.success) {
this.$message.success(res.message)
if (!(this.currentNode === NoMatchTrackingNodes.initial.value && (!this.$route.query.processInstanceId || this.$route.query.draftId))) {
// 保存快照
await this.saveParamJsonStr()
if (this.currentNode === NoMatchTrackingNodes.initial.value && (!this.$route.query.processInstanceId || this.$route.query.draftId)) {
submitFunc(formData).then(res => {
if (res.success) {
this.$message.success(res.message)
this.goBack()
} else {
this.$message.warning(res.message)
this.disabledBtnClick = false
}
this.goBack()
} else {
this.$message.warning(res.message)
this.disabledBtnClick = false
}
}).finally(() => {
this.loading = false
})
}).finally(() => {
this.loading = false
})
} else {
// 保存快照后提交
this.saveParamJsonStr(() => {
submitFunc(formData).then(res => {
if (res.success) {
this.$message.success(res.message)
this.goBack()
} else {
this.$message.warning(res.message)
this.disabledBtnClick = false
}
}).finally(() => {
this.loading = false
})
})
}
},
/**
* 同意
@@ -744,18 +754,19 @@ export default {
return
}
this.loading = true
agreeNoMatchTrackingProcess(formData).then(async res => {
if (res.success) {
this.$message.success(res.message)
// 保存快照
await this.saveParamJsonStr()
this.goBack()
} else {
this.$message.warning(res.message)
this.disabledBtnClick = false
}
}).finally(() => {
this.loading = false
// 保存快照
this.saveParamJsonStr(() => {
agreeNoMatchTrackingProcess(formData).then(res => {
if (res.success) {
this.$message.success(res.message)
this.goBack()
} else {
this.$message.warning(res.message)
this.disabledBtnClick = false
}
}).finally(() => {
this.loading = false
})
})
},
/**
@@ -774,18 +785,19 @@ export default {
return
}
this.loading = true
rejectNoMatchTrackingProcess(formData).then(async res => {
if (res.success) {
this.$message.success(res.message)
// 保存快照
await this.saveParamJsonStr()
this.goBack()
} else {
this.$message.warning(res.message)
this.disabledBtnClick = false
}
}).finally(() => {
this.loading = false
// 保存快照
this.saveParamJsonStr(() => {
rejectNoMatchTrackingProcess(formData).then(res => {
if (res.success) {
this.$message.success(res.message)
this.goBack()
} else {
this.$message.warning(res.message)
this.disabledBtnClick = false
}
}).finally(() => {
this.loading = false
})
})
},
handleDesignEngineerNameChange (name) {
@@ -1,7 +1,7 @@
<template>
<internal-detail-page :content-padding="0" :title="pageTitle" :loading="loading">
<!-- 标题右侧tab -->
<template v-slot:titleRightCustom>
<template v-slot:titleRightCustom v-if="!isLook">
<div class="table-operator-tab">
<!--基础信息-->
<a class="switch-item" :class="switchValue === 'base' ? 'table-operator-tab-active' : ''"
@@ -31,7 +31,7 @@
<a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" :label="$t('processName')">
<a-input :placeholder="$t('pleaseEnter') + $t('processName')"
:maxLength="50"
:disabled="processInfoDisabled"
:disabled="processInfoDisabled || isLook"
v-decorator="['processName', validatorRules.processName]" />
</a-form-item>
</a-col>
@@ -44,7 +44,7 @@
format="YYYY-MM-DD"
value-format="YYYY-MM-DD"
v-decorator="['processDueDate']"
:disabled="processInfoDisabled"
:disabled="processInfoDisabled || isLook"
style="width: 100%" />
</a-form-item>
</a-col>
@@ -83,7 +83,7 @@
<a-input :placeholder="$t('pleaseEnter') + $t('processExplain')"
:maxLength="500"
type="textarea"
:disabled="processInfoDisabled"
:disabled="processInfoDisabled || isLook"
:rows="4"
v-decorator="['processDescription']" />
</a-form-item>
@@ -95,6 +95,7 @@
v-if="comp"
ref="projectStandardTable"
:project-id="projectId"
:disabled="isLook"
:echo-data-source="currentStep === 1 ? projectDataSource : standardDataSource" />
</keep-alive>
@@ -103,11 +104,11 @@
<div class="process-part-title">{{ middlePartTitle }}</div>
<div class="table-operator" v-if="!showExpandTable">
<!--批量选择人员-->
<a-button type="primary" ghost @click="batchSelector">
<a-button type="primary" ghost @click="batchSelector" :disabled="isLook">
{{ $t('workCenter.projectComplianceEvaluationProcess.batchSelector') }}
</a-button>
<!--批量删除-->
<a-button type="primary" icon="delete" ghost @click="batchDel" v-if="isInit">
<a-button type="primary" icon="delete" ghost @click="batchDel" v-if="isInit" :disabled="isLook">
{{ $t('batchDelete') }}
</a-button>
</div>
@@ -145,6 +146,7 @@
:value="record.responsibleUnitLeaders"
:placeholder="$t('pleaseSelect') + $t('workCenter.projectComplianceEvaluationProcess.responsibleUnitHead')"
type="checkbox"
:disabled="isLook"
@listChange="value => handleUserChange(value, record, index, 'responsibleUnitLeaders')" />
<div class="table-text" v-else>{{ global.emptyLine }}</div>
</template>
@@ -162,6 +164,7 @@
:placeholder="$t('pleaseSelect') + $t('workCenter.standardConsultationProcess.moduleOwner')"
type="checkbox"
v-if="!record.notInvolved && record.canAssignFlag + '' === '1'"
:disabled="isLook"
@listChange="value => handleUserChange(value, record, index, 'moduleOwners')" />
<div v-else>{{ global.emptyLine }}</div>
</template>
@@ -179,18 +182,19 @@
:placeholder="$t('pleaseSelect') + $t('workCenter.standardConsultationProcess.designEngineer')"
type="radio"
v-if="!record.notInvolved && record.canAssignFlag + '' === '1'"
:disabled="isLook"
@listChange="value => handleUserChange(value, record, index, 'designEngineers')" />
<div v-else>{{ global.emptyLine }}</div>
</template>
<!--操作删除-->
<template v-slot:action="{text, record}">
<a @click="handleDelete(record.tableRowKey)">{{ $t('delete') }}</a>
<a @click="handleDelete(record.tableRowKey)" :disabled="isLook">{{ $t('delete') }}</a>
</template>
<!--操作不涉及/不涉及原因-->
<template v-slot:notInvolved="{text, record}">
<a @click="handleUninvolved(record)" :disabled="record.canAssignFlag + '' !== '1'">
<a @click="handleUninvolved(record)" :disabled="record.canAssignFlag + '' !== '1' || isLook">
{{
!record.notInvolved ? $t('projectLibrary.vehicleItemLibrary.uninvolved') : $t('workCenter.projectComplianceEvaluationProcess.noCauseInvolved')
}}
@@ -204,7 +208,7 @@
:columns="columns"
:data-source="dataSource"
:pagination="ipagination"
:all-disabled="expandTableDisabled"
:all-disabled="expandTableDisabled || isLook"
form-is-depend="evaluationFeedback"
:extra-form="extraForm"
:scroll="{x: '100%'}"
@@ -232,7 +236,7 @@
:placeholder="$t('pleaseSelect') + $t('workCenter.projectComplianceEvaluationProcess.evaluationFeedback')"
:value="record.evaluationFeedback"
dict-code="assess_results"
:disabled="!!record.notInvolved"
:disabled="!!record.notInvolved || isLook"
@change="value => handleEvaluationFeedBackChange(value, record, index)" />
<template v-else>
@@ -255,6 +259,7 @@
:label="$t('workCenter.projectComplianceEvaluationProcess.ccPerson')">
<user-selection :placeholder="$t('pleaseSelect') + $t('workCenter.projectComplianceEvaluationProcess.ccPerson')"
type="checkbox"
:disabled="isLook"
:name-str="dispatchInfo.carbonCopyPersonnels_dictText"
v-decorator="['carbonCopyPersonnels', validatorRules.carbonCopyPersonnels]"
@nameChange="handleCarbonCopyNameChange" />
@@ -274,11 +279,12 @@
:maxLength="500"
type="textarea"
:rows="4"
:disabled="isLook"
v-decorator="['handleText', validatorRules.handleText]" />
</a-form-item>
<!--附件-->
<a-form-item :labelCol="longLabelCol" :wrapperCol="longWrapperCol" :label="$t('businessSupport.questionAnswer.attach')">
<j-upload v-decorator="['handleFile']" return-id multiple />
<j-upload v-decorator="['handleFile']" return-id multiple :disabled="isLook" />
</a-form-item>
</a-form>
</div>
@@ -294,7 +300,7 @@
</div>
<!--底部按钮-->
<div class="detail-page-bottom-operate-box">
<div v-if="!isLook" class="detail-page-bottom-operate-box">
<!--转办-->
<a-button type="primary" :loading="loading" ghost icon="arrow-up" v-if="btnList.includes('return')" @click="handleTurnTo">
{{ $t('turnTo') }}
@@ -324,6 +330,16 @@
{{ $t('reject') }}
</a-button>
</div>
<div v-else class="detail-page-bottom-operate-box">
<!--上一步-->
<a-button type="primary" :loading="loading" ghost icon="arrow-up" v-if="btnList.includes('pre')" @click="handleLastStep">
{{ $t('workCenter.projectComplianceEvaluationProcess.lastStep') }}
</a-button>
<!--下一步-->
<a-button type="primary" :loading="loading" icon="arrow-down" v-if="btnList.includes('next')" @click="handleNextStep">
{{ $t('workCenter.projectComplianceEvaluationProcess.nextStep') }}
</a-button>
</div>
<!--选人-->
<user-select-modal :type="userSelectType" ref="userSelectModal" @listChange="handleBatchSelectorOk" @change="continueTransfer" />
@@ -344,7 +360,8 @@ import {
EvaluationResultType,
ProcessKey,
ProjectComplianceEvaluationProcessNode,
StandardSource
StandardSource,
ProcessType
} from '../../../enums/commonEnums'
import JTable from '../../../components/jero/JTable'
import ProjectTable from './components/ProjectTable'
@@ -360,7 +377,9 @@ import {
queryProjectComplianceEvaluation,
processTransfer,
agreeProjectComplianceEvaluation,
rejectProjectComplianceEvaluation
rejectProjectComplianceEvaluation,
saveSnapShot,
getLookData
} from '../../../api/workCenter'
import SplitClauseDetail from '../../documentTool/documentSplit/modules/SplitClauseDetail'
import moment from 'moment'
@@ -640,7 +659,8 @@ export default {
},
businessId: null,
isTransfer: false, // 是否转办选人
tableLoading: false
tableLoading: false,
isLook: false // 是否是查看
}
},
computed: {
@@ -897,28 +917,47 @@ export default {
}
},
created () {
if (this.$route.query.processInstanceId || this.$route.query.draftId) {
this.currentNode = this.$route.query.nodeId || ProjectComplianceEvaluationProcessNode.initiate.value
if (this.$route.query.isLook + '' === '1') {
// 是查看
this.isLook = true
// 设置当前节点
this.currentNode = this.$route.query.nodeId
// 人员信息全部不可选
this.initPersonInfoData(false)
// 查询数据
this.initProcessInfo()
} else {
this.currentNode = ProjectComplianceEvaluationProcessNode.initiate.value
if (this.$route.query.processInstanceId || this.$route.query.draftId) {
this.currentNode = this.$route.query.nodeId || ProjectComplianceEvaluationProcessNode.initiate.value
this.initProcessInfo()
} else {
this.currentNode = ProjectComplianceEvaluationProcessNode.initiate.value
}
this.getPersonInfoStructure(ProcessKey.PROJECT_COMPLIANCE_EVALUATION.value, () => {
this.initPersonInfoData(this.currentNode === ProjectComplianceEvaluationProcessNode.initiate.value)
})
}
this.getPersonInfoStructure(ProcessKey.PROJECT_COMPLIANCE_EVALUATION.value, () => {
this.initPersonInfoData(this.currentNode === ProjectComplianceEvaluationProcessNode.initiate.value)
})
},
methods: {
/**
* 获取流程数据
*/
initProcessInfo () {
const params = {
draftId: this.$route.query.draftId,
processInstanceId: this.$route.query.draftId ? null : this.$route.query.processInstanceId,
taskId: this.$route.query.taskId
let params = {}
let func
if (this.isLook) {
params.snapshotId = this.$route.query.snapshotId
func = getLookData
} else {
params = {
draftId: this.$route.query.draftId,
processInstanceId: this.$route.query.draftId ? null : this.$route.query.processInstanceId,
taskId: this.$route.query.taskId
}
func = queryProjectComplianceEvaluation
}
this.loading = true
queryProjectComplianceEvaluation(params).then(res => {
func(params).then(res => {
if (res.success) {
const { result = {} } = res
this.approvalInfo = Object.assign({}, result.basicTaskInfoDTO)
@@ -1399,6 +1438,26 @@ export default {
this.loading = false
})
},
// 保存快照
saveParamJsonStr (callback) {
// 流程信息表单
const processInfoForm = Object.assign(this.processInfo, this.processInfoForm.getFieldsValue())
// 流程审批信息
const approvalInfoForm = Object.assign(this.approvalInfo, this.approvalInfoForm.getFieldsValue())
const params = { ...processInfoForm, ...approvalInfoForm }
params.infoJsonStr = JSON.stringify(this.dealSaveJsonData())
params.taskId = this.$route.query.taskId
params.prcType = ProcessType.PROJECT_COMPLIANCE_EVALUATION.value
saveSnapShot(params).then(async res => {
if (res.success) {
callback && await callback()
} else {
this.$message.warning(res.message)
this.loading = false
this.disabledBtnClick = false
}
})
},
/**
* 提交
*/
@@ -1422,20 +1481,34 @@ export default {
formData.infoJsonStr = JSON.stringify(saveJsonObj)
}
submitFunc = initiateProjectComplianceEvaluation
submitFunc(formData).then(res => {
if (res.success) {
this.$message.success(res.message)
this.goBack()
} else {
this.$message.warning(res.message)
this.disabledBtnClick = false
}
}).finally(() => {
this.loading = false
})
} else {
submitFunc = submitProjectComplianceEvaluation
// 保存快照后提交
this.saveParamJsonStr(() => {
submitFunc(formData).then(res => {
if (res.success) {
this.$message.success(res.message)
this.goBack()
} else {
this.$message.warning(res.message)
this.disabledBtnClick = false
}
}).finally(() => {
this.loading = false
})
})
}
submitFunc(formData).then(res => {
if (res.success) {
this.$message.success(res.message)
this.goBack()
} else {
this.$message.warning(res.message)
this.disabledBtnClick = false
}
}).finally(() => {
this.loading = false
})
},
/**
* 转办
@@ -1487,16 +1560,19 @@ export default {
return
}
this.loading = true
agreeProjectComplianceEvaluation(formData).then(res => {
if (res.success) {
this.$message.success(res.message)
this.goBack()
} else {
this.$message.warning(res.message)
this.disabledBtnClick = false
}
}).finally(() => {
this.loading = false
// 保存快照后提交
this.saveParamJsonStr(() => {
agreeProjectComplianceEvaluation(formData).then(res => {
if (res.success) {
this.$message.success(res.message)
this.goBack()
} else {
this.$message.warning(res.message)
this.disabledBtnClick = false
}
}).finally(() => {
this.loading = false
})
})
},
/**
@@ -1514,16 +1590,19 @@ export default {
return
}
this.loading = true
rejectProjectComplianceEvaluation(formData).then(res => {
if (res.success) {
this.$message.success(res.message)
this.goBack()
} else {
this.$message.warning(res.message)
this.disabledBtnClick = false
}
}).finally(() => {
this.loading = false
// 保存快照后提交
this.saveParamJsonStr(() => {
rejectProjectComplianceEvaluation(formData).then(res => {
if (res.success) {
this.$message.success(res.message)
this.goBack()
} else {
this.$message.warning(res.message)
this.disabledBtnClick = false
}
}).finally(() => {
this.loading = false
})
})
},
handleTableChange (pagination) {
@@ -3,9 +3,9 @@
<div class="process-part-title">{{ $t('project') }}</div>
<div class="table-operator">
<!-- 新增-->
<a-button icon="plus" type="primary" @click="handleAdd">{{ $t('newlyAdded') }}</a-button>
<a-button icon="plus" type="primary" @click="handleAdd" :disabled="disabled">{{ $t('newlyAdded') }}</a-button>
<!-- 批量删除-->
<a-button type="primary" icon="delete" ghost @click="batchDel">{{ $t('delete') }}</a-button>
<a-button type="primary" icon="delete" ghost @click="batchDel" :disabled="disabled">{{ $t('delete') }}</a-button>
</div>
<div>
<j-table
@@ -41,6 +41,11 @@ export default {
default: () => {
return []
}
},
disabled: {
type: Boolean,
required: false,
default: false
}
},
data () {
@@ -122,4 +127,4 @@ export default {
.process-part-title:first-child {
margin-top: 32px;
}
</style>
</style>
@@ -3,9 +3,9 @@
<div class="process-part-title">{{ $t('workCenter.projectComplianceEvaluationProcess.rDComplianceList') }}</div>
<div class="table-operator">
<!-- 新增-->
<a-button icon="plus" type="primary" @click="handleAdd">{{ $t('newlyAdded') }}</a-button>
<a-button icon="plus" type="primary" @click="handleAdd" :disabled="disabled">{{ $t('newlyAdded') }}</a-button>
<!-- 批量删除-->
<a-button type="primary" icon="delete" ghost @click="batchDel">{{ $t('delete') }}</a-button>
<a-button type="primary" icon="delete" ghost @click="batchDel" :disabled="disabled">{{ $t('delete') }}</a-button>
</div>
<div>
<j-table
@@ -25,6 +25,7 @@
<a-select :placeholder="$t('pleaseSelect') + $t('workCenter.projectComplianceEvaluationProcess.salvageListSource')"
:value="record.decompositionOrderSource"
style="width: 100%"
:disabled="disabled"
@change="value => handleSourceChange(value, record, index)">
<a-select-option v-for="item in record.dictOptions" :key="item.value" :value="item.value" :disabled="item.disabled">
{{ item.text }}
@@ -60,6 +61,11 @@ export default {
default: () => {
return []
}
},
disabled: {
type: Boolean,
required: false,
default: false
}
},
data () {
@@ -1,7 +1,7 @@
<template>
<internal-detail-page :content-padding="0" :title="pageTitle" :loading="loading">
<!-- 标题右侧tab -->
<template v-slot:titleRightCustom>
<template v-slot:titleRightCustom v-if="!isLook">
<div class="table-operator-tab">
<!--基础信息-->
<a class="switch-item" :class="switchValue === 'base' ? 'table-operator-tab-active' : ''"
@@ -38,7 +38,7 @@
format="YYYY-MM-DD"
value-format="YYYY-MM-DD"
v-decorator="['processDueDate']"
:disabled="!isInitial"
:disabled="!isInitial || isLook"
style="width: 100%" />
</a-form-item>
</a-col>
@@ -48,7 +48,7 @@
<a-input :placeholder="$t('pleaseEnter') + $t('processExplain')"
:maxLength="500"
type="textarea"
:disabled="!isInitial"
:disabled="!isInitial || isLook"
:rows="4"
v-decorator="['processDescription']" />
</a-form-item>
@@ -69,37 +69,40 @@
<initial-basic-service-info ref="standardList"
:selected-standard="selectedStandard"
@source:change="handleSourceChange"
@standard:change="handleStandardChange" />
@standard:change="handleStandardChange"
:disabled="isLook"/>
<!--业务分派信息-->
<initial-assign-table ref="termList"
:selected-spilt-info-id="selectedSpiltInfoId"
:selected-standard="selectedStandard"
:display-data-source="dispatchDataSource" />
:display-data-source="dispatchDataSource"
:disabled="isLook"/>
</template>
<!--部所主管级领导下发-->
<depart-leader-issue-table v-if="isDepartLeaderIssue" ref="termList" :display-data-source="dispatchDataSource" />
<depart-leader-issue-table v-if="isDepartLeaderIssue" ref="termList" :display-data-source="dispatchDataSource" :disabled="isLook" />
<!--模块责任人分发-->
<module-owner-issue-table v-if="isModuleOwnerIssue" ref="termList" :display-data-source="dispatchDataSource" />
<module-owner-issue-table v-if="isModuleOwnerIssue" ref="termList" :display-data-source="dispatchDataSource" :disabled="isLook" />
<!--设计工程师评估-->
<design-engineer-assess v-if="isDesignEngineerAssess"
ref="asyncTermList"
:display-data-source="dispatchDataSource"
:pre-node-user="preNodeUser" />
:pre-node-user="preNodeUser"
:disabled="isLook"/>
<!--模块负责人评审-->
<module-owner-approve-table v-if="isModuleOwnerApprove" ref="termList" :display-data-source="dispatchDataSource" />
<!--部所主管级领导审批-->
<depart-leader-approve-table v-if="isDepartLeaderApprove" ref="termList" :display-data-source="dispatchDataSource" />
<depart-leader-approve-table v-if="isDepartLeaderApprove" ref="termList" :display-data-source="dispatchDataSource" :disabled="isLook" />
<!--法规工程师审批-->
<regulatory-engineer-approval v-if="isRegulatoryEngineerApproval" ref="termList" :display-data-source="dispatchDataSource" />
<regulatory-engineer-approval v-if="isRegulatoryEngineerApproval" ref="termList" :display-data-source="dispatchDataSource" :disabled="isLook" />
<!--设计工程师补充立项项目号-->
<design-engineer-write-project v-if="isDesignEngineerWriteProject" ref="termList" :display-data-source="dispatchDataSource" />
<design-engineer-write-project v-if="isDesignEngineerWriteProject" ref="termList" :display-data-source="dispatchDataSource" :disabled="isLook" />
<!--流程审批信息-->
<div class="process-part-title">{{ $t('processApprovalInformation') }}</div>
@@ -110,11 +113,12 @@
:maxLength="500"
type="textarea"
:rows="4"
:disabled="isLook"
v-decorator="['handleText', validatorRules.handleText]" />
</a-form-item>
<!--附件-->
<a-form-item :labelCol="longLabelCol" :wrapperCol="longWrapperCol" :label="$t('businessSupport.questionAnswer.attach')">
<j-upload v-decorator="['handleFile']" return-id multiple />
<j-upload v-decorator="['handleFile']" return-id multiple :disabled="isLook" />
</a-form-item>
</a-form>
</div>
@@ -132,7 +136,7 @@
</div>
<!--底部按钮-->
<div class="detail-page-bottom-operate-box">
<div v-if="!isLook" class="detail-page-bottom-operate-box">
<!--转办 审批节点存在-->
<a-button type="primary" :loading="loading" ghost icon="arrow-up" v-if="btnList.includes('return')" @click="handleTurnTo">
{{ $t('turnTo') }}
@@ -165,7 +169,7 @@ import PersonnelInfo from '../../../components/PersonnelInfo'
import InternalDetailPage from '../../../components/InternalDetailPage'
import ProcessDetailList from '../../../components/ProcessDetailList'
import { WorkCenterMixin } from '../../../mixins/WorkCenterMixin'
import { ProcessKey, StandardComplianceNodes, StandardSource } from '../../../enums/commonEnums'
import { ProcessKey, StandardComplianceNodes, StandardSource, ProcessType } from '../../../enums/commonEnums'
import InitialBasicServiceInfo from './components/InitialBasicServiceInfo'
import InitialAssignTable from './components/InitialAssignTable'
import DepartLeaderIssueTable from './components/DepartLeaderIssueTable'
@@ -182,7 +186,9 @@ import {
queryStandardCompliance,
processTransfer,
agreeStandardCompliance,
rejectStandardCompliance
rejectStandardCompliance,
saveSnapShot,
getLookData
} from '../../../api/workCenter'
import UserSelectModal from '../../../components/selection/UserSelectModal'
@@ -245,7 +251,8 @@ export default {
dispatchDataSource: [], // 业务分派信息的数据
currentNodePrefix: null, // 判断节点的前缀
preNodeUser: null, // 上一节点处理人
disabledBtnClick: false
disabledBtnClick: false,
isLook: false // 是否是查看
}
},
computed: {
@@ -287,29 +294,48 @@ export default {
}
},
created () {
this.getPersonInfoStructure(ProcessKey.REGULATORY_COMPLIANCE_ASSESSMENT.value, () => {
if (this.$route.query.processInstanceId || this.$route.query.draftId) {
this.currentNode = this.$route.query.nodeId || StandardComplianceNodes.initial.value
this.initProcessData()
if (this.$route.query.isLook + '' === '1') {
// 是查看
this.isLook = true
// 设置当前节点
this.currentNode = this.$route.query.nodeId
// 人员信息全部不可选
this.initPersonInfoData(false)
// 查询数据
this.initProcessData()
} else {
this.getPersonInfoStructure(ProcessKey.REGULATORY_COMPLIANCE_ASSESSMENT.value, () => {
if (this.$route.query.processInstanceId || this.$route.query.draftId) {
this.currentNode = this.$route.query.nodeId || StandardComplianceNodes.initial.value
this.initProcessData()
} else {
this.currentNode = StandardComplianceNodes.initial.value
}
const key = StandardComplianceNodes.keyOfValueByLike(this.currentNode)
this.btnList = StandardComplianceNodes[key].btn || []
this.currentNodePrefix = StandardComplianceNodes[key].value
this.initPersonInfoData()
})
} else {
this.currentNode = StandardComplianceNodes.initial.value
}
const key = StandardComplianceNodes.keyOfValueByLike(this.currentNode)
this.btnList = StandardComplianceNodes[key].btn || []
this.currentNodePrefix = StandardComplianceNodes[key].value
this.initPersonInfoData()
})
}
},
methods: {
initProcessData () {
this.loading = true
const params = {
taskId: this.$route.query.taskId,
processInstanceId: this.$route.query.processInstanceId,
draftId: this.$route.query.draftId
let params = {}
let func
if (this.isLook) {
params.snapshotId = this.$route.query.snapshotId
func = getLookData
} else {
params = {
taskId: this.$route.query.taskId,
processInstanceId: this.$route.query.processInstanceId,
draftId: this.$route.query.draftId
}
func = queryStandardCompliance
}
queryStandardCompliance(params).then(res => {
func(params).then(res => {
if (res.success) {
let { result = {} } = res
if (result.infoJsonStr) {
@@ -507,6 +533,27 @@ export default {
this.loading = false
})
},
// 保存快照
async saveParamJsonStr (callback) {
// 流程信息表单
const processInfoForm = Object.assign(this.processInfo, this.processInfoForm.getFieldsValue())
// 流程审批信息
const approvalInfoForm = Object.assign(this.approvalInfo, this.approvalInfoForm.getFieldsValue())
const params = { ...processInfoForm, ...approvalInfoForm }
const saveForm = await this.dealSaveFormData()
params.infoJsonStr = JSON.stringify(saveForm)
params.taskId = this.$route.query.taskId
params.prcType = ProcessType.REGULATORY_COMPLIANCE_ASSESSMENT.value
saveSnapShot(params).then(async res => {
if (res.success) {
callback && await callback()
} else {
this.$message.warning(res.message)
this.loading = false
this.disabledBtnClick = false
}
})
},
/**
* 提交
*/
@@ -531,17 +578,34 @@ export default {
submitFunc = submitStandardCompliance
}
this.loading = true
submitFunc(formData).then(res => {
if (res.success) {
this.$message.success(res.message)
this.goBack()
} else {
this.$message.warning(res.message)
this.disabledBtnClick = false
}
}).finally(() => {
this.loading = false
})
if (this.currentNode.indexOf(StandardComplianceNodes.initial.value) === 0) {
submitFunc(formData).then(res => {
if (res.success) {
this.$message.success(res.message)
this.goBack()
} else {
this.$message.warning(res.message)
this.disabledBtnClick = false
}
}).finally(() => {
this.loading = false
})
} else {
// 保存快照后提交
this.saveParamJsonStr(() => {
submitFunc(formData).then(res => {
if (res.success) {
this.$message.success(res.message)
this.goBack()
} else {
this.$message.warning(res.message)
this.disabledBtnClick = false
}
}).finally(() => {
this.loading = false
})
})
}
},
/**
* 同意
@@ -562,16 +626,19 @@ export default {
return
}
this.loading = true
agreeStandardCompliance(formData).then(res => {
if (res.success) {
this.$message.success(res.message)
this.goBack()
} else {
this.$message.warning(res.message)
this.disabledBtnClick = false
}
}).finally(() => {
this.loading = false
// 保存快照后提交
this.saveParamJsonStr(() => {
agreeStandardCompliance(formData).then(res => {
if (res.success) {
this.$message.success(res.message)
this.goBack()
} else {
this.$message.warning(res.message)
this.disabledBtnClick = false
}
}).finally(() => {
this.loading = false
})
})
},
/**
@@ -590,16 +657,19 @@ export default {
return
}
this.loading = true
rejectStandardCompliance(formData).then(res => {
if (res.success) {
this.$message.success(res.message)
this.goBack()
} else {
this.$message.warning(res.message)
this.disabledBtnClick = false
}
}).finally(() => {
this.loading = false
// 保存快照后提交
this.saveParamJsonStr(() => {
rejectStandardCompliance(formData).then(res => {
if (res.success) {
this.$message.success(res.message)
this.goBack()
} else {
this.$message.warning(res.message)
this.disabledBtnClick = false
}
}).finally(() => {
this.loading = false
})
})
},
toStandardDetail () {
@@ -15,7 +15,7 @@
<!--是否立项-->
<template v-slot:projectApprovalFlag="{text,record,index}">
<j-dict-select-tag v-model="record.projectApprovalFlag" dict-code="yn" style="width: 100%" />
<j-dict-select-tag v-model="record.projectApprovalFlag" dict-code="yn" :disabled="disabled" style="width: 100%" />
</template>
<!--条文内容-->
@@ -54,6 +54,11 @@ export default {
default: () => {
return []
}
},
disabled: {
type: Boolean,
required: false,
default: false
}
},
data () {
@@ -4,7 +4,7 @@
<div class="process-part-title">{{ $t('workCenter.dispatchInformation') }}</div>
<div class="table-operator">
<!--批量选择人员-->
<a-button type="primary" @click="handleSelectPerson">
<a-button type="primary" @click="handleSelectPerson" :disabled="disabled">
{{ $t('workCenter.projectComplianceEvaluationProcess.batchSelector') }}
</a-button>
</div>
@@ -31,6 +31,7 @@
v-model="record.moduleOwner"
:name-str="record.moduleOwner_dictText"
v-if="!record.notInvolved"
:disabled="disabled"
:placeholder="$t('pleaseSelect') + $t('workCenter.standardCompliance.moduleOwner')"
@nameChange="nameStr => record.moduleOwner_dictText = nameStr" />
<div v-else>{{ global.emptyLine }}</div>
@@ -47,7 +48,7 @@
<!--操作-->
<template v-slot:action="{text,record,index}">
<div class="action-span-cell">
<a @click="handleUninvolved(record, index)">
<a :disabled="disabled" @click="handleUninvolved(record, index)">
{{
!record.notInvolved ? $t('projectLibrary.vehicleItemLibrary.uninvolved') : $t('workCenter.projectComplianceEvaluationProcess.noCauseInvolved')
}}
@@ -84,6 +85,11 @@ export default {
default: () => {
return []
}
},
disabled: {
type: Boolean,
required: false,
default: false
}
},
data () {
@@ -47,6 +47,7 @@
:options="resultOptions"
style="width: 100%"
:value="record.assessResults"
:disabled="disabled"
@change="value => handleEvaluationResultChange(value, record, record.dataSourceIndex)" />
</template>
@@ -62,6 +63,7 @@
prop="isRelate">
<j-dict-select-tag v-model="record.isRelate"
dict-code="yn"
:disabled="disabled"
type="radio" />
</a-form-model-item>
<!--不符合车型系列-->
@@ -71,6 +73,7 @@
prop="modelSeries"
v-if="record.isRelate === yesValue">
<j-multi-select-tag v-model="record.modelSeries"
:disabled="disabled"
dict-code="model_series" />
</a-form-model-item>
</template>
@@ -80,7 +83,7 @@
:labelCol="{span: 4}"
:wrapperCol="{span: 18}"
prop="description">
<a-input type="textarea" :maxLength="500" v-model="record.description" />
<a-input type="textarea" :maxLength="500" :disabled="disabled" v-model="record.description" />
</a-form-model-item>
<!--佐证材料-->
<a-form-model-item :label="$t('projectLibrary.specialProjectLibrary.supportingMaterial')"
@@ -90,6 +93,7 @@
<j-upload return-id
multiple
v-model="record.fileId"
:disabled="disabled"
file-type="pdf,doc,docx,pptx,ppt,jpg,jpeg,png,xls,xlsx,bmp" />
</a-form-model-item>
</template>
@@ -127,6 +131,11 @@ export default {
type: String,
required: false,
default: ''
},
disabled: {
type: Boolean,
required: false,
default: false
}
},
data () {
@@ -15,7 +15,7 @@
<!--操作-->
<template v-slot:action="{text, record, index}">
<a @click="handleEdit(record)">{{ $t('edit') }}</a>
<a @click="handleEdit(record)" :disabled="disabled">{{ $t('edit') }}</a>
</template>
</j-table>
</div>
@@ -42,6 +42,11 @@ export default {
default: () => {
return []
}
},
disabled: {
type: Boolean,
required: false,
default: false
}
},
data () {
@@ -4,11 +4,11 @@
<div class="process-part-title">{{ $t('workCenter.dispatchInformation') }}</div>
<div class="table-operator">
<!--批量选择人员-->
<a-button type="primary" @click="handleSelectPerson">
<a-button type="primary" @click="handleSelectPerson" :disabled="disabled">
{{ $t('workCenter.projectComplianceEvaluationProcess.batchSelector') }}
</a-button>
<!--批量删除-->
<a-button type="primary" ghost @click="batchDelete">
<a-button type="primary" ghost @click="batchDelete" :disabled="disabled">
{{ $t('batchDelete') }}
</a-button>
</div>
@@ -37,6 +37,7 @@
v-model="record.responsibleUnitLeader"
:name-str="record.responsibleUnitLeader_dictText"
type="checkbox"
:disabled="disabled"
:placeholder="$t('pleaseSelect') + $t('workCenter.standardCompliance.responsibleUnitContactPerson')"
@nameChange="nameStr => record.responsibleUnitLeader_dictText = nameStr" />
</template>
@@ -52,7 +53,7 @@
<!--操作-->
<template v-slot:action="{text,record,index}">
<div class="action-span-cell">
<a :disabled="index === 0 && dataSource.length === 1" @click="handleDelete(record.rowKey)">{{ $t('delete') }}</a>
<a :disabled="index === 0 && dataSource.length === 1 || disabled" @click="handleDelete(record.rowKey)">{{ $t('delete') }}</a>
</div>
</template>
</j-table>
@@ -97,6 +98,11 @@ export default {
default: () => {
return []
}
},
disabled: {
type: Boolean,
required: false,
default: false
}
},
watch: {
@@ -4,11 +4,11 @@
<div class="process-part-title">{{ $t('basicServiceInformation') }}</div>
<div class="table-operator">
<!--添加标准-->
<a-button type="primary" @click="handleAdd">
<a-button type="primary" @click="handleAdd" :disabled="disabled">
{{ $t('workCenter.standardCompliance.addStandard') }}
</a-button>
<!--删除-->
<a-button type="primary" ghost @click="handleDelete">
<a-button type="primary" ghost @click="handleDelete" :disabled="disabled">
{{ $t('delete') }}
</a-button>
</div>
@@ -36,6 +36,7 @@
v-model="record.decompositionOrderSource"
:getPopupContainer="triggerNode=> triggerNode.parentNode"
style="width: 100%"
:disabled="disabled"
@change="value => handleSourceChange(value, record)">
<a-select-option v-for="item in record.decompositionOrderSourceVOList"
:key="item.value"
@@ -71,6 +72,11 @@ export default {
default: () => {
return {}
}
},
disabled: {
type: Boolean,
required: false,
default: false
}
},
watch: {
@@ -4,7 +4,7 @@
<div class="process-part-title">{{ $t('workCenter.dispatchInformation') }}</div>
<div class="table-operator">
<!--批量选择人员-->
<a-button type="primary" @click="handleSelectPerson">
<a-button type="primary" @click="handleSelectPerson" :disabled="disabled">
{{ $t('workCenter.projectComplianceEvaluationProcess.batchSelector') }}
</a-button>
</div>
@@ -32,6 +32,7 @@
:name-str="record.designEngineer_dictText"
v-if="!record.notInvolved"
type="checkbox"
:disabled="disabled"
:placeholder="$t('pleaseSelect') + $t('workCenter.standardConsultationProcess.designEngineer')"
@nameChange="nameStr => record.designEngineer_dictText = nameStr" />
<div v-else>{{ global.emptyLine }}</div>
@@ -48,7 +49,7 @@
<!--操作-->
<template v-slot:action="{text,record}">
<div class="action-span-cell">
<a @click="handleUninvolved(record)">{{
<a :disabled="disabled" @click="handleUninvolved(record)">{{
!record.notInvolved ? $t('projectLibrary.vehicleItemLibrary.uninvolved') : $t('workCenter.projectComplianceEvaluationProcess.noCauseInvolved')
}}</a>
</div>
@@ -83,6 +84,11 @@ export default {
default: () => {
return []
}
},
disabled: {
type: Boolean,
required: false,
default: false
}
},
data () {
@@ -5,11 +5,11 @@
<div>
<div class="table-operator">
<!--批量选择设计工程师-->
<a-button type="primary" @click="handleSelectPerson('designEngineer')">
<a-button type="primary" @click="handleSelectPerson('designEngineer')" :disabled="disabled">
{{ $t('workCenter.standardCompliance.batchSelectDesignEngineer') }}
</a-button>
<!--批量选择抄送人员-->
<a-button type="primary" @click="handleSelectPerson('carbonCopyPersonnels')">
<a-button type="primary" @click="handleSelectPerson('carbonCopyPersonnels')" :disabled="disabled">
{{ $t('workCenter.standardCompliance.batchSelectCCPersonnel') }}
</a-button>
</div>
@@ -45,7 +45,7 @@
<!--是否立项-->
<template v-slot:projectApprovalFlag="{text,record}">
<j-dict-select-tag v-model="record.projectApprovalFlag" dict-code="yn" style="width: 100%" />
<j-dict-select-tag v-model="record.projectApprovalFlag" dict-code="yn" :disabled="disabled" style="width: 100%" />
</template>
<!--设计工程师-->
@@ -58,6 +58,7 @@
:placeholder="$t('pleaseSelect') + $t('workCenter.standardConsultationProcess.designEngineer')"
style="width: 100%"
type="radio"
:disabled="disabled"
@nameChange="nameStr => record.designEngineer_dictText = nameStr" />
<div v-else>{{ global.emptyLine }}</div>
</template>
@@ -70,6 +71,7 @@
:placeholder="$t('pleaseSelect') + $t('workCenter.projectComplianceEvaluationProcess.ccPerson')"
style="width: 100%"
type="checkbox"
:disabled="disabled"
@nameChange="nameStr => record.carbonCopyPersonnels_dictText = nameStr" />
<!--<div>{{ global.emptyLine }}</div>-->
</template>
@@ -127,6 +129,11 @@ export default {
default: () => {
return []
}
},
disabled: {
type: Boolean,
required: false,
default: false
}
},
data () {
@@ -1,7 +1,7 @@
<template>
<internal-detail-page :content-padding="0" :title="pageTitle" :loading="loading">
<!-- 标题右侧tab -->
<template v-slot:titleRightCustom>
<template v-slot:titleRightCustom v-if="!isLook">
<div class="table-operator-tab">
<!--基础信息-->
<a class="switch-item" :class="switchValue === 'base' ? 'table-operator-tab-active' : ''"
@@ -38,7 +38,7 @@
format="YYYY-MM-DD"
value-format="YYYY-MM-DD"
v-decorator="['processDueDate']"
:disabled="processInfoDisabled"
:disabled="processInfoDisabled || isLook"
style="width: 100%" />
</a-form-item>
</a-col>
@@ -48,7 +48,7 @@
<a-input :placeholder="$t('pleaseEnter') + $t('processExplain')"
:maxLength="500"
type="textarea"
:disabled="processInfoDisabled"
:disabled="processInfoDisabled || isLook"
:rows="4"
v-decorator="['processDescription']" />
</a-form-item>
@@ -62,7 +62,7 @@
<!--标准编号-->
<a-form-item :label="$t('standardNumber')">
<standard-selection v-decorator="['standardNumber', validatorRules.standardNumber]"
:disabled="basicServiceInfoDisabled"
:disabled="basicServiceInfoDisabled || isLook"
:placeholder="$t('pleaseSelect') + $t('standardNumber')"
:can-selected-source="[StandardSource.DOMESTIC.value]"
type="radio"
@@ -99,7 +99,7 @@
<div class="form-flex-item custom-flex-form-item">
<!--相关文件-->
<a-form-item :label="$t('workCenter.standardConsultationProcess.relevantDocument')">
<j-upload multiple return-id v-decorator="['relatedFile', validatorRules.relatedFile]" :disabled="basicServiceInfoDisabled" />
<j-upload multiple return-id v-decorator="['relatedFile', validatorRules.relatedFile]" :disabled="basicServiceInfoDisabled || isLook" />
</a-form-item>
</div>
<div class="form-flex-item custom-flex-form-item">
@@ -108,7 +108,7 @@
<j-date show-type="day"
:placeholder="$t('pleaseSelect') + $t('workCenter.standardConsultationProcess.endDate')"
v-decorator="['consultationDueDate', validatorRules.consultationDueDate]"
:disabled="basicServiceInfoDisabled"
:disabled="basicServiceInfoDisabled || isLook"
:disabled-date="consultationDueDateDisabledDate" />
</a-form-item>
</div>
@@ -128,6 +128,7 @@
type="select"
dict-code="sender_type"
:triggerChange="false"
:disabled="isLook"
@change="handleSenderTypeChange" />
</a-form-item>
</div>
@@ -139,6 +140,7 @@
<user-selection v-decorator="['moduleOwnerId', validatorRules.moduleOwnerId]"
:name-str="dispatchInfo.moduleOwnerId_dictText"
type="checkbox"
:disabled="isLook"
:placeholder="$t('pleaseSelect') + $t('workCenter.standardConsultationProcess.moduleOwner')"
@nameChange="handleModuleOwnerNameChange" />
</a-form-item>
@@ -151,6 +153,7 @@
<user-selection v-decorator="['designEngineerId', validatorRules.designEngineerId]"
:name-str="dispatchInfo.designEngineerId_dictText"
type="checkbox"
:disabled="isLook"
:placeholder="$t('pleaseSelect') + $t('workCenter.standardConsultationProcess.designEngineer')"
@nameChange="handleDesignEngineerNameChange" />
</a-form-item>
@@ -166,9 +169,9 @@
<template v-if="currentNode.indexOf(ConsultationProcess.designEngineerFillIn.value) === 0">
<div class="table-operator">
<!-- 新增-->
<a-button icon="plus" type="primary" @click="handleAdd">{{ $t('newlyAdded') }}</a-button>
<a-button icon="plus" type="primary" :disabled="isLook" @click="handleAdd">{{ $t('newlyAdded') }}</a-button>
<!-- 批量删除-->
<a-button type="primary" icon="delete" ghost @click="batchDel">{{ $t('delete') }}</a-button>
<a-button type="primary" icon="delete" ghost :disabled="isLook" @click="batchDel">{{ $t('delete') }}</a-button>
</div>
<div>
<j-table
@@ -190,7 +193,7 @@
<!-- 操作栏 -->
<div slot="action" slot-scope="{record, index}" class="action-span-cell">
<a @click="handleEdit(record, index)" class="table-ope-btn">{{ $t('edit') }}</a>
<a @click="handleEdit(record, index)" class="table-ope-btn" :disabled="isLook">{{ $t('edit') }}</a>
</div>
</j-table>
@@ -201,7 +204,7 @@
<template v-if="showAuditTable">
<div class="table-operator">
<!--批量操作汇总节点才有的按钮-->
<a-button type="primary" icon="delete" ghost @click="batchOperate" v-if="isSummaryNode">
<a-button type="primary" icon="delete" ghost @click="batchOperate" v-if="isSummaryNode" :disabled="isLook">
{{ $t('batchOperation') }}
</a-button>
</div>
@@ -215,7 +218,7 @@
:locale="tableLocale"
:class="{'empty-no-opinion': tableEmptyShowNoOpinion}"
:extra-form="collectExtraForm"
:all-disabled="disabledConsultationList"
:all-disabled="disabledConsultationList || isLook"
:row-selection="{ selectedRowKeys: selectedRowKeys, onChange: onSelectChange }">
<!--表头插槽 start-->
@@ -238,6 +241,7 @@
:triggerChange="false"
class="opinion-select"
dict-code="consultation_opinion"
:disabled="isLook"
:placeholder="$t('pleaseSelect') + $t('workCenter.esInspectionPlan.opinion')"
@change="value => {handleOpinionChange(value, index, record)}" />
</template>
@@ -254,11 +258,12 @@
:maxLength="500"
type="textarea"
:rows="4"
:disabled="isLook"
v-decorator="['handleText', validatorRules.handleText]" />
</a-form-item>
<!--附件-->
<a-form-item :labelCol="longLabelCol" :wrapperCol="longWrapperCol" :label="$t('businessSupport.questionAnswer.attach')">
<j-upload v-decorator="['handleFile']" return-id multiple />
<j-upload v-decorator="['handleFile']" return-id multiple :disabled="isLook" />
</a-form-item>
</a-form>
</div>
@@ -275,7 +280,7 @@
</process-detail-list>
</div>
<div class="detail-page-bottom-operate-box">
<div v-if="!isLook" class="detail-page-bottom-operate-box">
<!--转办 审批节点存在-->
<a-button type="primary" :loading="loading" ghost icon="arrow-up" v-if="btnList.includes('return')" @click="handleTurnTo">
{{ $t('turnTo') }}
@@ -314,7 +319,7 @@
<script>
import InternalDetailPage from '../../../components/InternalDetailPage.vue'
import StandardSelection from '../../../components/selection/StandardSelection.vue'
import { ConsultationProcess, SenderType, ProcessKey, StandardSource } from '../../../enums/commonEnums'
import { ConsultationProcess, SenderType, ProcessKey, StandardSource, ProcessType } from '../../../enums/commonEnums'
import UserSelection from '../../../components/selection/UserSelection'
import JTable from '../../../components/jero/JTable'
import ConsultationModal from './modules/ConsultationModal'
@@ -332,7 +337,9 @@ import {
submitConsultationProcess,
transferConsultationProcess,
agreeConsultationProcess,
rejectConsultationProcess
rejectConsultationProcess,
saveSnapShot,
getLookData
} from '../../../api/workCenter'
import UserSelectModal from '../../../components/selection/UserSelectModal'
import { getFileInfo } from '../../../api/api'
@@ -755,7 +762,8 @@ export default {
tableEmptyShowNoOpinion: false, // 表格暂无数据文本在汇总节点显示无意见
tableLocale: {
emptyText: <a-empty image={Empty.PRESENTED_IMAGE_SIMPLE}><span slot="description"> {this.$t('noData')} </span></a-empty>
}
},
isLook: false // 是否是查看
}
},
computed: {
@@ -831,36 +839,55 @@ export default {
}
},
created () {
// 获取人员信息数据
this.getPersonInfoStructure(this.processKey, () => {
// 有流程id或者草稿id点进来的
if (this.$route.query.processInstanceId || this.$route.query.draftId) {
this.currentNode = this.$route.query.nodeId || ConsultationProcess.initiate.value
this.initPersonInfoData(this.currentNode.indexOf(ConsultationProcess.initiate.value) === 0)
this.initProcessDetailData()
} else {
this.currentNode = ConsultationProcess.initiate.value
this.initPersonInfoData(this.currentNode.indexOf(ConsultationProcess.initiate.value) === 0)
}
// 找不到这个节点默认使用审批节点页面及按钮,发起除外
this.nodeEnumsKey = this.currentNode ? ConsultationProcess.keyOfValueByLike(this.currentNode) || 'regulatoryEngineerApproval' : 'initiate'
this.currentNodePrefix = ConsultationProcess[this.nodeEnumsKey].value
this.btnList = ConsultationProcess[this.nodeEnumsKey].btn
})
if (this.$route.query.isLook + '' === '1') {
// 是查看
this.isLook = true
// 设置当前节点
this.currentNode = this.$route.query.nodeId
// 人员信息全部不可选
this.initPersonInfoData(false)
// 查询数据
this.initProcessDetailData()
} else {
// 获取人员信息数据
this.getPersonInfoStructure(this.processKey, () => {
// 有流程id或者草稿id点进来的
if (this.$route.query.processInstanceId || this.$route.query.draftId) {
this.currentNode = this.$route.query.nodeId || ConsultationProcess.initiate.value
this.initPersonInfoData(this.currentNode.indexOf(ConsultationProcess.initiate.value) === 0)
this.initProcessDetailData()
} else {
this.currentNode = ConsultationProcess.initiate.value
this.initPersonInfoData(this.currentNode.indexOf(ConsultationProcess.initiate.value) === 0)
}
// 找不到这个节点默认使用审批节点页面及按钮,发起除外
this.nodeEnumsKey = this.currentNode ? ConsultationProcess.keyOfValueByLike(this.currentNode) || 'regulatoryEngineerApproval' : 'initiate'
this.currentNodePrefix = ConsultationProcess[this.nodeEnumsKey].value
this.btnList = ConsultationProcess[this.nodeEnumsKey].btn
})
}
},
methods: {
initProcessDetailData () {
this.loading = true
const params = {
taskId: this.$route.query.taskId,
projectId: this.$route.query.projectId
}
if (this.$route.query.draftId) {
params.draftId = this.$route.query.draftId
let params = {}
let func
if (this.isLook) {
params.snapshotId = this.$route.query.snapshotId
func = getLookData
} else {
params.processInstanceId = this.$route.query.processInstanceId
params = {
taskId: this.$route.query.taskId,
projectId: this.$route.query.projectId
}
if (this.$route.query.draftId) {
params.draftId = this.$route.query.draftId
} else {
params.processInstanceId = this.$route.query.processInstanceId
}
func = queryConsultationProcessDetail
}
queryConsultationProcessDetail(params).then(async res => {
func(params).then(async res => {
if (res.success) {
let result = res.result || {}
// 草稿有数据需要从草稿里取
@@ -1193,6 +1220,27 @@ export default {
this.loading = false
})
},
// 保存快照
async saveParamJsonStr (callback) {
// 流程信息表单
const processInfoForm = Object.assign(this.processInfo, this.processInfoForm.getFieldsValue())
// 流程审批信息
const approvalInfoForm = Object.assign(this.approvalInfo, this.approvalInfoForm.getFieldsValue())
const params = { ...processInfoForm, ...approvalInfoForm }
const saveForm = await this.dealFormData(true)
params.infoJsonStr = JSON.stringify(saveForm)
params.taskId = this.$route.query.taskId
params.prcType = ProcessType.CONSULTATION.value
saveSnapShot(params).then(async res => {
if (res.success) {
callback && await callback()
} else {
this.$message.warning(res.message)
this.loading = false
this.disabledBtnClick = false
}
})
},
/**
* 提交
*/
@@ -1214,20 +1262,34 @@ export default {
if (saveForm) {
formData.infoJsonStr = JSON.stringify(saveForm)
}
func(formData).then(res => {
if (res.success) {
this.$message.success(res.message)
this.goBack()
} else {
this.$message.warning(res.message)
this.disabledBtnClick = false
}
}).finally(() => {
this.loading = false
})
} else {
func = submitConsultationProcess
// 保存快照后提交
this.saveParamJsonStr(() => {
func(formData).then(res => {
if (res.success) {
this.$message.success(res.message)
this.goBack()
} else {
this.$message.warning(res.message)
this.disabledBtnClick = false
}
}).finally(() => {
this.loading = false
})
})
}
func(formData).then(res => {
if (res.success) {
this.$message.success(res.message)
this.goBack()
} else {
this.$message.warning(res.message)
this.disabledBtnClick = false
}
}).finally(() => {
this.loading = false
})
},
/**
* 同意
@@ -1248,16 +1310,19 @@ export default {
}
this.loading = true
formData.basicTaskInfoDTO.commitFlag = 1 // 同意就传1,驳回传2,其他都为空
agreeConsultationProcess(formData).then(res => {
if (res.success) {
this.$message.success(res.message)
this.goBack()
} else {
this.$message.warning(res.message)
this.disabledBtnClick = false
}
}).finally(() => {
this.loading = false
// 保存快照后提交
this.saveParamJsonStr(() => {
agreeConsultationProcess(formData).then(res => {
if (res.success) {
this.$message.success(res.message)
this.goBack()
} else {
this.$message.warning(res.message)
this.disabledBtnClick = false
}
}).finally(() => {
this.loading = false
})
})
},
/**
@@ -1276,16 +1341,19 @@ export default {
}
this.loading = true
formData.basicTaskInfoDTO.commitFlag = 2 // 同意就传1,驳回传2,其他都为空
rejectConsultationProcess(formData).then(res => {
if (res.success) {
this.$message.success(res.message)
this.goBack()
} else {
this.$message.warning(res.message)
this.disabledBtnClick = false
}
}).finally(() => {
this.loading = false
// 保存快照后提交
this.saveParamJsonStr(() => {
rejectConsultationProcess(formData).then(res => {
if (res.success) {
this.$message.success(res.message)
this.goBack()
} else {
this.$message.warning(res.message)
this.disabledBtnClick = false
}
}).finally(() => {
this.loading = false
})
})
},
/**
@@ -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="!isLook">
<div class="table-operator-tab">
<!--基础信息-->
<a class="switch-item" :class="switchValue === 'base' ? 'table-operator-tab-active' : ''"
@@ -37,7 +37,7 @@
format="YYYY-MM-DD"
value-format="YYYY-MM-DD"
v-decorator="['processDueDate']"
:disabled="disabled"
:disabled="disabled || isLook"
style="width: 100%" />
</a-form-item>
</a-col>
@@ -47,7 +47,7 @@
<a-input :placeholder="$t('pleaseEnter') + $t('processExplain')"
:maxLength="500"
type="textarea"
:disabled="disabled"
:disabled="disabled || isLook"
:rows="4"
v-decorator="['processDescription']" />
</a-form-item>
@@ -78,7 +78,7 @@
<a-form-model-item class="item-model" prop="source">
<j-dict-select-tag class="box-input"
v-model="formInline.source"
:disabled="disabled || disabledFieldList.includes('source') || isFromList"
:disabled="disabled || disabledFieldList.includes('source') || isFromList || isLook"
:placeholder="$t('pleaseSelect')+$t('standardSelect.source')"
:type="'select'"
:triggerChange="false"
@@ -95,7 +95,7 @@
<a-form-model-item class="item-model" prop="operateType">
<j-dict-select-tag class="box-input"
v-model="formInline.operateType"
:disabled="disabled || disabledFieldList.includes('operateType') || isFromList"
:disabled="disabled || disabledFieldList.includes('operateType') || isFromList || isLook"
:placeholder="$t('pleaseSelect')+$t('log.operationType')"
:type="'select'"
:triggerChange="false"
@@ -123,7 +123,7 @@
:name-str="formInline.standard_number_temp"
:source="formInline.source"
:disabledSourceSearch="true"
:disabled="disabled || disabledFieldList.includes(item.dbFieldName)"
:disabled="disabled || disabledFieldList.includes(item.dbFieldName) || isLook"
type="radio"
select-only
:placeholder="$t('pleaseEnter')+item.dbFieldTxt"
@@ -132,7 +132,7 @@
<!--文本框-->
<a-input v-else
class="box-input"
:disabled="disabled || disabledFieldList.includes(item.dbFieldName)"
:disabled="disabled || disabledFieldList.includes(item.dbFieldName) || isLook"
v-model="formInline[item.dbFieldName]"
:maxLength="50"
:placeholder="specialPlaceholder[item.dbFieldName] || $t('pleaseEnter')+item.dbFieldTxt" />
@@ -146,7 +146,7 @@
format="YYYY-MM-DD"
value-format="YYYY-MM-DD"
v-model="formInline[item.dbFieldName]"
:disabled="disabled || disabledFieldList.includes(item.dbFieldName)"
:disabled="disabled || disabledFieldList.includes(item.dbFieldName) || isLook"
style="width: 100%" />
<!-- 2, 单选用户 -->
<user-selection v-else-if="item.fieldShowType === FieldType.USER_SINGLE.value"
@@ -156,22 +156,22 @@
@nameChange="userSelectNameChange"
:nameStr="formInline[item.dbFieldName + '_dictText']"
type="radio"
:disabled="disabled || disabledFieldList.includes(item.dbFieldName)" />
:disabled="disabled || disabledFieldList.includes(item.dbFieldName) || isLook" />
<!-- 3, 单选组织机构 -->
<j-select-depart v-else-if="item.fieldShowType === FieldType.ORGAN_SINGLE.value"
v-model="formInline[item.dbFieldName]"
:disabled="disabled || disabledFieldList.includes(item.dbFieldName)"
:disabled="disabled || disabledFieldList.includes(item.dbFieldName) || isLook"
:backDepart="true" />
<!-- 4, 日期多选 -->
<j-multiple-date-picker v-else-if="item.fieldShowType === FieldType.DATE_MORE.value"
class="box-input"
v-model="formInline[item.dbFieldName]"
:fieldName="item.dbFieldName"
:disabled="disabled || disabledFieldList.includes(item.dbFieldName)" />
:disabled="disabled || disabledFieldList.includes(item.dbFieldName) || isLook" />
<!-- 5, 多行文本 -->
<a-textarea v-else-if="item.fieldShowType === FieldType.TEXTAREA.value"
:placeholder="$t('pleaseEnter')+item.dbFieldTxt"
:disabled="disabled || disabledFieldList.includes(item.dbFieldName)"
:disabled="disabled || disabledFieldList.includes(item.dbFieldName) || isLook"
:maxLength="500"
v-model="formInline[item.dbFieldName]" :rows="4" />
<!-- 6, 标准多选 -->
@@ -179,13 +179,13 @@
:placeholder="specialPlaceholder[item.dbFieldName] || $t('pleaseSelectStandard')"
:source="getStandardSource(item)"
:disabledSourceSearch="true"
:disabled="disabled || disabledFieldList.includes(item.dbFieldName)"
:disabled="disabled || disabledFieldList.includes(item.dbFieldName) || isLook"
:exclude-standard-numbers="excludeStandardFields.includes(item.dbFieldName) ? excludeStandardNumbers : null"
v-model="formInline[item.dbFieldName]" />
<!-- 7, 多选组织机构 -->
<j-select-depart v-else-if="item.fieldShowType === FieldType.ORGAN_MORE.value"
v-model="formInline[item.dbFieldName]"
:disabled="disabled || disabledFieldList.includes(item.dbFieldName)"
:disabled="disabled || disabledFieldList.includes(item.dbFieldName) || isLook"
:multi="true"
:backDepart="true"
:treeOpera="true" />
@@ -206,7 +206,7 @@
<!-- 9, 文本框 -->
<a-input v-else-if="item.fieldShowType === FieldType.TEXT_BOX.value"
class="box-input"
:disabled="disabled || disabledFieldList.includes(item.dbFieldName)"
:disabled="disabled || disabledFieldList.includes(item.dbFieldName) || isLook"
v-model="formInline[item.dbFieldName]"
:maxLength="item.dbLength"
:placeholder="specialPlaceholder[item.dbFieldName] || $t('pleaseEnter')+item.dbFieldTxt" />
@@ -214,7 +214,7 @@
<j-dict-select-tag v-else-if="item.fieldShowType === FieldType.OPTION_SINGLE.value"
class="box-input"
v-model="formInline[item.dbFieldName]"
:disabled="disabled || disabledFieldList.includes(item.dbFieldName)"
:disabled="disabled || disabledFieldList.includes(item.dbFieldName) || isLook"
:placeholder="$t('pleaseSelect')+item.dbFieldTxt"
:type="'select'"
:triggerChange="false"
@@ -224,7 +224,7 @@
<j-multi-select-tag v-else-if="item.fieldShowType === FieldType.OPTION_MORE.value"
class="box-input"
v-model="formInline[item.dbFieldName]"
:disabled="disabled || disabledFieldList.includes(item.dbFieldName)"
:disabled="disabled || disabledFieldList.includes(item.dbFieldName) || isLook"
:placeholder="$t('pleaseSelect')+item.dbFieldTxt"
:type="'select'"
:triggerChange="false"
@@ -233,7 +233,7 @@
<s-tree-select
v-else-if="item.fieldShowType === FieldType.TREE.value"
v-model="formInline[item.dbFieldName]"
:disabled="disabled || disabledFieldList.includes(item.dbFieldName)"
:disabled="disabled || disabledFieldList.includes(item.dbFieldName) || isLook"
:tree-data="optionsData[item.dbFieldName]"
tree-checkable
treeCheckStrictly
@@ -242,7 +242,7 @@
<!-- 14, 年份选择 -->
<j-date v-else-if="item.fieldShowType === FieldType.YEAR_PICKER.value"
show-type="year"
:disabled="disabled || disabledFieldList.includes(item.dbFieldName)"
:disabled="disabled || disabledFieldList.includes(item.dbFieldName) || isLook"
v-model="formInline[item.dbFieldName]"
:default-value="defaultValue[item.dbFieldName]"
date-format="YYYY"
@@ -250,7 +250,7 @@
<!-- 15, 树选择单选 -->
<s-tree-select v-else-if="item.fieldShowType === FieldType.TREE_SINGLE.value"
v-model="formInline[item.dbFieldName]"
:disabled="disabled || disabledFieldList.includes(item.dbFieldName)"
:disabled="disabled || disabledFieldList.includes(item.dbFieldName) || isLook"
:tree-data="optionsData[item.dbFieldName]"
:label-in-value="false"
:placeholder="$t('pleaseSelect')+item.dbFieldTxt" />
@@ -264,7 +264,7 @@
:options-href="item.fieldHref"
:nameStr="formInline[item.dbFieldName + '_dictText']"
:dict-id="item.dictId"
:disabled="disabled || disabledFieldList.includes(item.dbFieldName)" />
:disabled="disabled || disabledFieldList.includes(item.dbFieldName) || isLook" />
</a-form-model-item>
</div>
</template>
@@ -282,11 +282,12 @@
:maxLength="500"
type="textarea"
:rows="4"
:disabled="isLook"
v-decorator="['handleText', validatorRules.handleText]" />
</a-form-item>
<!--附件-->
<a-form-item :labelCol="longLabelCol" :wrapperCol="longWrapperCol" :label="$t('businessSupport.questionAnswer.attach')">
<j-upload v-decorator="['handleFile']" return-id multiple />
<j-upload v-decorator="['handleFile']" return-id multiple :disabled="isLook" />
</a-form-item>
</a-form>
</div>
@@ -298,7 +299,7 @@
</template>
</process-detail-list>
</div>
<div class="detail-page-bottom-operate-box">
<div v-if="!isLook" class="detail-page-bottom-operate-box">
<!--转办 审批节点存在-->
<a-button type="primary" :loading="loading" ghost icon="arrow-up" v-if="btnList.includes('return')" @click="handleTurnTo">
{{ $t('turnTo') }}
@@ -321,7 +322,7 @@
</a-button>
</div>
<upload-file ref="uploadFile" @change="uploadFileChange" :return-url="false" :disabled="disabled" />
<upload-file ref="uploadFile" @change="uploadFileChange" :return-url="false" :disabled="disabled || isLook" />
<!--转办选人-->
<user-select-modal ref="userSelectModal" check-required @change="continueTurnTo" />
@@ -337,7 +338,8 @@ import {
StandardProperty,
ProcessKey,
FGEntryChangeProcessNode,
StandardStatus
StandardStatus,
ProcessType
} from '../../../enums/commonEnums.js'
import {
getDomesticStandardDocumentInfo,
@@ -360,7 +362,10 @@ import {
saveStandardECProcess,
queryStandardECProcessData,
turnToStandardECProcess,
agreeStandardECProcess, rejectStandardECProcess
agreeStandardECProcess,
rejectStandardECProcess,
saveSnapShot,
getLookData, queryProcurementProcessInfo
} from '../../../api/workCenter'
import { WorkCenterMixin } from '../../../mixins/WorkCenterMixin'
import STreeSelect from '../../../components/STreeSelect'
@@ -443,7 +448,8 @@ export default {
},
businessId: null,
standardGetState: null, // 标准从接口获取到数据时候的标准状态值
disabledBtnClick: false // 防连点
disabledBtnClick: false, // 防连点
isLook: false // 是否是查看
}
},
computed: {
@@ -523,53 +529,64 @@ export default {
}
},
created () {
// 获取人员信息
this.getPersonInfoStructure(this.processKey, () => {
if (this.$route.query.processInstanceId || this.$route.query.draftId) {
this.currentNode = this.$route.query.nodeId || FGEntryChangeProcessNode.initiate.value
this.initPersonInfoData(this.currentNode === FGEntryChangeProcessNode.initiate.value)
this.initProcessData()
} else {
this.currentNode = FGEntryChangeProcessNode.initiate.value
this.initPersonInfoData(this.currentNode === FGEntryChangeProcessNode.initiate.value)
// 处理非管理员从国内/海外标准模块进入发起页面,不可修改来源和操作类型
if (this.$route.query.source && this.$route.query.operateType) {
this.formInline = {
source: this.$route.query.source,
operateType: this.$route.query.operateType
}
switch (this.$route.query.source) {
// 国内标准
case StandardSource.DOMESTIC.value:
this.initDomesticStandardForm()
if (this.$route.query.standardId) {
this.initDomesticFormData(this.$route.query.standardId)
}
break
// 海外标准
case StandardSource.OVERSEAS.value:
this.initOverseasStandardForm()
if (this.$route.query.standardId) {
this.initOverseasFormData(this.$route.query.standardId)
}
break
default:
break
}
if (this.$route.query.isLook + '' === '1') {
// 是查看
this.isLook = true
// 设置当前节点
this.currentNode = this.$route.query.nodeId
// 人员信息全部不可选
this.initPersonInfoData(false)
// 查询数据
this.initProcessData()
} else {
// 获取人员信息
this.getPersonInfoStructure(this.processKey, () => {
if (this.$route.query.processInstanceId || this.$route.query.draftId) {
this.currentNode = this.$route.query.nodeId || FGEntryChangeProcessNode.initiate.value
this.initPersonInfoData(this.currentNode === FGEntryChangeProcessNode.initiate.value)
this.initProcessData()
} else {
// 默认选中国内
this.initDomesticStandardForm()
this.currentNode = FGEntryChangeProcessNode.initiate.value
this.initPersonInfoData(this.currentNode === FGEntryChangeProcessNode.initiate.value)
// 处理非管理员从国内/海外标准模块进入发起页面,不可修改来源和操作类型
if (this.$route.query.source && this.$route.query.operateType) {
this.formInline = {
source: this.$route.query.source,
operateType: this.$route.query.operateType
}
switch (this.$route.query.source) {
// 国内标准
case StandardSource.DOMESTIC.value:
this.initDomesticStandardForm()
if (this.$route.query.standardId) {
this.initDomesticFormData(this.$route.query.standardId)
}
break
// 海外标准
case StandardSource.OVERSEAS.value:
this.initOverseasStandardForm()
if (this.$route.query.standardId) {
this.initOverseasFormData(this.$route.query.standardId)
}
break
default:
break
}
} else {
// 默认选中国内
this.initDomesticStandardForm()
}
}
}
// 获取按钮清单
const btnList = FGEntryChangeProcessNode.propertyOfValue('btn', this.currentNode)
if (btnList && btnList.length > 0) {
this.btnList = btnList
} else {
this.btnList = FGEntryChangeProcessNode.approve.btn
}
this.disabled = FGEntryChangeProcessNode.propertyOfValue('disabled', this.currentNode) || false
})
// 获取按钮清单
const btnList = FGEntryChangeProcessNode.propertyOfValue('btn', this.currentNode)
if (btnList && btnList.length > 0) {
this.btnList = btnList
} else {
this.btnList = FGEntryChangeProcessNode.approve.btn
}
this.disabled = FGEntryChangeProcessNode.propertyOfValue('disabled', this.currentNode) || false
})
}
this.getSourceOptions()
},
methods: {
@@ -598,7 +615,18 @@ export default {
initProcessData () {
this.loading = true
const { processInstanceId, draftId, taskId, projectId } = this.$route.query
queryStandardECProcessData({ processInstanceId, draftId, taskId, projectId }).then(async res => {
let params = {}
let func
if (this.isLook) {
params.snapshotId = this.$route.query.snapshotId
func = getLookData
} else {
params = {
processInstanceId, draftId, taskId, projectId
}
func = queryStandardECProcessData
}
func(params).then(async res => {
if (res.success) {
let result = res.result || {}
// 如果草稿中有内容,就从草稿里取值
@@ -613,9 +641,9 @@ export default {
// 获取对应类型的表单
await this.handleSourceChange()
// 处理流程信息回显
this.processInfo = Object.assign({}, res.result.basicProcessInfoDTO || {})
this.processInfo = Object.assign({}, res.result.basicProcessInfoDTO || result.basicProcessInfoDTO || {})
// 处理流程审批信息
this.approvalInfo = Object.assign({}, res.result.basicTaskInfoDTO || {})
this.approvalInfo = Object.assign({}, res.result.basicTaskInfoDTO || result.basicTaskInfoDTO || {})
this.$nextTick(() => {
// 处理表单数据回显
this.processInfoForm.setFieldsValue(this.processInfo)
@@ -990,6 +1018,26 @@ export default {
this.loading = false
})
},
// 保存快照
saveParamJsonStr (callback) {
// 流程信息表单
const processInfoForm = Object.assign(this.processInfo, this.processInfoForm.getFieldsValue())
// 流程审批信息
const approvalInfoForm = Object.assign(this.approvalInfo, this.approvalInfoForm.getFieldsValue())
const params = { ...processInfoForm, ...approvalInfoForm }
params.infoJsonStr = JSON.stringify(this.dealSaveJsonData())
params.taskId = this.$route.query.taskId
params.prcType = ProcessType.FB_ENTRY_CHANGE.value
saveSnapShot(params).then(async res => {
if (res.success) {
callback && await callback()
} else {
this.$message.warning(res.message)
this.loading = false
this.disabledBtnClick = false
}
})
},
/**
* 提交(发起)
*/
@@ -1014,17 +1062,34 @@ export default {
} else {
submitFunc = agreeStandardECProcess
}
submitFunc(formData).then(res => {
if (res.success) {
this.$message.success(res.message)
this.goBack()
} else {
this.$message.warning(res.message)
this.disabledBtnClick = false
}
}).finally(() => {
this.loading = false
})
if (this.currentNode === FGEntryChangeProcessNode.initiate.value && (!this.$route.query.processInstanceId || this.$route.query.draftId)) {
submitFunc(formData).then(res => {
if (res.success) {
this.$message.success(res.message)
this.goBack()
} else {
this.$message.warning(res.message)
this.disabledBtnClick = false
}
}).finally(() => {
this.loading = false
})
} else {
// 保存快照后提交
this.saveParamJsonStr(() => {
submitFunc(formData).then(res => {
if (res.success) {
this.$message.success(res.message)
this.goBack()
} else {
this.$message.warning(res.message)
this.disabledBtnClick = false
}
}).finally(() => {
this.loading = false
})
})
}
},
/**
* 同意
@@ -1045,16 +1110,19 @@ export default {
}
formData.basicTaskInfoDTO.commitFlag = 1 // 同意就传1,驳回传2,其他都为空
this.loading = true
agreeStandardECProcess(formData).then(res => {
if (res.success) {
this.$message.success(res.message)
this.goBack()
} else {
this.$message.warning(res.message)
this.disabledBtnClick = false
}
}).finally(() => {
this.loading = false
// 保存快照后提交
this.saveParamJsonStr(() => {
agreeStandardECProcess(formData).then(res => {
if (res.success) {
this.$message.success(res.message)
this.goBack()
} else {
this.$message.warning(res.message)
this.disabledBtnClick = false
}
}).finally(() => {
this.loading = false
})
})
},
/**
@@ -1073,16 +1141,19 @@ export default {
}
formData.basicTaskInfoDTO.commitFlag = 2 // 同意就传1,驳回传2,其他都为空
this.loading = true
rejectStandardECProcess(formData).then(res => {
if (res.success) {
this.$message.success(res.message)
this.goBack()
} else {
this.$message.warning(res.message)
this.disabledBtnClick = false
}
}).finally(() => {
this.loading = false
// 保存快照后提交
this.saveParamJsonStr(() => {
rejectStandardECProcess(formData).then(res => {
if (res.success) {
this.$message.success(res.message)
this.goBack()
} else {
this.$message.warning(res.message)
this.disabledBtnClick = false
}
}).finally(() => {
this.loading = false
})
})
},
/**
@@ -1,7 +1,7 @@
<template>
<internal-detail-page :content-padding="0" :title="pageTitle" :loading="loading">
<!-- 标题右侧tab -->
<template v-slot:titleRightCustom>
<template v-slot:titleRightCustom v-if="!isLook">
<div class="table-operator-tab">
<!--基础信息-->
<a class="switch-item" :class="switchValue === 'base' ? 'table-operator-tab-active' : ''"
@@ -25,7 +25,7 @@
<a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" :label="$t('processName')">
<a-input :placeholder="$t('pleaseEnter') + $t('processName')"
:maxLength="50"
:disabled="processInfoDisabled"
:disabled="processInfoDisabled || isLook"
v-decorator="['processName', validatorRules.processName]" />
</a-form-item>
</a-col>
@@ -38,7 +38,7 @@
format="YYYY-MM-DD"
value-format="YYYY-MM-DD"
v-decorator="['processDueDate']"
:disabled="processInfoDisabled"
:disabled="processInfoDisabled || isLook"
style="width: 100%" />
</a-form-item>
</a-col>
@@ -48,7 +48,7 @@
<a-input :placeholder="$t('pleaseEnter') + $t('processExplain')"
:maxLength="500"
type="textarea"
:disabled="processInfoDisabled"
:disabled="processInfoDisabled || isLook"
:rows="4"
v-decorator="['processDescription']" />
</a-form-item>
@@ -58,9 +58,9 @@
<div class="process-part-title">{{ $t('basicServiceInformation') }}</div>
<div class="table-operator">
<!-- 新增-->
<a-button icon="plus" type="primary" @click="handleAdd" v-if="canTableOperate">{{ $t('newlyAdded') }}</a-button>
<a-button icon="plus" type="primary" @click="handleAdd" v-if="canTableOperate && !isLook">{{ $t('newlyAdded') }}</a-button>
<!-- 批量删除-->
<a-button type="primary" icon="delete" ghost @click="batchDel" v-if="canTableOperate">{{ $t('batchDelete') }}</a-button>
<a-button type="primary" icon="delete" ghost @click="batchDel" v-if="canTableOperate && !isLook">{{ $t('batchDelete') }}</a-button>
<a-button icon="upload" type="primary" ghost @click="handleExportXls" v-if="!canTableOperate">
{{ $t('export') }}
</a-button>
@@ -77,9 +77,9 @@
:loading="loading">
<template v-slot:action="{text, record, index}">
<a @click="handleEdit(record, index)">{{ $t('edit') }}</a>
<a @click="handleEdit(record, index)" :disabled="isLook">{{ $t('edit') }}</a>
<a-divider type="vertical" />
<a @click="handleDelete(index)">{{ $t('delete') }}</a>
<a @click="handleDelete(index)" :disabled="isLook">{{ $t('delete') }}</a>
</template>
</j-table>
@@ -95,6 +95,7 @@
type="radio"
v-decorator="['confirmEngineer', validatorRules.confirmEngineer]"
@nameChange="userSelectNameChange"
:disabled="isLook"
filedName="confirmEngineer"
:nameStr="businessFormData.confirmEngineer_dictText" />
</a-form-item>
@@ -110,11 +111,12 @@
:maxLength="500"
type="textarea"
:rows="4"
:disabled="isLook"
v-decorator="['handleText', validatorRules.handleText]" />
</a-form-item>
<!--附件-->
<a-form-item :labelCol="longLabelCol" :wrapperCol="longWrapperCol" :label="$t('businessSupport.questionAnswer.attach')">
<j-upload v-decorator="['handleFile']" return-id multiple />
<j-upload v-decorator="['handleFile']" return-id multiple :disabled="isLook" />
</a-form-item>
</a-form>
</div>
@@ -129,7 +131,7 @@
</div>
<!--底部按钮-->
<div class="detail-page-bottom-operate-box">
<div v-if="!isLook" class="detail-page-bottom-operate-box">
<!--转办 审批节点存在-->
<a-button type="primary" :loading="loading" ghost icon="arrow-up" v-if="btnList.includes('return')" @click="handleTurnTo">
{{ $t('turnTo') }}
@@ -172,7 +174,7 @@ import InternalDetailPage from '../../../components/InternalDetailPage'
import { WorkCenterMixin } from '../../../mixins/WorkCenterMixin'
import PersonnelInfo from '../../../components/PersonnelInfo'
import ProcessDetailList from '../../../components/ProcessDetailList'
import { ProcessKey, ProcurementProcessNodes } from '../../../enums/commonEnums'
import { ProcessKey, ProcurementProcessNodes, ProcessType } from '../../../enums/commonEnums'
import JTable from '../../../components/jero/JTable'
import TableFormModal from './modules/TableFormModal'
import {
@@ -182,7 +184,9 @@ import {
agreeProcurementProcess,
rejectProcurementProcess,
transferProcurementProcess,
carbonCopyProcurementProcess
carbonCopyProcurementProcess,
saveSnapShot,
getLookData
} from '../../../api/workCenter'
import UserSelection from '../../../components/selection/UserSelection'
import UserSelectModal from '../../../components/selection/UserSelectModal'
@@ -271,7 +275,8 @@ export default {
isTransfer: true, // 是否转办
businessId: null,
carbonCopyPersonIds: null, // 抄送选择人的id
disabledBtnClick: false
disabledBtnClick: false,
isLook: false // 是否是查看
}
},
computed: {
@@ -305,20 +310,31 @@ export default {
}
},
created () {
this.getPersonInfoStructure(this.processKey, () => {
if (this.$route.query.processInstanceId || this.$route.query.draftId) {
this.currentNode = this.$route.query.nodeId || ProcurementProcessNodes.initiate.value
this.initPersonInfoData(this.currentNode === ProcurementProcessNodes.initiate.value)
this.initProcessInfo()
} else {
this.currentNode = ProcurementProcessNodes.initiate.value
this.initPersonInfoData(this.currentNode === ProcurementProcessNodes.initiate.value)
}
if (this.currentNode === ProcurementProcessNodes.initiate.value) {
this.columns.push(this.operateColumn)
}
this.btnList = ProcurementProcessNodes.propertyOfValue('btn', this.currentNode)
})
if (this.$route.query.isLook + '' === '1') {
// 是查看
this.isLook = true
// 设置当前节点
this.currentNode = this.$route.query.nodeId
// 人员信息全部不可选
this.initPersonInfoData(false)
// 查询数据
this.initProcessInfo()
} else {
this.getPersonInfoStructure(this.processKey, () => {
if (this.$route.query.processInstanceId || this.$route.query.draftId) {
this.currentNode = this.$route.query.nodeId || ProcurementProcessNodes.initiate.value
this.initPersonInfoData(this.currentNode === ProcurementProcessNodes.initiate.value)
this.initProcessInfo()
} else {
this.currentNode = ProcurementProcessNodes.initiate.value
this.initPersonInfoData(this.currentNode === ProcurementProcessNodes.initiate.value)
}
if (this.currentNode === ProcurementProcessNodes.initiate.value) {
this.columns.push(this.operateColumn)
}
this.btnList = ProcurementProcessNodes.propertyOfValue('btn', this.currentNode)
})
}
},
methods: {
// 选择用户得到用户名
@@ -371,13 +387,21 @@ export default {
},
initProcessInfo () {
this.loading = true
const params = {
processInstanceId: this.$route.query.processInstanceId,
draftId: this.$route.query.draftId,
taskId: this.$route.query.taskId,
projectId: this.$route.query.projectId
let params = {}
let func
if (this.isLook) {
params.snapshotId = this.$route.query.snapshotId
func = getLookData
} else {
params = {
processInstanceId: this.$route.query.processInstanceId,
draftId: this.$route.query.draftId,
taskId: this.$route.query.taskId,
projectId: this.$route.query.projectId
}
func = queryProcurementProcessInfo
}
queryProcurementProcessInfo(params).then(res => {
func(params).then(res => {
if (res.success) {
let result = res.result || {}
if (result.infoJsonStr) {
@@ -480,6 +504,26 @@ export default {
}
return !flag ? flag : formData
},
// 保存快照
saveParamJsonStr (callback) {
// 流程信息表单
const processInfoForm = Object.assign(this.processInfo, this.processInfoForm.getFieldsValue())
// 流程审批信息
const approvalInfoForm = Object.assign(this.approvalInfo, this.approvalInfoForm.getFieldsValue())
const params = { ...processInfoForm, ...approvalInfoForm }
params.infoJsonStr = JSON.stringify(this.dealFormData(true))
params.taskId = this.$route.query.taskId
params.prcType = ProcessType.LEGAL_PROCUREMENT.value
saveSnapShot(params).then(async res => {
if (res.success) {
callback && await callback()
} else {
this.$message.warning(res.message)
this.loading = false
this.disabledBtnClick = false
}
})
},
/**
* 转办
*/
@@ -587,17 +631,34 @@ export default {
submitFunc = agreeProcurementProcess
}
this.loading = true
submitFunc(formData).then(res => {
if (res.success) {
this.$message.success(res.message)
this.goBack()
} else {
this.$message.warning(res.message)
this.disabledBtnClick = false
}
}).finally(() => {
this.loading = false
})
if (this.currentNode === ProcurementProcessNodes.initiate.value && (!this.$route.query.processInstanceId || this.$route.query.draftId)) {
submitFunc(formData).then(res => {
if (res.success) {
this.$message.success(res.message)
this.goBack()
} else {
this.$message.warning(res.message)
this.disabledBtnClick = false
}
}).finally(() => {
this.loading = false
})
} else {
// 保存快照后提交
this.saveParamJsonStr(() => {
submitFunc(formData).then(res => {
if (res.success) {
this.$message.success(res.message)
this.goBack()
} else {
this.$message.warning(res.message)
this.disabledBtnClick = false
}
}).finally(() => {
this.loading = false
})
})
}
},
/**
* 同意
@@ -618,16 +679,19 @@ export default {
}
formData.basicTaskInfoDTO.commitFlag = 1 // 同意就传1,驳回传2,其他都为空
this.loading = true
agreeProcurementProcess(formData).then(res => {
if (res.success) {
this.$message.success(res.message)
this.goBack()
} else {
this.$message.warning(res.message)
this.disabledBtnClick = false
}
}).finally(() => {
this.loading = false
// 保存快照
this.saveParamJsonStr(() => {
agreeProcurementProcess(formData).then(res => {
if (res.success) {
this.$message.success(res.message)
this.goBack()
} else {
this.$message.warning(res.message)
this.disabledBtnClick = false
}
}).finally(() => {
this.loading = false
})
})
},
/**
@@ -646,16 +710,19 @@ export default {
}
formData.basicTaskInfoDTO.commitFlag = 2 // 同意就传1,驳回传2,其他都为空
this.loading = true
rejectProcurementProcess(formData).then(res => {
if (res.success) {
this.$message.success(res.message)
this.goBack()
} else {
this.$message.warning(res.message)
this.disabledBtnClick = false
}
}).finally(() => {
this.loading = false
// 保存快照
this.saveParamJsonStr(() => {
rejectProcurementProcess(formData).then(res => {
if (res.success) {
this.$message.success(res.message)
this.goBack()
} else {
this.$message.warning(res.message)
this.disabledBtnClick = false
}
}).finally(() => {
this.loading = false
})
})
},
handleExportXls () {