diff --git a/apps/web-antd/src/views/workflow/components/flow-interfere-modal.vue b/apps/web-antd/src/views/workflow/components/flow-interfere-modal.vue index 05337f13..44691f72 100644 --- a/apps/web-antd/src/views/workflow/components/flow-interfere-modal.vue +++ b/apps/web-antd/src/views/workflow/components/flow-interfere-modal.vue @@ -2,7 +2,7 @@ import type { User } from '#/api/system/user/model'; import type { TaskInfo } from '#/api/workflow/task/model'; -import { ref } from 'vue'; +import { computed, ref } from 'vue'; import { useVbenModal } from '@vben/common-ui'; @@ -19,6 +19,20 @@ import { userSelectModal } from '.'; const emit = defineEmits<{ complete: [] }>(); const taskInfo = ref(); + +/** + * 是否显示 加签/减签操作 + */ +const showMultiActions = computed(() => { + if (!taskInfo.value) { + return false; + } + if (Number(taskInfo.value.nodeRatio) > 0) { + return true; + } + return false; +}); + const [BasicModal, modalApi] = useVbenModal({ title: '流程干预', class: 'w-[800px]', @@ -73,6 +87,46 @@ function handleTermination() { }, }); } + +const [AddSignatureModal, addSignatureModalApi] = useVbenModal({ + connectedComponent: userSelectModal, +}); +function handleAddSignature(userList: User[]) { + if (userList.length === 0 || !taskInfo.value) return; + const userIds = userList.map((user) => user.userId); + Modal.confirm({ + title: '提示', + content: '确认加签吗?', + centered: true, + onOk: async () => { + await taskOperation( + { taskId: taskInfo.value!.id, userIds }, + 'addSignature', + ); + emit('complete'); + }, + }); +} + +const [ReductionSignatureModal, reductionSignatureModalApi] = useVbenModal({ + connectedComponent: userSelectModal, +}); +function handleReductionSignature(userList: User[]) { + if (userList.length === 0 || !taskInfo.value) return; + const userIds = userList.map((user) => user.userId); + Modal.confirm({ + title: '提示', + content: '确认加签吗?', + centered: true, + onOk: async () => { + await taskOperation( + { taskId: taskInfo.value!.id, userIds }, + 'reductionSignature', + ); + emit('complete'); + }, + }); +}