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 } }) }