houzhongjian
2024-08-08 820397e43a0b64d35c6d31d2a55475061438593b
提交 | 用户 | 时间
820397 1 // 初始化表单数据
H 2 export function initListenerForm(listener) {
3   let self = {
4     ...listener
5   }
6   if (listener.script) {
7     self = {
8       ...listener,
9       ...listener.script,
10       scriptType: listener.script.resource ? 'externalScript' : 'inlineScript'
11     }
12   }
13   if (listener.event === 'timeout' && listener.eventDefinitions) {
14     if (listener.eventDefinitions.length) {
15       let k = ''
16       for (const key in listener.eventDefinitions[0]) {
17         console.log(listener.eventDefinitions, key)
18         if (key.indexOf('time') !== -1) {
19           k = key
20           self.eventDefinitionType = key.replace('time', '').toLowerCase()
21         }
22       }
23       console.log(k)
24       self.eventTimeDefinitions = listener.eventDefinitions[0][k].body
25     }
26   }
27   return self
28 }
29
30 export function initListenerType(listener) {
31   let listenerType
32   if (listener.class) listenerType = 'classListener'
33   if (listener.expression) listenerType = 'expressionListener'
34   if (listener.delegateExpression) listenerType = 'delegateExpressionListener'
35   if (listener.script) listenerType = 'scriptListener'
36   return {
37     ...JSON.parse(JSON.stringify(listener)),
38     ...(listener.script ?? {}),
39     listenerType: listenerType
40   }
41 }
42
43 /** 将 ProcessListenerDO 转换成 initListenerForm 想同的 Form 对象 */
44 export function initListenerForm2(processListener) {
45   if (processListener.valueType === 'class') {
46     return {
47       listenerType: 'classListener',
48       class: processListener.value,
49       event: processListener.event,
50       fields: []
51     }
52   } else if (processListener.valueType === 'expression') {
53     return {
54       listenerType: 'expressionListener',
55       expression: processListener.value,
56       event: processListener.event,
57       fields: []
58     }
59   } else if (processListener.valueType === 'delegateExpression') {
60     return {
61       listenerType: 'delegateExpressionListener',
62       delegateExpression: processListener.value,
63       event: processListener.event,
64       fields: []
65     }
66   }
67   throw new Error('未知的监听器类型')
68 }
69
70 export const listenerType = {
71   classListener: 'Java 类',
72   expressionListener: '表达式',
73   delegateExpressionListener: '代理表达式',
74   scriptListener: '脚本'
75 }
76
77 export const eventType = {
78   create: '创建',
79   assignment: '指派',
80   complete: '完成',
81   delete: '删除',
82   update: '更新',
83   timeout: '超时'
84 }
85
86 export const fieldType = {
87   string: '字符串',
88   expression: '表达式'
89 }