From 27d24cd02d8598287591e58de9e5057bbfb75986 Mon Sep 17 00:00:00 2001 From: jason <2667446@qq.com> Date: Tue, 1 Oct 2024 23:35:11 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=90=E5=B7=A5=E4=BD=9C=E6=B5=81=E3=80=91-?= =?UTF-8?q?=20=E6=B5=81=E7=A8=8B=E5=AE=9E=E4=BE=8B=E6=96=B0=E7=95=8C?= =?UTF-8?q?=E9=9D=A2=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/bpm/processInstance/index.ts | 36 ++- src/api/bpm/task/index.ts | 46 +++ .../src/SimpleProcessDesigner.vue | 89 +++--- src/router/modules/remaining.ts | 2 +- .../detail/ProcessInstanceOperationButton.vue | 6 +- .../detail/ProcessInstanceTimeline.vue | 282 ++++++++++++++++-- .../bpm/processInstance/detail/index_new.vue | 195 +++++++----- 7 files changed, 501 insertions(+), 155 deletions(-) diff --git a/src/api/bpm/processInstance/index.ts b/src/api/bpm/processInstance/index.ts index 9122b2b9..df348d62 100644 --- a/src/api/bpm/processInstance/index.ts +++ b/src/api/bpm/processInstance/index.ts @@ -1,6 +1,6 @@ import request from '@/config/axios' import { ProcessDefinitionVO } from '@/api/bpm/model' - +import { NodeType } from '@/components/SimpleProcessDesignerV2/src/consts' export type Task = { id: string name: string @@ -22,6 +22,35 @@ export type ProcessInstanceVO = { processDefinition?: ProcessDefinitionVO } +// 用户信息 +export type User = { + id: number, + nickname: string, + avatar: string +} + +// 审批任务信息 +export type ApprovalTaskInfo = { + id: number, + ownerUser: User, + assigneeUser: User, + status: number, + reason: string + +} + +// 审批节点信息 +export type ApprovalNodeInfo = { + id : number + name: string + nodeType: NodeType + status: number + startTime?: Date + endTime?: Date + candidateUserList?: User[] + tasks: ApprovalTaskInfo[] +} + export const getProcessInstanceMyPage = async (params: any) => { return await request.get({ url: '/bpm/process-instance/my-page', params }) } @@ -57,3 +86,8 @@ export const getProcessInstance = async (id: string) => { export const getProcessInstanceCopyPage = async (params: any) => { return await request.get({ url: '/bpm/process-instance/copy/page', params }) } + +export const getApprovalDetail = async (processInstanceId?:string, processDefinitionId?:string) => { + const param = processInstanceId ? '?processInstanceId='+ processInstanceId : '?processDefinitionId='+ processDefinitionId + return await request.get({ url: 'bpm/process-instance/get-approval-detail'+ param }) +} diff --git a/src/api/bpm/task/index.ts b/src/api/bpm/task/index.ts index f3cda9f7..d32b2e14 100644 --- a/src/api/bpm/task/index.ts +++ b/src/api/bpm/task/index.ts @@ -1,5 +1,51 @@ import request from '@/config/axios' +/** + * 任务状态枚举 + */ +export enum TaskStatusEnum { + /** + * 未开始 + */ + NOT_START = -1, + + /** + * 待审批 + */ + WAIT = 0, + /** + * 审批中 + */ + RUNNING = 1, + /** + * 审批通过 + */ + APPROVE = 2, + + /** + * 审批不通过 + */ + REJECT = 3, + + /** + * 已取消 + */ + CANCEL = 4, + /** + * 已退回 + */ + RETURN = 5, + /** + * 委派中 + */ + DELEGATE = 6, + /** + * 审批通过中 + */ + APPROVING = 7, + +} + export type TaskVO = { id: number } diff --git a/src/components/SimpleProcessDesignerV2/src/SimpleProcessDesigner.vue b/src/components/SimpleProcessDesignerV2/src/SimpleProcessDesigner.vue index 589672d9..4da5deb2 100644 --- a/src/components/SimpleProcessDesignerV2/src/SimpleProcessDesigner.vue +++ b/src/components/SimpleProcessDesignerV2/src/SimpleProcessDesigner.vue @@ -1,6 +1,6 @@