@nocobase/plugin-workflow 0.9.3-alpha.1 → 0.9.4-alpha.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (74) hide show
  1. package/lib/client/CanvasContent.d.ts +4 -0
  2. package/lib/client/CanvasContent.js +49 -0
  3. package/lib/client/ExecutionCanvas.js +110 -44
  4. package/lib/client/WorkflowCanvas.js +35 -18
  5. package/lib/client/components/CollectionFieldset.js +2 -2
  6. package/lib/client/components/NodeDescription.d.ts +2 -0
  7. package/lib/client/components/NodeDescription.js +59 -0
  8. package/lib/client/components/ValueBlock.d.ts +5 -0
  9. package/lib/client/components/ValueBlock.js +110 -0
  10. package/lib/client/index.d.ts +1 -0
  11. package/lib/client/index.js +12 -0
  12. package/lib/client/locale/es-ES.d.ts +130 -0
  13. package/lib/client/locale/es-ES.js +136 -0
  14. package/lib/client/locale/zh-CN.d.ts +35 -6
  15. package/lib/client/locale/zh-CN.js +35 -6
  16. package/lib/client/nodes/aggregate.d.ts +186 -0
  17. package/lib/client/nodes/aggregate.js +349 -0
  18. package/lib/client/nodes/calculation.d.ts +2 -1
  19. package/lib/client/nodes/calculation.js +28 -53
  20. package/lib/client/nodes/condition.d.ts +2 -6
  21. package/lib/client/nodes/condition.js +4 -3
  22. package/lib/client/nodes/create.d.ts +5 -3
  23. package/lib/client/nodes/create.js +16 -7
  24. package/lib/client/nodes/delay.d.ts +1 -0
  25. package/lib/client/nodes/delay.js +1 -0
  26. package/lib/client/nodes/destroy.d.ts +2 -2
  27. package/lib/client/nodes/destroy.js +1 -0
  28. package/lib/client/nodes/index.d.ts +5 -2
  29. package/lib/client/nodes/index.js +95 -97
  30. package/lib/client/nodes/loop.d.ts +29 -0
  31. package/lib/client/nodes/loop.js +165 -0
  32. package/lib/client/nodes/manual/AssigneesSelect.js +8 -6
  33. package/lib/client/nodes/manual/index.d.ts +6 -1
  34. package/lib/client/nodes/manual/index.js +6 -1
  35. package/lib/client/nodes/parallel.d.ts +1 -0
  36. package/lib/client/nodes/parallel.js +2 -1
  37. package/lib/client/nodes/query.d.ts +12 -3
  38. package/lib/client/nodes/query.js +24 -17
  39. package/lib/client/nodes/request.d.ts +1 -0
  40. package/lib/client/nodes/request.js +1 -0
  41. package/lib/client/nodes/update.d.ts +2 -2
  42. package/lib/client/nodes/update.js +1 -0
  43. package/lib/client/schemas/collection.d.ts +1 -2
  44. package/lib/client/schemas/collection.js +5 -6
  45. package/lib/client/style.d.ts +1 -0
  46. package/lib/client/style.js +40 -26
  47. package/lib/client/triggers/collection.d.ts +2 -11
  48. package/lib/client/triggers/collection.js +6 -7
  49. package/lib/client/triggers/index.d.ts +1 -1
  50. package/lib/client/triggers/index.js +5 -3
  51. package/lib/client/triggers/schedule/index.d.ts +3 -1
  52. package/lib/client/triggers/schedule/index.js +6 -4
  53. package/lib/client/variable.d.ts +27 -1
  54. package/lib/client/variable.js +65 -34
  55. package/lib/server/Plugin.js +2 -14
  56. package/lib/server/Processor.d.ts +3 -0
  57. package/lib/server/Processor.js +30 -3
  58. package/lib/server/actions/workflows.js +2 -2
  59. package/lib/server/collections/workflows.js +2 -1
  60. package/lib/server/instructions/aggregate.d.ts +9 -0
  61. package/lib/server/instructions/aggregate.js +57 -0
  62. package/lib/server/instructions/calculation.js +1 -1
  63. package/lib/server/instructions/condition.js +1 -1
  64. package/lib/server/instructions/create.js +1 -1
  65. package/lib/server/instructions/destroy.js +1 -1
  66. package/lib/server/instructions/index.d.ts +1 -0
  67. package/lib/server/instructions/index.js +1 -1
  68. package/lib/server/instructions/loop.d.ts +16 -0
  69. package/lib/server/instructions/loop.js +107 -0
  70. package/lib/server/instructions/parallel.js +17 -10
  71. package/lib/server/instructions/query.js +1 -4
  72. package/lib/server/instructions/request.js +1 -1
  73. package/lib/server/instructions/update.js +1 -1
  74. package/package.json +13 -13
@@ -0,0 +1,130 @@
1
+ declare const _default: {
2
+ Workflow: string;
3
+ "Execution history": string;
4
+ Executed: string;
5
+ "Trigger type": string;
6
+ Status: string;
7
+ On: string;
8
+ Off: string;
9
+ Version: string;
10
+ "Copy to new version": string;
11
+ Duplicate: string;
12
+ Loading: string;
13
+ "Load failed": string;
14
+ Trigger: string;
15
+ "Trigger variables": string;
16
+ "Trigger data": string;
17
+ "Trigger time": string;
18
+ "Triggered at": string;
19
+ "Collection event": string;
20
+ "Trigger on": string;
21
+ "After record added": string;
22
+ "After record updated": string;
23
+ "After record added or updated": string;
24
+ "After record deleted": string;
25
+ "Changed fields": string;
26
+ "Triggered only if one of the selected fields changes. If unselected, it means that it will be triggered when any field changes. When record is added or deleted, any field is considered to have been changed.": string;
27
+ "Only triggers when match conditions": string;
28
+ "Schedule event": string;
29
+ "Trigger mode": string;
30
+ "Based on certain date": string;
31
+ "Based on date field of collection": string;
32
+ "Starts on": string;
33
+ "Ends on": string;
34
+ "No end": string;
35
+ "Exactly at": string;
36
+ "Repeat mode": string;
37
+ "Repeat limit": string;
38
+ "No limit": string;
39
+ Seconds: string;
40
+ Minutes: string;
41
+ Hours: string;
42
+ Days: string;
43
+ Weeks: string;
44
+ Months: string;
45
+ "No repeat": string;
46
+ Every: string;
47
+ "By minute": string;
48
+ "By hour": string;
49
+ "By day": string;
50
+ "By week": string;
51
+ "By month": string;
52
+ "By field": string;
53
+ "By custom date": string;
54
+ Advanced: string;
55
+ End: string;
56
+ "Node result": string;
57
+ Constant: string;
58
+ Null: string;
59
+ Boolean: string;
60
+ String: string;
61
+ Calculator: string;
62
+ "Arithmetic calculation": string;
63
+ "String operation": string;
64
+ "Executed at": string;
65
+ Queueing: string;
66
+ "On going": string;
67
+ Succeeded: string;
68
+ Failed: string;
69
+ Pending: string;
70
+ Canceled: string;
71
+ "This node contains branches, deleting will also be preformed to them, are you sure?": string;
72
+ Control: string;
73
+ "Collection operations": string;
74
+ "Extended types": string;
75
+ "Node type": string;
76
+ Calculation: string;
77
+ "Configure calculation": string;
78
+ "Calculation result": string;
79
+ True: string;
80
+ False: string;
81
+ concat: string;
82
+ Condition: string;
83
+ Mode: string;
84
+ "Continue when \"Yes\"": string;
85
+ "Branch into \"Yes\" and \"No\"": string;
86
+ Conditions: string;
87
+ "Parallel branch": string;
88
+ "Add branch": string;
89
+ "All succeeded": string;
90
+ "Any succeeded": string;
91
+ "Any succeeded or failed": string;
92
+ "Continue after all branches succeeded": string;
93
+ "Continue after any branch succeeded": string;
94
+ "Continue after any branch succeeded, or exit after any branch failed": string;
95
+ Delay: string;
96
+ Duration: string;
97
+ "End Status": string;
98
+ "Select status": string;
99
+ "Succeed and continue": string;
100
+ "Fail and exit": string;
101
+ "Create record": string;
102
+ "Update record": string;
103
+ "Query record": string;
104
+ "Multiple records": string;
105
+ "Please select collection first": string;
106
+ "Only update records matching conditions": string;
107
+ "Fields that are not assigned a value will be set to the default value, and those that do not have a default value are set to null.": string;
108
+ "Trigger in executed workflow cannot be modified": string;
109
+ "Node in executed workflow cannot be modified": string;
110
+ "Can not delete": string;
111
+ "The result of this node has been referenced by other nodes ({{nodes}}), please remove the usage before deleting.": string;
112
+ "HTTP request": string;
113
+ "HTTP method": string;
114
+ URL: string;
115
+ Headers: string;
116
+ "Add request header": string;
117
+ Parameters: string;
118
+ "Add parameter": string;
119
+ Body: string;
120
+ "Use variable": string;
121
+ Format: string;
122
+ Insert: string;
123
+ "Timeout config": string;
124
+ ms: string;
125
+ "Input request data": string;
126
+ "Only support standard JSON data": string;
127
+ "\"Content-Type\" only support \"application/json\", and no need to specify": string;
128
+ "Ignore fail request and continue workflow": string;
129
+ };
130
+ export default _default;
@@ -0,0 +1,136 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _default = {
8
+ "Workflow": "Flujo de trabajo",
9
+ "Execution history": "Historial de ejecución",
10
+ "Executed": "Ejecutado",
11
+ "Trigger type": "Tipo de activador",
12
+ "Status": "Estado",
13
+ "On": "Activado",
14
+ "Off": "Apagado",
15
+ "Version": "Versión",
16
+ "Copy to new version": "Copiar a nueva versión",
17
+ "Duplicate": "Duplicar",
18
+ "Loading": "Cargando",
19
+ "Load failed": "Carga fallida",
20
+ "Trigger": "Disparador",
21
+ "Trigger variables": "Variables de activación",
22
+ "Trigger data": "Datos de activación",
23
+ "Trigger time": "Tiempo de activación",
24
+ "Triggered at": "Disparado a las",
25
+ "Collection event": "Evento de recogida",
26
+ "Trigger on": "Activado en",
27
+ "After record added": "Después de añadir el registro",
28
+ "After record updated": "Después de actualizar el registro",
29
+ "After record added or updated": "Después de añadir o actualizar el registro",
30
+ "After record deleted": "Después de eliminar el registro",
31
+ "Changed fields": "Campos modificados",
32
+ "Triggered only if one of the selected fields changes. If unselected, it means that it will be triggered when any field changes. When record is added or deleted, any field is considered to have been changed.": "Se activa sólo si cambia uno de los campos seleccionados. Si no se selecciona, significa que se activará cuando cambie cualquier campo. Cuando se añade o elimina un registro, se considera que se ha modificado cualquier campo.",
33
+ "Only triggers when match conditions": "Sólo se dispara cuando coinciden las condiciones",
34
+ "Schedule event": "Programar evento",
35
+ "Trigger mode": "Modo de activación",
36
+ "Based on certain date": "Basado en fecha determinada",
37
+ "Based on date field of collection": "Basado en el campo de fecha de la colección",
38
+ "Starts on": "Comienza el",
39
+ "Ends on": "Finaliza el",
40
+ "No end": "Sin fin",
41
+ "Exactly at": "Exactamente en",
42
+ "Repeat mode": "Modo repetición",
43
+ "Repeat limit": "Límite de repetición",
44
+ "No limit": "Sin límite",
45
+ "Seconds": "Segundos",
46
+ "Minutes": "Minutos",
47
+ "Hours": "Horas",
48
+ "Days": "Días",
49
+ "Weeks": "Semanas",
50
+ "Months": "Meses",
51
+ "No repeat": "No repetir",
52
+ "Every": "Cada",
53
+ "By minute": "Por minuto",
54
+ "By hour": "Por hora",
55
+ "By day": "Por día",
56
+ "By week": "Por semana",
57
+ "By month": "Por mes",
58
+ "By field": "Por campo",
59
+ "By custom date": "Por fecha personalizada",
60
+ "Advanced": "Avanzada",
61
+ "End": "Fin",
62
+ "Node result": "Resultado nodo",
63
+ "Constant": "Constante",
64
+ "Null": "Null",
65
+ "Boolean": "Booleano",
66
+ "String": "Cadena",
67
+ "Calculator": "Calculadora",
68
+ "Arithmetic calculation": "Cálculo aritmético",
69
+ "String operation": "Operación de Cadena",
70
+ "Executed at": "Ejecutado en",
71
+ "Queueing": "Puesta en cola",
72
+ "On going": "En curso",
73
+ "Succeeded": "Logrado",
74
+ "Failed": "Fallido",
75
+ "Pending": "Pendiente",
76
+ "Canceled": "Cancelado",
77
+ "This node contains branches, deleting will also be preformed to them, are you sure?": "Este nodo contiene ramas, el borrado también se preformará a ellas, ¿estás seguro?",
78
+ "Control": "Control",
79
+ "Collection operations": "Operaciones de recogida",
80
+ "Extended types": "Tipos ampliados",
81
+ "Node type": "Tipo de nodo",
82
+ "Calculation": "Cálculo",
83
+ "Configure calculation": "Configurar cálculo",
84
+ "Calculation result": "Resultado del cálculo",
85
+ "True": "Verdadero",
86
+ "False": "Falso",
87
+ "concat": "concat",
88
+ "Condition": "Condición",
89
+ "Mode": "Modo",
90
+ "Continue when \"Yes\"": "Continuar cuando \"Sí\"",
91
+ "Branch into \"Yes\" and \"No\"": "Ramificarse en \"Sí\" y \"No\"",
92
+ "Conditions": "Condiciones",
93
+ "Parallel branch": "Rama paralela",
94
+ "Add branch": "Añadir rama",
95
+ "All succeeded": "Todo correcto",
96
+ "Any succeeded": "Cualquiera con éxito",
97
+ "Any succeeded or failed": "Cualquiera tuvo éxito o falló",
98
+ "Continue after all branches succeeded": "Continuar después que todas las ramas han tenido éxito",
99
+ "Continue after any branch succeeded": "Continuar después que cualquier rama tenga éxito",
100
+ "Continue after any branch succeeded, or exit after any branch failed": "Continuar después de que cualquier rama tenga éxito, o salir después de que cualquier rama falle",
101
+ "Delay": "Retraso",
102
+ "Duration": "Duración",
103
+ "End Status": "Estado Final",
104
+ "Select status": "Seleccionar estado",
105
+ "Succeed and continue": "Éxito y continuar",
106
+ "Fail and exit": "Falla y sale",
107
+ "Create record": "Crear registro",
108
+ "Update record": "Actualizar registro",
109
+ "Query record": "Consultar registro",
110
+ "Multiple records": "Múltiples registros",
111
+ "Please select collection first": "Por favor, seleccione primero la colección",
112
+ "Only update records matching conditions": "Actualizar sólo los registros que cumplan las condiciones",
113
+ "Fields that are not assigned a value will be set to the default value, and those that do not have a default value are set to null.": "Los campos a los que no se les asigne un valor se establecerán en el valor predeterminado, y los que no tengan un valor predeterminado se establecerán en nulo.",
114
+ "Trigger in executed workflow cannot be modified": "No se puede modificar el desencadenante en el flujo de trabajo ejecutado",
115
+ "Node in executed workflow cannot be modified": "Nodo en flujo de trabajo ejecutado no puede ser modificado",
116
+ "Can not delete": "No se puede eliminar",
117
+ "The result of this node has been referenced by other nodes ({{nodes}}), please remove the usage before deleting.": "El resultado de este nodo ha sido referenciado por otros nodos ({{nodes}}",
118
+ "HTTP request": "Petición HTTP",
119
+ "HTTP method": "Método HTTP",
120
+ "URL": "URL",
121
+ "Headers": "Encabezados",
122
+ "Add request header": "Añadir encabezado de petición",
123
+ "Parameters": "Parámetros",
124
+ "Add parameter": "Añadir parámetro",
125
+ "Body": "Cuerpo",
126
+ "Use variable": "Utilizar variable",
127
+ "Format": "Formato",
128
+ "Insert": "Insertar",
129
+ "Timeout config": "Tiempo de espera config",
130
+ "ms": "ms",
131
+ "Input request data": "Datos de solicitud de entrada",
132
+ "Only support standard JSON data": "Sólo admite datos JSON estándar",
133
+ "\"Content-Type\" only support \"application/json\", and no need to specify": "\"Content-Type\" sólo admite \"application/json\", y no es necesario especificar",
134
+ "Ignore fail request and continue workflow": "Ignorar solicitud fallida y continuar flujo de trabajo"
135
+ };
136
+ exports.default = _default;
@@ -9,6 +9,7 @@ declare const _default: {
9
9
  Version: string;
10
10
  'Copy to new version': string;
11
11
  Duplicate: string;
12
+ 'Delete a main version will cause all other revisions to be deleted too.': string;
12
13
  Loading: string;
13
14
  'Load failed': string;
14
15
  Trigger: string;
@@ -26,7 +27,7 @@ declare const _default: {
26
27
  'Triggered only if one of the selected fields changes. If unselected, it means that it will be triggered when any field changes. When record is added or deleted, any field is considered to have been changed.': string;
27
28
  'Only triggers when match conditions': string;
28
29
  'Preload associations': string;
29
- 'Only configured association field could be accessed in following nodes': string;
30
+ 'Please select the associated fields that need to be accessed in subsequent nodes': string;
30
31
  'Schedule event': string;
31
32
  'Trigger mode': string;
32
33
  'Based on certain date': string;
@@ -57,7 +58,7 @@ declare const _default: {
57
58
  End: string;
58
59
  'Node result': string;
59
60
  Calculator: string;
60
- 'Arithmetic calculation': string;
61
+ 'Calculate an expression based on a calculation engine and obtain a value as the result. Variables in the upstream nodes can be used in the expression. The expression can be static or dynamic one from an expression collections.': string;
61
62
  'String operation': string;
62
63
  'System variables': string;
63
64
  'System time': string;
@@ -80,6 +81,7 @@ declare const _default: {
80
81
  Control: string;
81
82
  'Collection operations': string;
82
83
  Manual: string;
84
+ 'Could be used for manually submitting data, and determine whether to continue or exit. Workflow will generate a todo item for assigned user when it reaches a manual node, and continue processing after user submits the form.': string;
83
85
  'Extended types': string;
84
86
  'Node type': string;
85
87
  Calculation: string;
@@ -87,6 +89,7 @@ declare const _default: {
87
89
  Static: string;
88
90
  Dynamic: string;
89
91
  'Select dynamic expression': string;
92
+ 'Select the dynamic expression queried from the upstream node. You need to query it from an expression collection.': string;
90
93
  'Variable datasource': string;
91
94
  'Calculation engine': string;
92
95
  Basic: string;
@@ -98,19 +101,29 @@ declare const _default: {
98
101
  False: string;
99
102
  concat: string;
100
103
  Condition: string;
104
+ 'Based on boolean result of the calculation to determine whether to "continue" or "exit" the process, or continue on different branches of "yes" and "no".': string;
101
105
  Mode: string;
102
106
  'Continue when "Yes"': string;
103
107
  'Branch into "Yes" and "No"': string;
104
108
  'Condition expression': string;
105
109
  'Parallel branch': string;
110
+ 'Run multiple branch processes in parallel.': string;
106
111
  'Add branch': string;
107
112
  'All succeeded': string;
108
113
  'Any succeeded': string;
109
114
  'Any succeeded or failed': string;
110
115
  'Continue after all branches succeeded': string;
111
116
  'Continue after any branch succeeded': string;
112
- 'Continue after any branch succeeded, or exit after any branch failed': string;
117
+ 'Continue after any branch succeeded, or exit after any branch failed.': string;
118
+ Loop: string;
119
+ 'Loop target': string;
120
+ 'Loop index': string;
121
+ 'Loop length': string;
122
+ 'By using a loop node, you can perform the same operation on multiple sets of data. The source of these sets can be either multiple records from a query node or multiple associated records of a single record. Loop node can also be used for iterating a certain number of times or for looping through each character in a string. However, excessive looping may cause performance issues, so use with caution.': string;
123
+ 'Scope variables': string;
124
+ 'A single number will be treated as a loop count, a single string will be treated as an array of characters, and other non-array values will be converted to arrays. The loop node ends when the loop count is reached, or when the array loop is completed. You can also add condition nodes to the loop to terminate it.': string;
113
125
  Delay: string;
126
+ 'Delay a period of time and then continue or exit the process. Can be used to set wait or timeout times in parallel branches.': string;
114
127
  Duration: string;
115
128
  'End Status': string;
116
129
  'Select status': string;
@@ -134,19 +147,35 @@ declare const _default: {
134
147
  'Custom form': string;
135
148
  'Data record': string;
136
149
  'Create record': string;
150
+ 'Add new record to a collection. You can use variables from upstream nodes to assign values to fields.': string;
137
151
  'Update record': string;
152
+ 'Update records of a collection. You can use variables from upstream nodes as query conditions and field values.': string;
138
153
  'Query record': string;
139
- 'Multiple records': string;
140
- 'Fail on no data': string;
154
+ 'Query records from a collection. You can use variables from upstream nodes as query conditions.': string;
155
+ 'Allow multiple records as result': string;
156
+ 'If checked, when there are multiple records in the query result, an array will be returned as the result, which can be operated on one by one using a loop node. Otherwise, only one record will be returned.': string;
157
+ 'Exit when query result is null': string;
141
158
  'Please select collection first': string;
142
159
  'Only update records matching conditions': string;
143
160
  'Please add at least one condition': string;
144
- 'Fields that are not assigned a value will be set to the default value, and those that do not have a default value are set to null.': string;
161
+ 'Unassigned fields will be set to default values, and those without default values will be set to null.': string;
162
+ 'Delete record': string;
163
+ 'Delete records of a collection. Could use variables in workflow context as filter. All records match the filter will be deleted.': string;
164
+ Aggregate: string;
165
+ 'Counting, summing, finding maximum, minimum, and average values for multiple records of a collection or associated data of a record.': string;
166
+ 'Aggregator function': string;
167
+ 'Target type': string;
168
+ 'Data of collection': string;
169
+ 'Data of associated collection': string;
170
+ 'Field to aggregate': string;
171
+ Distinct: string;
172
+ 'Query result': string;
145
173
  'Trigger in executed workflow cannot be modified': string;
146
174
  'Node in executed workflow cannot be modified': string;
147
175
  'Can not delete': string;
148
176
  'The result of this node has been referenced by other nodes ({{nodes}}), please remove the usage before deleting.': string;
149
177
  'HTTP request': string;
178
+ 'Send HTTP request to a URL. You can use the variables in the upstream nodes as request headers, parameters and request body.': string;
150
179
  'HTTP method': string;
151
180
  URL: string;
152
181
  Headers: string;
@@ -15,6 +15,7 @@ var _default = {
15
15
  Version: '版本',
16
16
  'Copy to new version': '复制到新版本',
17
17
  Duplicate: '复制',
18
+ 'Delete a main version will cause all other revisions to be deleted too.': '删除主版本将导致其他版本一并被删除。',
18
19
  Loading: '加载中',
19
20
  'Load failed': '加载失败',
20
21
  Trigger: '触发器',
@@ -32,7 +33,7 @@ var _default = {
32
33
  'Triggered only if one of the selected fields changes. If unselected, it means that it will be triggered when any field changes. When record is added or deleted, any field is considered to have been changed.': '只有被选中的某个字段发生变动时才会触发。如果不选择,则表示任何字段变动时都会触发。新增或删除数据时,任意字段都被认为发生变动。',
33
34
  'Only triggers when match conditions': '满足以下条件才触发',
34
35
  'Preload associations': '预加载关联数据',
35
- 'Only configured association field could be accessed in following nodes': '仅已配置的关系数据可以在后续节点中被访问',
36
+ 'Please select the associated fields that need to be accessed in subsequent nodes': '请选中需要在后续节点中被访问的关系字段',
36
37
  'Schedule event': '定时任务',
37
38
  'Trigger mode': '触发模式',
38
39
  'Based on certain date': '自定义时间',
@@ -63,7 +64,7 @@ var _default = {
63
64
  End: '结束',
64
65
  'Node result': '节点数据',
65
66
  Calculator: '运算',
66
- 'Arithmetic calculation': '算术运算',
67
+ 'Calculate an expression based on a calculation engine and obtain a value as the result. Variables in the upstream nodes can be used in the expression. The expression can be static or dynamic one from an expression collections.': '基于计算引擎对一个表达式进行计算,并获得一个值作为结果。表达式中可以使用上游节点里的变量。表达式可以是静态的,也可以是表达式表中的动态表达式。',
67
68
  'String operation': '字符串',
68
69
  'System variables': '系统变量',
69
70
  'System time': '系统时间',
@@ -86,6 +87,7 @@ var _default = {
86
87
  Control: '流程控制',
87
88
  'Collection operations': '数据表操作',
88
89
  Manual: '人工处理',
90
+ 'Could be used for manually submitting data, and determine whether to continue or exit. Workflow will generate a todo item for assigned user when it reaches a manual node, and continue processing after user submits the form.': '可用于人工提交数据,并决定是否继续或退出流程。工作流在执行到人工节点时会为被指派的用户生成待办事项,直到用户提交对应表单后继续处理该流程。',
89
91
  'Extended types': '扩展类型',
90
92
  'Node type': '节点类型',
91
93
  Calculation: '运算',
@@ -93,6 +95,7 @@ var _default = {
93
95
  Static: '静态',
94
96
  Dynamic: '动态',
95
97
  'Select dynamic expression': '选择动态表达式',
98
+ 'Select the dynamic expression queried from the upstream node. You need to query it from an expression collection.': '从上游节点中选择查询出来的动态表达式。你需要从动态表达式类型的数据表中查询。',
96
99
  'Variable datasource': '变量数据源',
97
100
  'Calculation engine': '运算引擎',
98
101
  Basic: '基础',
@@ -104,19 +107,29 @@ var _default = {
104
107
  False: '假',
105
108
  concat: '连接',
106
109
  Condition: '条件判断',
110
+ 'Based on boolean result of the calculation to determine whether to "continue" or "exit" the process, or continue on different branches of "yes" and "no".': '基于运算结果的真假来决定“继续”或“退出”流程,或者在“是”与“否”的分支上分别继续。',
107
111
  Mode: '模式',
108
112
  'Continue when "Yes"': '“是”则继续',
109
113
  'Branch into "Yes" and "No"': '“是”和“否”分别继续',
110
114
  'Condition expression': '条件表达式',
111
115
  'Parallel branch': '分支',
116
+ 'Run multiple branch processes in parallel.': '并行运行多个分支流程。',
112
117
  'Add branch': '增加分支',
113
118
  'All succeeded': '全部成功',
114
119
  'Any succeeded': '任意成功',
115
120
  'Any succeeded or failed': '任意成功或失败',
116
121
  'Continue after all branches succeeded': '全部分支都成功后才能继续',
117
122
  'Continue after any branch succeeded': '任意分支成功后就继续',
118
- 'Continue after any branch succeeded, or exit after any branch failed': '任意分支成功继续,或失败后退出',
123
+ 'Continue after any branch succeeded, or exit after any branch failed.': '任意分支成功就继续流程,或者任意分支失败就退出流程。',
124
+ Loop: '循环',
125
+ 'Loop target': '循环对象',
126
+ 'Loop index': '当前索引',
127
+ 'Loop length': '循环长度',
128
+ 'By using a loop node, you can perform the same operation on multiple sets of data. The source of these sets can be either multiple records from a query node or multiple associated records of a single record. Loop node can also be used for iterating a certain number of times or for looping through each character in a string. However, excessive looping may cause performance issues, so use with caution.': '使用循环节点可以对多条数据进行同样的操作,多条数据的来源可以是查询节点的多条结果,或者一条数据的多条关系数据。也可以用于一定次数的循环,或者对字符串中每一个字符的循环处理。循环次数过高可能引起性能问题,请谨慎使用。',
129
+ 'Scope variables': '局域变量',
130
+ 'A single number will be treated as a loop count, a single string will be treated as an array of characters, and other non-array values will be converted to arrays. The loop node ends when the loop count is reached, or when the array loop is completed. You can also add condition nodes to the loop to terminate it.': '单一数字值将被视为循环次数,单一字符串值将被视为字符数组,其他非数组值将被转换为数组。达到循环次数,或者将数组循环完成后,循环节点结束。你也可以在循环中添加条件节点,以终止循环。',
119
131
  Delay: '延时',
132
+ 'Delay a period of time and then continue or exit the process. Can be used to set wait or timeout times in parallel branches.': '延时一段时间,然后继续或退出流程。可以用于并行分支中等待其他分支或设置超时时间。',
120
133
  Duration: '时长',
121
134
  'End Status': '到时状态',
122
135
  'Select status': '选择状态',
@@ -140,19 +153,35 @@ var _default = {
140
153
  'Custom form': '自定义表单',
141
154
  'Data record': '数据记录',
142
155
  'Create record': '新增数据',
156
+ 'Add new record to a collection. You can use variables from upstream nodes to assign values to fields.': '向一个数据表中添加新的数据。可以使用上游节点里的变量为字段赋值。',
143
157
  'Update record': '更新数据',
158
+ 'Update records of a collection. You can use variables from upstream nodes as query conditions and field values.': '更新一个数据表中的数据。可以使用上游节点里的变量作为查询条件和数据值。',
144
159
  'Query record': '查询数据',
145
- 'Multiple records': '多条数据',
146
- 'Fail on no data': '无数据时报错',
160
+ 'Query records from a collection. You can use variables from upstream nodes as query conditions.': '查询一个数据表中的数据。可以使用上游节点里的变量作为查询条件。',
161
+ 'Allow multiple records as result': '允许结果是多条数据',
162
+ 'If checked, when there are multiple records in the query result, an array will be returned as the result, which can be operated on one by one using a loop node. Otherwise, only one record will be returned.': '选中后,当查询结果有多条记录时,会返回数组作为结果,可以使用循环节点对它逐条操作;否则,仅返回一条数据。',
163
+ 'Exit when query result is null': '查询结果为空时,退出流程',
147
164
  'Please select collection first': '请先选择数据表',
148
165
  'Only update records matching conditions': '只更新满足条件的数据',
149
166
  'Please add at least one condition': '请添加至少一个条件',
150
- 'Fields that are not assigned a value will be set to the default value, and those that do not have a default value are set to null.': '未被赋值的字段将被设置为默认值,没有默认值的设置为空值。',
167
+ 'Unassigned fields will be set to default values, and those without default values will be set to null.': '未被赋值的字段将被设置为默认值,没有默认值的设置为空值。',
168
+ 'Delete record': '删除数据',
169
+ 'Delete records of a collection. Could use variables in workflow context as filter. All records match the filter will be deleted.': '删除一个数据表中的数据。可以使用上游节点里的变量作为过滤条件。所有满足条件的数据都将被删除。',
170
+ Aggregate: '聚合查询',
171
+ 'Counting, summing, finding maximum, minimum, and average values for multiple records of a collection or associated data of a record.': '对一个数据表里的多条数据或者一条数据里的关系数据进行统计、求和、求最大值、最小值、平均值。',
172
+ 'Aggregator function': '聚合函数',
173
+ 'Target type': '目标类型',
174
+ 'Data of collection': '数据表数据',
175
+ 'Data of associated collection': '关联数据表数据',
176
+ 'Field to aggregate': '聚合字段',
177
+ Distinct: '去重',
178
+ 'Query result': '查询结果',
151
179
  'Trigger in executed workflow cannot be modified': '已经执行过工作流的触发器不能被修改',
152
180
  'Node in executed workflow cannot be modified': '已经执行过工作流中的节点不能被修改',
153
181
  'Can not delete': '无法删除',
154
182
  'The result of this node has been referenced by other nodes ({{nodes}}), please remove the usage before deleting.': '该节点的执行结果已被其他节点({{nodes}})引用,删除前请先移除引用。',
155
183
  'HTTP request': 'HTTP 请求',
184
+ 'Send HTTP request to a URL. You can use the variables in the upstream nodes as request headers, parameters and request body.': '向指定 URL 发送 HTTP 请求。可以使用上游节点里的变量作为请求头、参数和请求体。',
156
185
  'HTTP method': 'HTTP 方法',
157
186
  URL: '地址',
158
187
  Headers: '请求头',