workflow-editor 0.9.84-dw-tmp2 → 0.9.84-dw-tmp3

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 (110) hide show
  1. package/package.json +2 -2
  2. package/packages/index.js +34 -0
  3. package/packages/plugins/formValidatorUtil.js +528 -0
  4. package/packages/plugins/index.js +8 -0
  5. package/packages/workflow-editor/index.js +14 -0
  6. package/packages/workflow-editor/src/api.js +7 -0
  7. package/packages/workflow-editor/src/assets/wf-editor-icons.js +2 -0
  8. package/packages/workflow-editor/src/constant.js +8 -0
  9. package/packages/workflow-editor/src/json-object-templates/copy-task.js +67 -0
  10. package/packages/workflow-editor/src/json-object-templates/decision.js +11 -0
  11. package/packages/workflow-editor/src/json-object-templates/end.js +14 -0
  12. package/packages/workflow-editor/src/json-object-templates/fork.js +10 -0
  13. package/packages/workflow-editor/src/json-object-templates/human-decision.js +9 -0
  14. package/packages/workflow-editor/src/json-object-templates/human-task.js +199 -0
  15. package/packages/workflow-editor/src/json-object-templates/join.js +10 -0
  16. package/packages/workflow-editor/src/json-object-templates/process.js +98 -0
  17. package/packages/workflow-editor/src/json-object-templates/start.js +13 -0
  18. package/packages/workflow-editor/src/json-object-templates/subprocess.js +30 -0
  19. package/packages/workflow-editor/src/json-object-templates/transition.js +26 -0
  20. package/packages/workflow-editor/src/main/admin-save-dialog.vue +66 -0
  21. package/packages/workflow-editor/src/main/canvas.vue +479 -0
  22. package/packages/workflow-editor/src/main/context-menu.vue +132 -0
  23. package/packages/workflow-editor/src/main/icon-svg.vue +32 -0
  24. package/packages/workflow-editor/src/main/selection-region.vue +66 -0
  25. package/packages/workflow-editor/src/main/tache-history-tooltip.vue +38 -0
  26. package/packages/workflow-editor/src/main/tache-name-input.vue +19 -0
  27. package/packages/workflow-editor/src/main/tache-subprocess-history-dialog.vue +35 -0
  28. package/packages/workflow-editor/src/main/toolbox.vue +60 -0
  29. package/packages/workflow-editor/src/main/wf-history-canvas.vue +302 -0
  30. package/packages/workflow-editor/src/process-json.js +622 -0
  31. package/packages/workflow-editor/src/process-service.js +31 -0
  32. package/packages/workflow-editor/src/properties-editors/common/additional-condition-utils.js +522 -0
  33. package/packages/workflow-editor/src/properties-editors/common/additional-condition.vue +276 -0
  34. package/packages/workflow-editor/src/properties-editors/common/auto-filled-fields-utils.js +34 -0
  35. package/packages/workflow-editor/src/properties-editors/common/auto-filled-fields.vue +239 -0
  36. package/packages/workflow-editor/src/properties-editors/common/common-notice-tool.vue +47 -0
  37. package/packages/workflow-editor/src/properties-editors/common/common-user-condition.vue +241 -0
  38. package/packages/workflow-editor/src/properties-editors/common/form-fields-utils.js +23 -0
  39. package/packages/workflow-editor/src/properties-editors/common/form-fields.vue +116 -0
  40. package/packages/workflow-editor/src/properties-editors/common/i18n-input.vue +75 -0
  41. package/packages/workflow-editor/src/properties-editors/common/i18n-set-dialog.vue +125 -0
  42. package/packages/workflow-editor/src/properties-editors/common/notice.vue +98 -0
  43. package/packages/workflow-editor/src/properties-editors/common/reminder.vue +179 -0
  44. package/packages/workflow-editor/src/properties-editors/common/select-mail-template.vue +83 -0
  45. package/packages/workflow-editor/src/properties-editors/common/standard-fields.vue +65 -0
  46. package/packages/workflow-editor/src/properties-editors/common/system-role-tree-inline.vue +355 -0
  47. package/packages/workflow-editor/src/properties-editors/common/system-role-tree.vue +63 -0
  48. package/packages/workflow-editor/src/properties-editors/common/task-title.vue +148 -0
  49. package/packages/workflow-editor/src/properties-editors/common/transactor-settings.vue +220 -0
  50. package/packages/workflow-editor/src/properties-editors/common/user-selection.vue +386 -0
  51. package/packages/workflow-editor/src/properties-editors/common/value-selection-dialog.vue +209 -0
  52. package/packages/workflow-editor/src/properties-editors/common/variables.vue +135 -0
  53. package/packages/workflow-editor/src/properties-editors/copy-task/basic-properties.vue +90 -0
  54. package/packages/workflow-editor/src/properties-editors/copy-task/permission-settings.vue +155 -0
  55. package/packages/workflow-editor/src/properties-editors/copy-task.vue +80 -0
  56. package/packages/workflow-editor/src/properties-editors/decision.vue +90 -0
  57. package/packages/workflow-editor/src/properties-editors/fork.vue +72 -0
  58. package/packages/workflow-editor/src/properties-editors/human-decision.vue +44 -0
  59. package/packages/workflow-editor/src/properties-editors/human-task/additional-condition-dialog.vue +60 -0
  60. package/packages/workflow-editor/src/properties-editors/human-task/basic-properties.vue +156 -0
  61. package/packages/workflow-editor/src/properties-editors/human-task/componentsConfigUtil.js +291 -0
  62. package/packages/workflow-editor/src/properties-editors/human-task/custom-actions.vue +249 -0
  63. package/packages/workflow-editor/src/properties-editors/human-task/editable-child-field-setting.vue +392 -0
  64. package/packages/workflow-editor/src/properties-editors/human-task/editable-child-fields.vue +241 -0
  65. package/packages/workflow-editor/src/properties-editors/human-task/editable-field-selection.vue +220 -0
  66. package/packages/workflow-editor/src/properties-editors/human-task/editable-fields.vue +204 -0
  67. package/packages/workflow-editor/src/properties-editors/human-task/events.vue +59 -0
  68. package/packages/workflow-editor/src/properties-editors/human-task/permission-settings.vue +207 -0
  69. package/packages/workflow-editor/src/properties-editors/human-task/selection-conditions.vue +390 -0
  70. package/packages/workflow-editor/src/properties-editors/human-task.vue +103 -0
  71. package/packages/workflow-editor/src/properties-editors/join.vue +44 -0
  72. package/packages/workflow-editor/src/properties-editors/process/basic-properties.vue +273 -0
  73. package/packages/workflow-editor/src/properties-editors/process/events.vue +76 -0
  74. package/packages/workflow-editor/src/properties-editors/process/notice-settings.vue +60 -0
  75. package/packages/workflow-editor/src/properties-editors/process/parameter-settings.vue +95 -0
  76. package/packages/workflow-editor/src/properties-editors/process/permission-settings.vue +28 -0
  77. package/packages/workflow-editor/src/properties-editors/process/selectPage.vue +81 -0
  78. package/packages/workflow-editor/src/properties-editors/process.vue +109 -0
  79. package/packages/workflow-editor/src/properties-editors/subprocess/basic-properties.vue +176 -0
  80. package/packages/workflow-editor/src/properties-editors/subprocess/events.vue +26 -0
  81. package/packages/workflow-editor/src/properties-editors/subprocess/field-mappings.vue +206 -0
  82. package/packages/workflow-editor/src/properties-editors/subprocess/transactor-settings.vue +64 -0
  83. package/packages/workflow-editor/src/properties-editors/subprocess.vue +79 -0
  84. package/packages/workflow-editor/src/properties-editors/transition/basic-properties.vue +53 -0
  85. package/packages/workflow-editor/src/properties-editors/transition.vue +74 -0
  86. package/packages/workflow-editor/src/properties-editors/user-condition.js +177 -0
  87. package/packages/workflow-editor/src/store/getters.js +27 -0
  88. package/packages/workflow-editor/src/store/workflow-editor.js +125 -0
  89. package/packages/workflow-editor/src/taches/common-methods.js +21 -0
  90. package/packages/workflow-editor/src/taches/copy-task.vue +99 -0
  91. package/packages/workflow-editor/src/taches/custom-task.vue +88 -0
  92. package/packages/workflow-editor/src/taches/decision.vue +102 -0
  93. package/packages/workflow-editor/src/taches/end.vue +76 -0
  94. package/packages/workflow-editor/src/taches/fork.vue +102 -0
  95. package/packages/workflow-editor/src/taches/human-decision.vue +102 -0
  96. package/packages/workflow-editor/src/taches/human-task.vue +113 -0
  97. package/packages/workflow-editor/src/taches/join.vue +91 -0
  98. package/packages/workflow-editor/src/taches/joint.vue +177 -0
  99. package/packages/workflow-editor/src/taches/start.vue +76 -0
  100. package/packages/workflow-editor/src/taches/subprocess.vue +99 -0
  101. package/packages/workflow-editor/src/taches/tache-resizer.vue +80 -0
  102. package/packages/workflow-editor/src/transitions/broken-line.vue +91 -0
  103. package/packages/workflow-editor/src/transitions/curve-line.vue +91 -0
  104. package/packages/workflow-editor/src/transitions/straight-line.vue +26 -0
  105. package/packages/workflow-editor/src/transitions/transition.vue +212 -0
  106. package/packages/workflow-editor/src/transitions/virtual-transition.vue +43 -0
  107. package/packages/workflow-editor/src/util.js +493 -0
  108. package/packages/workflow-editor/src/workflow-editor.vue +605 -0
  109. package/packages/workflow-editor/src/workflow-history.vue +153 -0
  110. package/src/index.js +28 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "workflow-editor",
3
- "version": "0.9.84-dw-tmp2",
3
+ "version": "0.9.84-dw-tmp3",
4
4
  "description": "流程编辑器",
5
5
  "main": "lib/workflow-editor.umd.min.js",
6
6
  "private": false,
@@ -33,7 +33,7 @@
33
33
  "element-ui": "2.15.3",
34
34
  "eslint": "5.16.0",
35
35
  "eslint-plugin-vue": "5.2.2",
36
- "imatrix-ui": "2.8.97-dw-tmp5",
36
+ "imatrix-ui": "2.8.97-dw-tmp31",
37
37
  "node-sass": "4.12.0",
38
38
  "nprogress": "^0.2.0",
39
39
  "sass-loader": "^7.1.0",
@@ -0,0 +1,34 @@
1
+ // 依次导入组件库的各个组件
2
+ import workflow from './workflow-editor'
3
+ import formValidator from './../packages/plugins/index'
4
+ const WorkflowEditor = workflow.WorkflowEditor
5
+ const WorkflowHistory = workflow.WorkflowHistory
6
+ const wfEditorStore = workflow.wfEditorStore
7
+
8
+ // 将所有组件都存储起来,方便后续统一注册
9
+ const components = [
10
+ WorkflowEditor,
11
+ WorkflowHistory
12
+ ]
13
+
14
+ // 定义 install 方法,接收 Vue 作为参数。如果使用 use 注册插件,则所有的组件都将被注册
15
+ const install = function(Vue) {
16
+ if (install.installed) return
17
+ components.forEach(component => {
18
+ Vue.component(component.name, component)
19
+ })
20
+ // components.map(component => Vue.component(component.name, component))
21
+ Vue.use(formValidator)
22
+ }
23
+
24
+ // 判断是否是直接引入vue的js文件,即全局引用可自动安装所有组件
25
+ if (typeof window !== 'undefined' && window.Vue) {
26
+ install(window.Vue)
27
+ }
28
+
29
+ export default {
30
+ // 导出的对象必须具有 install,才能被 Vue.use() 方法安装
31
+ install,
32
+ WorkflowEditor,
33
+ wfEditorStore
34
+ }
@@ -0,0 +1,528 @@
1
+ import Validator from 'async-validator'
2
+ import {
3
+ getI18n
4
+ } from '../workflow-editor/src/util'
5
+ import {
6
+ parseSubTablePermissionCondition
7
+ } from 'imatrix-ui/src/utils/calculator/calculator-util'
8
+ function getLeafPropRule(editField, dataTypeMap) {
9
+ const rule = {}
10
+ const dataType = editField.dataType
11
+ if (dataType === 'DATE' || dataType === 'TIME') {
12
+ // 对象的值需要是毫秒值数字
13
+ if (editField.valueType && editField.valueType === 'number') {
14
+ // 表示值是毫秒值
15
+ rule.type = 'number'
16
+ }
17
+ rule.message = editField.label + ' ' + getI18n().t('workflowEditorMessage.requiredAndMustBeADate')
18
+ } else if (dataType === 'INTEGER' || dataType === 'LONG') {
19
+ rule.type = 'number'
20
+ rule.message = editField.label + ' ' + getI18n().t('workflowEditorMessage.requiredAndMustBeAnInteger')
21
+ } else if (dataType === 'FLOAT' || dataType === 'DOUBLE') {
22
+ rule.pattern = new RegExp('^(-?\\d+)(\\.\\d+)?$')
23
+ rule.message = editField.label + ' ' + getI18n().t('workflowEditorMessage.requiredAndMustBeDecimal')
24
+ } else if (dataType === 'BOOLEAN') {
25
+ rule.message = editField.label + ' ' + getI18n().t('workflowEditorMessage.mustFill')
26
+ } else {
27
+ rule.message = editField.label + ' ' + getI18n().t('workflowEditorMessage.mustFill')
28
+ }
29
+ if (editField.canEdit) {
30
+ rule.required = true
31
+ // 失去焦点时触发
32
+ rule.trigger = 'blur'
33
+ }
34
+ if (editField.rowIndexes) {
35
+ // 子表时受控制的行记录下标
36
+ rule.rowIndexes = editField.rowIndexes
37
+ }
38
+ if (editField.condition) {
39
+ // 必填条件
40
+ rule.condition = editField.condition
41
+ }
42
+ dataTypeMap[editField.name] = editField.dataType
43
+ return rule
44
+ }
45
+
46
+ /**
47
+ * 获得对象验证规则
48
+ * @param {*} editField 字段信息
49
+ * @param {*} rules 验证规则
50
+ */
51
+ function setObjectPropRule(editField, rules, isSql, dataTypeMap) {
52
+ const rule = {}
53
+ let prop = editField.name
54
+ if (isSql === true) {
55
+ prop = underscoreName(prop)
56
+ }
57
+ if (!rules) {
58
+ rules = {}
59
+ }
60
+ const props = prop.split('.')
61
+ for (let num = 0; num < props.length; num++) {
62
+ const subProp = props[num]
63
+ let objectRule
64
+ if (num === props.length - 1) {
65
+ // 说明是最后一个
66
+ objectRule = getEndObjectRule(rule, props, subProp)
67
+ objectRule.fields[subProp] = getLeafPropRule(editField, dataTypeMap)
68
+ } else {
69
+ let lastObjectRule
70
+ if (num === 0) {
71
+ objectRule = rules
72
+ } else {
73
+ lastObjectRule = getLastObjectRule(rule, props, props[num - 1])
74
+ objectRule = lastObjectRule.fields
75
+ }
76
+ if (!objectRule[subProp]) {
77
+ objectRule[subProp] = {
78
+ type: 'object',
79
+ required: true,
80
+ fields: {}
81
+ }
82
+ }
83
+ if (num === 0) {
84
+ rule[subProp] = objectRule[subProp]
85
+ } else {
86
+ lastObjectRule.fields[subProp] = objectRule[subProp]
87
+ }
88
+ }
89
+ }
90
+ }
91
+
92
+ function getLastObjectRule(rule, props, currentProp) {
93
+ let lastObjectdRule
94
+ for (let i = 0; i < props.length; i++) {
95
+ const subProp = props[i]
96
+ if (i === 0) {
97
+ lastObjectdRule = rule[subProp]
98
+ } else {
99
+ lastObjectdRule = lastObjectdRule.fields[props[i]]
100
+ }
101
+ if (subProp === currentProp) {
102
+ break
103
+ }
104
+ }
105
+ return lastObjectdRule
106
+ }
107
+
108
+ function getEndObjectRule(rule, props, currentProp) {
109
+ let lastObjectdRule
110
+ for (let i = 0; i < props.length; i++) {
111
+ if (i === 0) {
112
+ lastObjectdRule = rule[props[i]]
113
+ } else {
114
+ lastObjectdRule = lastObjectdRule.fields[props[i]]
115
+ }
116
+ if (i !== props.length - 1) {
117
+ const leafSubProp = props[i + 1]
118
+ if (leafSubProp === currentProp) {
119
+ break
120
+ }
121
+ }
122
+ }
123
+ return lastObjectdRule
124
+ }
125
+
126
+ /**
127
+ * 获得主表及子表验证规则
128
+ * @param {editFieldInfos} editFieldInfos 编辑字段信息集合
129
+ * @param {entity} entity 当前表单数据model
130
+ * @param {isSql} isSql 是否是sql操作流程表单,如果是字段名需要修改为下划线命名规则
131
+ */
132
+ function getValidator(editFieldInfos, entity, isSql, additionalParamMap, taskParamMap, contextParameter) {
133
+ // console.log('workflowEditor-getValidator-editFieldInfos=', editFieldInfos, 'entity=', entity, 'isSql', isSql)
134
+ if (typeof (isSql) === 'undefined') {
135
+ isSql = false
136
+ }
137
+ // 主表验证规则
138
+ const rules = {}
139
+ // 子表验证规则,格式为:
140
+ // {prop:
141
+ // {subField1:{required: true},
142
+ // subField2:{required: true}
143
+ // }
144
+ // }
145
+ // 子表整个表的权限
146
+ // {
147
+ // 子表表名1:{required:true/false(必填/禁止编辑),message:'xxx子表必需录入数据'},
148
+ // 子表表名2:{required:true/false(必填/禁止编辑),message:'xxx子表必需录入数据'}
149
+ // }
150
+ const dataTypeMap = {}
151
+ const totalSubRules = {}
152
+ const subRules = {}
153
+ if (editFieldInfos) {
154
+ editFieldInfos.forEach(editField => {
155
+ const canEdit = editField.canEdit
156
+ // 必填
157
+ if (typeof (canEdit) !== 'undefined' && canEdit === true) {
158
+ let prop = editField.name
159
+ if (prop) {
160
+ if (isSql === true) {
161
+ prop = underscoreName(prop)
162
+ }
163
+ const condition = editField.condition
164
+ const parentFormData = null
165
+ let result = null
166
+ if (prop.indexOf('.') > 0 && prop.indexOf('$') === 0) {
167
+ // 当是子表记录时候 result设置为true 获取行记录校验条件
168
+ result = true
169
+ } else {
170
+ result = parseSubTablePermissionCondition(condition, dataTypeMap, parentFormData, entity, additionalParamMap, taskParamMap, contextParameter)
171
+ }
172
+ if (result !== undefined && result !== null && result === true) {
173
+ let rule = {}
174
+ if (prop.indexOf('.') > 0) {
175
+ if (prop.indexOf('$') === 0) {
176
+ // 表示是子表字段
177
+ setSubObjectFieldRule(editField, subRules, entity, isSql, dataTypeMap)
178
+ } else {
179
+ // 表示是主表的关联属性字段。
180
+ setMainObjectFieldRule(editField, rules, entity, isSql, dataTypeMap)
181
+ }
182
+ } else if (prop.indexOf('$') === 0) {
183
+ // 表示是子表整个表的权限
184
+ // 获得子表表名
185
+ const subTable = prop.substring(prop.indexOf('$') + 1)
186
+ totalSubRules[subTable] = {
187
+ required: true,
188
+ message: getI18n().t('workflowEditorMessage.subTableMustInputDatas', {
189
+ subTable: editField.label
190
+ })
191
+ }
192
+ } else {
193
+ // 表示是主表的直接属性
194
+ rule = getLeafPropRule(editField, dataTypeMap)
195
+ rules[prop] = rule
196
+ }
197
+ }
198
+ }
199
+ }
200
+ })
201
+ }
202
+ // console.log('rules', rules, 'subRules=', subRules, 'totalSubRules=', totalSubRules)
203
+ const subRulesKeys = Object.keys(subRules)
204
+ if (subRulesKeys.length > 0 || Object.keys(totalSubRules).length > 0) {
205
+ // 表示有子表规则
206
+ return {
207
+ rules,
208
+ subRules,
209
+ totalSubRules,
210
+ dataTypeMap
211
+ }
212
+ } else {
213
+ // 表示只有主表规则
214
+ return rules
215
+ }
216
+ }
217
+
218
+ /**
219
+ * 设置主对象字段验证规则
220
+ */
221
+ function setMainObjectFieldRule(editField, rules, entity, isSql, dataTypeMap) {
222
+ // 例如:a.b.c
223
+ let prop = editField.name
224
+ if (isSql === true) {
225
+ prop = underscoreName(prop)
226
+ }
227
+ // 获得a
228
+ const mainProp = prop.substring(0, prop.indexOf('.'))
229
+ if (entity) {
230
+ if (!entity[mainProp]) {
231
+ entity[mainProp] = {}
232
+ }
233
+ const mainEntity = entity[mainProp]
234
+ // 说明这个字段是该表单的字段,才需要添加验证
235
+ // 不是该表单的字段的情况,可能是被数据表删除的字段,但是没有修改流程图表单字段权限设置导致的
236
+ // 获得b.c
237
+ const mainSubProp = prop.substring(prop.indexOf('.') + 1)
238
+ if (isNeedValidate(mainSubProp, mainEntity)) {
239
+ // 需要验证该字段,表示是表单的字段
240
+ setObjectPropRule(editField, rules, isSql, dataTypeMap)
241
+ }
242
+ }
243
+ }
244
+
245
+ /**
246
+ * 是否需要验证该属性,例如:b.c 或 a
247
+ * @param {*} mainSubProp 字段信息,例如:字段为:a.b.c,则mainSubProp应为b.c
248
+ * @param {*} mainEntity
249
+ */
250
+ function isNeedValidate(mainSubProp, mainEntity) {
251
+ // 表示由可以必填
252
+ if (mainSubProp.indexOf('.') > 0) {
253
+ let parentObject = mainEntity
254
+ const subProps = mainSubProp.split('.')
255
+ for (let num = 0; num < subProps.length - 1; num++) {
256
+ const subProp = subProps[num]
257
+ if (!parentObject || !parentObject[subProp]) {
258
+ // 当前对象不存在,不是该表单的字段,不需要验证
259
+ return false
260
+ }
261
+ // 重新给"父对象"赋值,为下次循环准备
262
+ parentObject = parentObject[subProp]
263
+ }
264
+ return true
265
+ } else {
266
+ return true
267
+ }
268
+ }
269
+
270
+ function setSubObjectFieldRule(editField, subRules, entity, isSql, dataTypeMap) {
271
+ let prop = editField.name
272
+ if (isSql === true) {
273
+ prop = underscoreName(prop)
274
+ }
275
+ // 获得主表字段名称
276
+ const mainProp = prop.substring(prop.indexOf('$') + 1, prop.indexOf('.'))
277
+ if (!entity) {
278
+ return
279
+ }
280
+ const tableData = entity[mainProp]
281
+ if (typeof (tableData) === 'undefined' || tableData === null || tableData.length === 0) {
282
+ // 表单中不存在该子表字段,不需要验证
283
+ return
284
+ }
285
+ // 获得子表字段名
286
+ const subProp = prop.substring(prop.indexOf('.') + 1)
287
+ // mainProp对应的所有子表字段验证规则信息
288
+ if (!subRules[mainProp]) {
289
+ subRules[mainProp] = {}
290
+ }
291
+ // 修改属性名为去掉$mainProp的字段名
292
+ // 此处要重新拷贝一份字段,否则会导致原字段的name信息被修改
293
+ const copyEditField = JSON.parse(JSON.stringify(editField))
294
+ copyEditField.name = subProp
295
+ if (subProp.indexOf('.') > 0) {
296
+ // 表示关联属性
297
+ const subEntity = tableData[0]
298
+ setMainObjectFieldRule(copyEditField, subRules[mainProp], subEntity, isSql, dataTypeMap)
299
+ } else {
300
+ // 表示是子表的直接属性
301
+ subRules[mainProp][subProp] = getLeafPropRule(copyEditField, dataTypeMap)
302
+ }
303
+ }
304
+
305
+ function validator(entity, validateRules, rowIndex, isSql, pageNum, pageRowIndex) {
306
+ return validatorEntity(entity, validateRules, rowIndex, true, isSql, pageNum, pageRowIndex)
307
+ }
308
+ /**
309
+ *
310
+ * @param {*} entity
311
+ * @param {*} validateRules
312
+ * @param {*} rowIndex
313
+ * @param {*} isShouldRepeateValdate 是否需要再次验证大写字段名
314
+ * @returns
315
+ */
316
+ function validatorEntity(entity, validateRules, rowIndex, isShouldRepeateValdate, isSql, pageNum, pageRowIndex) {
317
+ let result = false
318
+ const validator = new Validator(validateRules)
319
+
320
+ validator.validate(entity, {
321
+ first: true
322
+ },
323
+ (errors, fields) => {
324
+ let fieldName
325
+ if (errors) {
326
+ const message = errors[0]['message']
327
+ fieldName = errors[0]['field']
328
+ if (typeof (rowIndex) !== 'undefined' && rowIndex !== null) {
329
+ // 表示是子表字段验证失败
330
+ if (pageNum !== undefined && pageRowIndex !== undefined) {
331
+ // 表示子表分页时的验证提示信息
332
+ result = getI18n().t('workflowEditorMessage.pageRecordLine', {
333
+ pageNum: pageNum,
334
+ row: pageRowIndex
335
+ }) + ',' + message
336
+ } else {
337
+ result = getI18n().t('workflowEditorMessage.recordLine', {
338
+ row: (rowIndex + 1)
339
+ }) + ',' + message
340
+ }
341
+ } else {
342
+ // 表示是主表字段验证失败
343
+ result = message
344
+ }
345
+ } else {
346
+ result = true
347
+ }
348
+ if (fieldName && isShouldRepeateValdate === true) {
349
+ // 将实体中字段名改为大写,然后再验证一次该字段是否已填值。因为mysql中jdbc获得实体记录字段名是小写的,但是验证规则中字段名是大写的,所以会导致字段验证失败
350
+ const reg1 = /[A-Z]+/ // 大写字母
351
+ if (isSql !== undefined && isSql === true && reg1.test(fieldName) && entity[fieldName.toLowerCase()] !== undefined) {
352
+ const copyEntity = JSON.parse(JSON.stringify(entity))
353
+ copyEntity[fieldName.toUpperCase()] = entity[fieldName.toLowerCase()]
354
+ delete copyEntity[fieldName.toLowerCase()]
355
+ result = validatorEntity(copyEntity, validateRules, rowIndex, false, isSql, pageNum, pageRowIndex)
356
+ }
357
+ }
358
+ })
359
+
360
+ return result
361
+ }
362
+
363
+ /**
364
+ * 验证子表必填验证
365
+ * @param {*}} entity
366
+ * @param {*} subRules
367
+ * @param {*} subTablePageInfo 列表分页信息{列表编码: 每页显示多少条记录}
368
+ */
369
+ function validateSub(entity, subRules, totalSubRules, isSql, dataTypeMap, additionalParamMap, taskParamMap, contextParameter, subTablePageInfo) {
370
+ let copyTotalSubRules = {}
371
+ if (totalSubRules) {
372
+ copyTotalSubRules = JSON.parse(JSON.stringify(totalSubRules))
373
+ }
374
+ if (subRules) {
375
+ console.log('formValidator333--subRules=', subRules)
376
+ const subProps = Object.keys(subRules)
377
+ for (let i = 0; i < subProps.length; i++) {
378
+ const prop = subProps[i]
379
+ const subFieldRule = subRules[prop]
380
+ console.log('formValidator44--subFieldRule=', subFieldRule)
381
+ // 受控制的行下标集合
382
+ const subFieldProps = Object.keys(subFieldRule)
383
+ console.log('formValidator555--subFieldProps=', subFieldProps)
384
+ let subTableData = entity[prop]
385
+ if (!subTableData) {
386
+ // 如果子表集合数据不存在
387
+ subTableData = []
388
+ }
389
+ // 验证整个子表是否已填记录,如果是必填,但是没有子记录集合,则提示
390
+ const validateResult = validateTotalSubTable(copyTotalSubRules, entity, prop)
391
+ if (validateResult !== true) {
392
+ delete copyTotalSubRules[prop]
393
+ return validateResult
394
+ }
395
+ let pageSize
396
+ if (subTablePageInfo && subTablePageInfo[prop]) {
397
+ pageSize = subTablePageInfo[prop].pageSize
398
+ }
399
+ for (let j = 0; j < subTableData.length; j++) {
400
+ const rowData = subTableData[j]
401
+ const rowRule = packageRowRule(subFieldProps, subFieldRule, subTableData[j], dataTypeMap, entity, additionalParamMap, taskParamMap, contextParameter)
402
+ console.log('formValidator666--rowRule=', rowRule)
403
+ let pageNum
404
+ // 每页的记录下标,提示时使用
405
+ let pageRowIndex
406
+ if (pageSize !== undefined && pageSize > 0) {
407
+ pageNum = Math.ceil((j + 1) / pageSize)
408
+ pageRowIndex = (j + 1) - ((pageNum - 1) * pageSize)
409
+ }
410
+ const validateResult = validator(rowData, rowRule, j, isSql, pageNum, pageRowIndex)
411
+ if (validateResult !== true) {
412
+ // 表示验证失败,无需继续验证
413
+ return validateResult
414
+ }
415
+ }
416
+ }
417
+ }
418
+
419
+ for (const subTableName in copyTotalSubRules) {
420
+ const validateResult = validateTotalSubTable(copyTotalSubRules, entity, subTableName)
421
+ if (validateResult !== true) {
422
+ return validateResult
423
+ }
424
+ }
425
+ return true
426
+ }
427
+
428
+ function getEntityId(row) {
429
+ if (row && row.id) {
430
+ return row.id
431
+ } else if (row && row.ID) {
432
+ return row.ID
433
+ }
434
+ }
435
+
436
+ /**
437
+ * 封装行记录的验证规则
438
+ * @param {*}} subProps
439
+ * @param {*} subFieldRule
440
+ * @param {*} rowIndex
441
+ * @returns
442
+ */
443
+ function packageRowRule(subProps, subFieldRule, row, dataTypeMap, parentFormData, additionalParamMap, taskParamMap, contextParameter) {
444
+ const rowId = getEntityId(row)
445
+ const rowRule = {}
446
+ for (let n = 0; n < subProps.length; n++) {
447
+ const field = subProps[n]
448
+ const fieldRule = subFieldRule[field]
449
+ const condition = fieldRule.condition
450
+ const result = parseSubTablePermissionCondition(condition, dataTypeMap, parentFormData, row, additionalParamMap, taskParamMap, contextParameter)
451
+ if (result !== undefined && result !== null && result === true) {
452
+ // 表示由可以必填
453
+ if (rowId === undefined) {
454
+ // 表示是新建的记录,需要验证
455
+ rowRule[field] = fieldRule
456
+ } else {
457
+ // 表示是已保存的记录,验证id是否在可修改的集合内
458
+ const rowIndexes = fieldRule.rowIndexes
459
+ if (!rowIndexes || rowIndexes.indexOf(rowId) >= 0) {
460
+ // 表示该行记录的该字段需要做必填验证
461
+ rowRule[field] = fieldRule
462
+ }
463
+ }
464
+ }
465
+ }
466
+ return rowRule
467
+ }
468
+
469
+ // 验证整个子表是否已填记录
470
+ function validateTotalSubTable(totalSubRules, entity, subTableName) {
471
+ let subTableData = entity[subTableName]
472
+ if (!subTableData) {
473
+ // 如果子表集合数据不存在
474
+ subTableData = []
475
+ }
476
+ if (subTableData.length === 0 && totalSubRules && totalSubRules[subTableName] &&
477
+ totalSubRules[subTableName].required !== undefined && totalSubRules[subTableName].required === true) {
478
+ return totalSubRules[subTableName].message
479
+ }
480
+ return true
481
+ }
482
+
483
+ function formValidator(entity, validateRules, isSql, additionalParamMap, taskParamMap, contextParameter, subTablePageInfo) {
484
+ const validateRulesKeys = Object.keys(validateRules)
485
+ if (validateRulesKeys.indexOf('rules') >= 0 &&
486
+ validateRulesKeys.indexOf('subRules') >= 0 &&
487
+ validateRulesKeys.indexOf('totalSubRules') >= 0) {
488
+ // 表示是带有子表验证规则的
489
+ const rules = validateRules.rules
490
+ const subRules = validateRules.subRules
491
+ const totalSubRules = validateRules.totalSubRules
492
+ const dataTypeMap = validateRules.dataTypeMap
493
+ let validateResult = validator(entity, rules, null, isSql)
494
+ if (validateResult === true) {
495
+ if (subRules || totalSubRules) {
496
+ validateResult = validateSub(entity, subRules, totalSubRules, isSql, dataTypeMap, additionalParamMap, taskParamMap, contextParameter, subTablePageInfo)
497
+ }
498
+ }
499
+ return validateResult
500
+ } else {
501
+ // 表示没有子表验证规则
502
+ return validator(entity, validateRules, null, isSql)
503
+ }
504
+ }
505
+
506
+ // 驼峰命名改为下划线命名,例如:helloWord->hello_world
507
+ function underscoreName(name) {
508
+ // if (name.indexOf('_') > 0) {
509
+ // 如果包括下划线,表示是下划线命名,需要再转换
510
+ return name
511
+ // }
512
+ // return name.replace(/([A-Z])/g, '_$1').toLowerCase()
513
+ }
514
+ // 下划线命名改为驼峰命名,例如:hello_word->helloWorld
515
+ // function camelName(name) {
516
+ // if (name.indexOf('_') < 0) {
517
+ // // 如果不包括下划线不需要转换
518
+ // return name
519
+ // }
520
+ // return name.replace(/_(\w)/g, function(all, letter) {
521
+ // return letter.toUpperCase()
522
+ // })
523
+ // }
524
+
525
+ export default {
526
+ formValidator,
527
+ getValidator
528
+ }
@@ -0,0 +1,8 @@
1
+ import formValidatorService from './formValidatorUtil'
2
+
3
+ export default {
4
+ install: function(Vue, options) {
5
+ Vue.prototype.$formValidator = formValidatorService.formValidator
6
+ Vue.prototype.$getValidator = formValidatorService.getValidator
7
+ }
8
+ }
@@ -0,0 +1,14 @@
1
+ import WorkflowEditor from './src/workflow-editor'
2
+ import wfEditorStore from './src/store/workflow-editor'
3
+ import WorkflowHistory from './src/workflow-history'
4
+
5
+ WorkflowEditor.install = function(Vue) {
6
+ Vue.component(WorkflowEditor.name, WorkflowEditor)
7
+ Vue.component(WorkflowHistory.name, WorkflowHistory)
8
+ }
9
+
10
+ export default {
11
+ WorkflowEditor,
12
+ WorkflowHistory,
13
+ wfEditorStore
14
+ }
@@ -0,0 +1,7 @@
1
+ const apis = {
2
+ refresh() {
3
+ this.showHistory()
4
+ }
5
+ }
6
+
7
+ export default apis
@@ -0,0 +1,2 @@
1
+ /*eslint-disable*/
2
+ !function(s){var c,l='<svg><symbol id="icon-switch" viewBox="0 0 1024 1024"><path d="M701.74225 917.574059c-7.419408 0-14.960447-2.675852-20.9203-8.149187-12.649483-11.554816-13.500891-31.13719-2.067704-43.786673l119.318684-130.75187L679.119135 608.634755c-11.798076-12.527854-11.189928-32.110227 1.337926-43.786673 12.527854-11.798076 32.110227-11.189928 43.786673 1.337926l138.657798 147.171873c11.068298 11.798076 11.311557 30.164153 0.364889 42.205488l-138.657798 152.037059c-6.081482 6.568001-14.473928 9.973631-22.866373 9.973631z" fill="" ></path><path d="M806.343746 786.21404h-581.389713c-82.100012 0-148.996318-66.896306-148.996318-148.996318v-245.691888c0-17.14978 13.86578-31.01556 31.01556-31.01556s31.01556 13.86578 31.01556 31.01556v245.691888c0 47.922081 39.043117 86.965198 86.965198 86.965198h581.389713c17.14978 0 31.01556 13.86578 31.01556 31.01556s-13.86578 31.01556-31.01556 31.01556z" fill="" ></path><path d="M322.25775 468.76066c-8.270816 0-16.420002-3.284-22.623114-9.730371l-138.657798-147.171874c-11.068298-11.798076-11.311557-30.164153-0.364889-42.205487l138.657798-152.037059c11.554816-12.649483 31.13719-13.500891 43.786673-2.067704 12.649483 11.554816 13.500891 31.13719 2.067704 43.786673l-119.197054 130.8735 118.953795 126.251574c11.798076 12.527854 11.189928 32.110227-1.337926 43.786673-5.959853 5.716593-13.62252 8.514075-21.285189 8.514075z" fill="" ></path><path d="M917.026725 664.584392c-17.14978 0-31.01556-13.86578-31.01556-31.01556v-245.691887c0-47.922081-39.043117-86.965198-86.965198-86.965198h-581.389713c-17.14978 0-31.01556-13.86578-31.01556-31.01556s13.86578-31.01556 31.01556-31.01556h581.389713c82.100012 0 148.996318 66.896306 148.996318 148.996318v245.691887c0 17.14978-13.86578 31.01556-31.01556 31.01556z" fill="" ></path></symbol><symbol id="icon-properties" viewBox="0 0 1024 1024"><path d="M512.980327 64.636113c-246.706845 0-447.421192 200.714348-447.421192 447.421192 0 246.700705 200.714348 447.415053 447.421192 447.415053s447.421192-200.714348 447.421193-447.415053c0-246.706845-200.715371-447.421192-447.421193-447.421192z m0 833.54532c-212.913181 0-386.130268-173.21811-386.130267-386.125151 0-212.913181 173.21811-386.130268 386.130267-386.130268s386.130268 173.21811 386.130268 386.130268c0 212.908064-173.21811 386.125151-386.130268 386.125151z" ></path><path d="M606.931093 640.392182c-11.621688 0-55.209416 68.771293-79.423911 68.771293-6.780427 0-9.685593-5.813403-9.685593-11.624758 0-13.558807 8.715499-33.899064 13.558807-45.520753l57.147558-156.913773c28.088732-77.487815-8.717546-98.795097-42.617633-98.795097-46.491871 0-88.142479 23.245424-120.105449 54.240345-10.654664 10.654664-45.523823 44.554752-45.523823 59.083654 0 4.844332 4.843308 10.655687 10.655688 10.655687 14.528901 0 52.302203-69.739341 82.328053-69.739341 5.814426 0 13.561877 6.780427 7.751545 21.309329L426.773943 612.304474c-5.811356 13.558807-32.93204 79.423911-32.93204 118.167306 0 30.994921 19.373233 44.554752 48.432059 44.554752 80.391958 0 174.34477-99.765191 174.34477-123.009591-0.002047-6.780427-5.814426-11.624758-9.687639-11.624759zM590.464049 249.081938c-35.836183 0-65.86408 28.088732-65.86408 63.927985 0 32.93204 21.310352 55.210439 54.242392 54.239322 36.805254 0 66.832128-27.120684 66.832128-63.927985 0-32.92897-23.24747-54.239322-55.21044-54.239322z" ></path></symbol><symbol id="icon-delete" viewBox="0 0 1024 1024"><path d="M409.6 163.84h163.84v40.96h-163.84zM532.48 368.64h40.96v368.64h-40.96zM409.6 368.64h40.96v368.64h-40.96z" ></path><path d="M286.72 245.76v614.4h409.6V245.76H286.72z m450.56 0v655.36H245.76V245.76H204.8V204.8h573.44v40.96h-40.96z" ></path></symbol><symbol id="icon-custom-task" viewBox="0 0 1024 1024"><path d="M756.63132445 483.81952l220.74709333-209.7152a112.86755555 112.86755555 0 0 0 0-159.61656889l-55.08664889-55.08664889a112.86755555 112.86755555 0 0 0-157.54126222-2.00248889L549.13706667 262.12579555 339.71313778 38.39317333l-1.71121778-1.78403555a73.76440889 73.76440889 0 0 0-104.34787555-0.43690667L76.44046222 193.38581333a73.728 73.728 0 0 0-1.27431111 102.56384L281.49532445 516.36906667 86.41649778 701.69031111A112.94037333 112.94037333 0 0 0 54.26744889 757.76L21.28099555 898.55317333a74.67463111 74.67463111 0 0 0 93.7528889 88.65564445L250.76622222 947.23185778a113.48650667 113.48650667 0 0 0 45.8752-26.43285333l192.34816-182.73621334 231.66976 247.50762667 1.71121778 1.78403555a73.76440889 73.76440889 0 0 0 104.34787555 0.43690667L983.93201778 830.57777778a73.728 73.728 0 0 0 1.27431111-102.56384L756.63132445 483.81952zM292.89130667 823.95136l-102.52743112-102.52743111a35.82634667 35.82634667 0 0 0-11.14112-7.39100444l509.2511289-483.80131556 107.26058666 107.26058666c1.60199111 1.60199111 3.60448 2.36657778 5.42492444 3.60448l-508.26808888 482.85468445z m521.99424-713.83267555a40.04977778 40.04977778 0 0 1 55.88764444 0.72817777l55.08664889 55.08664889c15.65582222 15.65582222 15.65582222 40.99640889-0.72817778 57.344l-73.32750222 69.65020444c-1.45635555-2.36657778-2.54862222-4.87879111-4.62392889-6.95409777l-105.94986666-105.94986667 73.65518222-69.90506666z m-557.16522667 274.34097777c9.10222222-0.14563555 18.20444445-3.60448 25.15854222-10.55857777l54.61333333-54.61333334a36.37248 36.37248 0 1 0-51.48216888-51.48216889l-54.61333334 54.61333333a36.0448 36.0448 0 0 0-10.15808 23.04682667L128.35953778 246.21511111c-0.58254222-0.58254222-0.58254222-1.16508445-0.40049778-1.31072L285.17262222 87.6544c0.14563555-0.14563555 0.76458667-0.14563555 1.41994667 0.47331555l209.78801778 224.13312L334.32462222 466.23402667l-76.60430222-81.77436445zM94.46286222 917.37656889a1.82044445 1.82044445 0 0 1-2.29376-2.18453334L125.15555555 774.39886222c1.12867555-4.73315555 3.34961778-9.06581333 6.04387556-13.07079111a36.19043555 36.19043555 0 0 0 7.68227556 11.54161778l100.45212444 100.45212444a39.90414222 39.90414222 0 0 1-9.10222222 4.04138667l-135.76874667 40.01336889zM775.23626667 936.3456c-0.14563555 0.14563555-0.76458667 0.14563555-1.41994667-0.47331555l-142.90488889-152.66247112a35.53507555 35.53507555 0 0 0 16.01991111-8.77454222l54.61333333-54.61333333a36.37248 36.37248 0 1 0-51.48216888-51.48216889l-54.61333334 54.61333333a36.0448 36.0448 0 0 0-8.30122666 13.54410667l-45.40188445-48.53304889 162.05596445-153.97319111 228.21091555 243.83032889c0.54613333 0.58254222 0.54613333 1.16508445 0.40049778 1.31072L775.23626667 936.3456z" ></path></symbol><symbol id="icon-join" viewBox="0 0 1024 1024"><path d="M987.136 552.96c5.46133333-5.46133333 10.92266667-13.65333333 10.92266667-24.576 0-8.192-2.73066667-16.384-10.92266667-24.576L817.83466667 329.04533333c-5.46133333-2.73066667-13.65333333-8.192-24.576-8.192-8.192 0-19.11466667 2.73066667-24.576 10.92266667l-177.49333334 174.76266667C585.728 512 580.26666667 520.192 580.26666667 531.11466667s2.73066667 19.11466667 10.92266666 24.576l177.49333334 172.032c5.46133333 5.46133333 13.65333333 10.92266667 24.576 10.92266666 8.192 0 16.384-2.73066667 24.576-10.92266666L987.136 552.96zM25.94133333 970.752c0 8.192 2.73066667 16.384 10.92266667 24.576 5.46133333 5.46133333 16.384 10.92266667 24.576 10.92266667h270.336c8.192 0 16.384-2.73066667 24.576-10.92266667 5.46133333-5.46133333 10.92266667-16.384 10.92266667-24.576v-68.26666667h152.91733333c8.192 0 16.384-2.73066667 24.576-10.92266666 5.46133333-5.46133333 10.92266667-16.384 10.92266667-24.576v-682.66666667c0-8.192-2.73066667-16.384-10.92266667-24.576-5.46133333-5.46133333-16.384-10.92266667-24.576-10.92266667H367.27466667V47.78666667c0-8.192-2.73066667-16.384-10.92266667-24.576-5.46133333-5.46133333-16.384-10.92266667-24.576-10.92266667H61.44c-8.192 0-16.384 2.73066667-24.576 10.92266667-5.46133333 5.46133333-10.92266667 16.384-10.92266667 24.576v221.184c0 8.192 2.73066667 16.384 10.92266667 24.576 5.46133333 5.46133333 16.384 10.92266667 24.576 10.92266666h270.336c8.192 0 16.384-2.73066667 24.576-10.92266666 5.46133333-5.46133333 10.92266667-16.384 10.92266667-24.576V252.58666667h68.26666666c8.192 0 16.384 2.73066667 24.576 10.92266666 5.46133333 5.46133333 10.92266667 16.384 10.92266667 24.576V785.06666667c0 8.192-2.73066667 16.384-10.92266667 24.576-5.46133333 5.46133333-16.384 10.92266667-24.576 10.92266666h-68.26666666v-68.26666666c0-8.192-2.73066667-16.384-10.92266667-24.576-5.46133333-5.46133333-16.384-10.92266667-24.576-10.92266667H61.44c-8.192 0-16.384 2.73066667-24.576 10.92266667-5.46133333 5.46133333-10.92266667 16.384-10.92266667 24.576v218.45333333z" ></path></symbol><symbol id="icon-fork" viewBox="0 0 1024 1024"><path d="M36.864 471.04c-5.46133333 5.46133333-10.92266667 13.65333333-10.92266667 24.576 0 8.192 2.73066667 16.384 10.92266667 24.576l169.30133333 174.76266667c5.46133333 2.73066667 13.65333333 8.192 24.576 8.192 8.192 0 19.11466667-2.73066667 24.576-10.92266667l177.49333334-174.76266667c5.46133333-5.46133333 10.92266667-13.65333333 10.92266666-24.576s-2.73066667-19.11466667-10.92266666-24.576l-177.49333334-172.032c-5.46133333-5.46133333-13.65333333-10.92266667-24.576-10.92266666-8.192 0-16.384 2.73066667-24.576 10.92266666L36.864 471.04zM998.05866667 53.248c0-8.192-2.73066667-16.384-10.92266667-24.576-5.46133333-5.46133333-16.384-10.92266667-24.576-10.92266667H692.224c-8.192 0-16.384 2.73066667-24.576 10.92266667-5.46133333 5.46133333-10.92266667 16.384-10.92266667 24.576v68.26666667H503.808c-8.192 0-16.384 2.73066667-24.576 10.92266666-5.46133333 5.46133333-10.92266667 16.384-10.92266667 24.576v682.66666667c0 8.192 2.73066667 16.384 10.92266667 24.576 5.46133333 5.46133333 16.384 10.92266667 24.576 10.92266667h152.91733333v101.03466666c0 8.192 2.73066667 16.384 10.92266667 24.576 5.46133333 5.46133333 16.384 10.92266667 24.576 10.92266667H962.56c8.192 0 16.384-2.73066667 24.576-10.92266667 5.46133333-5.46133333 10.92266667-16.384 10.92266667-24.576V755.02933333c0-8.192-2.73066667-16.384-10.92266667-24.576-5.46133333-5.46133333-16.384-10.92266667-24.576-10.92266666H692.224c-8.192 0-16.384 2.73066667-24.576 10.92266666-5.46133333 5.46133333-10.92266667 16.384-10.92266667 24.576v16.384h-68.26666666c-8.192 0-16.384-2.73066667-24.576-10.92266666-5.46133333-5.46133333-10.92266667-16.384-10.92266667-24.576V238.93333333c0-8.192 2.73066667-16.384 10.92266667-24.576 5.46133333-5.46133333 16.384-10.92266667 24.576-10.92266666h68.26666666v68.26666666c0 8.192 2.73066667 16.384 10.92266667 24.576 5.46133333 5.46133333 16.384 10.92266667 24.576 10.92266667H962.56c8.192 0 16.384-2.73066667 24.576-10.92266667 5.46133333-5.46133333 10.92266667-16.384 10.92266667-24.576V53.248z" ></path></symbol><symbol id="icon-copy-task" viewBox="0 0 1024 1024"><path d="M636.30222222 513.25155555c11.71911111-6.82666667 21.16266667-26.39644445 1.36533334-35.72622222-6.71288889-3.072-13.65333333-5.91644445-20.59377778-8.64711111C666.45333334 424.61866667 697.74222222 360.56177778 697.74222222 288.99555555c0-133.34755555-108.20266667-241.55022222-241.55022222-241.55022222S214.64177778 155.648 214.64177778 288.99555555c0 71.56622222 31.28888889 135.62311111 80.66844444 179.88266667-146.31822222 57.45777778-254.29333333 191.03288889-275.34222222 352.02844445-0.22755555 1.93422222-0.34133333 3.86844445-0.34133333 5.80266666 0 30.37866667 24.576 55.06844445 55.06844445 55.06844445H532.76444445c-21.04888889-38.912-33.10933333-83.51288889-33.10933333-130.84444445 0.11377778-101.48977778 55.06844445-190.00888889 136.6471111-237.68177778z m31.63022223 227.8968889l78.05155555 37.09155555 98.98666667-98.98666667z m133.91644444 133.91644444l56.88888889-171.23555556-94.09422222 94.09422222z" ></path><path d="M774.76977778 524.97066667c-124.47288889 0-225.84888889 101.26222222-225.84888889 225.84888888 0 124.47288889 101.26222222 225.84888889 225.84888889 225.8488889s225.84888889-101.26222222 225.84888889-225.8488889c0-124.47288889-101.26222222-225.84888889-225.84888889-225.84888888z m129.47911111 128l-87.15377777 262.25777778c-1.70666667 5.23377778-6.48533333 8.87466667-11.94666667 9.216h-0.91022223c-5.12 0-10.01244445-2.95822222-12.17422222-7.62311112l-54.49955555-112.64-110.93333333-52.90666666c-3.29955555-1.59288889-5.80266667-4.32355555-6.94044445-7.73688889-2.50311111-7.05422222 1.25155555-14.79111111 8.30577778-17.29422223l258.95822222-90.45333333c1.47911111-0.45511111 2.95822222-0.79644445 4.43733333-0.79644444 3.64088889 0 6.94044445 1.36533333 9.55733334 3.86844444 3.52711111 3.75466667 4.89244445 9.216 3.29955555 14.10844445z" ></path></symbol><symbol id="icon-subprocess" viewBox="0 0 1024 1024"><path d="M1023.78666667 129.49333333c-0.32-6.93333333-1.28-13.86666667-2.56-20.48s-3.2-13.12-5.54666667-19.41333333c-0.74666667-2.13333333-1.6-4.16-2.45333333-6.18666667-3.73333333-8.85333333-8.42666667-17.28-13.86666667-25.06666666-0.32-0.53333333-0.74666667-1.06666667-1.06666667-1.49333334-0.96-1.28-1.92-2.66666667-2.98666666-3.94666666-0.32-0.32-0.53333333-0.74666667-0.85333334-1.06666667-2.56-3.2-5.22666667-6.29333333-8-9.28l-0.21333333-0.21333333c-5.97333333-6.29333333-12.58666667-12.05333333-19.73333333-17.06666667-1.49333333-1.06666667-2.98666667-2.02666667-4.48-3.09333333-1.6-1.06666667-3.2-2.02666667-4.90666667-3.09333334-0.85333333-0.53333333-1.81333333-1.06666667-2.66666667-1.6-1.28-0.74666667-2.45333333-1.38666667-3.73333333-2.02666666-0.64-0.32-1.28-0.64-2.02666667-1.06666667-1.28-0.64-2.66666667-1.28-4.05333333-1.92-2.56-1.17333333-5.22666667-2.34666667-7.89333333-3.41333333-1.49333333-0.64-3.09333333-1.17333333-4.58666667-1.70666667-2.34666667-0.85333333-4.8-1.6-7.25333333-2.24-3.2-0.96-6.50666667-1.70666667-9.81333334-2.45333333-5.54666667-1.17333333-11.2-1.92-16.96-2.34666667-3.52-0.21333333-6.93333333-0.42666667-10.45333333-0.42666667s-7.04 0.10666667-10.45333333 0.42666667c-5.76 0.42666667-11.41333333 1.28-16.96 2.34666667-3.30666667 0.64-6.61333333 1.49333333-9.81333334 2.45333333-2.45333333 0.64-4.8 1.49333333-7.25333333 2.24-1.49333333 0.53333333-3.09333333 1.06666667-4.58666667 1.70666667-2.66666667 1.06666667-5.33333333 2.13333333-7.89333333 3.41333333-1.38666667 0.64-2.66666667 1.28-4.05333333 1.92-0.64 0.32-1.28 0.64-2.02666667 1.06666667-1.28 0.64-2.56 1.38666667-3.73333333 2.02666666-0.96 0.53333333-1.81333333 1.06666667-2.66666667 1.6-1.6 0.96-3.30666667 2.02666667-4.90666667 3.09333334-1.49333333 0.96-2.98666667 2.02666667-4.48 3.09333333-7.14666667 5.01333333-13.76 10.77333333-19.73333333 17.06666667l-0.21333333 0.21333333c-2.77333333 2.98666667-5.44 6.08-8 9.28-0.32 0.32-0.53333333 0.74666667-0.85333334 1.06666667-0.96 1.28-2.02666667 2.56-2.98666666 3.94666666-0.32 0.53333333-0.74666667 1.06666667-1.06666667 1.49333334-5.44 7.78666667-10.13333333 16.21333333-13.86666667 25.06666666-0.85333333 2.02666667-1.70666667 4.16-2.45333333 6.18666667-2.34666667 6.29333333-4.16 12.8-5.54666667 19.41333333s-2.24 13.54666667-2.56 20.48c-0.10666667 2.34666667-0.21333333 4.69333333-0.21333333 7.04 0 3.52 0.10666667 7.04 0.42666667 10.45333334 0.42666667 5.76 1.28 11.41333333 2.34666666 16.96 0.64 3.30666667 1.49333333 6.61333333 2.45333334 9.81333333 5.22666667 18.34666667 14.18666667 35.09333333 26.02666666 49.49333333 0.74666667 0.85333333 1.38666667 1.70666667 2.13333334 2.45333334 4.16 4.8 8.74666667 9.38666667 13.54666666 13.65333333l-105.81333333 306.98666667c-3.09333333-0.21333333-6.18666667-0.32-9.28-0.32-14.93333333 0-29.33333333 2.45333333-42.77333333 6.82666666-0.64 0.21333333-1.28 0.42666667-1.81333334 0.64-1.49333333 0.53333333-3.09333333 1.06666667-4.58666666 1.70666667-2.34666667 0.96-4.69333333 1.92-7.04 2.98666667L466.56 395.62666667c2.34666667-5.44 4.37333333-11.2 6.08-16.96 0.96-3.2 1.70666667-6.50666667 2.45333333-9.81333334 1.17333333-5.54666667 1.92-11.2 2.34666667-16.96 0.21333333-3.52 0.42666667-6.93333333 0.42666667-10.45333333 0-2.34666667-0.10666667-4.69333333-0.21333334-7.04-0.32-6.93333333-1.28-13.86666667-2.56-20.48-7.04-34.45333333-27.09333333-64.10666667-54.72-83.84-0.85333333-0.64-1.81333333-1.28-2.66666666-1.92-6.4-4.26666667-13.12-8.10666667-20.16-11.30666667-2.02666667-0.96-4.05333333-1.81333333-6.08-2.56s-4.16-1.6-6.29333334-2.34666666c-13.76-4.69333333-28.48-7.14666667-43.84-7.14666667-3.52 0-7.04 0.10666667-10.45333333 0.42666667-5.76 0.42666667-11.41333333 1.28-16.96 2.34666666-3.30666667 0.64-6.61333333 1.49333333-9.81333333 2.45333334-2.45333333 0.64-4.8 1.49333333-7.25333334 2.24-1.49333333 0.53333333-3.09333333 1.06666667-4.58666666 1.70666666-2.66666667 1.06666667-5.33333333 2.13333333-7.89333334 3.41333334-1.38666667 0.64-2.66666667 1.28-4.05333333 1.92-0.64 0.32-1.28 0.64-2.02666667 1.06666666-1.28 0.64-2.56 1.38666667-3.73333333 2.02666667-0.96 0.53333333-1.81333333 1.06666667-2.66666667 1.6-1.6 0.96-3.30666667 2.02666667-4.90666666 3.09333333-1.49333333 0.96-2.98666667 2.02666667-4.48 3.09333334-7.14666667 5.01333333-13.76 10.77333333-19.73333334 17.06666666l-0.21333333 0.21333334c-2.77333333 2.98666667-5.44 6.08-8 9.28-0.32 0.32-0.53333333 0.74666667-0.85333333 1.06666666-0.96 1.28-2.02666667 2.56-2.98666667 3.94666667-0.32 0.53333333-0.74666667 1.06666667-1.06666667 1.49333333-5.44 7.78666667-10.13333333 16.21333333-13.86666666 25.06666667-0.85333333 2.02666667-1.70666667 4.16-2.45333334 6.18666667-2.34666667 6.29333333-4.16 12.8-5.54666666 19.41333333s-2.24 13.54666667-2.56 20.48c-0.10666667 2.34666667-0.21333333 4.69333333-0.21333334 7.04 0 3.52 0.10666667 7.04 0.42666667 10.45333333 0.42666667 5.76 1.28 11.41333333 2.34666667 16.96 0.64 3.30666667 1.49333333 6.61333333 2.45333333 9.81333334 5.22666667 18.34666667 14.18666667 35.09333333 26.02666667 49.49333333 0.74666667 0.85333333 1.38666667 1.70666667 2.13333333 2.45333333 0.64 0.74666667 1.28 1.49333333 1.92 2.13333334L129.6 751.04c-12.48 0.64-24.53333333 2.88-35.84 6.61333333-0.64 0.21333333-1.28 0.42666667-1.81333333 0.64-1.49333333 0.53333333-3.09333333 1.06666667-4.58666667 1.70666667-2.66666667 1.06666667-5.33333333 2.13333333-7.89333333 3.41333333-3.30666667 1.49333333-6.61333333 3.2-9.81333334 5.01333334-0.96 0.53333333-1.81333333 1.06666667-2.66666666 1.6-1.6 0.96-3.30666667 2.02666667-4.90666667 3.09333333-1.49333333 0.96-2.98666667 2.02666667-4.48 3.09333333-1.81333333 1.28-3.52 2.56-5.22666667 3.94666667-0.85333333 0.64-1.70666667 1.38666667-2.56 2.02666667-2.56 2.13333333-5.01333333 4.26666667-7.36 6.50666666-0.74666667 0.74666667-1.6 1.49333333-2.34666666 2.24-1.49333333 1.49333333-3.09333333 3.09333333-4.48 4.69333334-1.49333333 1.6-2.88 3.30666667-4.26666667 4.90666666-2.77333333 3.41333333-5.44 6.82666667-7.89333333 10.56-4.90666667 7.25333333-9.17333333 15.04-12.58666667 23.14666667-0.85333333 2.02666667-1.70666667 4.16-2.45333333 6.18666667-0.74666667 2.13333333-1.49333333 4.16-2.13333334 6.29333333-1.28 4.26666667-2.45333333 8.64-3.41333333 13.12s-1.6 8.96-2.02666667 13.54666667c-0.42666667 4.58666667-0.74666667 9.28-0.74666666 13.97333333 0 75.41333333 61.12 136.53333333 136.53333333 136.53333333s136.53333333-61.12 136.53333333-136.53333333c0-4.69333333-0.21333333-9.38666667-0.74666666-13.97333333-0.42666667-4.58666667-1.17333333-9.06666667-2.02666667-13.54666667s-2.02666667-8.85333333-3.41333333-13.12c-0.64-2.13333333-1.38666667-4.26666667-2.13333334-6.29333333-0.74666667-2.13333333-1.6-4.16-2.45333333-6.18666667-3.41333333-8.21333333-7.68-15.89333333-12.58666667-23.14666667-2.45333333-3.62666667-5.12-7.14666667-7.89333333-10.56-1.38666667-1.70666667-2.77333333-3.30666667-4.26666667-4.90666666s-2.98666667-3.2-4.48-4.69333334c-0.74666667-0.74666667-1.6-1.49333333-2.34666666-2.24-1.38666667-1.38666667-2.88-2.66666667-4.37333334-3.94666666l106.45333334-307.2c2.77333333 0.21333333 5.65333333 0.32 8.42666666 0.32 16.53333333 0 32.32-2.88 46.93333334-8.32 1.81333333-0.64 3.52-1.38666667 5.33333333-2.13333334l162.13333333 164.8c-0.42666667 1.17333333-0.85333333 2.24-1.28 3.41333334-0.74666667 2.13333333-1.49333333 4.16-2.13333333 6.29333333-1.28 4.26666667-2.45333333 8.64-3.41333333 13.12s-1.6 8.96-2.02666667 13.54666667c-0.42666667 4.58666667-0.74666667 9.28-0.74666667 13.97333333 0 75.41333333 61.12 136.53333333 136.53333334 136.53333333s136.53333333-61.12 136.53333333-136.53333333c0-4.69333333-0.21333333-9.38666667-0.74666667-13.97333333-0.42666667-4.58666667-1.17333333-9.06666667-2.02666666-13.54666667s-2.02666667-8.85333333-3.41333334-13.12c-0.64-2.13333333-1.38666667-4.26666667-2.13333333-6.29333333-0.74666667-2.13333333-1.6-4.16-2.45333333-6.18666667-3.41333333-8.21333333-7.68-15.89333333-12.58666667-23.14666667-2.45333333-3.62666667-5.12-7.14666667-7.89333333-10.56-1.06666667-1.38666667-2.24-2.66666667-3.41333334-3.94666666l109.97333334-318.93333334c1.17333333-0.10666667 2.24-0.10666667 3.41333333-0.21333333 5.76-0.42666667 11.41333333-1.28 16.96-2.34666667 3.30666667-0.64 6.61333333-1.49333333 9.81333333-2.45333333 18.34666667-5.22666667 35.09333333-14.18666667 49.49333334-26.02666667 0.85333333-0.74666667 1.70666667-1.38666667 2.45333333-2.13333333 4.90666667-4.26666667 9.6-8.96 13.86666667-13.86666667 0.74666667-0.85333333 1.38666667-1.70666667 2.13333333-2.45333333 11.84-14.29333333 20.8-31.14666667 26.02666667-49.49333333 0.96-3.2 1.70666667-6.50666667 2.45333333-9.81333334 1.17333333-5.54666667 1.92-11.2 2.34666667-16.96 0.21333333-3.52 0.42666667-6.93333333 0.42666666-10.45333333 0.10666667-2.45333333 0-4.8-0.10666666-7.14666667z" ></path></symbol><symbol id="icon-human-decision" viewBox="0 0 1024 1024"><path d="M519.5 594.47733333c-4.1 10.399-6.1 21.398-6.1 32.197 0 23.198 8.899 46.395 26.497 64.294l29.897 29.997 1.7 1.4c17.398 16.798 39.996 24.997 62.494 24.997 22.998 0 46.396-8.7 63.794-26.397h0.2l176.883-176.983 1.6-1.5c16.698-17.598 24.797-40.196 24.797-62.794 0-23.197-8.8-46.195-26.397-63.794h0.1l0.1-0.4-29.898-29.797c-17.598-17.498-40.796-26.297-64.293-26.297-11 0-21.998 1.9-32.497 5.9L557.696 174.41733333c4.2-10.399 6.099-21.498 6.099-32.497 0-23.198-9-46.395-26.697-64.293L507.2 47.83033333C489.602 30.23333333 466.404 21.33333333 443.107 21.33333333c-23.198 0-46.696 8.9-64.294 26.497L201.93 224.81333333l-1.5 1.5c-16.398 17.698-24.797 40.296-24.797 62.494 0 23.398 8.799 46.595 26.397 64.394l29.897 29.897 1.7 1.4c17.598 16.898 40.096 25.097 62.494 25.097 10.999 0 21.898-2.2 32.497-6l18.898 18.999L31.546 738.86333333C10.55 759.86133333 0.05 787.45833333 0.05 814.95533333c0 27.798 10.499 55.495 31.497 76.393 21.198 21.098 48.795 31.597 76.392 31.597 27.698 0 55.195-10.499 76.293-31.597l315.97-316.07 19.297 19.199zM959.956 981.33933333H512c-35.197 0-63.994-28.797-63.994-63.994 0-35.196 28.797-63.993 63.994-63.993h447.956c35.197 0 63.994 28.797 63.994 63.993 0 35.197-28.797 63.994-63.994 63.994z" ></path></symbol><symbol id="icon-human-task" viewBox="0 0 1024 1024"><path d="M924.33066667 123.33511111H776.87466667v163.84h-546.13333334v-163.84H99.66933333c-19.11466667 0-32.768 19.11466667-32.768 38.22933334v813.73866666c0 21.84533333 16.384 38.22933333 35.49866667 38.22933334h816.46933333c19.11466667 0 35.49866667-16.384 35.49866667-38.22933334V161.56444445c0-21.84533333-16.384-38.22933333-35.49866667-38.22933334h5.46133334zM790.528 445.55377778L471.04 838.76977778c2.73066667 5.46133333-5.46133333 5.46133333-10.92266667 2.73066667l-232.10666666-191.14666667c-5.46133333-2.73066667-5.46133333-10.92266667-2.73066667-16.384l38.22933333-49.152c2.73066667-5.46133333 10.92266667-5.46133333 16.384-2.73066667l174.76266667 147.456 273.06666667-338.60266666c2.73066667-8.192 10.92266667-8.192 16.384-2.73066667l43.69066666 38.22933333c8.192 2.73066667 10.92266667 8.192 2.73066667 19.11466667zM643.072 74.18311111V41.41511111c0-30.03733333-27.30666667-49.152-57.344-49.152H419.15733333c-30.03733333 0-57.344 19.11466667-57.344 49.152v32.768h-65.536v163.84h412.33066667v-163.84h-65.536z m-139.264 98.304c-32.768 0-60.07466667-27.30666667-60.07466667-60.07466666s27.30666667-60.07466667 60.07466667-60.07466667 60.07466667 27.30666667 60.07466667 60.07466667c0 38.22933333-27.30666667 60.07466667-60.07466667 60.07466666z m0 0" ></path></symbol><symbol id="icon-decision" viewBox="0 0 1024 1024"><path d="M580.175027 28.57919l414.065896 414.065896a97.58526 97.58526 0 0 1 0 138.00065l-414.065896 414.065896a97.58526 97.58526 0 0 1-138.000649 0l-414.065897-414.065896a97.58526 97.58526 0 0 1 0-138.00065l414.065897-414.065896a97.58526 97.58526 0 0 1 138.000649 0z" ></path></symbol><symbol id="icon-end" viewBox="0 0 1024 1024"><path d="M512 25.6C243.2 25.6 25.6 243.2 25.6 512S243.2 998.4 512 998.4 998.4 780.8 998.4 512 780.8 25.6 512 25.6z m162.304 615.936c0 17.92-14.336 32.256-32.256 32.256H382.464c-17.92 0-32.256-14.336-32.256-32.256V381.952c0-17.92 14.336-32.256 32.256-32.256h259.584c17.92 0 32.256 14.336 32.256 32.256v259.584z m0 0" ></path></symbol><symbol id="icon-start" viewBox="0 0 1024 1024"><path d="M960.62577778 322.33244445c-24.46222222-57.91288889-59.61955555-110.02311111-104.33422223-154.73777778s-96.82488889-79.872-154.73777777-104.33422222C641.59288889 37.888 577.87733333 25.03111111 512.11377778 25.03111111c-65.64977778 0-129.47911111 12.85688889-189.44 38.22933334-57.91288889 24.46222222-110.02311111 59.61955555-154.73777778 104.33422222s-79.872 96.82488889-104.33422222 154.73777778C38.22933333 382.29333333 25.37244445 446.00888889 25.37244445 511.77244445c0 65.64977778 12.85688889 129.47911111 38.22933333 189.44 24.46222222 57.91288889 59.61955555 110.02311111 104.33422222 154.73777777s96.82488889 79.872 154.73777778 104.33422223c59.96088889 25.37244445 123.67644445 38.22933333 189.44 38.22933333 65.64977778 0 129.47911111-12.97066667 189.44-38.22933333 57.91288889-24.46222222 110.02311111-59.61955555 154.73777777-104.33422223s79.872-96.82488889 104.33422223-154.73777777c25.37244445-59.96088889 38.22933333-123.67644445 38.22933333-189.44 0-65.64977778-12.85688889-129.47911111-38.22933333-189.44z m-236.65777778 233.13066666L464.09955555 755.14311111C422.11555555 797.01333333 350.43555555 767.31733333 350.43555555 708.03911111V308.79288889c0-59.27822222 71.68-88.97422222 113.664-47.104l259.86844445 199.56622222c26.05511111 26.05511111 26.05511111 68.15288889 0 94.208z" ></path></symbol><symbol id="icon-virtual-human-task" viewBox="0 0 1496 1024"><path d="M864 1024H160C70.4 1024 0 953.6 0 864V160C0 70.4 70.4 0 160 0h704c89.6 0 160 70.4 160 160v704c0 89.6-70.4 160-160 160zM160 64c-51.2 0-96 44.8-96 96v704c0 51.2 44.8 96 96 96h704c51.2 0 96-44.8 96-96V160c0-51.2-44.8-96-96-96H160z" fill="#C9CED6" ></path></symbol></svg>',t=(c=document.getElementsByTagName("script"))[c.length-1].getAttribute("data-injectcss");if(t&&!s.__iconfont__svg__cssinject__){s.__iconfont__svg__cssinject__=!0;try{document.write("<style>.svgfont {display: inline-block;width: 1em;height: 1em;fill: currentColor;vertical-align: -0.1em;font-size:16px;}</style>")}catch(c){console&&console.log(c)}}!function(c){if(document.addEventListener)if(~["complete","loaded","interactive"].indexOf(document.readyState))setTimeout(c,0);else{var t=function(){document.removeEventListener("DOMContentLoaded",t,!1),c()};document.addEventListener("DOMContentLoaded",t,!1)}else document.attachEvent&&(l=c,e=s.document,o=!1,a=function(){o||(o=!0,l())},(i=function(){try{e.documentElement.doScroll("left")}catch(c){return void setTimeout(i,50)}a()})(),e.onreadystatechange=function(){"complete"==e.readyState&&(e.onreadystatechange=null,a())});var l,e,o,a,i}(function(){var c,t;(c=document.createElement("div")).innerHTML=l,l=null,(t=c.getElementsByTagName("svg")[0])&&(t.setAttribute("aria-hidden","true"),t.style.position="absolute",t.style.width=0,t.style.height=0,t.style.overflow="hidden",function(c,t){t.firstChild?function(c,t){t.parentNode.insertBefore(c,t)}(c,t.firstChild):t.appendChild(c)}(t,document.body))})}(window);