yxk-20260715

在流程详情弹窗中新增 增补审批意见 tab,仅从 我的待阅、我的已阅、我的已办 三类入口打开时显示。
用户提交后只写入 task_approval_opinion,不写 Flowable 原生历史/评论表,也不写旧流程日志表。
提交成功后刷新 审批历史,新增意见可在审批历史中看到。
This commit is contained in:
ye1023
2026-07-15 09:50:05 +08:00
parent 58919aaae7
commit 8858869c2a
4 changed files with 32 additions and 2 deletions
@@ -97,6 +97,7 @@
formData, formData,
formUrl, formUrl,
title: '流程历史', title: '流程历史',
showSupplementApprovalOpinion: true,
}); });
if (props.isRead === 0 && record?.ccId) { if (props.isRead === 0 && record?.ccId) {
await reload(); await reload();
@@ -34,6 +34,7 @@
formData, formData,
formUrl, formUrl,
title: '流程历史', title: '流程历史',
showSupplementApprovalOpinion: true,
}); });
} }
@@ -37,6 +37,11 @@
<template #tab> <partition-outlined /><span>流程图</span> </template> <template #tab> <partition-outlined /><span>流程图</span> </template>
<task-trace-content :form-data="taskFormData" /> <task-trace-content :form-data="taskFormData" />
</a-tab-pane> </a-tab-pane>
<a-tab-pane v-if="showSupplementApprovalOpinion" key="4">
<template #tab> <form-outlined /><span>增补意见</span> </template>
<TaskSupplementApprovalOpinionContent :form-data="taskFormData" @success="handleSupplementSuccess" />
</a-tab-pane>
</a-tabs> </a-tabs>
</BasicModal> </BasicModal>
</template> </template>
@@ -47,11 +52,12 @@
*/ */
import { BasicModal, useModalInner } from '/@/components/Modal'; import { BasicModal, useModalInner } from '/@/components/Modal';
import { ref , nextTick , computed, watch } from 'vue'; import { ref , nextTick , computed, watch } from 'vue';
import { UserOutlined, PartitionOutlined, FileTextOutlined, HistoryOutlined } from '@ant-design/icons-vue'; import { UserOutlined, PartitionOutlined, FileTextOutlined, HistoryOutlined, FormOutlined } from '@ant-design/icons-vue';
import TaskHandleInnerContent from '../content/TaskHandleInnerContent.vue'; import TaskHandleInnerContent from '../content/TaskHandleInnerContent.vue';
import TaskTraceContent from '../content/TaskTraceContent.vue'; import TaskTraceContent from '../content/TaskTraceContent.vue';
import BpmDynamicForm from '/@/views/super/bpm/process/components/BpmDynamicForm.vue'; import BpmDynamicForm from '/@/views/super/bpm/process/components/BpmDynamicForm.vue';
import TaskApprovalHistoryContent from '../content/TaskApprovalHistoryContent.vue'; import TaskApprovalHistoryContent from '../content/TaskApprovalHistoryContent.vue';
import TaskSupplementApprovalOpinionContent from '../content/TaskSupplementApprovalOpinionContent.vue';
export default { export default {
name: 'TaskHandleModal', name: 'TaskHandleModal',
@@ -61,16 +67,20 @@
FileTextOutlined, FileTextOutlined,
PartitionOutlined, PartitionOutlined,
HistoryOutlined, HistoryOutlined,
FormOutlined,
TaskHandleInnerContent, TaskHandleInnerContent,
TaskTraceContent, TaskTraceContent,
BpmDynamicForm, BpmDynamicForm,
TaskApprovalHistoryContent, TaskApprovalHistoryContent,
TaskSupplementApprovalOpinionContent,
}, },
emits: ['success', 'register'], emits: ['success', 'register'],
setup(_p, { emit }) { setup(_p, { emit }) {
const title = ref('流程办理'); const title = ref('流程办理');
const taskFormData = ref<Recordable>({}); const taskFormData = ref<Recordable>({});
const taskFormUrl = ref(''); const taskFormUrl = ref('');
const showSupplementApprovalOpinion = ref(false);
const activeKey = ref('1');
//是否需要签收 //是否需要签收
const claimStatus = ref(false); const claimStatus = ref(false);
//useModalInner //useModalInner
@@ -79,6 +89,8 @@
taskFormData.value = data.formData; taskFormData.value = data.formData;
taskFormUrl.value = data.formUrl; taskFormUrl.value = data.formUrl;
title.value = data.title; title.value = data.title;
activeKey.value = '1';
showSupplementApprovalOpinion.value = !!data.showSupplementApprovalOpinion;
if(data.isSignTask==true){ if(data.isSignTask==true){
claimStatus.value = true claimStatus.value = true
}else{ }else{
@@ -86,7 +98,6 @@
} }
}); });
const activeKey = ref('1');
const isEmbeddedHandleForm = computed(() => taskFormUrl.value?.includes('BgPartymatterBPMForm')); const isEmbeddedHandleForm = computed(() => taskFormUrl.value?.includes('BgPartymatterBPMForm'));
const approvalHistoryRef = ref(); const approvalHistoryRef = ref();
@@ -106,6 +117,12 @@
claimStatus.value = false; claimStatus.value = false;
} }
function handleSupplementSuccess() {
nextTick(() => {
approvalHistoryRef.value?.reload();
});
}
watch(activeKey, (key) => { watch(activeKey, (key) => {
if (key === '2') { if (key === '2') {
nextTick(() => { nextTick(() => {
@@ -122,8 +139,10 @@
taskFormData, taskFormData,
taskFormUrl, taskFormUrl,
handleSuccess, handleSuccess,
handleSupplementSuccess,
claimStatus, claimStatus,
claimSuccess, claimSuccess,
showSupplementApprovalOpinion,
modalRef, modalRef,
parentNode, parentNode,
isEmbeddedHandleForm isEmbeddedHandleForm
@@ -7,6 +7,7 @@ enum Api {
list = '/taskapprovalopinion/taskApprovalOpinion/list', list = '/taskapprovalopinion/taskApprovalOpinion/list',
save='/taskapprovalopinion/taskApprovalOpinion/add', save='/taskapprovalopinion/taskApprovalOpinion/add',
edit='/taskapprovalopinion/taskApprovalOpinion/edit', edit='/taskapprovalopinion/taskApprovalOpinion/edit',
supplement = '/taskapprovalopinion/taskApprovalOpinion/supplement',
deleteOne = '/taskapprovalopinion/taskApprovalOpinion/delete', deleteOne = '/taskapprovalopinion/taskApprovalOpinion/delete',
deleteBatch = '/taskapprovalopinion/taskApprovalOpinion/deleteBatch', deleteBatch = '/taskapprovalopinion/taskApprovalOpinion/deleteBatch',
importExcel = '/taskapprovalopinion/taskApprovalOpinion/importExcel', importExcel = '/taskapprovalopinion/taskApprovalOpinion/importExcel',
@@ -70,3 +71,11 @@ export const saveOrUpdate = (params, isUpdate) => {
let url = isUpdate ? Api.edit : Api.save; let url = isUpdate ? Api.edit : Api.save;
return defHttp.post({ url: url, params }, { isTransformResponse: false }); return defHttp.post({ url: url, params }, { isTransformResponse: false });
} }
/**
* 提交增补审批意见,只写入 task_approval_opinion。
* @param params
*/
export const saveSupplementOpinion = (params) => {
return defHttp.post({ url: Api.supplement, data: params });
}