diff --git a/src/components/DeptSelectForm/index.vue b/src/components/DeptSelectForm/index.vue new file mode 100644 index 00000000..140f4956 --- /dev/null +++ b/src/components/DeptSelectForm/index.vue @@ -0,0 +1,122 @@ + + + diff --git a/src/components/SimpleProcessDesignerV2/src/NodeHandler.vue b/src/components/SimpleProcessDesignerV2/src/NodeHandler.vue index 25e4ed74..439ea980 100644 --- a/src/components/SimpleProcessDesignerV2/src/NodeHandler.vue +++ b/src/components/SimpleProcessDesignerV2/src/NodeHandler.vue @@ -91,6 +91,7 @@ import { DEFAULT_CONDITION_GROUP_VALUE } from './consts' import { generateUUID } from '@/utils' +import { cloneDeep } from 'lodash-es' defineOptions({ name: 'NodeHandler' @@ -184,7 +185,7 @@ const addNode = (type: number) => { conditionSetting: { defaultFlow: false, conditionType: ConditionType.RULE, - conditionGroups: DEFAULT_CONDITION_GROUP_VALUE + conditionGroups: cloneDeep(DEFAULT_CONDITION_GROUP_VALUE) } }, { @@ -242,7 +243,7 @@ const addNode = (type: number) => { conditionSetting: { defaultFlow: false, conditionType: ConditionType.RULE, - conditionGroups: DEFAULT_CONDITION_GROUP_VALUE + conditionGroups: cloneDeep(DEFAULT_CONDITION_GROUP_VALUE) } }, { 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..9975d9b5 100644 --- a/src/components/SimpleProcessDesignerV2/src/nodes-config/StartUserNodeConfig.vue +++ b/src/components/SimpleProcessDesignerV2/src/nodes-config/StartUserNodeConfig.vue @@ -25,21 +25,46 @@ - 全部成员可以发起流程 - - {{ 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 +132,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 +144,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 +175,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/components/SimpleProcessDesignerV2/src/nodes-config/TriggerNodeConfig.vue b/src/components/SimpleProcessDesignerV2/src/nodes-config/TriggerNodeConfig.vue index 19e59438..2baac8d2 100644 --- a/src/components/SimpleProcessDesignerV2/src/nodes-config/TriggerNodeConfig.vue +++ b/src/components/SimpleProcessDesignerV2/src/nodes-config/TriggerNodeConfig.vue @@ -254,6 +254,7 @@ import { import { useWatchNode, useDrawer, useNodeName, useFormFields, getConditionShowText } from '../node' import HttpRequestSetting from './components/HttpRequestSetting.vue' import ConditionDialog from './components/ConditionDialog.vue' +import { cloneDeep } from 'lodash-es' const { proxy } = getCurrentInstance() as any defineOptions({ @@ -290,7 +291,7 @@ const configForm = ref({ }, formSettings: [ { - conditionGroups: DEFAULT_CONDITION_GROUP_VALUE, + conditionGroups: cloneDeep(DEFAULT_CONDITION_GROUP_VALUE), updateFormFields: {}, deleteFields: [] } @@ -346,7 +347,7 @@ const changeTriggerType = () => { ? originalSetting.formSettings : [ { - conditionGroups: DEFAULT_CONDITION_GROUP_VALUE, + conditionGroups: cloneDeep(DEFAULT_CONDITION_GROUP_VALUE), updateFormFields: {}, deleteFields: [] } @@ -361,7 +362,7 @@ const changeTriggerType = () => { ? originalSetting.formSettings : [ { - conditionGroups: DEFAULT_CONDITION_GROUP_VALUE, + conditionGroups: cloneDeep(DEFAULT_CONDITION_GROUP_VALUE), updateFormFields: undefined, deleteFields: [] } @@ -374,7 +375,7 @@ const changeTriggerType = () => { /** 添加新的修改表单设置 */ const addFormSetting = () => { configForm.value.formSettings!.push({ - conditionGroups: DEFAULT_CONDITION_GROUP_VALUE, + conditionGroups: cloneDeep(DEFAULT_CONDITION_GROUP_VALUE), updateFormFields: {}, deleteFields: [] }) @@ -509,7 +510,7 @@ const showTriggerNodeConfig = (node: SimpleFlowNode) => { }, formSettings: node.triggerSetting.formSettings || [ { - conditionGroups: DEFAULT_CONDITION_GROUP_VALUE, + conditionGroups: cloneDeep(DEFAULT_CONDITION_GROUP_VALUE), updateFormFields: {}, deleteFields: [] } diff --git a/src/components/SimpleProcessDesignerV2/src/nodes-config/components/Condition.vue b/src/components/SimpleProcessDesignerV2/src/nodes-config/components/Condition.vue index 36690848..7ef092d9 100644 --- a/src/components/SimpleProcessDesignerV2/src/nodes-config/components/Condition.vue +++ b/src/components/SimpleProcessDesignerV2/src/nodes-config/components/Condition.vue @@ -154,6 +154,7 @@ import { } from '../../consts' import { BpmModelFormType } from '@/utils/constants' import { useFormFieldsAndStartUser } from '../../node' +import { cloneDeep } from 'lodash-es' const props = defineProps({ modelValue: { @@ -196,7 +197,7 @@ const formRef = ref() // 表单 Ref const changeConditionType = () => { if (condition.value.conditionType === ConditionType.RULE) { if (!condition.value.conditionGroups) { - condition.value.conditionGroups = DEFAULT_CONDITION_GROUP_VALUE + condition.value.conditionGroups = cloneDeep(DEFAULT_CONDITION_GROUP_VALUE) } } } diff --git a/src/components/SimpleProcessDesignerV2/src/nodes-config/components/ConditionDialog.vue b/src/components/SimpleProcessDesignerV2/src/nodes-config/components/ConditionDialog.vue index 9d6260d5..79816c68 100644 --- a/src/components/SimpleProcessDesignerV2/src/nodes-config/components/ConditionDialog.vue +++ b/src/components/SimpleProcessDesignerV2/src/nodes-config/components/ConditionDialog.vue @@ -1,5 +1,5 @@ - +