From acb0cd350c5b9c3e26c5bd0699ffe7b034c575d3 Mon Sep 17 00:00:00 2001
From: jason <2667446@qq.com>
Date: Thu, 20 Nov 2025 16:06:35 +0800
Subject: [PATCH] =?UTF-8?q?feat:=20[bpm][ele]=20=E6=B5=81=E7=A8=8B?=
=?UTF-8?q?=E5=AE=9A=E4=B9=89=E5=88=97=E8=A1=A8?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
apps/web-ele/src/adapter/vxe-table.ts | 4 +
apps/web-ele/src/router/routes/modules/bpm.ts | 60 +++----
.../src/views/bpm/model/definition/data.ts | 73 +++++++++
.../src/views/bpm/model/definition/index.vue | 151 ++++++++++++++++++
4 files changed, 258 insertions(+), 30 deletions(-)
create mode 100644 apps/web-ele/src/views/bpm/model/definition/data.ts
create mode 100644 apps/web-ele/src/views/bpm/model/definition/index.vue
diff --git a/apps/web-ele/src/adapter/vxe-table.ts b/apps/web-ele/src/adapter/vxe-table.ts
index 27917454f..c93703bbb 100644
--- a/apps/web-ele/src/adapter/vxe-table.ts
+++ b/apps/web-ele/src/adapter/vxe-table.ts
@@ -85,6 +85,10 @@ setupVbenVxeTable({
src,
previewSrcList: [src],
class: props?.class,
+ style: {
+ width: props?.width ? `${props.width}px` : undefined,
+ height: props?.height ? `${props.height}px` : undefined,
+ },
previewTeleported: true,
});
},
diff --git a/apps/web-ele/src/router/routes/modules/bpm.ts b/apps/web-ele/src/router/routes/modules/bpm.ts
index d732af975..c895a34ee 100644
--- a/apps/web-ele/src/router/routes/modules/bpm.ts
+++ b/apps/web-ele/src/router/routes/modules/bpm.ts
@@ -9,24 +9,24 @@ const routes: RouteRecordRaw[] = [
hideInMenu: true,
},
children: [
- // {
- // path: 'task',
- // name: 'BpmTask',
- // meta: {
- // title: '审批中心',
- // icon: 'ant-design:history-outlined',
- // },
- // children: [
- // {
- // path: 'my',
- // name: 'BpmTaskMy',
- // component: () => import('#/views/bpm/processInstance/index.vue'),
- // meta: {
- // title: '我的流程',
- // },
- // },
- // ],
- // },
+ {
+ path: 'task',
+ name: 'BpmTask',
+ meta: {
+ title: '审批中心',
+ icon: 'ant-design:history-outlined',
+ },
+ children: [
+ {
+ path: 'my',
+ name: 'BpmTaskMy',
+ component: () => import('#/views/bpm/processInstance/index.vue'),
+ meta: {
+ title: '我的流程',
+ },
+ },
+ ],
+ },
// {
// path: 'process-instance/detail',
// component: () => import('#/views/bpm/processInstance/detail/index.vue'),
@@ -86,18 +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,
- // },
- // },
+ {
+ 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,
+ },
+ },
{
path: 'process-instance/report',
component: () => import('#/views/bpm/processInstance/report/index.vue'),
diff --git a/apps/web-ele/src/views/bpm/model/definition/data.ts b/apps/web-ele/src/views/bpm/model/definition/data.ts
new file mode 100644
index 000000000..c5dff8010
--- /dev/null
+++ b/apps/web-ele/src/views/bpm/model/definition/data.ts
@@ -0,0 +1,73 @@
+import type { VxeTableGridOptions } from '#/adapter/vxe-table';
+
+import { DICT_TYPE } from '@vben/constants';
+
+/** 列表的字段 */
+export function useGridColumns(): VxeTableGridOptions['columns'] {
+ return [
+ {
+ field: 'id',
+ title: '定义编号',
+ minWidth: 250,
+ },
+ {
+ field: 'name',
+ title: '流程名称',
+ minWidth: 150,
+ },
+ {
+ field: 'icon',
+ title: '流程图标',
+ minWidth: 100,
+ cellRender: {
+ name: 'CellImage',
+ props: {
+ width: 32,
+ height: 32,
+ class: 'rounded',
+ },
+ },
+ },
+ {
+ 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,
+ cellRender: {
+ name: 'CellTag',
+ },
+ },
+ {
+ field: 'deploymentTime',
+ title: '部署时间',
+ minWidth: 180,
+ formatter: 'formatDateTime',
+ },
+ {
+ title: '操作',
+ width: 120,
+ fixed: 'right',
+ slots: { default: 'actions' },
+ },
+ ];
+}
diff --git a/apps/web-ele/src/views/bpm/model/definition/index.vue b/apps/web-ele/src/views/bpm/model/definition/index.vue
new file mode 100644
index 000000000..7934c7617
--- /dev/null
+++ b/apps/web-ele/src/views/bpm/model/definition/index.vue
@@ -0,0 +1,151 @@
+
+
+
+
+
+
+
+
+
+
+
+ 全部可见
+
+
+ {{ row.startUsers[0]!.nickname }}
+
+
+
+ {{ row.startUsers[0]!.nickname }}等
+ {{ row.startUsers.length }} 人可见
+
+
+
+
+
+
+ {{ row.formName }}
+
+
+
+ {{ row.formCustomCreatePath }}
+
+ 暂无表单
+
+
+
+
+
+
+