From 981191de058069ea5b6018054adeff4fa47ee68d Mon Sep 17 00:00:00 2001 From: jason <2667446@qq.com> Date: Tue, 10 Jun 2025 15:54:06 +0800 Subject: [PATCH 01/14] =?UTF-8?q?fix:=20[BPM=20=E5=B7=A5=E4=BD=9C=E6=B5=81?= =?UTF-8?q?]=20-=20=E6=B5=81=E7=A8=8B=E5=88=97=E8=A1=A8=E6=B5=81=E7=A8=8B?= =?UTF-8?q?=E5=90=8D=E7=A7=B0=E8=BF=87=E9=95=BF=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/web-antd/src/views/bpm/model/index.vue | 4 ++-- .../views/bpm/model/modules/category-draggable-model.vue | 9 +++++---- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/apps/web-antd/src/views/bpm/model/index.vue b/apps/web-antd/src/views/bpm/model/index.vue index 3259ae92b..882cae7cb 100644 --- a/apps/web-antd/src/views/bpm/model/index.vue +++ b/apps/web-antd/src/views/bpm/model/index.vue @@ -178,13 +178,13 @@ async function handleCategorySortSubmit() { From c23de9250382fbb9da5a8504ba715f77db3b7115 Mon Sep 17 00:00:00 2001 From: jason <2667446@qq.com> Date: Tue, 10 Jun 2025 16:56:59 +0800 Subject: [PATCH 02/14] =?UTF-8?q?feat:=20[BPM=20=E5=B7=A5=E4=BD=9C?= =?UTF-8?q?=E6=B5=81]=20-=20=E6=B5=81=E7=A8=8B=E6=A8=A1=E5=9E=8B=E6=9F=A5?= =?UTF-8?q?=E7=9C=8B=E6=B5=81=E7=A8=8B=E8=A1=A8=E5=8D=95=E8=AF=A6=E6=83=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../modules/category-draggable-model.vue | 29 +++++++++++++++---- 1 file changed, 23 insertions(+), 6 deletions(-) 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 f8be5aaba..87625d2bc 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 @@ -33,10 +33,12 @@ import { } from '#/api/bpm/model'; import { DictTag } from '#/components/dict-tag'; import { $t } from '#/locales'; -import { DICT_TYPE } from '#/utils'; +import { BpmModelFormType, DICT_TYPE } from '#/utils'; // 导入重命名表单 import CategoryRenameForm from '../../category/modules/rename-form.vue'; +// 导入 FormCreate 表单详情 +import FormCreateDetail from '../../form/modules/detail.vue'; const props = defineProps<{ categoryInfo: ModelCategoryInfo; @@ -45,12 +47,18 @@ const props = defineProps<{ const emit = defineEmits(['success']); -// 重命名分类对话框 +/** 重命名分类对话框 */ const [CategoryRenameModal, categoryRenameModalApi] = useVbenModal({ connectedComponent: CategoryRenameForm, destroyOnClose: true, }); +/** 流程表单详情对话框 */ +const [FormCreateDetailModal, formCreateDetailModalApi] = useVbenModal({ + connectedComponent: FormCreateDetail, + destroyOnClose: true, +}); + const router = useRouter(); // 获取当前登录用户Id const userStore = useUserStore(); @@ -192,8 +200,15 @@ async function handleDeleteCategory() { /** 处理表单详情点击 */ function handleFormDetail(row: any) { - // TODO 待实现 - console.warn('待实现', row); + if (row.formType === BpmModelFormType.NORMAL) { + const data = { + id: row.formId, + }; + formCreateDetailModalApi.setData(data).open(); + } else { + // TODO 待实现 + console.warn('业务表单待实现', row); + } } /** 判断是否是流程管理员 */ @@ -544,7 +559,7 @@ const handleRenameSuccess = () => { From 47c4931fe1e08225ecdf6ad9bc2244ba4bcd8948 Mon Sep 17 00:00:00 2001 From: xingyu4j Date: Tue, 10 Jun 2025 17:17:55 +0800 Subject: [PATCH 03/14] =?UTF-8?q?feat:=20=E4=BC=98=E5=8C=96=E6=98=BE?= =?UTF-8?q?=E7=A4=BA=E6=95=88=E6=9E=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/web-antd/src/views/system/dict/data.ts | 9 +++++++++ .../system/role/modules/assign-menu-form.vue | 17 +++++++++++++++++ 2 files changed, 26 insertions(+) diff --git a/apps/web-antd/src/views/system/dict/data.ts b/apps/web-antd/src/views/system/dict/data.ts index d116f0d28..28586f169 100644 --- a/apps/web-antd/src/views/system/dict/data.ts +++ b/apps/web-antd/src/views/system/dict/data.ts @@ -76,6 +76,15 @@ export function useTypeGridFormSchema(): VbenFormSchema[] { clearable: true, }, }, + { + fieldName: 'type', + label: '字典类型', + component: 'Input', + componentProps: { + placeholder: '请输入字典类型', + clearable: true, + }, + }, { fieldName: 'status', label: '状态', diff --git a/apps/web-antd/src/views/system/role/modules/assign-menu-form.vue b/apps/web-antd/src/views/system/role/modules/assign-menu-form.vue index b4a07b98a..d5ebd483a 100644 --- a/apps/web-antd/src/views/system/role/modules/assign-menu-form.vue +++ b/apps/web-antd/src/views/system/role/modules/assign-menu-form.vue @@ -1,4 +1,6 @@ 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 04/14] =?UTF-8?q?feat:=20[BPM=20=E5=B7=A5=E4=BD=9C?= =?UTF-8?q?=E6=B5=81]=20-=20=E6=B5=81=E7=A8=8B=E6=A8=A1=E5=9E=8B=E5=8E=86?= =?UTF-8?q?=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 = () => { -