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