workflow-editor 0.9.67 → 0.9.68-boe3
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/additional-condition-utils.js +20 -10
- 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 +51 -9
- 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 +11 -5
- 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 +18 -7
- package/src/i18n/langs/en.js +18 -7
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<div>
|
|
3
|
+
<el-card class="box-card">
|
|
4
|
+
<div slot="header" class="clearfix">
|
|
5
|
+
<span>{{ $t('workflowEditor.common.taskNotice') }}</span>
|
|
6
|
+
</div>
|
|
7
|
+
<el-form :model="noticeObj" label-width="80px">
|
|
8
|
+
<common-notice-tool v-model="noticeObj.informType" :label="$t('workflowEditor.common.notificationMethod')" :custom-msg="noticeObj.customMsg" @input-msg="setCustomMsg" />
|
|
9
|
+
<el-form-item :label="$t('workflowEditor.task.selectMailTemplate')">
|
|
10
|
+
<select-mail-templates v-model="noticeObj.mailTemplateCode" @set-value="setMailTemplateCode" />
|
|
11
|
+
</el-form-item>
|
|
12
|
+
</el-form>
|
|
13
|
+
</el-card>
|
|
14
|
+
<el-card class="box-card" style="margin-top: 10px">
|
|
15
|
+
<div slot="header" class="clearfix">
|
|
16
|
+
<span>{{ $t('workflowEditor.common.reminderNotice') }}</span>
|
|
17
|
+
</div>
|
|
18
|
+
<reminder v-model="reminderObj" />
|
|
19
|
+
</el-card>
|
|
20
|
+
</div>
|
|
21
|
+
</template>
|
|
22
|
+
|
|
23
|
+
<script>
|
|
24
|
+
import Reminder from './reminder.vue'
|
|
25
|
+
import CommonNoticeTool from './common-notice-tool'
|
|
26
|
+
import SelectMailTemplates from './select-mail-template.vue'
|
|
27
|
+
export default {
|
|
28
|
+
name: 'NoticeReminder',
|
|
29
|
+
components: {
|
|
30
|
+
Reminder,
|
|
31
|
+
CommonNoticeTool,
|
|
32
|
+
SelectMailTemplates
|
|
33
|
+
},
|
|
34
|
+
props: {
|
|
35
|
+
reminderValue: {
|
|
36
|
+
type: [Object, String],
|
|
37
|
+
default: null
|
|
38
|
+
},
|
|
39
|
+
taskNoticeValue: {
|
|
40
|
+
type: Object,
|
|
41
|
+
default: null
|
|
42
|
+
}
|
|
43
|
+
},
|
|
44
|
+
data() {
|
|
45
|
+
let reminderObj = {}
|
|
46
|
+
if (this.reminderValue !== null && this.reminderValue !== undefined && this.reminderValue !== '') {
|
|
47
|
+
reminderObj = this.reminderValue
|
|
48
|
+
}
|
|
49
|
+
let noticeObj = {}
|
|
50
|
+
if (this.taskNoticeValue !== null && this.taskNoticeValue !== undefined && this.taskNoticeValue !== '') {
|
|
51
|
+
noticeObj = this.taskNoticeValue
|
|
52
|
+
}
|
|
53
|
+
return {
|
|
54
|
+
reminderObj: reminderObj,
|
|
55
|
+
noticeObj: noticeObj
|
|
56
|
+
}
|
|
57
|
+
},
|
|
58
|
+
methods: {
|
|
59
|
+
// 关闭选择邮件模板弹框
|
|
60
|
+
setMailTemplateCode(mailTemplateCode) {
|
|
61
|
+
this.noticeObj.mailTemplateCode = mailTemplateCode
|
|
62
|
+
},
|
|
63
|
+
setCustomMsg(msg) {
|
|
64
|
+
this.noticeObj.customMsg = msg
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
</script>
|
|
69
|
+
|
|
70
|
+
<style lang="scss" scoped>
|
|
71
|
+
|
|
72
|
+
</style>
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
/>
|
|
7
7
|
</el-form-item>
|
|
8
8
|
<div v-if="showNotice">
|
|
9
|
-
<common-notice-tool v-model="model.informType" :label="$t('workflowEditor.common.notificationMethod')" />
|
|
9
|
+
<common-notice-tool v-model="model.informType" :label="$t('workflowEditor.common.notificationMethod')" :custom-msg="model.customMsg" @input-msg="setCustomMsg" />
|
|
10
10
|
<el-form-item v-if="model.informType && model.informType.length > 0 && model.informType.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>
|
|
@@ -91,6 +91,9 @@ export default {
|
|
|
91
91
|
// 关闭选择邮件模板弹框
|
|
92
92
|
setMailTemplateCode(mailTemplateCode) {
|
|
93
93
|
this.model.noticeMailTemplateCode = mailTemplateCode
|
|
94
|
+
},
|
|
95
|
+
setCustomMsg(msg) {
|
|
96
|
+
this.model.customMsg = msg
|
|
94
97
|
}
|
|
95
98
|
}
|
|
96
99
|
}
|
|
@@ -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,16 +22,16 @@
|
|
|
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' "
|
|
26
|
+
:label="$t('workflowEditor.process.fieldName')"
|
|
23
27
|
prop="selectedField"
|
|
24
28
|
required
|
|
25
|
-
:label="$t('workflowEditor.process.fieldName')"
|
|
26
29
|
label-width="80px"
|
|
27
30
|
>
|
|
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-if="isCountersign" v-model="formModel.additionalCondition.activateOneVoteVeto">
|
|
52
|
+
{{ $t('workflowEditor.process.activateOneVoteVeto') }}
|
|
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')">
|
|
@@ -59,9 +65,9 @@
|
|
|
59
65
|
</el-form-item>
|
|
60
66
|
<el-form-item
|
|
61
67
|
v-show="formModel.additionalCondition.selectType==='autoType'"
|
|
62
|
-
prop="additionalCondition.selectUrl"
|
|
63
68
|
:label="$t('workflowEditor.process.callbackURL')"
|
|
64
69
|
:rules="[{ required: true, message: this.$t('workflowEditor.process.cannotBeEmpty'), trigger: 'blur' }]"
|
|
70
|
+
prop="additionalCondition.selectUrl"
|
|
65
71
|
>
|
|
66
72
|
<el-input v-model="formModel.additionalCondition.selectUrl" />
|
|
67
73
|
</el-form-item>
|
|
@@ -70,9 +76,9 @@
|
|
|
70
76
|
</el-form-item>
|
|
71
77
|
<el-form-item
|
|
72
78
|
v-if="usedIn==='HumanTask' && formModel.transactor==='${previousTransactorAssignment}'"
|
|
73
|
-
prop="url"
|
|
74
79
|
:rules="[{ required: true, message: this.$t('workflowEditor.process.cannotBeEmpty'), trigger: 'blur' }]"
|
|
75
80
|
:label="$t('workflowEditor.process.selectURL')"
|
|
81
|
+
prop="url"
|
|
76
82
|
label-width="80px"
|
|
77
83
|
>
|
|
78
84
|
<el-input v-model.trim="formModel.url" @change="handleUrlChange" />
|
|
@@ -102,6 +108,11 @@ export default {
|
|
|
102
108
|
isSubprocess: {
|
|
103
109
|
type: Boolean,
|
|
104
110
|
default: false
|
|
111
|
+
},
|
|
112
|
+
// basicProperties
|
|
113
|
+
basicProperties: {
|
|
114
|
+
type: Object,
|
|
115
|
+
default: null
|
|
105
116
|
}
|
|
106
117
|
},
|
|
107
118
|
data() {
|
|
@@ -115,7 +126,8 @@ export default {
|
|
|
115
126
|
this.initFormModel(formModel)
|
|
116
127
|
return {
|
|
117
128
|
showFormFields: false,
|
|
118
|
-
formModel
|
|
129
|
+
formModel,
|
|
130
|
+
isCountersign: false
|
|
119
131
|
}
|
|
120
132
|
},
|
|
121
133
|
mounted() {
|
|
@@ -135,6 +147,12 @@ export default {
|
|
|
135
147
|
}, {
|
|
136
148
|
deep: true
|
|
137
149
|
})
|
|
150
|
+
this.$watch('basicProperties', function() {
|
|
151
|
+
this.showActivateOneVoteVeto()
|
|
152
|
+
}, {
|
|
153
|
+
deep: true
|
|
154
|
+
})
|
|
155
|
+
this.showActivateOneVoteVeto()
|
|
138
156
|
},
|
|
139
157
|
methods: {
|
|
140
158
|
formatLabel(name) {
|
|
@@ -150,9 +168,12 @@ export default {
|
|
|
150
168
|
} else {
|
|
151
169
|
if (userCondition === '${instanceCreator}' || userCondition === '${previousTransactorAssignment}') {
|
|
152
170
|
formModel.transactor = userCondition
|
|
153
|
-
} else if (userCondition.indexOf('${field[') >= 0) {
|
|
171
|
+
} else if (userCondition.startsWith('${field[') && userCondition.indexOf('${field[') >= 0 && userCondition.indexOf('"selectedField": "${field[') < 2) {
|
|
154
172
|
formModel.transactor = 'byField'
|
|
155
173
|
formModel.selectedField = userCondition
|
|
174
|
+
} else if (userCondition.startsWith('${deptField[')) {
|
|
175
|
+
formModel.transactor = 'byDeptField'
|
|
176
|
+
formModel.selectedField = userCondition
|
|
156
177
|
} else {
|
|
157
178
|
formModel.transactor = 'byCondition'
|
|
158
179
|
formModel.userCondition = userCondition
|
|
@@ -209,6 +230,9 @@ export default {
|
|
|
209
230
|
} else {
|
|
210
231
|
this.model.url = ''
|
|
211
232
|
}
|
|
233
|
+
// if (val === 'byDeptField') {
|
|
234
|
+
// this.model.userCondition = this.formModel.selectedField
|
|
235
|
+
// }
|
|
212
236
|
|
|
213
237
|
// 不是按条件筛选的时候,需要清空xml中additionalCondition
|
|
214
238
|
if (val === 'byCondition') {
|
|
@@ -223,10 +247,28 @@ export default {
|
|
|
223
247
|
},
|
|
224
248
|
setField(name) {
|
|
225
249
|
if (name !== undefined) {
|
|
226
|
-
this.formModel.
|
|
227
|
-
|
|
250
|
+
if (this.formModel.transactor === 'byDeptField') {
|
|
251
|
+
this.formModel.selectedField = '${deptField[' + name + ']}'
|
|
252
|
+
this.model.userCondition = this.formModel.selectedField
|
|
253
|
+
} else {
|
|
254
|
+
this.formModel.selectedField = '${field[' + name + ']}'
|
|
255
|
+
this.model.userCondition = this.formModel.selectedField
|
|
256
|
+
}
|
|
228
257
|
}
|
|
229
258
|
this.showFormFields = false
|
|
259
|
+
},
|
|
260
|
+
/**
|
|
261
|
+
* 会签时显示一票否决配置
|
|
262
|
+
*/
|
|
263
|
+
showActivateOneVoteVeto() {
|
|
264
|
+
if (this.basicProperties && this.basicProperties.processingMode) {
|
|
265
|
+
if (this.basicProperties.processingMode.type === 'COUNTERSIGN') {
|
|
266
|
+
this.isCountersign = true
|
|
267
|
+
} else {
|
|
268
|
+
this.isCountersign = false
|
|
269
|
+
this.formModel.additionalCondition.activateOneVoteVeto = false
|
|
270
|
+
}
|
|
271
|
+
}
|
|
230
272
|
}
|
|
231
273
|
}
|
|
232
274
|
}
|
|
@@ -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">
|
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
/>
|
|
21
21
|
</el-tab-pane>
|
|
22
22
|
<el-tab-pane :label="$t('workflowEditor.task.settingOfHandler')" name="transactors">
|
|
23
|
-
<transactor-settings :model="model.ref.transactorSettings" />
|
|
23
|
+
<transactor-settings :model="model.ref.transactorSettings" :basic-properties="model.ref.basicProperties" />
|
|
24
24
|
</el-tab-pane>
|
|
25
25
|
<el-tab-pane :label="$t('workflowEditor.task.permissionSettings')" name="permissions">
|
|
26
26
|
<permission-settings v-model="model.ref.permissionSettings" />
|
|
@@ -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
|
+
|