From 5d91131eb7eb236278778023c65f31b7c19df285 Mon Sep 17 00:00:00 2001 From: YunaiV Date: Sat, 20 Jul 2024 20:05:42 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=90=E7=BC=BA=E9=99=B7=E4=BF=AE=E5=A4=8D?= =?UTF-8?q?=E3=80=91BPM=EF=BC=9A=E6=B5=81=E7=A8=8B=E9=87=8D=E6=96=B0?= =?UTF-8?q?=E5=8F=91=E8=B5=B7=E6=97=B6=EF=BC=8C=E7=A6=81=E7=94=A8=E4=B8=9A?= =?UTF-8?q?=E5=8A=A1=E8=A1=A8=E5=8D=95=E7=9A=84=E6=83=85=E5=86=B5=EF=BC=8C?= =?UTF-8?q?=E9=81=BF=E5=85=8D=E6=8A=A5=E9=94=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/bpm/definition/index.ts | 2 +- src/api/bpm/model/index.ts | 1 + src/api/bpm/processInstance/index.ts | 13 ++----------- src/views/bpm/processInstance/index.vue | 24 +++++++++++++++++++----- 4 files changed, 23 insertions(+), 17 deletions(-) diff --git a/src/api/bpm/definition/index.ts b/src/api/bpm/definition/index.ts index cb6d4271..caedba14 100644 --- a/src/api/bpm/definition/index.ts +++ b/src/api/bpm/definition/index.ts @@ -1,6 +1,6 @@ import request from '@/config/axios' -export const getProcessDefinition = async (id: number, key: string) => { +export const getProcessDefinition = async (id?: string, key?: string) => { return await request.get({ url: '/bpm/process-definition/get', params: { id, key } diff --git a/src/api/bpm/model/index.ts b/src/api/bpm/model/index.ts index 2e1d4e64..2b484a61 100644 --- a/src/api/bpm/model/index.ts +++ b/src/api/bpm/model/index.ts @@ -5,6 +5,7 @@ export type ProcessDefinitionVO = { version: number deploymentTIme: string suspensionState: number + formType?: number } export type ModelVO = { diff --git a/src/api/bpm/processInstance/index.ts b/src/api/bpm/processInstance/index.ts index 81640625..9122b2b9 100644 --- a/src/api/bpm/processInstance/index.ts +++ b/src/api/bpm/processInstance/index.ts @@ -1,4 +1,5 @@ import request from '@/config/axios' +import { ProcessDefinitionVO } from '@/api/bpm/model' export type Task = { id: string @@ -18,17 +19,7 @@ export type ProcessInstanceVO = { businessKey: string createTime: string endTime: string -} - -export type ProcessInstanceCopyVO = { - type: number - taskName: string - taskKey: string - processInstanceName: string - processInstanceKey: string - startUserId: string - options: string[] - reason: string + processDefinition?: ProcessDefinitionVO } export const getProcessInstanceMyPage = async (params: any) => { diff --git a/src/views/bpm/processInstance/index.vue b/src/views/bpm/processInstance/index.vue index 7ca07f90..f1d6ca73 100644 --- a/src/views/bpm/processInstance/index.vue +++ b/src/views/bpm/processInstance/index.vue @@ -76,7 +76,7 @@ type="primary" plain v-hasPermi="['bpm:process-instance:query']" - @click="handleCreate()" + @click="handleCreate(undefined)" > 发起流程 @@ -146,7 +146,7 @@ > 取消 - + 重新发起 @@ -167,6 +167,8 @@ import { dateFormatter, formatPast2 } from '@/utils/formatTime' import { ElMessageBox } from 'element-plus' import * as ProcessInstanceApi from '@/api/bpm/processInstance' import { CategoryApi } from '@/api/bpm/category' +import { ProcessInstanceVO } from '@/api/bpm/processInstance' +import * as DefinitionApi from '@/api/bpm/definition' defineOptions({ name: 'BpmProcessInstanceMy' }) @@ -214,10 +216,22 @@ const resetQuery = () => { } /** 发起流程操作 **/ -const handleCreate = (id) => { - router.push({ +const handleCreate = async (row?: ProcessInstanceVO) => { + // 如果是【业务表单】,不支持重新发起 + if (row?.id) { + const processDefinitionDetail = await DefinitionApi.getProcessDefinition( + row.processDefinitionId + ) + debugger + if (processDefinitionDetail.formType === 20) { + message.error('重新发起流程失败,原因:该流程使用业务表单,不支持重新发起') + return + } + } + // 跳转发起流程界面 + await router.push({ name: 'BpmProcessInstanceCreate', - query: { processInstanceId: id } + query: { processInstanceId: row?.id } }) }