diff --git a/src/components/SecondDev/TransferDialog.vue b/src/components/SecondDev/TransferDialog.vue
new file mode 100644
index 0000000..965528d
--- /dev/null
+++ b/src/components/SecondDev/TransferDialog.vue
@@ -0,0 +1,133 @@
+
+
+
+ 取消
+ 确定
+
+
+
+
+
+
+
+
diff --git a/src/views/secondDev/approveFlowPage.vue b/src/views/secondDev/approveFlowPage.vue
index a5b18bd..8b2237d 100644
--- a/src/views/secondDev/approveFlowPage.vue
+++ b/src/views/secondDev/approveFlowPage.vue
@@ -49,6 +49,7 @@
+
@@ -64,15 +65,16 @@
import { onMounted, reactive, ref, unref } from 'vue';
import FormInformation from '/@/views/secondDev/FormInformation.vue';
import userTaskItem from '/@/views/workflow/task/hooks/userTaskItem';
- import { getApprovalProcess, postApproval, postGetNextTaskMaybeArrival } from '/@/api/workflow/task';
+ import { getApprovalProcess, postApproval, postGetNextTaskMaybeArrival, postTransfer } from '/@/api/workflow/task';
import { ApproveCode, ApproveType } from '/@/enums/workflowEnum';
import { CheckCircleOutlined, StopOutlined, CloseOutlined, DownOutlined } from '@ant-design/icons-vue';
import OpinionDialog from '/@/components/SecondDev/OpinionDialog.vue';
+ import TransferDialog from '/@/components/SecondDev/TransferDialog.vue';
import { separator } from '/@bpmn/config/info';
import { useMultipleTabStore } from '/@/store/modules/multipleTab';
import Title from '/@/components/Title/src/Title.vue';
import FlowHistory from '/@/components/SecondDev/FlowHistory.vue';
- import { message } from 'ant-design-vue';
+ import { message, Modal } from 'ant-design-vue';
import useEventBus from '/@/hooks/event/useEventBus';
import ProcessInformation from '/@/views/workflow/task/components/flow/ProcessInformation.vue';
@@ -92,6 +94,7 @@
const renderKey = ref('');
const formConfigs = ref();
const opinionDlg = ref();
+ const transferDlg = ref();
const validateSuccess = ref(false);
const formInformation = ref();
const showFlowChart = ref(false);
@@ -121,8 +124,16 @@
const key = e.key;
if (key === 'flowchart') {
openFlowChart();
- } else if(key === 'finish'){
- onFinishClick();
+ } else if (key === 'finish') {
+ Modal.confirm({
+ title: () => '提示',
+ content: () => '确定终止吗?',
+ onOk: () => {
+ onFinishClick();
+ }
+ });
+ } else if (key === 'transfer') {
+ onTransferClick();
}
}
@@ -171,7 +182,43 @@
});
}
- async function onFinishClick(){
+ function onTransferClick() {
+ transferDlg.value.toggleDialog({
+ taskId: taskId.value,
+ callback: (args) => {
+ onTransfer(args);
+ }
+ });
+ }
+
+ function onTransfer({ taskId, userId }) {
+ transferDlg.value.validate().then(() => {
+ transferDlg.value.startLoading();
+ postTransfer(taskId, userId)
+ .then((res) => {
+ transferDlg.value.toggleDialog({
+ isClose: true
+ });
+ message.success('转办成功');
+ setTimeout(() => {
+ bus.emit(FLOW_PROCESSED);
+ close();
+ }, 500);
+ })
+ .catch((err) => {
+ message.error('转办失败');
+ transferDlg.value.toggleDialog({
+ isClose: true
+ });
+ });
+ });
+ }
+
+ function onTransferFlowFail() {
+ transferDlg.value.stopLoading();
+ }
+
+ async function onFinishClick() {
approvalData.approvedType = ApproveType.FINISH;
approvalData.approvedResult = ApproveCode.FINISH;
onFinish('finish');