diff --git a/src/components/SimpleProcessDesignerV2/src/consts.ts b/src/components/SimpleProcessDesignerV2/src/consts.ts index 449e193e..9265d8b6 100644 --- a/src/components/SimpleProcessDesignerV2/src/consts.ts +++ b/src/components/SimpleProcessDesignerV2/src/consts.ts @@ -77,6 +77,8 @@ export interface SimpleFlowNode { timeoutHandler?: TimeoutHandler // 审批任务拒绝处理 rejectHandler?: RejectHandler + // 审批节点的审批人与发起人相同时,对应的处理类型 + assignStartUserHandlerType?: number } // 候选人策略枚举 ( 用于审批节点。抄送节点 ) export enum CandidateStrategy { @@ -174,6 +176,21 @@ export enum RejectHandlerType { */ RETURN_USER_TASK = 2 } +// 用户任务的审批人与发起人相同时,处理类型枚举 +export enum AssignStartUserHandlerType { + /** + * 由发起人对自己审批 + */ + START_USER_AUDIT = 1, + /** + * 自动跳过【参考飞书】:1)如果当前节点还有其他审批人,则交由其他审批人进行审批;2)如果当前节点没有其他审批人,则该节点自动通过 + */ + SKIP = 2, + /** + * 转交给部门负责人审批 + */ + ASSIGN_DEPT_LEADER +} // 时间单位枚举 export enum TimeUnitType { @@ -309,6 +326,11 @@ export const REJECT_HANDLER_TYPES: DictDataVO[] = [ { label: '驳回到指定节点', value: RejectHandlerType.RETURN_USER_TASK } // { label: '结束任务', value: RejectHandlerType.FINISH_TASK } ] +export const ASSIGN_START_USER_HANDLER_TYPES: DictDataVO[] = [ + { label: '由发起人对自己审批', value: 1 }, + { label: '自动跳过', value: 2 }, + { label: '转交给部门负责人审批', value: 3 } +] // 比较运算符 export const COMPARISON_OPERATORS: DictDataVO = [ diff --git a/src/components/SimpleProcessDesignerV2/src/node.ts b/src/components/SimpleProcessDesignerV2/src/node.ts index e41c9b83..abb3510e 100644 --- a/src/components/SimpleProcessDesignerV2/src/node.ts +++ b/src/components/SimpleProcessDesignerV2/src/node.ts @@ -10,7 +10,9 @@ import { NodeType, ApproveMethodType, RejectHandlerType, - NODE_DEFAULT_NAME + NODE_DEFAULT_NAME, + AssignStartUserHandlerType, + ASSIGN_START_USER_HANDLER_TYPES } from './consts' export function useWatchNode(props: { flowNode: SimpleFlowNode }): Ref { const node = ref(props.flowNode) @@ -97,6 +99,7 @@ export type UserTaskFormType = { returnNodeId?: string timeoutHandlerEnable?: boolean timeoutHandlerAction?: number + assignStartUserHandlerType?: AssignStartUserHandlerType timeDuration?: number maxRemindCount?: number buttonsSetting: any[] @@ -125,6 +128,7 @@ export function useNodeForm(nodeType: NodeType) { approveMethod: ApproveMethodType.RRANDOM_SELECT_ONE_APPROVE, approveRatio: 100, rejectHandlerType: RejectHandlerType.FINISH_PROCESS, + assignStartUserHandlerType: AssignStartUserHandlerType.START_USER_AUDIT, returnNodeId: '', timeoutHandlerEnable: false, timeoutHandlerAction: 1, diff --git a/src/components/SimpleProcessDesignerV2/src/nodes-config/UserTaskNodeConfig.vue b/src/components/SimpleProcessDesignerV2/src/nodes-config/UserTaskNodeConfig.vue index 75af7ba7..77497e7f 100644 --- a/src/components/SimpleProcessDesignerV2/src/nodes-config/UserTaskNodeConfig.vue +++ b/src/components/SimpleProcessDesignerV2/src/nodes-config/UserTaskNodeConfig.vue @@ -275,6 +275,17 @@ > + + 审批人与提交人为同一人时 + + +
+
+ +
+
+
+
@@ -364,7 +375,8 @@ import { REJECT_HANDLER_TYPES, DEFAULT_BUTTON_SETTING, OPERATION_BUTTON_NAME, - ButtonSetting + ButtonSetting, + ASSIGN_START_USER_HANDLER_TYPES } from '../consts' import { DICT_TYPE, getIntDictOptions } from '@/utils/dict' import { @@ -506,6 +518,8 @@ const saveConfig = async () => { timeDuration: isoTimeDuration.value, maxRemindCount: cTimeoutMaxRemindCount.value } + // 设置用户任务的审批人与发起人相同时 + currentNode.value.assignStartUserHandlerType = configForm.value.assignStartUserHandlerType // 设置表单权限 currentNode.value.fieldsPermission = fieldsPermissionConfig.value // 设置按钮权限 @@ -560,6 +574,8 @@ const showUserTaskNodeConfig = (node: SimpleFlowNode) => { } configForm.value.timeoutHandlerAction = node.timeoutHandler?.action configForm.value.maxRemindCount = node.timeoutHandler?.maxRemindCount + // 1.5 设置用户任务的审批人与发起人相同时 + configForm.value.assignStartUserHandlerType = node.assignStartUserHandlerType // 2. 操作按钮设置 buttonsSetting.value = cloneDeep(node.buttonsSetting) || DEFAULT_BUTTON_SETTING // 3. 表单字段权限配置