From f0585cebf7333396313a5586954dad1fad634901 Mon Sep 17 00:00:00 2001 From: jason <2667446@qq.com> Date: Tue, 10 Jun 2025 22:35:38 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20[BPM=20=E5=B7=A5=E4=BD=9C=E6=B5=81]=20-?= =?UTF-8?q?=20=E6=B5=81=E7=A8=8B=E6=A8=A1=E5=9E=8B=E5=8E=86=E5=8F=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../web-antd/src/router/routes/modules/bpm.ts | 12 ++ .../src/views/bpm/model/definition/data.ts | 65 ++++++++ .../src/views/bpm/model/definition/index.vue | 157 ++++++++++++++++++ .../modules/category-draggable-model.vue | 17 +- 4 files changed, 248 insertions(+), 3 deletions(-) create mode 100644 apps/web-antd/src/views/bpm/model/definition/data.ts create mode 100644 apps/web-antd/src/views/bpm/model/definition/index.vue diff --git a/apps/web-antd/src/router/routes/modules/bpm.ts b/apps/web-antd/src/router/routes/modules/bpm.ts index 0287c1749..5fc572eb2 100644 --- a/apps/web-antd/src/router/routes/modules/bpm.ts +++ b/apps/web-antd/src/router/routes/modules/bpm.ts @@ -86,6 +86,18 @@ const routes: RouteRecordRaw[] = [ keepAlive: true, }, }, + { + path: 'manager/definition', + component: () => import('#/views/bpm/model/definition/index.vue'), + name: 'BpmProcessDefinition', + meta: { + title: '流程定义', + activePath: '/bpm/manager/model', + icon: 'carbon:flow-modeler', + hideInMenu: true, + keepAlive: true, + }, + }, ], }, ]; diff --git a/apps/web-antd/src/views/bpm/model/definition/data.ts b/apps/web-antd/src/views/bpm/model/definition/data.ts new file mode 100644 index 000000000..7a6d93727 --- /dev/null +++ b/apps/web-antd/src/views/bpm/model/definition/data.ts @@ -0,0 +1,65 @@ +import type { VxeTableGridOptions } from '#/adapter/vxe-table'; +import type { BpmProcessDefinitionApi } from '#/api/bpm/definition'; + +import { DICT_TYPE } from '#/utils'; + +/** 列表的字段 */ +export function useGridColumns(): VxeTableGridOptions['columns'] { + return [ + { + field: 'id', + title: '定义编号', + minWidth: 250, + }, + { + field: 'name', + title: '流程名称', + minWidth: 150, + }, + { + field: 'icon', + title: '流程图标', + minWidth: 100, + slots: { default: 'icon' }, + }, + { + field: 'startUsers', + title: '可见范围', + minWidth: 100, + slots: { default: 'startUsers' }, + }, + { + field: 'modelType', + title: '流程类型', + minWidth: 120, + cellRender: { + name: 'CellDict', + props: { type: DICT_TYPE.BPM_MODEL_TYPE }, + }, + }, + { + field: 'formType', + title: '表单信息', + minWidth: 150, + slots: { default: 'formInfo' }, + }, + { + field: 'version', + title: '流程版本', + minWidth: 80, + slots: { default: 'version' }, + }, + { + field: 'deploymentTime', + title: '部署时间', + minWidth: 180, + formatter: 'formatDateTime', + }, + { + title: '操作', + width: 120, + fixed: 'right', + slots: { default: 'actions' }, + }, + ]; +} diff --git a/apps/web-antd/src/views/bpm/model/definition/index.vue b/apps/web-antd/src/views/bpm/model/definition/index.vue new file mode 100644 index 000000000..1555abed9 --- /dev/null +++ b/apps/web-antd/src/views/bpm/model/definition/index.vue @@ -0,0 +1,157 @@ + + + diff --git a/apps/web-antd/src/views/bpm/model/modules/category-draggable-model.vue b/apps/web-antd/src/views/bpm/model/modules/category-draggable-model.vue index 87625d2bc..a246badf0 100644 --- a/apps/web-antd/src/views/bpm/model/modules/category-draggable-model.vue +++ b/apps/web-antd/src/views/bpm/model/modules/category-draggable-model.vue @@ -257,7 +257,7 @@ function handleModelCommand(command: string, row: any) { break; } case 'handleDefinitionList': { - console.warn('历史待实现', row); + handleDefinitionList(row); break; } case 'handleDelete': { @@ -331,6 +331,16 @@ function handleDelete(row: any) { }); } +/** 跳转到指定流程定义列表 */ +function handleDefinitionList(row: any) { + router.push({ + name: 'BpmProcessDefinition', + query: { + key: row.key, + }, + }); +} + /** 更新 modelList 模型列表 */ const updateModelList = useDebounceFn(() => { const newModelList = props.categoryInfo.modelList; @@ -620,7 +630,6 @@ const handleRenameSuccess = () => { -