From 803d44cac00adf8a6f924d1e188e7df1dcd89674 Mon Sep 17 00:00:00 2001
From: gssong <1742057357@qq.com>
Date: 星期四, 07 三月 2024 22:16:42 +0800
Subject: [PATCH] add 添加转办
---
src/components/Process/submitVerify.vue | 43 ++++++++++++++++++++++++++++++++++++++++---
src/components/Process/multiInstanceUser.vue | 2 +-
src/api/workflow/task/index.ts | 14 ++++++++++++++
src/components/UserSelect/index.vue | 1 +
4 files changed, 56 insertions(+), 4 deletions(-)
diff --git a/src/api/workflow/task/index.ts b/src/api/workflow/task/index.ts
index 2c5e539..7b496c0 100644
--- a/src/api/workflow/task/index.ts
+++ b/src/api/workflow/task/index.ts
@@ -179,3 +179,17 @@
method: 'put'
});
};
+
+/**
+ * 杞姙浠诲姟
+ * @param taskIds
+ * @param userId
+ * @returns
+ */
+export const transferTask = (data: object) => {
+ return request({
+ url: `/workflow/task/transferTask`,
+ method: 'post',
+ data: data
+ });
+};
diff --git a/src/components/Process/multiInstanceUser.vue b/src/components/Process/multiInstanceUser.vue
index 3cda3fd..d79bac9 100644
--- a/src/components/Process/multiInstanceUser.vue
+++ b/src/components/Process/multiInstanceUser.vue
@@ -75,7 +75,7 @@
</div>
<template #footer>
<div class="dialog-footer">
- <el-button type="primary" v-loading="loading" @click="submitFileForm">纭� 瀹�</el-button>
+ <el-button type="primary" @click="submitFileForm">纭� 瀹�</el-button>
<el-button @click="visible = false">鍙� 娑�</el-button>
</div>
</template>
diff --git a/src/components/Process/submitVerify.vue b/src/components/Process/submitVerify.vue
index 9e2a7be..54e6678 100644
--- a/src/components/Process/submitVerify.vue
+++ b/src/components/Process/submitVerify.vue
@@ -24,15 +24,19 @@
<template #footer>
<span class="dialog-footer">
<el-button v-loading="buttonLoading" type="primary" @click="handleCompleteTask"> 鎻愪氦 </el-button>
+ <el-button v-if="task.businessStatus === 'waiting' && task.multiInstance" v-loading="buttonLoading" type="primary" @click="openTransferTask"> 杞姙 </el-button>
<el-button v-if="task.businessStatus === 'waiting' && task.multiInstance" v-loading="buttonLoading" type="primary" @click="addMultiInstanceUser"> 鍔犵 </el-button>
<el-button v-if="task.businessStatus === 'waiting' && task.multiInstance" v-loading="buttonLoading" type="primary" @click="deleteMultiInstanceUser"> 鍑忕 </el-button>
<el-button v-if="task.businessStatus === 'waiting'" v-loading="buttonLoading" type="danger" @click="handleBackProcess"> 閫�鍥� </el-button>
<el-button v-loading="buttonLoading" @click="cancel">鍙栨秷</el-button>
</span>
</template>
- <UserSelect ref="userSelectCopyRef" :data="selectCopyUserIds" @confirm-call-back="userSelectCopyCallBack"></UserSelect>
+ <!-- 鎶勯�� -->
+ <UserSelect ref="userSelectCopyRef" :multiple="userMultiple" :data="selectCopyUserIds" @confirm-call-back="userSelectCopyCallBack"></UserSelect>
+ <!-- 杞姙 -->
+ <UserSelect ref="transferTaskRef" :multiple="userMultiple" @confirm-call-back="handleTransferTask"></UserSelect>
<!-- 鍔犵缁勪欢 -->
- <multiInstanceUser ref="multiInstanceUserRef" :title="title" @submit-callback="handleQuery" />
+ <multiInstanceUser ref="multiInstanceUserRef" :title="title" @submit-callback='closeDialog' />
</el-dialog>
</template>
@@ -40,13 +44,14 @@
import { ref } from 'vue';
import { ComponentInternalInstance } from 'vue';
import { ElForm } from 'element-plus';
-import { completeTask, backProcess, getTaskById } from '@/api/workflow/task';
+import { completeTask, backProcess, getTaskById,transferTask } from '@/api/workflow/task';
import UserSelect from '@/components/UserSelect';
import MultiInstanceUser from '@/components/Process/multiInstanceUser.vue';
const { proxy } = getCurrentInstance() as ComponentInternalInstance;
import { UserVO } from '@/api/system/user/types';
import { TaskVO } from '@/api/workflow/task/types';
const userSelectCopyRef = ref<InstanceType<typeof UserSelect>>();
+const transferTaskRef = ref<InstanceType<typeof UserSelect>>();
//鍔犵缁勪欢
const multiInstanceUserRef = ref<InstanceType<typeof MultiInstanceUser>>();
@@ -66,6 +71,9 @@
const selectCopyUserList = ref<UserVO[]>([]);
//鎶勯�佷汉id
const selectCopyUserIds = ref<string>(undefined);
+//鏄惁澶氶�変汉鍛�
+const userMultiple = ref(false);
+
//浠诲姟
const task = ref<TaskVO>({
id: undefined,
@@ -107,6 +115,9 @@
messageType: ['1'],
wfCopyList: []
});
+const closeDialog = () => {
+ dialog.visible = false
+}
//鎵撳紑寮圭獥
const openDialog = (id?: string) => {
selectCopyUserIds.value = undefined
@@ -172,6 +183,7 @@
};
//鎵撳紑鎶勯�佷汉鍛�
const openUserSelectCopy = () => {
+ userMultiple.value = true
userSelectCopyRef.value.open();
};
//纭鎶勯�佷汉鍛�
@@ -203,6 +215,31 @@
multiInstanceUserRef.value.getDeleteMultiInstanceList(taskId.value);
}
};
+//鎵撳紑杞姙
+const openTransferTask = () => {
+ userMultiple.value = false
+ transferTaskRef.value.open();
+};
+//杞姙
+const handleTransferTask = async (data) => {
+ if(data && data.length > 0){
+ let params = {
+ taskId: taskId.value,
+ userId: data[0].userId,
+ comment: form.value.message
+ }
+ await proxy?.$modal.confirm('鏄惁纭鎻愪氦锛�');
+ loading.value = true;
+ buttonLoading.value = true;
+ await transferTask(params).finally(() => (loading.value = false));
+ dialog.visible = false;
+ emits('submitCallback');
+ proxy?.$modal.msgSuccess('鎿嶄綔鎴愬姛');
+ }else{
+ proxy?.$modal.msgWarning('璇烽�夋嫨鐢ㄦ埛锛�');
+ }
+}
+
/**
* 瀵瑰鏆撮湶瀛愮粍浠舵柟娉�
*/
diff --git a/src/components/UserSelect/index.vue b/src/components/UserSelect/index.vue
index 0599a17..e97b553 100644
--- a/src/components/UserSelect/index.vue
+++ b/src/components/UserSelect/index.vue
@@ -138,6 +138,7 @@
const queryFormRef = ref<ElFormInstance>();
const tableRef = ref<VxeTableInstance<UserVO>>();
+
const userDialog = useDialog({
title: '鐢ㄦ埛閫夋嫨'
});
--
Gitblit v1.9.3