diff --git a/src/api/workCenter.js b/src/api/workCenter.js index d91cc6ce..219305c6 100644 --- a/src/api/workCenter.js +++ b/src/api/workCenter.js @@ -139,6 +139,14 @@ const compulsoryWithdrawal = (params) => postAction('', params) const initiateStandardECProcess = (params) => postAction('/process/fb/processFbEntryChange/startProcess', params) // 保存 const saveStandardECProcess = (params) => postAction('/process/fb/processFbEntryChange/saveToDraft', params) +// 获取流程详情数据 +const queryStandardECProcessData = (params) => getAction('/process/fb/processFbEntryChange/queryProcessInfoVO', params) +// 转办 +const turnToStandardECProcess = (params) => postAction('/process/fb/processFbEntryChange/transfer', params) +// 同意 +const agreeStandardECProcess = (params) => postAction('/process/fb/processFbEntryChange/agree', params) +// 驳回 +const rejectStandardECProcess = (params) => postAction('/process/fb/processFbEntryChange/reject', params) export { getProcessNodeList, @@ -210,5 +218,9 @@ export { compulsoryWithdrawal, initiateStandardECProcess, - saveStandardECProcess + saveStandardECProcess, + queryStandardECProcessData, + turnToStandardECProcess, + agreeStandardECProcess, + rejectStandardECProcess } diff --git a/src/components/JMultipleDatePicker.vue b/src/components/JMultipleDatePicker.vue index 2a2baaf6..26112304 100644 --- a/src/components/JMultipleDatePicker.vue +++ b/src/components/JMultipleDatePicker.vue @@ -7,6 +7,7 @@ :dropdownClassName="'j-multiple-date-picker ' + fieldName + '-drop'" @openChange="handleOpenChange" style="width: 100%" + v-bind="$attrs" > @@ -347,7 +350,13 @@ import PersonnelInfo from '../../../components/PersonnelInfo.vue' import ProcessDetailList from '../../../components/ProcessDetailList.vue' import UserSelectModal from '../../../components/selection/UserSelectModal.vue' import TreeSelection from '../../../components/selection/TreeSelection' -import { initiateStandardECProcess, saveStandardECProcess } from '../../../api/workCenter' +import { + initiateStandardECProcess, + saveStandardECProcess, + queryStandardECProcessData, + turnToStandardECProcess, + agreeStandardECProcess, rejectStandardECProcess +} from '../../../api/workCenter' import { WorkCenterMixin } from '../../../mixins/WorkCenterMixin' export default { @@ -422,7 +431,7 @@ export default { }, computed: { pageTitle () { - return `${this.$t('flowCenter')}${this.$route.meta.title}(法规工程师发起)` + return `${this.$t('flowCenter')}${this.$route.meta.title}` }, // 不可编辑的字段 disabledFieldList () { @@ -448,18 +457,51 @@ export default { } }, created () { - if (this.$route.query.id) { + if (this.$route.query.processInstanceId) { this.disabled = true + this.initProcessData() } else { this.currentNode = FGEntryChangeProcessNode.initiate.value this.btnList = FGEntryChangeProcessNode.initiate.btn + // 默认选中国内 + this.initDomesticStandardForm() } - this.getSourceOptions() - // 默认选中国内 - this.initDomesticStandardForm() + // 获取人员信息 this.getPersonInfoStructure(ProcessKey.FB_ENTRY_CHANGE.value) + this.getSourceOptions() }, methods: { + /** + * 获取流程详情数据 + */ + initProcessData () { + this.loading = true + const { processInstanceId, draftId } = this.$route.query + queryStandardECProcessData({ processInstanceId, draftId }).then(res => { + if (res.success) { + const businessData = Object.assign({}, { ...res.result.businessInfoDTO.businessMap }) + this.formInline.source = businessData.source + this.loading = false + // 获取对应类型的表单 + this.handleSourceChange() + // 处理流程信息回显 + this.processInfo = Object.assign({}, res.result.basicProcessInfoDTO || {}) + // 处理流程审批信息 + this.approvalInfo = Object.assign({}, res.result.basicTaskInfoDTO || {}) + this.$nextTick(() => { + // 处理表单数据回显 + this.formInline = Object.assign({ ...this.formInline }, { ...businessData }) + this.formInline.standard_number_temp = this.formInline.standard_number + this.processInfoForm.setFieldsValue(this.processInfo) + this.approvalInfoForm.setFieldsValue(this.approvalInfo) + }) + // 获取按钮清单 + this.btnList = FGEntryChangeProcessNode.btnOfValue(this.$route.query.taskName) + } + }).finally(() => { + + }) + }, /** * 数据字典值获取 */ @@ -486,6 +528,7 @@ export default { this.formListArr = Object.values(this.formList).reduce((acc, cur) => acc.concat(cur), []) this.formPartList = Object.keys(this.formList) this.formInline.source = StandardSource.DOMESTIC.value + this.$forceUpdate() this.getOptionsData() // 处理通过接口获取的下拉数据 this.integrateData() // 处理表单验证 this.initRetractableFlag() // 处理面板展开 @@ -675,7 +718,9 @@ export default { // 处理业务信息 this.$refs.ruleForm.validate(valid => { if (valid) { - formData.businessInfoDTO = this.dealBusinessData({ ...this.formInline }) + formData.businessInfoDTO = { + businessMap: { ...this.formInline } + } } else { flag = false } @@ -684,6 +729,7 @@ export default { this.approvalInfoForm.validateFields((errors, values) => { if (!errors) { formData.basicTaskInfoDTO = Object.assign(this.approvalInfo, values) + formData.basicTaskInfoDTO.taskId = this.$route.query.taskId } else { flag = false } @@ -720,11 +766,13 @@ export default { handleSave () { const formData = { basicProcessInfoDTO: Object.assign(this.processInfo, this.processInfoForm.getFieldsValue()), // 流程信息 - businessInfoDTO: this.dealBusinessData({ ...this.formInline }), // 业务信息 + businessInfoDTO: { + businessMap: { ...this.formInline } + }, // 业务信息 basicTaskInfoDTO: Object.assign(this.approvalInfo, this.approvalInfoForm.getFieldsValue()), // 流程审批信息 userInfoMap: this.$refs.personnelInfo.getDataObj() // 用户信息 } - const params = { ...formData.basicProcessInfoDTO, ...formData.businessInfoDTO, ...formData.basicTaskInfoDTO } + const params = { ...formData.basicProcessInfoDTO, ...this.formInline, ...formData.basicTaskInfoDTO } if (!Object.values(params).some(tt => !!tt || tt === 0)) { // 提示至少填写一项 this.$message.warning(this.$t('pleaseFillInAtLeastOneItem')) @@ -762,14 +810,68 @@ export default { this.loading = false }) }, + /** + * 同意 + */ + handleAgree () { + const formData = this.dealFormData() + if (!formData) { + return + } + this.loading = true + agreeStandardECProcess(formData).then(res => { + if (res.success) { + this.$message.success(res.message) + this.goBack() + } else { + this.$message.warning(res.message) + } + }).finally(() => { + this.loading = false + }) + }, + /** + * 驳回 + */ + handleReject () { + const formData = this.dealFormData() + if (!formData) { + return + } + this.loading = true + rejectStandardECProcess(formData).then(res => { + if (res.success) { + this.$message.success(res.message) + this.goBack() + } else { + this.$message.warning(res.message) + } + }).finally(() => { + this.loading = false + }) + }, /** * 转办 */ handleTurnTo () { this.$refs.userSelectModal.open() }, - continueTurnTo () { - + continueTurnTo (userId) { + const params = { + taskId: this.$route.query.taskId, + userId + } + this.loading = true + turnToStandardECProcess(params).then(res => { + if (res.success) { + this.$message.success(res.message) + this.goBack() + } else { + this.$message.warning(res.message) + } + }).finally(() => { + this.loading = false + }) }, treeSelectNameChange (value, fieldName) { this.formInline[fieldName + '_dictText'] = value