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