feat: 根据流程key发起流程

saber
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 Layout from '@/page/index/'
import defaultValues from './default-values' import defaultValues from './default-values'
@ -29,11 +29,12 @@ export default {
methods: { methods: {
// 动态路由跳转 // 动态路由跳转
dynamicRoute(row, type, async = false) { 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({ let param = Buffer.from(JSON.stringify({
processId: id, processId: id,
taskId, taskId,
processInsId: processInstanceId || processId processInsId: processInstanceId || processId,
processDefKey
})).toString('base64') })).toString('base64')
if (formKey && formKey.startsWith('wf_ex_')) { 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", ...表单自定义字段变量} * @param form {"processId": "流程定义id", ...表单自定义字段变量}

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

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

Loading…
Cancel
Save