From 732b1741c1d8334339313e2210685e3c314db5a8 Mon Sep 17 00:00:00 2001 From: jason <2667446@qq.com> Date: Mon, 30 Dec 2024 23:43:20 +0800 Subject: [PATCH] =?UTF-8?q?=20=E3=80=90=E5=8A=9F=E8=83=BD=E5=AE=8C?= =?UTF-8?q?=E5=96=84=E3=80=91=20Simple=20=E8=AE=BE=E8=AE=A1=E5=99=A8?= =?UTF-8?q?=EF=BC=8C=E5=8F=91=E8=B5=B7=E8=8A=82=E7=82=B9=E6=9D=83=E9=99=90?= =?UTF-8?q?=E5=B1=95=E7=A4=BA=20=20=E3=80=90=E7=BC=BA=E9=99=B7=E4=BF=AE?= =?UTF-8?q?=E5=A4=8D=E3=80=91=E6=B5=81=E7=A8=8B=E8=A1=A8=E5=8D=95=E5=AD=97?= =?UTF-8?q?=E6=AE=B5=E5=8F=98=E5=8C=96=E6=97=B6=EF=BC=8C=E8=8A=82=E7=82=B9?= =?UTF-8?q?=E5=AD=97=E6=AE=B5=E6=9D=83=E9=99=90=E4=B8=8D=E4=BC=9A=E5=8F=98?= =?UTF-8?q?=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/SimpleProcessDesigner.vue | 7 ++++ .../SimpleProcessDesignerV2/src/node.ts | 30 ++++++++++++++-- .../src/nodes-config/StartUserNodeConfig.vue | 36 ++++++++++++++++--- src/views/bpm/model/form/ProcessDesign.vue | 2 +- src/views/bpm/simple/SimpleModelDesign.vue | 2 ++ 5 files changed, 69 insertions(+), 8 deletions(-) diff --git a/src/components/SimpleProcessDesignerV2/src/SimpleProcessDesigner.vue b/src/components/SimpleProcessDesignerV2/src/SimpleProcessDesigner.vue index bdea492a..7fe2b3c9 100644 --- a/src/components/SimpleProcessDesignerV2/src/SimpleProcessDesigner.vue +++ b/src/components/SimpleProcessDesignerV2/src/SimpleProcessDesigner.vue @@ -54,6 +54,11 @@ const props = defineProps({ modelName: { type: String, required: false + }, + // 可发起流程的人员编号 + startUserIds : { + type: Array, + required: false } }) @@ -74,6 +79,7 @@ provide('userList', userOptions) provide('deptList', deptOptions) provide('userGroupList', userGroupOptions) provide('deptTree', deptTreeOptions) +provide('startUserIds', props.startUserIds) const message = useMessage() // 国际化 const processNodeTree = ref() @@ -185,6 +191,7 @@ onMounted(async () => { if (formType.value === 10) { const bpmnForm = (await getForm(bpmnModel.formId)) as unknown as FormVO formFields.value = bpmnForm?.fields + console.log('formFields.value', formFields.value) } } } diff --git a/src/components/SimpleProcessDesignerV2/src/node.ts b/src/components/SimpleProcessDesignerV2/src/node.ts index 4cbac6e3..b3cfc972 100644 --- a/src/components/SimpleProcessDesignerV2/src/node.ts +++ b/src/components/SimpleProcessDesignerV2/src/node.ts @@ -14,7 +14,7 @@ import { NODE_DEFAULT_NAME, AssignStartUserHandlerType, AssignEmptyHandlerType, - FieldPermissionType, + FieldPermissionType } from './consts' import { parseFormFields } from '@/components/FormCreate/src/utils/index' export function useWatchNode(props: { flowNode: SimpleFlowNode }): Ref { @@ -52,9 +52,33 @@ export function useFormFieldsPermission(defaultPermission: FieldPermissionType) const getNodeConfigFormFields = (nodeFormFields?: Array>) => { nodeFormFields = toRaw(nodeFormFields) - fieldsPermissionConfig.value = - cloneDeep(nodeFormFields) || getDefaultFieldsPermission(unref(formFields)) + if (!nodeFormFields || nodeFormFields.length === 0) { + fieldsPermissionConfig.value = getDefaultFieldsPermission(unref(formFields)) + } else { + fieldsPermissionConfig.value = mergeFieldsPermission(nodeFormFields, unref(formFields)) + } } + // 合并已经设置的表单字段权限,当前流程表单字段 (可能新增,或删除了字段) + const mergeFieldsPermission = ( + formFieldsPermisson: Array>, + formFields?: string[] + ) => { + let mergedFieldsPermission: Array> = [] + if (formFields) { + mergedFieldsPermission = parseFormCreateFields(formFields).map((item) => { + const found = formFieldsPermisson.find( + (fieldPermission) => fieldPermission.field == item.field + ) + return { + field: item.field, + title: item.title, + permission: found ? found.permission : defaultPermission + } + }) + } + return mergedFieldsPermission + } + // 默认的表单权限: 获取表单的所有字段,设置字段默认权限为只读 const getDefaultFieldsPermission = (formFields?: string[]) => { let defaultFieldsPermission: Array> = [] diff --git a/src/components/SimpleProcessDesignerV2/src/nodes-config/StartUserNodeConfig.vue b/src/components/SimpleProcessDesignerV2/src/nodes-config/StartUserNodeConfig.vue index e43a351e..26c8e131 100644 --- a/src/components/SimpleProcessDesignerV2/src/nodes-config/StartUserNodeConfig.vue +++ b/src/components/SimpleProcessDesignerV2/src/nodes-config/StartUserNodeConfig.vue @@ -25,7 +25,20 @@ -
待实现
+ 全部成员可以发起流程 + + {{ getUserNicknames(startUserIds) }} 可发起流程 + + + + {{ getUserNicknames(startUserIds.slice(0,2)) }} 等 {{ startUserIds.length }} 人可发起流程 + +
@@ -86,7 +99,7 @@