From 1b3cbfc8819fe03510d41bcc6b84f9f78707cc70 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=83=91=E5=A8=81?= Date: Mon, 17 Mar 2025 15:33:11 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=90Simple=E8=AE=BE=E8=AE=A1=E5=99=A8?= =?UTF-8?q?=E3=80=91=E6=B5=81=E7=A8=8B=E6=A8=A1=E5=9E=8B->=E5=9F=BA?= =?UTF-8?q?=E6=9C=AC=E4=BF=A1=E6=81=AF->=E8=B0=81=E5=8F=AF=E4=BB=A5?= =?UTF-8?q?=E5=8F=91=E8=B5=B7=EF=BC=8C=E6=94=AF=E6=8C=81=E6=8C=87=E5=AE=9A?= =?UTF-8?q?=E5=A4=9A=E4=B8=AA=E9=83=A8=E9=97=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 指定部门可以在部门新增成员后无需重新修改相关流程 # Conflicts: # src/components/SimpleProcessDesignerV2/src/nodes-config/StartUserNodeConfig.vue # src/views/bpm/model/form/index.vue --- src/components/DeptSelectForm/index.vue | 120 ++++++++++++++++++ .../src/SimpleProcessDesigner.vue | 6 + .../src/nodes-config/StartUserNodeConfig.vue | 65 +++++++--- .../bpm/model/CategoryDraggableModel.vue | 15 ++- src/views/bpm/model/form/BasicInfo.vue | 74 ++++++++++- src/views/bpm/model/form/ProcessDesign.vue | 1 + src/views/bpm/model/form/index.vue | 18 ++- src/views/bpm/simple/SimpleModelDesign.vue | 2 + 8 files changed, 279 insertions(+), 22 deletions(-) create mode 100644 src/components/DeptSelectForm/index.vue diff --git a/src/components/DeptSelectForm/index.vue b/src/components/DeptSelectForm/index.vue new file mode 100644 index 00000000..9c6868fa --- /dev/null +++ b/src/components/DeptSelectForm/index.vue @@ -0,0 +1,120 @@ + + + \ No newline at end of file diff --git a/src/components/SimpleProcessDesignerV2/src/SimpleProcessDesigner.vue b/src/components/SimpleProcessDesignerV2/src/SimpleProcessDesigner.vue index e9a9b3f5..7823c2f8 100644 --- a/src/components/SimpleProcessDesignerV2/src/SimpleProcessDesigner.vue +++ b/src/components/SimpleProcessDesignerV2/src/SimpleProcessDesigner.vue @@ -59,6 +59,11 @@ const props = defineProps({ startUserIds: { type: Array, required: false + }, + // 可发起流程的部门编号 + startDeptIds: { + type: Array, + required: false } }) @@ -82,6 +87,7 @@ provide('deptList', deptOptions) provide('userGroupList', userGroupOptions) provide('deptTree', deptTreeOptions) provide('startUserIds', props.startUserIds) +provide('startDeptIds', props.startDeptIds) provide('tasks', []) provide('processInstance', {}) const message = useMessage() // 国际化 diff --git a/src/components/SimpleProcessDesignerV2/src/nodes-config/StartUserNodeConfig.vue b/src/components/SimpleProcessDesignerV2/src/nodes-config/StartUserNodeConfig.vue index 663b4db0..f1100d24 100644 --- a/src/components/SimpleProcessDesignerV2/src/nodes-config/StartUserNodeConfig.vue +++ b/src/components/SimpleProcessDesignerV2/src/nodes-config/StartUserNodeConfig.vue @@ -25,21 +25,38 @@ - 全部成员可以发起流程 - - {{ getUserNicknames(startUserIds) }} 可发起流程 - - - - {{ getUserNicknames(startUserIds.slice(0, 2)) }} 等 - {{ startUserIds.length }} 人可发起流程 - - + 全部成员可以发起流程 +
+ + {{ getUserNicknames(startUserIds) }} 可发起流程 + + + + {{ getUserNicknames(startUserIds.slice(0,2)) }} 等 {{ startUserIds.length }} 人可发起流程 + + +
+
+ + {{ getDeptNames(startDeptIds) }} 可发起流程 + + + + {{ getDeptNames(startDeptIds.slice(0,2)) }} 等 {{ startDeptIds.length }} 个部门的人可发起流程 + + +
+
@@ -107,6 +124,7 @@ import { SimpleFlowNode, NodeType, FieldPermissionType, START_USER_BUTTON_SETTING } from '../consts' import { useWatchNode, useDrawer, useNodeName, useFormFieldsPermission } from '../node' import * as UserApi from '@/api/system/user' +import * as DeptApi from '@/api/system/dept' defineOptions({ name: 'StartUserNodeConfig' }) @@ -118,8 +136,12 @@ const props = defineProps({ }) // 可发起流程的用户编号 const startUserIds = inject>('startUserIds') +// 可发起流程的部门编号 +const startDeptIds = inject>('startDeptIds') // 用户列表 const userOptions = inject>('userList') +// 部门列表 +const deptOptions = inject>('deptList') // 抽屉配置 const { settingVisible, closeDrawer, openDrawer } = useDrawer() // 当前节点 @@ -145,6 +167,19 @@ const getUserNicknames = (userIds: number[]): string => { }) return nicknames.join(',') } +const getDeptNames = (deptIds: number[]): string => { + if (!deptIds || deptIds.length === 0) { + return '' + } + const deptNames: string[] = [] + deptIds.forEach((deptId) => { + const found = deptOptions?.value.find((item) => item.id === deptId) + if (found && found.name) { + deptNames.push(found.name) + } + }) + return deptNames.join(',') +} // 保存配置 const saveConfig = async () => { activeTabName.value = 'user' diff --git a/src/views/bpm/model/CategoryDraggableModel.vue b/src/views/bpm/model/CategoryDraggableModel.vue index 4e4c1827..89a3217e 100644 --- a/src/views/bpm/model/CategoryDraggableModel.vue +++ b/src/views/bpm/model/CategoryDraggableModel.vue @@ -97,10 +97,23 @@