workflow-editor 0.9.67 → 0.9.68-boe1
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.
- package/lib/workflow-editor.css +1 -1
- package/lib/workflow-editor.umd.min.js +8 -8
- package/package.json +2 -2
- package/packages/plugins/formValidatorUtil.js +6 -1
- package/packages/workflow-editor/src/json-object-templates/auto-task.js +70 -0
- package/packages/workflow-editor/src/json-object-templates/copy-task.js +5 -0
- package/packages/workflow-editor/src/json-object-templates/subprocess.js +2 -1
- package/packages/workflow-editor/src/main/canvas.vue +5 -1
- package/packages/workflow-editor/src/main/wf-history-canvas.vue +3 -1
- package/packages/workflow-editor/src/process-json.js +2 -1
- package/packages/workflow-editor/src/properties-editors/auto-task/basic-properties.vue +81 -0
- package/packages/workflow-editor/src/properties-editors/auto-task/permission-settings.vue +155 -0
- package/packages/workflow-editor/src/properties-editors/auto-task.vue +73 -0
- package/packages/workflow-editor/src/properties-editors/common/common-notice-tool.vue +30 -10
- package/packages/workflow-editor/src/properties-editors/common/form-fields-utils.js +1 -1
- package/packages/workflow-editor/src/properties-editors/common/notice-reminder.vue +72 -0
- package/packages/workflow-editor/src/properties-editors/common/notice.vue +4 -1
- package/packages/workflow-editor/src/properties-editors/common/reminder.vue +8 -2
- package/packages/workflow-editor/src/properties-editors/common/transactor-settings.vue +22 -5
- package/packages/workflow-editor/src/properties-editors/copy-task.vue +15 -1
- package/packages/workflow-editor/src/properties-editors/human-task/basic-properties.vue +5 -1
- package/packages/workflow-editor/src/properties-editors/human-task.vue +10 -4
- package/packages/workflow-editor/src/properties-editors/process/basic-properties.vue +2 -2
- package/packages/workflow-editor/src/properties-editors/process.vue +10 -4
- package/packages/workflow-editor/src/properties-editors/subprocess/basic-properties.vue +18 -6
- package/packages/workflow-editor/src/taches/auto-task.vue +99 -0
- package/packages/workflow-editor/src/util.js +32 -36
- package/packages/workflow-editor/src/workflow-editor.vue +1 -0
- package/src/i18n/langs/cn.js +17 -7
- package/src/i18n/langs/en.js +17 -7
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
/>
|
|
7
7
|
</el-form-item>
|
|
8
8
|
<div v-if="showReminder">
|
|
9
|
-
<common-notice-tool v-model="model.remindType" :label="$t('workflowEditor.task.urgingMethod')" />
|
|
9
|
+
<common-notice-tool v-model="model.remindType" :label="$t('workflowEditor.task.urgingMethod')" :custom-msg="model.reminderCustomMsg" @input-msg="setReminderCustomMsg" />
|
|
10
10
|
<el-form-item v-if="model.remindType && model.remindType.length > 0 && model.remindType.indexOf('mail') !== -1" :label="$t('workflowEditor.task.selectMailTemplate')">
|
|
11
11
|
<select-mail-templates v-model="model.noticeMailTemplateCode" @set-value="setMailTemplateCode" />
|
|
12
12
|
</el-form-item>
|
|
@@ -34,7 +34,7 @@
|
|
|
34
34
|
<el-form-item :label="$t('workflowEditor.task.timesOfUrging')" size="mini">
|
|
35
35
|
<el-input-number v-model="model.remindTimes" controls-position="right" :min="1" :max="99" style="width:90px" />
|
|
36
36
|
</el-form-item>
|
|
37
|
-
<common-notice-tool v-model="model.noticeType" :label="$t('workflowEditor.common.notificationMethod')" />
|
|
37
|
+
<common-notice-tool v-model="model.noticeType" :label="$t('workflowEditor.common.notificationMethod')" :custom-msg="model.noticeCustomMsg" @input-msg="setNoticeCustomMsg" />
|
|
38
38
|
<el-form-item :label="$t('workflowEditor.common.notifyPersonnel')" style="margin-bottom:5px">
|
|
39
39
|
<el-checkbox v-model="model.containTransferUser">
|
|
40
40
|
{{ $t('workflowEditor.task.includingHandoverPersonnel') }}
|
|
@@ -168,6 +168,12 @@ export default {
|
|
|
168
168
|
},
|
|
169
169
|
selectData(selection, row) {
|
|
170
170
|
this.multiSelectData = selection
|
|
171
|
+
},
|
|
172
|
+
setReminderCustomMsg(msg) {
|
|
173
|
+
this.model.reminderCustomMsg = msg
|
|
174
|
+
},
|
|
175
|
+
setNoticeCustomMsg(msg) {
|
|
176
|
+
this.model.noticeCustomMsg = msg
|
|
171
177
|
}
|
|
172
178
|
}
|
|
173
179
|
}
|
|
@@ -11,6 +11,9 @@
|
|
|
11
11
|
<el-radio label="byField">
|
|
12
12
|
{{ $t('workflowEditor.process.personSpecifiedInFormField') }}
|
|
13
13
|
</el-radio>
|
|
14
|
+
<el-radio label="byDeptField">
|
|
15
|
+
{{ $t('workflowEditor.process.deptSpecifiedInFormField') }}
|
|
16
|
+
</el-radio>
|
|
14
17
|
<el-radio label="byCondition">
|
|
15
18
|
{{ $t('workflowEditor.process.filterByCriteria') }}
|
|
16
19
|
</el-radio>
|
|
@@ -19,7 +22,7 @@
|
|
|
19
22
|
<common-user-condition v-model="formModel.userCondition" used-in="transactor" />
|
|
20
23
|
</div>
|
|
21
24
|
<el-form-item
|
|
22
|
-
v-if="formModel.transactor==='byField'"
|
|
25
|
+
v-if="formModel.transactor==='byField' || formModel.transactor==='byDeptField' "
|
|
23
26
|
prop="selectedField"
|
|
24
27
|
required
|
|
25
28
|
:label="$t('workflowEditor.process.fieldName')"
|
|
@@ -28,7 +31,7 @@
|
|
|
28
31
|
<el-input :value="formatLabel(formModel.selectedField)" @focus="showFormFields=true" />
|
|
29
32
|
<form-fields v-if="showFormFields" @close="setField" />
|
|
30
33
|
</el-form-item>
|
|
31
|
-
<div v-if="formModel.transactor==='byCondition' || formModel.transactor==='byField'">
|
|
34
|
+
<div v-if="formModel.transactor==='byCondition' || formModel.transactor==='byField' || formModel.transactor==='byDeptField'">
|
|
32
35
|
<el-form-item :label="$t('workflowEditor.process.additionalConditions')">
|
|
33
36
|
<el-checkbox v-model="formModel.additionalCondition.onlyInCreatorDepartment">
|
|
34
37
|
{{ $t('workflowEditor.process.handlingYyThePersonnelOfTheDepartmentOfTheInitiator') }}
|
|
@@ -45,6 +48,9 @@
|
|
|
45
48
|
<el-checkbox v-if="isSubprocess" v-model="formModel.additionalCondition.generateOneInstanceFromDept">
|
|
46
49
|
{{ $t('workflowEditor.process.generateOneInstanceFromDept') }}
|
|
47
50
|
</el-checkbox>
|
|
51
|
+
<!-- <el-checkbox v-model="formModel.additionalCondition.generateForParttimeDept">
|
|
52
|
+
{{ $t('workflowEditor.process.generateForParttimeDept') }}
|
|
53
|
+
</el-checkbox> -->
|
|
48
54
|
</el-form-item>
|
|
49
55
|
<div v-if="formModel.additionalCondition.selectOneFromMultiple">
|
|
50
56
|
<el-form-item :label="$t('workflowEditor.process.selectionMethod')">
|
|
@@ -150,9 +156,12 @@ export default {
|
|
|
150
156
|
} else {
|
|
151
157
|
if (userCondition === '${instanceCreator}' || userCondition === '${previousTransactorAssignment}') {
|
|
152
158
|
formModel.transactor = userCondition
|
|
153
|
-
} else if (userCondition.indexOf('${field[') >= 0) {
|
|
159
|
+
} else if (userCondition.startsWith('${field[') && userCondition.indexOf('${field[') >= 0 && userCondition.indexOf('"selectedField": "${field[') < 2) {
|
|
154
160
|
formModel.transactor = 'byField'
|
|
155
161
|
formModel.selectedField = userCondition
|
|
162
|
+
} else if (userCondition.startsWith('${deptField[')) {
|
|
163
|
+
formModel.transactor = 'byDeptField'
|
|
164
|
+
formModel.selectedField = userCondition
|
|
156
165
|
} else {
|
|
157
166
|
formModel.transactor = 'byCondition'
|
|
158
167
|
formModel.userCondition = userCondition
|
|
@@ -209,6 +218,9 @@ export default {
|
|
|
209
218
|
} else {
|
|
210
219
|
this.model.url = ''
|
|
211
220
|
}
|
|
221
|
+
// if (val === 'byDeptField') {
|
|
222
|
+
// this.model.userCondition = this.formModel.selectedField
|
|
223
|
+
// }
|
|
212
224
|
|
|
213
225
|
// 不是按条件筛选的时候,需要清空xml中additionalCondition
|
|
214
226
|
if (val === 'byCondition') {
|
|
@@ -223,8 +235,13 @@ export default {
|
|
|
223
235
|
},
|
|
224
236
|
setField(name) {
|
|
225
237
|
if (name !== undefined) {
|
|
226
|
-
this.formModel.
|
|
227
|
-
|
|
238
|
+
if (this.formModel.transactor === 'byDeptField') {
|
|
239
|
+
this.formModel.selectedField = '${deptField[' + name + ']}'
|
|
240
|
+
this.model.userCondition = this.formModel.selectedField
|
|
241
|
+
} else {
|
|
242
|
+
this.formModel.selectedField = '${field[' + name + ']}'
|
|
243
|
+
this.model.userCondition = this.formModel.selectedField
|
|
244
|
+
}
|
|
228
245
|
}
|
|
229
246
|
this.showFormFields = false
|
|
230
247
|
}
|
|
@@ -22,6 +22,13 @@
|
|
|
22
22
|
<el-tab-pane :label="$t('workflowEditor.task.settingOfHandler')" name="transactors">
|
|
23
23
|
<transactor-settings :model="model.ref.transactorSettings" used-in="CopyTask" />
|
|
24
24
|
</el-tab-pane>
|
|
25
|
+
<el-tab-pane :label="$t('workflowEditor.task.reminderSettings')" name="reminders">
|
|
26
|
+
<!-- <reminder v-model="model.ref.reminder" /> -->
|
|
27
|
+
<notice-reminder :reminder-value="model.ref.reminder" :task-notice-value="model.ref.taskNotice" />
|
|
28
|
+
</el-tab-pane>
|
|
29
|
+
<el-tab-pane :label="$t('workflowEditor.task.eventProcessing')" name="events">
|
|
30
|
+
<events v-model="model.ref.events" />
|
|
31
|
+
</el-tab-pane>
|
|
25
32
|
<el-tab-pane :label="$t('workflowEditor.task.permissionSettings')" name="permissions">
|
|
26
33
|
<permission-settings v-model="model.ref.permissionSettings" />
|
|
27
34
|
</el-tab-pane>
|
|
@@ -32,12 +39,16 @@
|
|
|
32
39
|
import BasicProperties from './copy-task/basic-properties'
|
|
33
40
|
import PermissionSettings from './copy-task/permission-settings'
|
|
34
41
|
import TransactorSettings from './common/transactor-settings'
|
|
42
|
+
import NoticeReminder from './common/notice-reminder.vue'
|
|
43
|
+
import Events from './human-task/events.vue'
|
|
35
44
|
export default {
|
|
36
45
|
name: 'HumanTaskPropertiesEditor',
|
|
37
46
|
components: {
|
|
38
47
|
BasicProperties,
|
|
39
48
|
TransactorSettings,
|
|
40
|
-
PermissionSettings
|
|
49
|
+
PermissionSettings,
|
|
50
|
+
NoticeReminder,
|
|
51
|
+
Events
|
|
41
52
|
},
|
|
42
53
|
props: {
|
|
43
54
|
model: {
|
|
@@ -47,6 +58,9 @@ export default {
|
|
|
47
58
|
},
|
|
48
59
|
data() {
|
|
49
60
|
console.log(this.model)
|
|
61
|
+
if (!this.model.ref.taskNotice) {
|
|
62
|
+
this.model.ref.taskNotice = {}
|
|
63
|
+
}
|
|
50
64
|
return {
|
|
51
65
|
activeTab: 'basicProperties'
|
|
52
66
|
}
|
|
@@ -4,7 +4,11 @@
|
|
|
4
4
|
<el-col :span="12">
|
|
5
5
|
<el-form-item :label="$t('workflowEditor.task.name')">
|
|
6
6
|
<!-- <el-input v-model="formModel.name" /> -->
|
|
7
|
-
<i18n-input
|
|
7
|
+
<i18n-input
|
|
8
|
+
v-model="formModel.name"
|
|
9
|
+
:i18n-key="tache.i18nKey?tache.i18nKey:'name.'+formModel.id"
|
|
10
|
+
@setI18n="setI18nValue"
|
|
11
|
+
/>
|
|
8
12
|
</el-form-item>
|
|
9
13
|
</el-col>
|
|
10
14
|
<el-col :span="12">
|
|
@@ -29,7 +29,8 @@
|
|
|
29
29
|
<auto-filled-fields v-model="model.ref.autoFilledFields" />
|
|
30
30
|
</el-tab-pane>
|
|
31
31
|
<el-tab-pane :label="$t('workflowEditor.task.reminderSettings')" name="reminders">
|
|
32
|
-
<reminder v-model="model.ref.reminder" />
|
|
32
|
+
<!-- <reminder v-model="model.ref.reminder" /> -->
|
|
33
|
+
<notice-reminder :reminder-value="model.ref.reminder" :task-notice-value="model.ref.taskNotice" />
|
|
33
34
|
</el-tab-pane>
|
|
34
35
|
<el-tab-pane :label="$t('workflowEditor.task.eventProcessing')" name="events">
|
|
35
36
|
<events v-model="model.ref.events" />
|
|
@@ -46,9 +47,10 @@ import BasicProperties from './human-task/basic-properties'
|
|
|
46
47
|
import PermissionSettings from './human-task/permission-settings'
|
|
47
48
|
import TransactorSettings from './common/transactor-settings'
|
|
48
49
|
import AutoFilledFields from './common/auto-filled-fields'
|
|
49
|
-
import Reminder from './common/reminder'
|
|
50
|
+
// import Reminder from './common/reminder'
|
|
50
51
|
import Variables from './common/variables'
|
|
51
52
|
import Events from './human-task/events'
|
|
53
|
+
import NoticeReminder from './common/notice-reminder.vue'
|
|
52
54
|
export default {
|
|
53
55
|
name: 'HumanTaskPropertiesEditor',
|
|
54
56
|
components: {
|
|
@@ -56,9 +58,10 @@ export default {
|
|
|
56
58
|
TransactorSettings,
|
|
57
59
|
PermissionSettings,
|
|
58
60
|
AutoFilledFields,
|
|
59
|
-
Reminder,
|
|
61
|
+
// Reminder,
|
|
60
62
|
Events,
|
|
61
|
-
Variables
|
|
63
|
+
Variables,
|
|
64
|
+
NoticeReminder
|
|
62
65
|
|
|
63
66
|
},
|
|
64
67
|
props: {
|
|
@@ -69,6 +72,9 @@ export default {
|
|
|
69
72
|
},
|
|
70
73
|
data() {
|
|
71
74
|
console.log(this.model)
|
|
75
|
+
if (!this.model.ref.taskNotice) {
|
|
76
|
+
this.model.ref.taskNotice = {}
|
|
77
|
+
}
|
|
72
78
|
return {
|
|
73
79
|
activeTab: 'basicProperties'
|
|
74
80
|
}
|
|
@@ -67,8 +67,8 @@
|
|
|
67
67
|
<el-form-item :label="$t('workflowEditor.process.affiliatedBranch')">
|
|
68
68
|
<el-select v-model="model.branchCode" clearable :placeholder="$t('workflowEditorMessage.pleaseSelect')">
|
|
69
69
|
<el-option
|
|
70
|
-
v-for="item in allBranches"
|
|
71
|
-
:key="item.code"
|
|
70
|
+
v-for="(item, index) in allBranches"
|
|
71
|
+
:key="item.code+'-'+index"
|
|
72
72
|
:label="item.name"
|
|
73
73
|
:value="item.code"
|
|
74
74
|
/>
|
|
@@ -26,7 +26,8 @@
|
|
|
26
26
|
<notice-settings v-model="model.properties.inform" />
|
|
27
27
|
</el-tab-pane>
|
|
28
28
|
<el-tab-pane :label="$t('workflowEditor.process.reminderSettings')" name="reminders">
|
|
29
|
-
<reminder v-model="model.properties.reminder" />
|
|
29
|
+
<!-- <reminder v-model="model.properties.reminder" /> -->
|
|
30
|
+
<notice-reminder :reminder-value="model.properties.reminder" :task-notice-value="model.properties.taskNotice" />
|
|
30
31
|
</el-tab-pane>
|
|
31
32
|
<el-tab-pane :label="$t('workflowEditor.process.parameterSsetting')" name="parameterSettings">
|
|
32
33
|
<parameter-settings :model="model.properties.parameterSettings" />
|
|
@@ -44,21 +45,23 @@
|
|
|
44
45
|
import convert from 'xml-js'
|
|
45
46
|
import BasicProperties from './process/basic-properties'
|
|
46
47
|
import PermissionSettings from './process/permission-settings'
|
|
47
|
-
import Reminder from './common/reminder'
|
|
48
|
+
// import Reminder from './common/reminder'
|
|
48
49
|
import ParameterSettings from './process/parameter-settings'
|
|
49
50
|
import Events from './process/events'
|
|
50
51
|
import Variables from './common/variables'
|
|
51
52
|
import NoticeSettings from './process/notice-settings.vue'
|
|
53
|
+
import NoticeReminder from './common/notice-reminder.vue'
|
|
52
54
|
export default {
|
|
53
55
|
name: 'ProcessPropertiesEditor',
|
|
54
56
|
components: {
|
|
55
57
|
BasicProperties,
|
|
56
58
|
PermissionSettings,
|
|
57
|
-
Reminder,
|
|
59
|
+
// Reminder,
|
|
58
60
|
ParameterSettings,
|
|
59
61
|
Events,
|
|
60
62
|
Variables,
|
|
61
|
-
NoticeSettings
|
|
63
|
+
NoticeSettings,
|
|
64
|
+
NoticeReminder
|
|
62
65
|
},
|
|
63
66
|
props: {
|
|
64
67
|
model: {
|
|
@@ -70,6 +73,9 @@ export default {
|
|
|
70
73
|
// if (this.model.properties.inform === undefined) {
|
|
71
74
|
// this.model.properties.inform = {}
|
|
72
75
|
// }
|
|
76
|
+
if (this.model.properties.taskNotice === undefined) {
|
|
77
|
+
this.model.properties.taskNotice = {}
|
|
78
|
+
}
|
|
73
79
|
return {
|
|
74
80
|
activeTab: 'basicProperties'
|
|
75
81
|
}
|
|
@@ -4,7 +4,11 @@
|
|
|
4
4
|
<el-col :span="12">
|
|
5
5
|
<el-form-item :label="$t('workflowEditor.process.name')" label-width="50px">
|
|
6
6
|
<!-- <el-input v-model="formModel.name" /> -->
|
|
7
|
-
<i18n-input
|
|
7
|
+
<i18n-input
|
|
8
|
+
v-model="formModel.name"
|
|
9
|
+
:i18n-key="formModel.tache.i18nKey?formModel.tache.i18nKey:'name.'+formModel.id"
|
|
10
|
+
@setI18n="setI18nValue"
|
|
11
|
+
/>
|
|
8
12
|
</el-form-item>
|
|
9
13
|
</el-col>
|
|
10
14
|
<el-col :span="12">
|
|
@@ -13,6 +17,9 @@
|
|
|
13
17
|
</el-form-item>
|
|
14
18
|
</el-col>
|
|
15
19
|
</el-row>
|
|
20
|
+
<el-form-item :label="$t('workflowEditor.task.taskTitle')">
|
|
21
|
+
<task-title v-model="tache.taskTitle" />
|
|
22
|
+
</el-form-item>
|
|
16
23
|
<el-form-item :label="$t('workflowEditor.process.subprocess')" label-width="60px">
|
|
17
24
|
<el-cascader
|
|
18
25
|
v-model="selectedProcess"
|
|
@@ -56,11 +63,13 @@ import FieldMappings from './field-mappings'
|
|
|
56
63
|
import processService from '../../process-service.js'
|
|
57
64
|
import { validateTacheCode } from '../../util'
|
|
58
65
|
import i18nInput from '../common/i18n-input'
|
|
66
|
+
import TaskTitle from '../common/task-title'
|
|
59
67
|
export default {
|
|
60
68
|
name: 'BasicProperties',
|
|
61
69
|
components: {
|
|
62
70
|
FieldMappings,
|
|
63
|
-
i18nInput
|
|
71
|
+
i18nInput,
|
|
72
|
+
TaskTitle
|
|
64
73
|
},
|
|
65
74
|
props: {
|
|
66
75
|
model: {
|
|
@@ -89,6 +98,9 @@ export default {
|
|
|
89
98
|
}
|
|
90
99
|
},
|
|
91
100
|
computed: {
|
|
101
|
+
tache() {
|
|
102
|
+
return this.model
|
|
103
|
+
}
|
|
92
104
|
},
|
|
93
105
|
created() {
|
|
94
106
|
this.listAllProcesses().then(() => {
|
|
@@ -103,10 +115,10 @@ export default {
|
|
|
103
115
|
}
|
|
104
116
|
},
|
|
105
117
|
mounted() {
|
|
106
|
-
//
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
118
|
+
// 支持.snyc修饰符的写法
|
|
119
|
+
this.$watch('formModel.name', function(newVal, oldVal) {
|
|
120
|
+
this.$emit('update:name', newVal)
|
|
121
|
+
})
|
|
110
122
|
},
|
|
111
123
|
methods: {
|
|
112
124
|
fetchSubprocessFormFields() {
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<g
|
|
3
|
+
@mousedown.stop="startDrag"
|
|
4
|
+
@mouseup="endDrag"
|
|
5
|
+
@mouseenter="showJoints"
|
|
6
|
+
@mouseleave="hideJoints"
|
|
7
|
+
@dblclick.stop="setPropertiesEditorFor('AutoTask')"
|
|
8
|
+
>
|
|
9
|
+
<rect
|
|
10
|
+
ref="tache"
|
|
11
|
+
:width="model.width"
|
|
12
|
+
:height="model.height"
|
|
13
|
+
:class="{'draggable':true,'task-tache':true, 'selected':model.isSelected}"
|
|
14
|
+
:x="model.x"
|
|
15
|
+
:y="model.y"
|
|
16
|
+
rx="6"
|
|
17
|
+
ry="6"
|
|
18
|
+
/>
|
|
19
|
+
<text
|
|
20
|
+
:x="text.x"
|
|
21
|
+
:y="text.y"
|
|
22
|
+
text-anchor="middle"
|
|
23
|
+
class="draggable"
|
|
24
|
+
>
|
|
25
|
+
{{ name }}
|
|
26
|
+
</text>
|
|
27
|
+
<joint
|
|
28
|
+
v-for="position in jointPoints"
|
|
29
|
+
:key="position"
|
|
30
|
+
:parent="model"
|
|
31
|
+
:position="position"
|
|
32
|
+
/>
|
|
33
|
+
<tache-resizer
|
|
34
|
+
v-for="position in resizers"
|
|
35
|
+
:key="position"
|
|
36
|
+
:owner="model"
|
|
37
|
+
:position="position"
|
|
38
|
+
/>
|
|
39
|
+
</g>
|
|
40
|
+
</template>
|
|
41
|
+
<script>
|
|
42
|
+
import { mapGetters, mapMutations } from 'vuex'
|
|
43
|
+
import Joint from './joint'
|
|
44
|
+
import TacheResizer from './tache-resizer'
|
|
45
|
+
import tacheMethods from './common-methods'
|
|
46
|
+
import { watchShowName } from '../util'
|
|
47
|
+
export default {
|
|
48
|
+
name: 'AutoTask',
|
|
49
|
+
components: {
|
|
50
|
+
Joint,
|
|
51
|
+
TacheResizer
|
|
52
|
+
},
|
|
53
|
+
props: {
|
|
54
|
+
model: {
|
|
55
|
+
type: Object,
|
|
56
|
+
default: null
|
|
57
|
+
}
|
|
58
|
+
},
|
|
59
|
+
data() {
|
|
60
|
+
return {
|
|
61
|
+
// 一个tache有上右下左四个连接点,这四个连接点的坐标根据tache的位置和大小计算出来
|
|
62
|
+
jointPoints: [],
|
|
63
|
+
resizers: ['NW', 'NE', 'SW', 'SE'],
|
|
64
|
+
name: this.model.name
|
|
65
|
+
}
|
|
66
|
+
},
|
|
67
|
+
computed: {
|
|
68
|
+
...mapGetters('wfEditor', [
|
|
69
|
+
'selectedTaches',
|
|
70
|
+
'processI18n'
|
|
71
|
+
]),
|
|
72
|
+
text() {
|
|
73
|
+
return {
|
|
74
|
+
x: this.model.x + this.model.width / 2,
|
|
75
|
+
y: this.model.y + this.model.height / 2
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
},
|
|
79
|
+
created() {
|
|
80
|
+
this.name = watchShowName(this, this.name)
|
|
81
|
+
},
|
|
82
|
+
mounted() {
|
|
83
|
+
this.$watch('model.name', function(newVal) {
|
|
84
|
+
this.name = watchShowName(this, newVal)
|
|
85
|
+
})
|
|
86
|
+
},
|
|
87
|
+
methods: {
|
|
88
|
+
...mapMutations('wfEditor', [
|
|
89
|
+
'setPropertiesEditorFor',
|
|
90
|
+
'setContextMenuVisible'
|
|
91
|
+
]),
|
|
92
|
+
...tacheMethods
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
</script>
|
|
96
|
+
<style>
|
|
97
|
+
|
|
98
|
+
</style>
|
|
99
|
+
|
|
@@ -1,5 +1,18 @@
|
|
|
1
1
|
|
|
2
2
|
import { getLanguageWithLocale } from 'imatrix-ui/src/utils/util'
|
|
3
|
+
import i18n from '../../../src/i18n/i18n'
|
|
4
|
+
import newAutoTask from './json-object-templates/auto-task'
|
|
5
|
+
import newCopyTask from './json-object-templates/copy-task'
|
|
6
|
+
import newDecision from './json-object-templates/decision'
|
|
7
|
+
import newEnd from './json-object-templates/end'
|
|
8
|
+
import newFork from './json-object-templates/fork'
|
|
9
|
+
import newHumanDecision from './json-object-templates/human-decision'
|
|
10
|
+
import newHumanTask from './json-object-templates/human-task'
|
|
11
|
+
import newJoin from './json-object-templates/join'
|
|
12
|
+
import newProcess from './json-object-templates/process'
|
|
13
|
+
import newStart from './json-object-templates/start'
|
|
14
|
+
import newSubprocess from './json-object-templates/subprocess'
|
|
15
|
+
import newTransition from './json-object-templates/transition'
|
|
3
16
|
function getStore() {
|
|
4
17
|
return window.$store
|
|
5
18
|
}
|
|
@@ -92,6 +105,16 @@ export function getComponentList() {
|
|
|
92
105
|
height: 40,
|
|
93
106
|
color: '#0777D4'
|
|
94
107
|
},
|
|
108
|
+
{
|
|
109
|
+
name: 'AutoTask',
|
|
110
|
+
label: getI18n().t('workflowEditor.task.autoTask'),
|
|
111
|
+
icon: 'human-task',
|
|
112
|
+
type: '',
|
|
113
|
+
round: false,
|
|
114
|
+
width: 80,
|
|
115
|
+
height: 40,
|
|
116
|
+
color: '#0777D4'
|
|
117
|
+
},
|
|
95
118
|
{
|
|
96
119
|
name: 'End',
|
|
97
120
|
label: getI18n().t('workflowEditor.task.end'),
|
|
@@ -269,7 +292,7 @@ function clearAllSelectedComponents() {
|
|
|
269
292
|
*/
|
|
270
293
|
function removeTextProperty(obj) {
|
|
271
294
|
const keys = Object.getOwnPropertyNames(obj)
|
|
272
|
-
keys.forEach(function(key) {
|
|
295
|
+
keys.forEach(function (key) {
|
|
273
296
|
if (typeof obj[key] === 'object') {
|
|
274
297
|
if (obj[key]._text !== undefined) {
|
|
275
298
|
obj[key] = obj[key]._text
|
|
@@ -290,7 +313,7 @@ function removeTextProperty(obj) {
|
|
|
290
313
|
})
|
|
291
314
|
}
|
|
292
315
|
function generateTaches(type, arr) {
|
|
293
|
-
if (!arr)arr = []
|
|
316
|
+
if (!arr) arr = []
|
|
294
317
|
if (!Array.isArray(arr)) {
|
|
295
318
|
arr = [arr]
|
|
296
319
|
}
|
|
@@ -312,7 +335,7 @@ function generateTaches(type, arr) {
|
|
|
312
335
|
}
|
|
313
336
|
}
|
|
314
337
|
function generateTransitions(type, arr) {
|
|
315
|
-
if (!arr)arr = []
|
|
338
|
+
if (!arr) arr = []
|
|
316
339
|
if (!Array.isArray(arr)) {
|
|
317
340
|
arr = [arr]
|
|
318
341
|
}
|
|
@@ -361,6 +384,7 @@ function initializeProcessData(process) {
|
|
|
361
384
|
generateTaches('Subprocess', process.subprocess)
|
|
362
385
|
generateTaches('HumanDecision', process.humanDecision)
|
|
363
386
|
generateTaches('CopyTask', process.copyTask)
|
|
387
|
+
generateTaches('AutoTask', process.autoTask)
|
|
364
388
|
generateTaches('Start', process.start)
|
|
365
389
|
generateTaches('End', process.end)
|
|
366
390
|
generateTransitions('Transition', process.transition)
|
|
@@ -442,39 +466,9 @@ function watchShowName(vm, newVal) {
|
|
|
442
466
|
return showName
|
|
443
467
|
}
|
|
444
468
|
export {
|
|
445
|
-
getComponentInfo,
|
|
446
|
-
|
|
447
|
-
getMousePosition,
|
|
448
|
-
getClientMousePosition,
|
|
449
|
-
getMouseOffset,
|
|
450
|
-
getVirtualRegion,
|
|
451
|
-
getRealRegion,
|
|
452
|
-
startDragTache,
|
|
453
|
-
endDragTache,
|
|
454
|
-
clearAllSelectedComponents,
|
|
455
|
-
removeTextProperty,
|
|
456
|
-
initializeProcessData,
|
|
457
|
-
findOutgoingTransitionsByTacheId,
|
|
458
|
-
findIncomingTransitionsByTacheId,
|
|
459
|
-
findTacheById,
|
|
460
|
-
deepCopy,
|
|
461
|
-
updateTransitionsWhenTacheIdChanged,
|
|
462
|
-
validateTacheCode,
|
|
463
|
-
getI18n,
|
|
464
|
-
watchShowName
|
|
469
|
+
clearAllSelectedComponents, deepCopy, endDragTache, findIncomingTransitionsByTacheId, findOutgoingTransitionsByTacheId, findTacheById, getClientMousePosition, getComponentInfo, getI18n, getJoint, getMouseOffset, getMousePosition, getRealRegion, getVirtualRegion, initializeProcessData, removeTextProperty, startDragTache, updateTransitionsWhenTacheIdChanged,
|
|
470
|
+
validateTacheCode, watchShowName
|
|
465
471
|
}
|
|
466
|
-
import newProcess from './json-object-templates/process'
|
|
467
|
-
import newHumanTask from './json-object-templates/human-task'
|
|
468
|
-
import newDecision from './json-object-templates/decision'
|
|
469
|
-
import newStart from './json-object-templates/start'
|
|
470
|
-
import newEnd from './json-object-templates/end'
|
|
471
|
-
import newTransition from './json-object-templates/transition'
|
|
472
|
-
import newSubprocess from './json-object-templates/subprocess'
|
|
473
|
-
import newFork from './json-object-templates/fork'
|
|
474
|
-
import newJoin from './json-object-templates/join'
|
|
475
|
-
import newHumanDecision from './json-object-templates/human-decision'
|
|
476
|
-
import i18n from '../../../src/i18n/i18n'
|
|
477
|
-
import newCopyTask from './json-object-templates/copy-task'
|
|
478
472
|
|
|
479
473
|
const processTemplate = {
|
|
480
474
|
newProcess,
|
|
@@ -487,7 +481,9 @@ const processTemplate = {
|
|
|
487
481
|
newFork,
|
|
488
482
|
newJoin,
|
|
489
483
|
newHumanDecision,
|
|
490
|
-
newCopyTask
|
|
484
|
+
newCopyTask,
|
|
485
|
+
newAutoTask
|
|
491
486
|
}
|
|
492
487
|
|
|
493
488
|
export { processTemplate }
|
|
489
|
+
|
package/src/i18n/langs/cn.js
CHANGED
|
@@ -29,7 +29,8 @@ const cn = {
|
|
|
29
29
|
i18nZh: '中文',
|
|
30
30
|
i18nEn: '英文',
|
|
31
31
|
i18nKey: '国际化key',
|
|
32
|
-
subprocessTitle: '子流程流转历史'
|
|
32
|
+
subprocessTitle: '子流程流转历史',
|
|
33
|
+
custom: '自定义'
|
|
33
34
|
},
|
|
34
35
|
workflowEditorMessage: {
|
|
35
36
|
requiredAndMustBeADate: '必填且必须为日期',
|
|
@@ -137,7 +138,10 @@ const cn = {
|
|
|
137
138
|
formField: '表单字段',
|
|
138
139
|
variableName: '变量名',
|
|
139
140
|
variableValue: '变量值',
|
|
140
|
-
selectField: '选择字段'
|
|
141
|
+
selectField: '选择字段',
|
|
142
|
+
taskNotice: '待办通知',
|
|
143
|
+
reminderNotice: '催办通知',
|
|
144
|
+
customMsg: '自定义消息内容'
|
|
141
145
|
},
|
|
142
146
|
// 流程属性
|
|
143
147
|
process: {
|
|
@@ -291,7 +295,7 @@ const cn = {
|
|
|
291
295
|
permissionSettings: '权限设置',
|
|
292
296
|
notificationSettings: '通知设置',
|
|
293
297
|
sendNotificationAfterProcessEnds: '流程结束后发送通知',
|
|
294
|
-
reminderSettings: '
|
|
298
|
+
reminderSettings: '通知与催办',
|
|
295
299
|
parameterSsetting: '参数设置',
|
|
296
300
|
event: '事件',
|
|
297
301
|
processVariables: '流程变量',
|
|
@@ -316,7 +320,9 @@ const cn = {
|
|
|
316
320
|
isNotNull: '不等于Null',
|
|
317
321
|
defaultMailTemplate: '默认邮件模板',
|
|
318
322
|
trustTask: '委托任务',
|
|
319
|
-
subprocessIsSharedForm: '主子流程共用表单'
|
|
323
|
+
subprocessIsSharedForm: '主子流程共用表单',
|
|
324
|
+
generateForParttimeDept: '为兼职部门人员生成任务',
|
|
325
|
+
deptSpecifiedInFormField: '表单字段中指定的部门'
|
|
320
326
|
},
|
|
321
327
|
// 环节属性
|
|
322
328
|
task: {
|
|
@@ -413,7 +419,7 @@ const cn = {
|
|
|
413
419
|
attributesOfManualJudgment: '人工判断的属性',
|
|
414
420
|
linkAttribute: '环节属性',
|
|
415
421
|
autoFillInFieldSettings: '自动填写字段设置',
|
|
416
|
-
reminderSettings: '
|
|
422
|
+
reminderSettings: '通知与催办',
|
|
417
423
|
eventProcessing: '事件处理',
|
|
418
424
|
linkVariable: '环节变量',
|
|
419
425
|
convergedProperties: '汇聚的属性',
|
|
@@ -421,8 +427,12 @@ const cn = {
|
|
|
421
427
|
conditionJudgment: '条件判断',
|
|
422
428
|
cCtask: '抄送任务',
|
|
423
429
|
canItBeRejected: '是否可驳回',
|
|
424
|
-
selectMailTemplate: '
|
|
425
|
-
selectTemplate: '选择模板'
|
|
430
|
+
selectMailTemplate: '选择通知模板',
|
|
431
|
+
selectTemplate: '选择模板',
|
|
432
|
+
autoTask: '自动任务',
|
|
433
|
+
newAutoTask: '新自动任务',
|
|
434
|
+
propertiesOfAutoTask: '自动任务的属性',
|
|
435
|
+
custombeanName: '自定义bean'
|
|
426
436
|
},
|
|
427
437
|
// 流向属性
|
|
428
438
|
transition: {
|