update 调整委托,转办

This commit is contained in:
gssong 2024-12-07 13:14:43 +08:00
parent 44117ba831
commit 466d52b9f5
4 changed files with 58 additions and 43 deletions

View File

@ -1,13 +1,13 @@
import request from '@/utils/request';
import { AxiosPromise } from 'axios';
import { TaskQuery, TaskVO } from '@/api/workflow/task/types';
import { TaskQuery, FlowTaskVO, TaskOperationBo } from '@/api/workflow/task/types';
/**
*
* @param query
* @returns {*}
*/
export const getPageByTaskWait = (query: TaskQuery): AxiosPromise<TaskVO[]> => {
export const getPageByTaskWait = (query: TaskQuery): AxiosPromise<FlowTaskVO[]> => {
return request({
url: '/workflow/task/getPageByTaskWait',
method: 'get',
@ -20,7 +20,7 @@ export const getPageByTaskWait = (query: TaskQuery): AxiosPromise<TaskVO[]> => {
* @param query
* @returns {*}
*/
export const getPageByTaskFinish = (query: TaskQuery): AxiosPromise<TaskVO[]> => {
export const getPageByTaskFinish = (query: TaskQuery): AxiosPromise<FlowTaskVO[]> => {
return request({
url: '/workflow/task/getPageByTaskFinish',
method: 'get',
@ -33,7 +33,7 @@ export const getPageByTaskFinish = (query: TaskQuery): AxiosPromise<TaskVO[]> =>
* @param query
* @returns {*}
*/
export const getPageByTaskCopy = (query: TaskQuery): AxiosPromise<TaskVO[]> => {
export const getPageByTaskCopy = (query: TaskQuery): AxiosPromise<FlowTaskVO[]> => {
return request({
url: '/workflow/task/getPageByTaskCopy',
method: 'get',
@ -46,7 +46,7 @@ export const getPageByTaskCopy = (query: TaskQuery): AxiosPromise<TaskVO[]> => {
* @param query
* @returns {*}
*/
export const getPageByAllTaskWait = (query: TaskQuery): AxiosPromise<TaskVO[]> => {
export const getPageByAllTaskWait = (query: TaskQuery): AxiosPromise<FlowTaskVO[]> => {
return request({
url: '/workflow/task/getPageByAllTaskWait',
method: 'get',
@ -59,7 +59,7 @@ export const getPageByAllTaskWait = (query: TaskQuery): AxiosPromise<TaskVO[]> =
* @param query
* @returns {*}
*/
export const getPageByAllTaskFinish = (query: TaskQuery): AxiosPromise<TaskVO[]> => {
export const getPageByAllTaskFinish = (query: TaskQuery): AxiosPromise<FlowTaskVO[]> => {
return request({
url: '/workflow/task/getPageByAllTaskFinish',
method: 'get',
@ -263,3 +263,15 @@ export const getListByDeleteMultiInstance = (taskId: string) => {
method: 'get'
});
};
/**
* delegateTask transferTask addSignature reductionSignature
* @returns
*/
export const taskOperation = (data: TaskOperationBo, operation: string) => {
return request({
url: `/workflow/task/taskOperation/${operation}`,
method: 'post',
data: data
});
};

View File

@ -34,3 +34,14 @@ export interface VariableVo {
key: string;
value: string;
}
export interface TaskOperationBo {
//委派/转办人的用户ID必填准对委派/转办人操作)
userId?: string;
//加签/减签人的用户ID列表必填针对加签/减签操作)
userIds?: string[];
//任务ID必填
taskId: string;
//意见或备注信息(可选)
message?: string;
}

View File

@ -85,12 +85,12 @@
import { ref } from 'vue';
import { ComponentInternalInstance } from 'vue';
import { ElForm } from 'element-plus';
import { completeTask, backProcess, getTaskById, transferTask, terminationTask, getBackTaskNode, delegateTask } from '@/api/workflow/task';
import { completeTask, backProcess, getTaskById, taskOperation, terminationTask, getBackTaskNode } 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 { FlowTaskVO } from '@/api/workflow/task/types';
import { FlowTaskVO, TaskOperationBo } from '@/api/workflow/task/types';
const userSelectCopyRef = ref<InstanceType<typeof UserSelect>>();
const transferTaskRef = ref<InstanceType<typeof UserSelect>>();
const delegateTaskRef = ref<InstanceType<typeof UserSelect>>();
@ -234,8 +234,8 @@ const handleBackProcess = async () => {
backLoading.value = true;
backButtonDisabled.value = true;
await backProcess(backForm.value).finally(() => {
loading.value = false
buttonDisabled.value = false
loading.value = false;
buttonDisabled.value = false;
});
dialog.visible = false;
backLoading.value = false;
@ -289,17 +289,17 @@ const openTransferTask = () => {
//
const handleTransferTask = async (data) => {
if (data && data.length > 0) {
let params = {
taskId: taskId.value,
const taskOperationBo = reactive<TaskOperationBo>({
userId: data[0].userId,
comment: form.value.message
};
taskId: taskId.value,
message: form.value.message
});
await proxy?.$modal.confirm('是否确认提交?');
loading.value = true;
buttonDisabled.value = true;
await transferTask(params).finally(() => {
loading.value = false
buttonDisabled.value = false
await taskOperation(taskOperationBo, 'transferTask').finally(() => {
loading.value = false;
buttonDisabled.value = false;
});
dialog.visible = false;
emits('submitCallback');
@ -316,17 +316,17 @@ const openDelegateTask = () => {
//
const handleDelegateTask = async (data) => {
if (data && data.length > 0) {
let params = {
taskId: taskId.value,
const taskOperationBo = reactive<TaskOperationBo>({
userId: data[0].userId,
nickName: data[0].nickName
};
taskId: taskId.value,
message: form.value.message
});
await proxy?.$modal.confirm('是否确认提交?');
loading.value = true;
buttonDisabled.value = true;
await delegateTask(params).finally(() => {
loading.value = false
buttonDisabled.value = false
await taskOperation(taskOperationBo, 'delegateTask').finally(() => {
loading.value = false;
buttonDisabled.value = false;
});
dialog.visible = false;
emits('submitCallback');
@ -345,8 +345,8 @@ const handleTerminationTask = async (data) => {
loading.value = true;
buttonDisabled.value = true;
await terminationTask(params).finally(() => {
loading.value = false
buttonDisabled.value = false
loading.value = false;
buttonDisabled.value = false;
});
dialog.visible = false;
emits('submitCallback');

View File

@ -60,17 +60,14 @@
<template #default="scope">
<el-row :gutter="10" class="mb8">
<el-col :span="1.5" v-if="scope.row.status === 'draft' || scope.row.status === 'cancel' || scope.row.status === 'back'">
<el-button
v-hasPermi="['workflow:leave:edit']"
size="small"
type="primary"
icon="Edit"
@click="handleUpdate(scope.row)"
>修改</el-button>
<el-button v-hasPermi="['workflow:leave:edit']" size="small" type="primary" icon="Edit" @click="handleUpdate(scope.row)"
>修改</el-button
>
</el-col>
<el-col :span="1.5" v-if="scope.row.status === 'draft' || scope.row.status === 'cancel' || scope.row.status === 'back'">
<el-button v-hasPermi="['workflow:leave:remove']" size="small" type="primary" icon="Delete" @click="handleDelete(scope.row)"
>删除</el-button>
>删除</el-button
>
</el-col>
</el-row>
<el-row :gutter="10" class="mb8">
@ -78,12 +75,7 @@
<el-button type="primary" size="small" icon="View" @click="handleView(scope.row)">查看</el-button>
</el-col>
<el-col :span="1.5" v-if="scope.row.status === 'waiting'">
<el-button
size="small"
type="primary"
icon="Notification"
@click="handleCancelProcessApply(scope.row.id)"
>撤销</el-button>
<el-button size="small" type="primary" icon="Notification" @click="handleCancelProcessApply(scope.row.id)">撤销</el-button>
</el-col>
</el-row>
</template>
@ -231,9 +223,9 @@ const handleCancelProcessApply = async (id: string) => {
await proxy?.$modal.confirm('是否确认撤销当前单据?');
loading.value = true;
let data = {
businessId:id,
message:'撤销流程!'
}
businessId: id,
message: '撤销流程!'
};
await cancelProcessApply(data).finally(() => (loading.value = false));
await getList();
proxy?.$modal.msgSuccess('撤销成功');