From a1d7e81859f554f3a53680cc35f0f49bf1f77098 Mon Sep 17 00:00:00 2001
From: wwf <1971391498@qq.com>
Date: 星期四, 14 五月 2026 14:37:02 +0800
Subject: [PATCH] 导入项目
---
src/components/SimpleProcessDesignerV2/src/consts.ts | 902 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 902 insertions(+), 0 deletions(-)
diff --git a/src/components/SimpleProcessDesignerV2/src/consts.ts b/src/components/SimpleProcessDesignerV2/src/consts.ts
new file mode 100644
index 0000000..6475009
--- /dev/null
+++ b/src/components/SimpleProcessDesignerV2/src/consts.ts
@@ -0,0 +1,902 @@
+// @ts-ignore
+import { DictDataVO } from '@/api/system/dict/types'
+import { TaskStatusEnum } from '@/api/bpm/task'
+/**
+ * 鑺傜偣绫诲瀷
+ */
+export enum NodeType {
+ /**
+ * 缁撴潫鑺傜偣
+ */
+ END_EVENT_NODE = 1,
+ /**
+ * 鍙戣捣浜鸿妭鐐�
+ */
+ START_USER_NODE = 10,
+ /**
+ * 瀹℃壒浜鸿妭鐐�
+ */
+ USER_TASK_NODE = 11,
+
+ /**
+ * 鎶勯�佷汉鑺傜偣
+ */
+ COPY_TASK_NODE = 12,
+
+ /**
+ * 鍔炵悊浜鸿妭鐐�
+ */
+ TRANSACTOR_NODE = 13,
+
+ /**
+ * 寤惰繜鍣ㄨ妭鐐�
+ */
+ DELAY_TIMER_NODE = 14,
+
+ /**
+ * 瑙﹀彂鍣ㄨ妭鐐�
+ */
+ TRIGGER_NODE = 15,
+
+ /**
+ * 瀛愭祦绋嬭妭鐐�
+ */
+ CHILD_PROCESS_NODE = 20,
+
+ /**
+ * 鏉′欢鑺傜偣
+ */
+ CONDITION_NODE = 50,
+ /**
+ * 鏉′欢鍒嗘敮鑺傜偣 (瀵瑰簲鎺掍粬缃戝叧)
+ */
+ CONDITION_BRANCH_NODE = 51,
+ /**
+ * 骞惰鍒嗘敮鑺傜偣 (瀵瑰簲骞惰缃戝叧)
+ */
+ PARALLEL_BRANCH_NODE = 52,
+
+ /**
+ * 鍖呭鍒嗘敮鑺傜偣 (瀵瑰簲鍖呭缃戝叧)
+ */
+ INCLUSIVE_BRANCH_NODE = 53,
+ /**
+ * 璺敱鍒嗘敮鑺傜偣
+ */
+ ROUTER_BRANCH_NODE = 54
+}
+
+export enum NodeId {
+ /**
+ * 鍙戣捣浜鸿妭鐐� Id
+ */
+ START_USER_NODE_ID = 'StartUserNode',
+
+ /**
+ * 鍙戣捣浜鸿妭鐐� Id
+ */
+ END_EVENT_NODE_ID = 'EndEvent'
+}
+
+/**
+ * 鑺傜偣缁撴瀯瀹氫箟
+ */
+export interface SimpleFlowNode {
+ id: string
+ type: NodeType
+ name: string
+ showText?: string
+ // 瀛╁瓙鑺傜偣
+ childNode?: SimpleFlowNode
+ // 鏉′欢鑺傜偣
+ conditionNodes?: SimpleFlowNode[]
+ // 瀹℃壒绫诲瀷
+ approveType?: ApproveType
+ // 鍊欓�変汉绛栫暐
+ candidateStrategy?: number
+ // 鍊欓�変汉鍙傛暟
+ candidateParam?: string
+ // 澶氫汉瀹℃壒鏂瑰紡
+ approveMethod?: ApproveMethodType
+ //閫氳繃姣斾緥
+ approveRatio?: number
+ // 瀹℃壒鎸夐挳璁剧疆
+ buttonsSetting?: any[]
+ // 琛ㄥ崟鏉冮檺
+ fieldsPermission?: Array<Record<string, any>>
+ // 瀹℃壒浠诲姟瓒呮椂澶勭悊
+ timeoutHandler?: TimeoutHandler
+ // 瀹℃壒浠诲姟鎷掔粷澶勭悊
+ rejectHandler?: RejectHandler
+ // 瀹℃壒浜轰负绌虹殑澶勭悊
+ assignEmptyHandler?: AssignEmptyHandler
+ // 瀹℃壒鑺傜偣鐨勫鎵逛汉涓庡彂璧蜂汉鐩稿悓鏃讹紝瀵瑰簲鐨勫鐞嗙被鍨�
+ assignStartUserHandlerType?: number
+ // 鍒涘缓浠诲姟鐩戝惉鍣�
+ taskCreateListener?: ListenerHandler
+ // 鍒涘缓浠诲姟鐩戝惉鍣�
+ taskAssignListener?: ListenerHandler
+ // 鍒涘缓浠诲姟鐩戝惉鍣�
+ taskCompleteListener?: ListenerHandler
+ // 鏉′欢璁剧疆
+ conditionSetting?: ConditionSetting
+ // 娲诲姩鐨勭姸鎬侊紝鐢ㄤ簬鍓嶇鑺傜偣鐘舵�佸睍绀�
+ activityStatus?: TaskStatusEnum
+ // 寤惰繜璁剧疆
+ delaySetting?: DelaySetting
+ // 璺敱鍒嗘敮
+ routerGroups?: RouterSetting[]
+ defaultFlowId?: string
+ // 绛惧悕
+ signEnable?: boolean
+ // 瀹℃壒鎰忚
+ reasonRequire?: boolean
+ // 璺宠繃琛ㄨ揪寮�
+ skipExpression?: string
+ // 瑙﹀彂鍣ㄨ缃�
+ triggerSetting?: TriggerSetting
+ // 瀛愭祦绋�
+ childProcessSetting?: ChildProcessSetting
+}
+// 鍊欓�変汉绛栫暐鏋氫妇 锛� 鐢ㄤ簬瀹℃壒鑺傜偣銆傛妱閫佽妭鐐� )
+export enum CandidateStrategy {
+ /**
+ * 鎸囧畾瑙掕壊
+ */
+ ROLE = 10,
+ /**
+ * 閮ㄩ棬鎴愬憳
+ */
+ DEPT_MEMBER = 20,
+ /**
+ * 閮ㄩ棬鐨勮礋璐d汉
+ */
+ DEPT_LEADER = 21,
+ /**
+ * 杩炵画澶氱骇閮ㄩ棬鐨勮礋璐d汉
+ */
+ MULTI_LEVEL_DEPT_LEADER = 23,
+ /**
+ * 鎸囧畾宀椾綅
+ */
+ POST = 22,
+ /**
+ * 鎸囧畾鐢ㄦ埛
+ */
+ USER = 30,
+ /**
+ * 瀹℃壒浜鸿嚜閫�
+ */
+ APPROVE_USER_SELECT = 34,
+ /**
+ * 鍙戣捣浜鸿嚜閫�
+ */
+ START_USER_SELECT = 35,
+ /**
+ * 鍙戣捣浜鸿嚜宸�
+ */
+ START_USER = 36,
+ /**
+ * 鍙戣捣浜洪儴闂ㄨ礋璐d汉
+ */
+ START_USER_DEPT_LEADER = 37,
+ /**
+ * 鍙戣捣浜鸿繛缁绾ч儴闂ㄧ殑璐熻矗浜�
+ */
+ START_USER_MULTI_LEVEL_DEPT_LEADER = 38,
+ /**
+ * 鎸囧畾鐢ㄦ埛缁�
+ */
+ USER_GROUP = 40,
+ /**
+ * 琛ㄥ崟鍐呯敤鎴峰瓧娈�
+ */
+ FORM_USER = 50,
+ /**
+ * 琛ㄥ崟鍐呴儴闂ㄨ礋璐d汉
+ */
+ FORM_DEPT_LEADER = 51,
+ /**
+ * 娴佺▼琛ㄨ揪寮�
+ */
+ EXPRESSION = 60
+}
+
+// 澶氫汉瀹℃壒鏂瑰紡绫诲瀷鏋氫妇 锛� 鐢ㄤ簬瀹℃壒鑺傜偣 锛�
+export enum ApproveMethodType {
+ /**
+ * 闅忔満鎸戦�変竴浜哄鎵�
+ */
+ RANDOM_SELECT_ONE_APPROVE = 1,
+
+ /**
+ * 澶氫汉浼氱(鎸夐�氳繃姣斾緥)
+ */
+ APPROVE_BY_RATIO = 2,
+
+ /**
+ * 澶氫汉鎴栫(閫氳繃鍙渶涓�浜猴紝鎷掔粷鍙渶涓�浜�)
+ */
+ ANY_APPROVE = 3,
+ /**
+ * 澶氫汉渚濇瀹℃壒
+ */
+ SEQUENTIAL_APPROVE = 4
+}
+
+/**
+ * 瀹℃壒鎷掔粷缁撴瀯瀹氫箟
+ */
+export type RejectHandler = {
+ // 瀹℃壒鎷掔粷绫诲瀷
+ type: RejectHandlerType
+ // 閫�鍥炶妭鐐� Id
+ returnNodeId?: string
+}
+
+/**
+ * 瀹℃壒瓒呮椂缁撴瀯瀹氫箟
+ */
+export type TimeoutHandler = {
+ // 鏄惁寮�鍚秴鏃跺鐞�
+ enable: boolean
+ // 瓒呮椂鎵ц鐨勫姩浣�
+ type?: number
+ // 瓒呮椂鏃堕棿璁剧疆
+ timeDuration?: string
+ // 鎵ц鍔ㄤ綔鏄嚜鍔ㄦ彁閱�, 鏈�澶ф彁閱掓鏁�
+ maxRemindCount?: number
+}
+
+/**
+ * 瀹℃壒浜轰负绌虹殑缁撴瀯瀹氫箟
+ */
+export type AssignEmptyHandler = {
+ // 瀹℃壒浜轰负绌虹殑澶勭悊绫诲瀷
+ type: AssignEmptyHandlerType
+ // 鎸囧畾鐢ㄦ埛鐨勭紪鍙锋暟缁�
+ userIds?: number[]
+}
+
+/**
+ * 鐩戝惉鍣ㄧ殑缁撴瀯瀹氫箟
+ */
+export type ListenerHandler = {
+ enable: boolean
+ path?: string
+ header?: HttpRequestParam[]
+ body?: HttpRequestParam[]
+}
+export type HttpRequestParam = {
+ key: string
+ type: number
+ value: string
+}
+export enum BpmHttpRequestParamTypeEnum {
+ /**
+ * 鍥哄畾鍊�
+ */
+ FIXED_VALUE = 1,
+ /**
+ * 琛ㄥ崟
+ */
+ FROM_FORM = 2
+}
+export const BPM_HTTP_REQUEST_PARAM_TYPES = [
+ {
+ value: 1,
+ label: '鍥哄畾鍊�'
+ },
+ {
+ value: 2,
+ label: '琛ㄥ崟'
+ }
+]
+
+// 瀹℃壒鎷掔粷绫诲瀷鏋氫妇
+export enum RejectHandlerType {
+ /**
+ * 缁撴潫娴佺▼
+ */
+ FINISH_PROCESS = 1,
+ /**
+ * 椹冲洖鍒版寚瀹氳妭鐐�
+ */
+ RETURN_USER_TASK = 2
+}
+// 鐢ㄦ埛浠诲姟瓒呮椂澶勭悊绫诲瀷鏋氫妇
+export enum TimeoutHandlerType {
+ /**
+ * 鑷姩鎻愰啋
+ */
+ REMINDER = 1,
+ /**
+ * 鑷姩鍚屾剰
+ */
+ APPROVE = 2,
+ /**
+ * 鑷姩鎷掔粷
+ */
+ REJECT = 3
+}
+// 鐢ㄦ埛浠诲姟鐨勫鎵逛汉涓虹┖鏃讹紝澶勭悊绫诲瀷鏋氫妇
+export enum AssignEmptyHandlerType {
+ /**
+ * 鑷姩閫氳繃
+ */
+ APPROVE = 1,
+ /**
+ * 鑷姩鎷掔粷
+ */
+ REJECT = 2,
+ /**
+ * 鎸囧畾浜哄憳瀹℃壒
+ */
+ ASSIGN_USER,
+ /**
+ * 杞氦缁欐祦绋嬬鐞嗗憳
+ */
+ ASSIGN_ADMIN = 4
+}
+// 鐢ㄦ埛浠诲姟鐨勫鎵逛汉涓庡彂璧蜂汉鐩稿悓鏃讹紝澶勭悊绫诲瀷鏋氫妇
+export enum AssignStartUserHandlerType {
+ /**
+ * 鐢卞彂璧蜂汉瀵硅嚜宸卞鎵�
+ */
+ START_USER_AUDIT = 1,
+ /**
+ * 鑷姩璺宠繃銆愬弬鑰冮涔︺�戯細1锛夊鏋滃綋鍓嶈妭鐐硅繕鏈夊叾浠栧鎵逛汉锛屽垯浜ょ敱鍏朵粬瀹℃壒浜鸿繘琛屽鎵癸紱2锛夊鏋滃綋鍓嶈妭鐐规病鏈夊叾浠栧鎵逛汉锛屽垯璇ヨ妭鐐硅嚜鍔ㄩ�氳繃
+ */
+ SKIP = 2,
+ /**
+ * 杞氦缁欓儴闂ㄨ礋璐d汉瀹℃壒
+ */
+ ASSIGN_DEPT_LEADER = 3
+}
+
+// 鐢ㄦ埛浠诲姟鐨勫鎵圭被鍨嬨�� 銆愬弬鑰冮涔︺��
+export enum ApproveType {
+ /**
+ * 浜哄伐瀹℃壒
+ */
+ USER = 1,
+ /**
+ * 鑷姩閫氳繃
+ */
+ AUTO_APPROVE = 2,
+ /**
+ * 鑷姩鎷掔粷
+ */
+ AUTO_REJECT = 3
+}
+
+// 鏃堕棿鍗曚綅鏋氫妇
+export enum TimeUnitType {
+ /**
+ * 鍒嗛挓
+ */
+ MINUTE = 1,
+ /**
+ * 灏忔椂
+ */
+ HOUR = 2,
+ /**
+ * 澶�
+ */
+ DAY = 3
+}
+
+/**
+ * 鏉′欢鑺傜偣璁剧疆缁撴瀯瀹氫箟锛岀敤浜庢潯浠惰妭鐐�
+ */
+export type ConditionSetting = {
+ // 鏉′欢绫诲瀷
+ conditionType?: ConditionType
+ // 鏉′欢琛ㄨ揪寮�
+ conditionExpression?: string
+ // 鏉′欢缁�
+ conditionGroups?: ConditionGroup
+ // 鏄惁榛樿鐨勬潯浠�
+ defaultFlow?: boolean
+}
+
+// 鏉′欢閰嶇疆绫诲瀷 锛� 鐢ㄤ簬鏉′欢鑺傜偣閰嶇疆 锛�
+export enum ConditionType {
+ /**
+ * 鏉′欢琛ㄨ揪寮�
+ */
+ EXPRESSION = 1,
+
+ /**
+ * 鏉′欢瑙勫垯
+ */
+ RULE = 2
+}
+/**
+ * 琛ㄥ崟鏉冮檺鐨勬灇涓�
+ */
+export enum FieldPermissionType {
+ /**
+ * 鍙
+ */
+ READ = '1',
+ /**
+ * 缂栬緫
+ */
+ WRITE = '2',
+ /**
+ * 闅愯棌
+ */
+ NONE = '3'
+}
+/**
+ * 鎿嶄綔鎸夐挳鏉冮檺缁撴瀯瀹氫箟
+ */
+export type ButtonSetting = {
+ id: OperationButtonType
+ displayName: string
+ enable: boolean
+}
+
+// 鎿嶄綔鎸夐挳绫诲瀷鏋氫妇 (鐢ㄤ簬瀹℃壒鑺傜偣)
+export enum OperationButtonType {
+ /**
+ * 閫氳繃
+ */
+ APPROVE = 1,
+ /**
+ * 鎷掔粷
+ */
+ REJECT = 2,
+ /**
+ * 杞姙
+ */
+ TRANSFER = 3,
+ /**
+ * 濮旀淳
+ */
+ DELEGATE = 4,
+ /**
+ * 鍔犵
+ */
+ ADD_SIGN = 5,
+ /**
+ * 閫�鍥�
+ */
+ RETURN = 6,
+ /**
+ * 鎶勯��
+ */
+ COPY = 7
+}
+
+/**
+ * 鏉′欢瑙勫垯缁撴瀯瀹氫箟
+ */
+export type ConditionRule = {
+ opCode: string
+ leftSide: string
+ rightSide: string
+}
+
+/**
+ * 鏉′欢缁勭粨鏋勫畾涔�
+ */
+export type ConditionGroup = {
+ // 鏉′欢缁勭殑閫昏緫鍏崇郴鏄惁涓轰笖
+ and: boolean
+ // 鏉′欢鏁扮粍
+ conditions: Condition[]
+}
+/**
+ * 鏉′欢缁勯粯璁ゅ��
+ */
+export const DEFAULT_CONDITION_GROUP_VALUE = {
+ and: true,
+ conditions: [
+ {
+ and: true,
+ rules: [
+ {
+ opCode: '==',
+ leftSide: '',
+ rightSide: ''
+ }
+ ]
+ }
+ ]
+}
+
+/**
+ * 鏉′欢缁撴瀯瀹氫箟
+ */
+export type Condition = {
+ // 鏉′欢瑙勫垯鐨勯�昏緫鍏崇郴鏄惁涓轰笖
+ and: boolean
+ rules: ConditionRule[]
+}
+
+export const NODE_DEFAULT_TEXT = new Map<number, string>()
+NODE_DEFAULT_TEXT.set(NodeType.USER_TASK_NODE, '璇烽厤缃鎵逛汉')
+NODE_DEFAULT_TEXT.set(NodeType.COPY_TASK_NODE, '璇烽厤缃妱閫佷汉')
+NODE_DEFAULT_TEXT.set(NodeType.CONDITION_NODE, '璇疯缃潯浠�')
+NODE_DEFAULT_TEXT.set(NodeType.START_USER_NODE, '璇疯缃彂璧蜂汉')
+NODE_DEFAULT_TEXT.set(NodeType.DELAY_TIMER_NODE, '璇疯缃欢杩熷櫒')
+NODE_DEFAULT_TEXT.set(NodeType.ROUTER_BRANCH_NODE, '璇疯缃矾鐢辫妭鐐�')
+NODE_DEFAULT_TEXT.set(NodeType.TRIGGER_NODE, '璇疯缃Е鍙戝櫒')
+NODE_DEFAULT_TEXT.set(NodeType.TRANSACTOR_NODE, '璇疯缃姙鐞嗕汉')
+NODE_DEFAULT_TEXT.set(NodeType.CHILD_PROCESS_NODE, '璇疯缃瓙娴佺▼')
+
+export const NODE_DEFAULT_NAME = new Map<number, string>()
+NODE_DEFAULT_NAME.set(NodeType.USER_TASK_NODE, '瀹℃壒浜�')
+NODE_DEFAULT_NAME.set(NodeType.COPY_TASK_NODE, '鎶勯�佷汉')
+NODE_DEFAULT_NAME.set(NodeType.CONDITION_NODE, '鏉′欢')
+NODE_DEFAULT_NAME.set(NodeType.START_USER_NODE, '鍙戣捣浜�')
+NODE_DEFAULT_NAME.set(NodeType.DELAY_TIMER_NODE, '寤惰繜鍣�')
+NODE_DEFAULT_NAME.set(NodeType.ROUTER_BRANCH_NODE, '璺敱鍒嗘敮')
+NODE_DEFAULT_NAME.set(NodeType.TRIGGER_NODE, '瑙﹀彂鍣�')
+NODE_DEFAULT_NAME.set(NodeType.TRANSACTOR_NODE, '鍔炵悊浜�')
+NODE_DEFAULT_NAME.set(NodeType.CHILD_PROCESS_NODE, '瀛愭祦绋�')
+
+// 鍊欓�変汉绛栫暐銆傛殏鏃朵笉浠庡瓧鍏镐腑鍙栥�� 鍚庣画鍙兘璋冩暣銆傛帶鍒舵樉绀洪『搴�
+export const CANDIDATE_STRATEGY: DictDataVO[] = [
+ { label: '鎸囧畾鎴愬憳', value: CandidateStrategy.USER },
+ { label: '鎸囧畾瑙掕壊', value: CandidateStrategy.ROLE },
+ { label: '鎸囧畾宀椾綅', value: CandidateStrategy.POST },
+ { label: '閮ㄩ棬鎴愬憳', value: CandidateStrategy.DEPT_MEMBER },
+ { label: '閮ㄩ棬璐熻矗浜�', value: CandidateStrategy.DEPT_LEADER },
+ { label: '杩炵画澶氱骇閮ㄩ棬璐熻矗浜�', value: CandidateStrategy.MULTI_LEVEL_DEPT_LEADER },
+ { label: '鍙戣捣浜鸿嚜閫�', value: CandidateStrategy.START_USER_SELECT },
+ { label: '瀹℃壒浜鸿嚜閫�', value: CandidateStrategy.APPROVE_USER_SELECT },
+ { label: '鍙戣捣浜烘湰浜�', value: CandidateStrategy.START_USER },
+ { label: '鍙戣捣浜洪儴闂ㄨ礋璐d汉', value: CandidateStrategy.START_USER_DEPT_LEADER },
+ { label: '鍙戣捣浜鸿繛缁儴闂ㄨ礋璐d汉', value: CandidateStrategy.START_USER_MULTI_LEVEL_DEPT_LEADER },
+ { label: '鐢ㄦ埛缁�', value: CandidateStrategy.USER_GROUP },
+ { label: '琛ㄥ崟鍐呯敤鎴峰瓧娈�', value: CandidateStrategy.FORM_USER },
+ { label: '琛ㄥ崟鍐呴儴闂ㄨ礋璐d汉', value: CandidateStrategy.FORM_DEPT_LEADER },
+ { label: '娴佺▼琛ㄨ揪寮�', value: CandidateStrategy.EXPRESSION }
+]
+// 瀹℃壒鑺傜偣 鐨勫鎵圭被鍨�
+export const APPROVE_TYPE: DictDataVO[] = [
+ { label: '浜哄伐瀹℃壒', value: ApproveType.USER },
+ { label: '鑷姩閫氳繃', value: ApproveType.AUTO_APPROVE },
+ { label: '鑷姩鎷掔粷', value: ApproveType.AUTO_REJECT }
+]
+
+export const APPROVE_METHODS: DictDataVO[] = [
+ { label: '鎸夐『搴忎緷娆″鎵�', value: ApproveMethodType.SEQUENTIAL_APPROVE },
+ { label: '浼氱锛堝彲鍚屾椂瀹℃壒锛岃嚦灏� % 浜哄繀椤诲鎵归�氳繃锛�', value: ApproveMethodType.APPROVE_BY_RATIO },
+ { label: '鎴栫(鍙悓鏃跺鎵癸紝鏈変竴浜洪�氳繃鍗冲彲)', value: ApproveMethodType.ANY_APPROVE },
+ { label: '闅忔満鎸戦�変竴浜哄鎵�', value: ApproveMethodType.RANDOM_SELECT_ONE_APPROVE }
+]
+
+export const CONDITION_CONFIG_TYPES: DictDataVO[] = [
+ { label: '鏉′欢瑙勫垯', value: ConditionType.RULE },
+ { label: '鏉′欢琛ㄨ揪寮�', value: ConditionType.EXPRESSION }
+]
+
+// 鏃堕棿鍗曚綅绫诲瀷
+export const TIME_UNIT_TYPES: DictDataVO[] = [
+ { label: '鍒嗛挓', value: TimeUnitType.MINUTE },
+ { label: '灏忔椂', value: TimeUnitType.HOUR },
+ { label: '澶�', value: TimeUnitType.DAY }
+]
+// 瓒呮椂澶勭悊鎵ц鍔ㄤ綔绫诲瀷
+export const TIMEOUT_HANDLER_TYPES: DictDataVO[] = [
+ { label: '鑷姩鎻愰啋', value: 1 },
+ { label: '鑷姩鍚屾剰', value: 2 },
+ { label: '鑷姩鎷掔粷', value: 3 }
+]
+export const REJECT_HANDLER_TYPES: DictDataVO[] = [
+ { label: '缁堟娴佺▼', value: RejectHandlerType.FINISH_PROCESS },
+ { label: '椹冲洖鍒版寚瀹氳妭鐐�', value: RejectHandlerType.RETURN_USER_TASK }
+ // { label: '缁撴潫浠诲姟', value: RejectHandlerType.FINISH_TASK }
+]
+export const ASSIGN_EMPTY_HANDLER_TYPES: DictDataVO[] = [
+ { label: '鑷姩閫氳繃', value: 1 },
+ { label: '鑷姩鎷掔粷', value: 2 },
+ { label: '鎸囧畾鎴愬憳瀹℃壒', value: 3 },
+ { label: '杞氦缁欐祦绋嬬鐞嗗憳', value: 4 }
+]
+export const ASSIGN_START_USER_HANDLER_TYPES: DictDataVO[] = [
+ { label: '鐢卞彂璧蜂汉瀵硅嚜宸卞鎵�', value: 1 },
+ { label: '鑷姩璺宠繃', value: 2 },
+ { label: '杞氦缁欓儴闂ㄨ礋璐d汉瀹℃壒', value: 3 }
+]
+
+// 姣旇緝杩愮畻绗�
+export const COMPARISON_OPERATORS: DictDataVO = [
+ {
+ value: '==',
+ label: '绛変簬'
+ },
+ {
+ value: '!=',
+ label: '涓嶇瓑浜�'
+ },
+ {
+ value: '>',
+ label: '澶т簬'
+ },
+ {
+ value: '>=',
+ label: '澶т簬绛変簬'
+ },
+ {
+ value: '<',
+ label: '灏忎簬'
+ },
+ {
+ value: '<=',
+ label: '灏忎簬绛変簬'
+ }
+]
+// 瀹℃壒鎿嶄綔鎸夐挳鍚嶇О
+export const OPERATION_BUTTON_NAME = new Map<number, string>()
+OPERATION_BUTTON_NAME.set(OperationButtonType.APPROVE, '閫氳繃')
+OPERATION_BUTTON_NAME.set(OperationButtonType.REJECT, '鎷掔粷')
+OPERATION_BUTTON_NAME.set(OperationButtonType.TRANSFER, '杞姙')
+OPERATION_BUTTON_NAME.set(OperationButtonType.DELEGATE, '濮旀淳')
+OPERATION_BUTTON_NAME.set(OperationButtonType.ADD_SIGN, '鍔犵')
+OPERATION_BUTTON_NAME.set(OperationButtonType.RETURN, '閫�鍥�')
+OPERATION_BUTTON_NAME.set(OperationButtonType.COPY, '鎶勯��')
+
+// 榛樿鐨勬寜閽潈闄愯缃�
+export const DEFAULT_BUTTON_SETTING: ButtonSetting[] = [
+ { id: OperationButtonType.APPROVE, displayName: '閫氳繃', enable: true },
+ { id: OperationButtonType.REJECT, displayName: '鎷掔粷', enable: true },
+ { id: OperationButtonType.TRANSFER, displayName: '杞姙', enable: true },
+ { id: OperationButtonType.DELEGATE, displayName: '濮旀淳', enable: true },
+ { id: OperationButtonType.ADD_SIGN, displayName: '鍔犵', enable: true },
+ { id: OperationButtonType.RETURN, displayName: '閫�鍥�', enable: true }
+]
+
+// 鍔炵悊浜洪粯璁ょ殑鎸夐挳鏉冮檺璁剧疆
+export const TRANSACTOR_DEFAULT_BUTTON_SETTING: ButtonSetting[] = [
+ { id: OperationButtonType.APPROVE, displayName: '鍔炵悊', enable: true },
+ { id: OperationButtonType.REJECT, displayName: '鎷掔粷', enable: false },
+ { id: OperationButtonType.TRANSFER, displayName: '杞姙', enable: false },
+ { id: OperationButtonType.DELEGATE, displayName: '濮旀淳', enable: false },
+ { id: OperationButtonType.ADD_SIGN, displayName: '鍔犵', enable: false },
+ { id: OperationButtonType.RETURN, displayName: '閫�鍥�', enable: false }
+]
+
+// 鍙戣捣浜虹殑鎸夐挳鏉冮檺銆傛殏鏃跺畾姝伙紝涓嶅彲浠ョ紪杈�
+export const START_USER_BUTTON_SETTING: ButtonSetting[] = [
+ { id: OperationButtonType.APPROVE, displayName: '鎻愪氦', enable: true },
+ { id: OperationButtonType.REJECT, displayName: '鎷掔粷', enable: false },
+ { id: OperationButtonType.TRANSFER, displayName: '杞姙', enable: false },
+ { id: OperationButtonType.DELEGATE, displayName: '濮旀淳', enable: false },
+ { id: OperationButtonType.ADD_SIGN, displayName: '鍔犵', enable: false },
+ { id: OperationButtonType.RETURN, displayName: '閫�鍥�', enable: false }
+]
+
+export const MULTI_LEVEL_DEPT: DictDataVO = [
+ { label: '绗� 1 绾ч儴闂�', value: 1 },
+ { label: '绗� 2 绾ч儴闂�', value: 2 },
+ { label: '绗� 3 绾ч儴闂�', value: 3 },
+ { label: '绗� 4 绾ч儴闂�', value: 4 },
+ { label: '绗� 5 绾ч儴闂�', value: 5 },
+ { label: '绗� 6 绾ч儴闂�', value: 6 },
+ { label: '绗� 7 绾ч儴闂�', value: 7 },
+ { label: '绗� 8 绾ч儴闂�', value: 8 },
+ { label: '绗� 9 绾ч儴闂�', value: 9 },
+ { label: '绗� 10 绾ч儴闂�', value: 10 },
+ { label: '绗� 11 绾ч儴闂�', value: 11 },
+ { label: '绗� 12 绾ч儴闂�', value: 12 },
+ { label: '绗� 13 绾ч儴闂�', value: 13 },
+ { label: '绗� 14 绾ч儴闂�', value: 14 },
+ { label: '绗� 15 绾ч儴闂�', value: 15 }
+]
+
+/**
+ * 娴佺▼瀹炰緥鐨勫彉閲忔灇涓�
+ */
+export enum ProcessVariableEnum {
+ /**
+ * 鍙戣捣鐢ㄦ埛 ID
+ */
+ START_USER_ID = 'PROCESS_START_USER_ID',
+ /**
+ * 鍙戣捣鏃堕棿
+ */
+ START_TIME = 'PROCESS_START_TIME',
+ /**
+ * 娴佺▼瀹氫箟鍚嶇О
+ */
+ PROCESS_DEFINITION_NAME = 'PROCESS_DEFINITION_NAME'
+}
+
+/**
+ * 寤惰繜璁剧疆
+ */
+export type DelaySetting = {
+ // 寤惰繜绫诲瀷
+ delayType: number
+ // 寤惰繜鏃堕棿琛ㄨ揪寮�
+ delayTime: string
+}
+/**
+ * 寤惰繜绫诲瀷
+ */
+export enum DelayTypeEnum {
+ /**
+ * 鍥哄畾鏃堕暱
+ */
+ FIXED_TIME_DURATION = 1,
+ /**
+ * 鍥哄畾鏃ユ湡鏃堕棿
+ */
+ FIXED_DATE_TIME = 2
+}
+export const DELAY_TYPE = [
+ { label: '鍥哄畾鏃堕暱', value: DelayTypeEnum.FIXED_TIME_DURATION },
+ { label: '鍥哄畾鏃ユ湡', value: DelayTypeEnum.FIXED_DATE_TIME }
+]
+
+/**
+ * 璺敱鍒嗘敮缁撴瀯瀹氫箟
+ */
+export type RouterSetting = {
+ nodeId: string
+ conditionType: ConditionType
+ conditionExpression: string
+ conditionGroups: ConditionGroup
+}
+
+// ==================== 瑙﹀彂鍣ㄧ浉鍏冲畾涔� ====================
+/**
+ * 瑙﹀彂鍣ㄨ妭鐐圭粨鏋勫畾涔�
+ */
+export type TriggerSetting = {
+ type: TriggerTypeEnum
+ httpRequestSetting?: HttpRequestTriggerSetting
+ formSettings?: FormTriggerSetting[]
+}
+
+/**
+ * 瑙﹀彂鍣ㄧ被鍨嬫灇涓�
+ */
+export enum TriggerTypeEnum {
+ /**
+ * 鍙戦�� HTTP 璇锋眰瑙﹀彂鍣�
+ */
+ HTTP_REQUEST = 1,
+ /**
+ * 鎺ユ敹 HTTP 鍥炶皟璇锋眰瑙﹀彂鍣�
+ */
+ HTTP_CALLBACK = 2,
+ /**
+ * 琛ㄥ崟鏁版嵁鏇存柊瑙﹀彂鍣�
+ */
+ FORM_UPDATE = 10,
+ /**
+ * 琛ㄥ崟鏁版嵁鍒犻櫎瑙﹀彂鍣�
+ */
+ FORM_DELETE = 11
+}
+
+/**
+ * HTTP 璇锋眰瑙﹀彂鍣ㄧ粨鏋勫畾涔�
+ */
+export type HttpRequestTriggerSetting = {
+ // 璇锋眰 URL
+ url: string
+ // 璇锋眰澶村弬鏁拌缃�
+ header?: HttpRequestParam[]
+ // 璇锋眰浣撳弬鏁拌缃�
+ body?: HttpRequestParam[]
+ // 璇锋眰鍝嶅簲璁剧疆
+ response?: Record<string, string>[]
+}
+
+/**
+ * 娴佺▼琛ㄥ崟瑙﹀彂鍣ㄩ厤缃粨鏋勫畾涔�
+ */
+export type FormTriggerSetting = {
+ // 鏉′欢绫诲瀷
+ conditionType?: ConditionType
+ // 鏉′欢琛ㄨ揪寮�
+ conditionExpression?: string
+ // 鏉′欢缁�
+ conditionGroups?: ConditionGroup
+ // 鏇存柊琛ㄥ崟瀛楁閰嶇疆
+ updateFormFields?: Record<string, any>
+ // 鍒犻櫎琛ㄥ崟瀛楁閰嶇疆
+ deleteFields?: string[]
+}
+
+export const TRIGGER_TYPES: DictDataVO[] = [
+ { label: '鍙戦�� HTTP 璇锋眰', value: TriggerTypeEnum.HTTP_REQUEST },
+ { label: '鎺ユ敹 HTTP 鍥炶皟', value: TriggerTypeEnum.HTTP_CALLBACK },
+ { label: '淇敼琛ㄥ崟鏁版嵁', value: TriggerTypeEnum.FORM_UPDATE },
+ { label: '鍒犻櫎琛ㄥ崟鏁版嵁', value: TriggerTypeEnum.FORM_DELETE }
+]
+
+/**
+ * 瀛愭祦绋嬭妭鐐圭粨鏋勫畾涔�
+ */
+export type ChildProcessSetting = {
+ calledProcessDefinitionKey: string
+ calledProcessDefinitionName: string
+ async: boolean
+ inVariables?: IOParameter[]
+ outVariables?: IOParameter[]
+ skipStartUserNode: boolean
+ startUserSetting: StartUserSetting
+ timeoutSetting: TimeoutSetting
+ multiInstanceSetting: MultiInstanceSetting
+}
+export type IOParameter = {
+ source: string
+ target: string
+}
+export type StartUserSetting = {
+ type: ChildProcessStartUserTypeEnum
+ formField?: string
+ emptyType?: ChildProcessStartUserEmptyTypeEnum
+}
+export type TimeoutSetting = {
+ enable: boolean
+ type?: DelayTypeEnum
+ timeExpression?: string
+}
+export type MultiInstanceSetting = {
+ enable: boolean
+ sequential?: boolean
+ approveRatio?: number
+ sourceType?: ChildProcessMultiInstanceSourceTypeEnum
+ source?: string
+}
+export enum ChildProcessStartUserTypeEnum {
+ /**
+ * 鍚屼富娴佺▼鍙戣捣浜�
+ */
+ MAIN_PROCESS_START_USER = 1,
+ /**
+ * 琛ㄥ崟
+ */
+ FROM_FORM = 2
+}
+export const CHILD_PROCESS_START_USER_TYPE = [
+ { label: '鍚屼富娴佺▼鍙戣捣浜�', value: ChildProcessStartUserTypeEnum.MAIN_PROCESS_START_USER },
+ { label: '琛ㄥ崟', value: ChildProcessStartUserTypeEnum.FROM_FORM }
+]
+export enum ChildProcessStartUserEmptyTypeEnum {
+ /**
+ * 鍚屼富娴佺▼鍙戣捣浜�
+ */
+ MAIN_PROCESS_START_USER = 1,
+ /**
+ * 瀛愭祦绋嬬鐞嗗憳
+ */
+ CHILD_PROCESS_ADMIN = 2,
+ /**
+ * 涓绘祦绋嬬鐞嗗憳
+ */
+ MAIN_PROCESS_ADMIN = 3
+}
+export const CHILD_PROCESS_START_USER_EMPTY_TYPE = [
+ { label: '鍚屼富娴佺▼鍙戣捣浜�', value: ChildProcessStartUserEmptyTypeEnum.MAIN_PROCESS_START_USER },
+ { label: '瀛愭祦绋嬬鐞嗗憳', value: ChildProcessStartUserEmptyTypeEnum.CHILD_PROCESS_ADMIN },
+ { label: '涓绘祦绋嬬鐞嗗憳', value: ChildProcessStartUserEmptyTypeEnum.MAIN_PROCESS_ADMIN }
+]
+export enum ChildProcessMultiInstanceSourceTypeEnum {
+ /**
+ * 鍥哄畾鏁伴噺
+ */
+ FIXED_QUANTITY = 1,
+ /**
+ * 鏁板瓧琛ㄥ崟
+ */
+ NUMBER_FORM = 2,
+ /**
+ * 澶氶�夎〃鍗�
+ */
+ MULTIPLE_FORM = 3
+}
+export const CHILD_PROCESS_MULTI_INSTANCE_SOURCE_TYPE = [
+ { label: '鍥哄畾鏁伴噺', value: ChildProcessMultiInstanceSourceTypeEnum.FIXED_QUANTITY },
+ { label: '鏁板瓧琛ㄥ崟', value: ChildProcessMultiInstanceSourceTypeEnum.NUMBER_FORM },
+ { label: '澶氶�夎〃鍗�', value: ChildProcessMultiInstanceSourceTypeEnum.MULTIPLE_FORM }
+]
--
Gitblit v1.8.0