feat: 根据流程key发起流程

main
ssc 4 years ago
parent 043c37dfb3
commit 433f31b5d9
  1. 11
      src/api/plugin/workflow/process.js
  2. 25
      src/views/plugin/workflow/mixins/ex-form.js
  3. 2
      src/views/plugin/workflow/ops/detail.vue
  4. 17
      src/views/plugin/workflow/process/components/form.vue

@ -118,6 +118,17 @@ export const getFormByProcessId = (params) => {
})
}
/**
* 根据流程定义key获取表单
*/
export const getFormByProcessDefKey = (params) => {
return request({
url: `${prefix}/getFormByProcessDefKey`,
method: 'get',
params
})
}
/**
* 流程详情
*/

@ -1,4 +1,4 @@
import { getFormByProcessId, startProcess, detail, completeTask, transferTask, delegateTask, rollbackTask, terminateProcess, addMultiInstance, withdrawTask } from '@/api/plugin/workflow/process'
import { getFormByProcessId, getFormByProcessDefKey, startProcess, detail, completeTask, transferTask, delegateTask, rollbackTask, terminateProcess, addMultiInstance, withdrawTask } from '@/api/plugin/workflow/process'
import Layout from '@/page/index/'
import defaultValues from './default-values'
@ -29,11 +29,12 @@ export default {
methods: {
// 动态路由跳转
dynamicRoute(row, type, async = false) {
const { id, taskId, processInstanceId, processId, formKey, formUrl } = row
const { id, taskId, processInstanceId, processId, formKey, formUrl, processDefKey } = row
let param = Buffer.from(JSON.stringify({
processId: id,
taskId,
processInsId: processInstanceId || processId
processInsId: processInstanceId || processId,
processDefKey
})).toString('base64')
if (formKey && formKey.startsWith('wf_ex_')) {
@ -135,6 +136,24 @@ export default {
})
})
},
/**
* 获取流程发起表单
* @param processDefKey 流程定义key
* @returns Promise({"process": "流程定义信息", "startForm": "开始节点表单"})
*/
getStartFormByProcessDefKey(processDefKey) {
return new Promise((resolve, reject) => {
getFormByProcessDefKey({ processDefKey }).then(res => {
const { process } = res.data.data
process.hideComment = true
this.process = process
this.tag.label = '发起流程 - ' + process.name
resolve(res.data.data)
}).catch(() => {
reject()
})
})
},
/**
* 发起流程
* @param form {"processId": "流程定义id", ...表单自定义字段变量}

@ -51,7 +51,7 @@ export default {
processInstanceId: {
handler() {
const { taskId, processInstanceId } = this
if (taskId && processInstanceId) this.getDetail(taskId, processInstanceId)
if ((taskId && processInstanceId) || processInstanceId) this.getDetail(taskId, processInstanceId)
},
immediate: true
}

@ -64,8 +64,8 @@ export default {
handler(val) {
if (val) {
const param = JSON.parse(Buffer.from(val, 'base64').toString())
const { processId } = param
if (processId) this.getForm(processId)
const { processId, processDefKey } = param
if (processId || processDefKey) this.getForm(processId, processDefKey)
}
},
immediate: true
@ -87,8 +87,17 @@ export default {
}
},
methods: {
getForm(processId) {
this.getStartForm(processId).then(res => {
getForm(processId, processDefKey) {
let param
let method
if (processId) {
param = processId
method = 'getStartForm'
} else if (processDefKey) {
param = processDefKey
method = 'getStartFormByProcessDefKey'
}
this[method](param).then(res => {
let { process, form, startForm } = res
this.form.processId = process.id
if (form) {

Loading…
Cancel
Save