From 7d48dba86abbfda2711f2db4bf9f7f085394c747 Mon Sep 17 00:00:00 2001 From: dap <15891557205@163.com> Date: Fri, 17 Oct 2025 14:45:21 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=96=B0=E5=A2=9E=E6=B5=81=E7=A8=8B?= =?UTF-8?q?=E5=AE=9E=E4=BE=8B=E5=8F=98=E9=87=8F=E4=BF=AE=E6=94=B9=E5=8A=9F?= =?UTF-8?q?=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 新增了流程实例变量的查询与修改接口,并在前端页面中实现了对应的弹窗表单, 支持用户查看和修改流程变量。同时优化了变量展示界面,增加了字段类型标签 和修改限制提示。 --- .../src/api/workflow/instance/index.ts | 25 ++- .../src/api/workflow/instance/model.d.ts | 13 ++ .../views/workflow/processInstance/index.vue | 4 +- .../instance-variable-modal.vue | 160 +++++++++++++++++- 4 files changed, 193 insertions(+), 9 deletions(-) diff --git a/apps/web-antd/src/api/workflow/instance/index.ts b/apps/web-antd/src/api/workflow/instance/index.ts index ed3523d1..abc1b794 100644 --- a/apps/web-antd/src/api/workflow/instance/index.ts +++ b/apps/web-antd/src/api/workflow/instance/index.ts @@ -1,5 +1,5 @@ import type { TaskInfo } from '../task/model'; -import type { FlowInfoResponse } from './model'; +import type { FlowInfoResponse, FlowInstanceVariableResp } from './model'; import type { ID, IDS, PageQuery, PageResult } from '#/api/common'; @@ -104,8 +104,8 @@ export function flowInfo(businessId: string) { * @returns Map */ export function instanceVariable(instanceId: string) { - return requestClient.get>( - `/workflow/instance/variable/${instanceId}`, + return requestClient.get( + `/workflow/instance/instanceVariable/${instanceId}`, ); } @@ -118,3 +118,22 @@ export function workflowInstanceInvalid(data: { }) { return requestClient.postWithMsg('/workflow/instance/invalid', data); } + +/** + * 修改流程参数 + * @param data 参数 + * @param data.instanceId 实例ID + * @param data.key 参数key + * @param data.value 值 + * @returns void + */ +export function updateFlowVariable(data: { + instanceId: string; + key: string; + value: any; +}) { + return requestClient.putWithMsg( + '/workflow/instance/updateVariable', + data, + ); +} diff --git a/apps/web-antd/src/api/workflow/instance/model.d.ts b/apps/web-antd/src/api/workflow/instance/model.d.ts index 133d06a3..df0f9185 100644 --- a/apps/web-antd/src/api/workflow/instance/model.d.ts +++ b/apps/web-antd/src/api/workflow/instance/model.d.ts @@ -1,3 +1,5 @@ +export {}; + export interface Flow { id: string; createTime: string; @@ -39,3 +41,14 @@ export interface FlowInfoResponse { instanceId: string; list: Flow[]; } + +export interface FlowInstanceVariableResp { + /** + * json字符串 流程变量 + */ + variable: string; + variableList: { + key: string; + value: any; + }[]; +} diff --git a/apps/web-antd/src/views/workflow/processInstance/index.vue b/apps/web-antd/src/views/workflow/processInstance/index.vue index a81ba2dd..61880751 100644 --- a/apps/web-antd/src/views/workflow/processInstance/index.vue +++ b/apps/web-antd/src/views/workflow/processInstance/index.vue @@ -163,7 +163,9 @@ const [InstanceVariableModal, instanceVariableModalApi] = useVbenModal({ connectedComponent: instanceVariableModal, }); function handleVariable(row: Recordable) { - instanceVariableModalApi.setData({ record: row.variable }); + instanceVariableModalApi.setData({ + instanceId: row.id, + }); instanceVariableModalApi.open(); } const [FlowInfoModal, flowInfoModalApi] = useVbenModal({ diff --git a/apps/web-antd/src/views/workflow/processInstance/instance-variable-modal.vue b/apps/web-antd/src/views/workflow/processInstance/instance-variable-modal.vue index 420a9d0c..1e8e69c2 100644 --- a/apps/web-antd/src/views/workflow/processInstance/instance-variable-modal.vue +++ b/apps/web-antd/src/views/workflow/processInstance/instance-variable-modal.vue @@ -1,28 +1,178 @@ -