From 433f31b5d9a35d1848daa1868027e28725b8be19 Mon Sep 17 00:00:00 2001 From: ssc <273702440@qq.com> Date: Mon, 16 May 2022 08:29:16 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=A0=B9=E6=8D=AE=E6=B5=81=E7=A8=8Bkey?= =?UTF-8?q?=E5=8F=91=E8=B5=B7=E6=B5=81=E7=A8=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/plugin/workflow/process.js | 11 ++++++++ src/views/plugin/workflow/mixins/ex-form.js | 25 ++++++++++++++++--- src/views/plugin/workflow/ops/detail.vue | 2 +- .../workflow/process/components/form.vue | 17 ++++++++++--- 4 files changed, 47 insertions(+), 8 deletions(-) diff --git a/src/api/plugin/workflow/process.js b/src/api/plugin/workflow/process.js index c5dfd8d..75e87a7 100644 --- a/src/api/plugin/workflow/process.js +++ b/src/api/plugin/workflow/process.js @@ -118,6 +118,17 @@ export const getFormByProcessId = (params) => { }) } +/** + * 根据流程定义key获取表单 + */ + export const getFormByProcessDefKey = (params) => { + return request({ + url: `${prefix}/getFormByProcessDefKey`, + method: 'get', + params + }) +} + /** * 流程详情 */ diff --git a/src/views/plugin/workflow/mixins/ex-form.js b/src/views/plugin/workflow/mixins/ex-form.js index 5b3372d..d68a329 100644 --- a/src/views/plugin/workflow/mixins/ex-form.js +++ b/src/views/plugin/workflow/mixins/ex-form.js @@ -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", ...表单自定义字段变量} diff --git a/src/views/plugin/workflow/ops/detail.vue b/src/views/plugin/workflow/ops/detail.vue index 2091146..080853e 100644 --- a/src/views/plugin/workflow/ops/detail.vue +++ b/src/views/plugin/workflow/ops/detail.vue @@ -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 } diff --git a/src/views/plugin/workflow/process/components/form.vue b/src/views/plugin/workflow/process/components/form.vue index 1868800..0e21c3f 100644 --- a/src/views/plugin/workflow/process/components/form.vue +++ b/src/views/plugin/workflow/process/components/form.vue @@ -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) {