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