workflow-editor 0.9.68-pv → 0.9.68
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/process-service.js +2 -2
- 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 +36 -11
- 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 +1 -1
- 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 +2 -2
- package/packages/workflow-editor/src/properties-editors/process/basic-properties.vue +9 -62
- package/packages/workflow-editor/src/properties-editors/process/selectPage.vue +1 -8
- package/packages/workflow-editor/src/properties-editors/subprocess/basic-properties.vue +18 -6
- package/packages/workflow-editor/src/properties-editors/user-condition.js +7 -1
- package/packages/workflow-editor/src/store/getters.js +1 -2
- package/packages/workflow-editor/src/store/workflow-editor.js +0 -3
- 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 +8 -27
- package/src/i18n/langs/cn.js +32 -23
- package/src/i18n/langs/en.js +8 -2
|
@@ -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" />
|
|
@@ -72,7 +72,7 @@ export default {
|
|
|
72
72
|
},
|
|
73
73
|
data() {
|
|
74
74
|
console.log(this.model)
|
|
75
|
-
if (this.model.ref.taskNotice
|
|
75
|
+
if (!this.model.ref.taskNotice) {
|
|
76
76
|
this.model.ref.taskNotice = {}
|
|
77
77
|
}
|
|
78
78
|
return {
|
|
@@ -53,7 +53,7 @@
|
|
|
53
53
|
<el-row>
|
|
54
54
|
<el-col :span="12">
|
|
55
55
|
<el-form-item :label="$t('workflowEditor.process.system')" prop="model.systemCode" :rules="[requiredRule]">
|
|
56
|
-
<el-select v-model="model.systemCode" :placeholder="$t('workflowEditorMessage.pleaseSelect')"
|
|
56
|
+
<el-select v-model="model.systemCode" :placeholder="$t('workflowEditorMessage.pleaseSelect')">
|
|
57
57
|
<el-option
|
|
58
58
|
v-for="item in allSystems"
|
|
59
59
|
:key="item.code"
|
|
@@ -63,20 +63,6 @@
|
|
|
63
63
|
</el-select>
|
|
64
64
|
</el-form-item>
|
|
65
65
|
</el-col>
|
|
66
|
-
<el-col :span="12">
|
|
67
|
-
<el-form-item :label="$t('workflowEditor.process.systemVersion')" :rules="[requiredRule]">
|
|
68
|
-
<el-select v-model="systemPublishVersion" :placeholder="$t('workflowEditorMessage.pleaseSelect')" @change="changeVersion">
|
|
69
|
-
<el-option
|
|
70
|
-
v-for="item in systems"
|
|
71
|
-
:key="item.publishVersion"
|
|
72
|
-
:label="item.publishVersion"
|
|
73
|
-
:value="item.publishVersion"
|
|
74
|
-
/>
|
|
75
|
-
</el-select>
|
|
76
|
-
</el-form-item>
|
|
77
|
-
</el-col>
|
|
78
|
-
</el-row>
|
|
79
|
-
<el-row>
|
|
80
66
|
<el-col :span="12">
|
|
81
67
|
<el-form-item :label="$t('workflowEditor.process.affiliatedBranch')">
|
|
82
68
|
<el-select v-model="model.branchCode" clearable :placeholder="$t('workflowEditorMessage.pleaseSelect')">
|
|
@@ -96,12 +82,11 @@
|
|
|
96
82
|
</el-form>
|
|
97
83
|
</template>
|
|
98
84
|
<script>
|
|
99
|
-
import {
|
|
85
|
+
import { mapMutations } from 'vuex'
|
|
100
86
|
import processService from '../../process-service'
|
|
101
87
|
import { getI18n } from '../../../../workflow-editor/src/util'
|
|
102
88
|
import i18nInput from '../common/i18n-input'
|
|
103
89
|
import { getUsername } from 'imatrix-ui/src/utils/auth'
|
|
104
|
-
import authApi from 'imatrix-ui/src/utils/auth-api'
|
|
105
90
|
export default {
|
|
106
91
|
name: 'BasicProperties',
|
|
107
92
|
components: {
|
|
@@ -143,40 +128,22 @@ export default {
|
|
|
143
128
|
trigger: 'blur'
|
|
144
129
|
},
|
|
145
130
|
isSelectAdmin: false,
|
|
146
|
-
selectedForm: []
|
|
147
|
-
systemPublishVersion: null,
|
|
148
|
-
sysCode: null,
|
|
149
|
-
systems: []
|
|
150
|
-
|
|
131
|
+
selectedForm: []
|
|
151
132
|
}
|
|
152
133
|
},
|
|
153
|
-
computed: {
|
|
154
|
-
...mapGetters('wfEditor', [
|
|
155
|
-
'systemVersion', 'systemCode'
|
|
156
|
-
])
|
|
157
|
-
},
|
|
158
134
|
created() {
|
|
159
135
|
this.getAdminNameWhenUpdate()
|
|
160
|
-
|
|
136
|
+
this.listAllForms()
|
|
161
137
|
this.listAllProcessTypes()
|
|
162
138
|
this.listAllSystems()
|
|
163
139
|
this.listAllBranches()
|
|
164
140
|
// TODO 流程创建人先写死,现在的资源路径都是匿名的无法获得当前用户
|
|
165
141
|
// this.model.creator = 'admin'
|
|
166
|
-
if
|
|
142
|
+
if(!this.model.creator){
|
|
167
143
|
this.model.creator = getUsername()
|
|
168
144
|
}
|
|
169
145
|
this.setProcessCode(this.formModel.code)
|
|
170
|
-
|
|
171
|
-
// 编辑修改流程
|
|
172
|
-
this.setSystemCode(this.model.systemCode)
|
|
173
|
-
} else {
|
|
174
|
-
// 新建流程, model systemCode为空
|
|
175
|
-
this.model.systemCode = this.systemCode
|
|
176
|
-
}
|
|
177
|
-
this.systemPublishVersion = parseInt(authApi.getSessionCache('wf_editor_systemVersion'))
|
|
178
|
-
this.changeSystem(this.systemCode, this.systemPublishVersion)
|
|
179
|
-
this.listAllForms(this.systemCode, this.systemPublishVersion)
|
|
146
|
+
this.setSystemCode(this.model.systemCode)
|
|
180
147
|
},
|
|
181
148
|
mounted() {
|
|
182
149
|
// 支持.snyc修饰符的写法
|
|
@@ -190,15 +157,11 @@ export default {
|
|
|
190
157
|
this.$watch('model.systemCode', function(newVal, oldVal) {
|
|
191
158
|
this.setSystemCode(newVal)
|
|
192
159
|
})
|
|
193
|
-
this.$watch('systemPublishVersion', function(newVal, oldVal) {
|
|
194
|
-
this.setSystemVersion(newVal)
|
|
195
|
-
})
|
|
196
160
|
},
|
|
197
161
|
methods: {
|
|
198
162
|
...mapMutations('wfEditor', [
|
|
199
163
|
'setFormFields',
|
|
200
164
|
'setSystemCode',
|
|
201
|
-
'setSystemVersion',
|
|
202
165
|
'setProcessCode'
|
|
203
166
|
]),
|
|
204
167
|
handleChange(values) {
|
|
@@ -208,7 +171,7 @@ export default {
|
|
|
208
171
|
this.model.formCode = formInfo.substring(formInfo.indexOf('/') + 1, formInfo.lastIndexOf('/'))
|
|
209
172
|
this.model.formVersion = formInfo.substring(formInfo.lastIndexOf('/') + 1)
|
|
210
173
|
// 表单改变时,重新获取表单字段并放到vuex中
|
|
211
|
-
processService.fetchFormFields(this.model.formCode, this.model.formVersion
|
|
174
|
+
processService.fetchFormFields(this.model.formCode, this.model.formVersion)
|
|
212
175
|
},
|
|
213
176
|
// 弹出人员树
|
|
214
177
|
selectAdmin() {
|
|
@@ -233,8 +196,8 @@ export default {
|
|
|
233
196
|
this.isSelectAdmin = false
|
|
234
197
|
},
|
|
235
198
|
// 获得对应表单列表
|
|
236
|
-
listAllForms(
|
|
237
|
-
this.$http.get(this.baseAPI + '/wf-editor/workflow-editors/forms
|
|
199
|
+
listAllForms() {
|
|
200
|
+
this.$http.get(this.baseAPI + '/wf-editor/workflow-editors/forms').then(systemAndForms => {
|
|
238
201
|
// 设置表单信息
|
|
239
202
|
const selectedFormInfo = this.model.formCode + '/' + this.model.formVersion
|
|
240
203
|
// 修改时,获得默认选中的表单项
|
|
@@ -303,22 +266,6 @@ export default {
|
|
|
303
266
|
},
|
|
304
267
|
setI18nValue(i18nKey) {
|
|
305
268
|
this.model.i18nKey = i18nKey
|
|
306
|
-
},
|
|
307
|
-
changeSystem(systemCode, systemPublishVersion) {
|
|
308
|
-
this.systemPublishVersion = systemPublishVersion
|
|
309
|
-
this.allForms = []
|
|
310
|
-
if (systemCode) {
|
|
311
|
-
this.$http.get(this.baseAPI + '/wf-editor/systems/getPublishVersionsByCode/' + systemCode).then(result => {
|
|
312
|
-
if (result) {
|
|
313
|
-
this.systems = result
|
|
314
|
-
} else {
|
|
315
|
-
this.systems = []
|
|
316
|
-
}
|
|
317
|
-
})
|
|
318
|
-
}
|
|
319
|
-
},
|
|
320
|
-
changeVersion() {
|
|
321
|
-
this.listAllForms(this.model.systemCode, this.systemPublishVersion)
|
|
322
269
|
}
|
|
323
270
|
}
|
|
324
271
|
}
|
|
@@ -28,8 +28,6 @@
|
|
|
28
28
|
|
|
29
29
|
// import modulePageService from '@/subsystems/mms/api/module-page'
|
|
30
30
|
import Vue from 'vue'
|
|
31
|
-
import { mapGetters } from 'vuex'
|
|
32
|
-
import authApi from 'imatrix-ui/src/utils/auth-api'
|
|
33
31
|
|
|
34
32
|
export default {
|
|
35
33
|
props: {
|
|
@@ -45,11 +43,6 @@ export default {
|
|
|
45
43
|
selection: []
|
|
46
44
|
}
|
|
47
45
|
},
|
|
48
|
-
computed: {
|
|
49
|
-
...mapGetters('wfEditor', [
|
|
50
|
-
'systemVersion'
|
|
51
|
-
])
|
|
52
|
-
},
|
|
53
46
|
watch: {
|
|
54
47
|
conditionList: {
|
|
55
48
|
handler(newValue, oldValue) {
|
|
@@ -60,7 +53,7 @@ export default {
|
|
|
60
53
|
created() {
|
|
61
54
|
this.baseURL = Vue.prototype.baseURL
|
|
62
55
|
if (this.pageFormCode) {
|
|
63
|
-
this.listURL = '/wf-editor/workflow-editors/modulePages/' + this.pageFormCode
|
|
56
|
+
this.listURL = '/wf-editor/workflow-editors/modulePages/' + this.pageFormCode
|
|
64
57
|
}
|
|
65
58
|
},
|
|
66
59
|
methods: {
|
|
@@ -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() {
|
|
@@ -2,6 +2,9 @@ import {getI18n} from '../../../workflow-editor/src/util'
|
|
|
2
2
|
export const userStandardFieldsForReminder = {
|
|
3
3
|
'${instanceCreatorName}': getI18n().t('workflowEditor.process.processInitiator'),
|
|
4
4
|
'${instanceCreatorDirectSuperiorName}': getI18n().t('workflowEditor.process.sponsorsImmediateSuperior'),
|
|
5
|
+
'${instanceCreatorDeptApprover}': getI18n().t('workflowEditor.process.deptApprover'),
|
|
6
|
+
'${instanceCreatorDirectSuperiorDeptApprover}': getI18n().t('workflowEditor.process.superiorDeptApprover'),
|
|
7
|
+
'${instanceCreatorDirectSuperiorDeptLeader}': getI18n().t('workflowEditor.process.superiorDeptLeader'),
|
|
5
8
|
'${currentTransactorName}': getI18n().t('workflowEditor.process.nameOfCurrentHandler'),
|
|
6
9
|
'${currentTransactorDirectSuperiorName}': getI18n().t('workflowEditor.process.nameOfTheImmediateSuperiorOfTheCurrentHandler')
|
|
7
10
|
}
|
|
@@ -44,7 +47,10 @@ const allStandardFieldsForReminder = {
|
|
|
44
47
|
|
|
45
48
|
export const userStandardFieldsForTransactor = {
|
|
46
49
|
'${instanceCreatorName}': getI18n().t('workflowEditor.process.processInitiator'),
|
|
47
|
-
'${instanceCreatorDirectSuperiorName}': getI18n().t('workflowEditor.process.sponsorsImmediateSuperior')
|
|
50
|
+
'${instanceCreatorDirectSuperiorName}': getI18n().t('workflowEditor.process.sponsorsImmediateSuperior'),
|
|
51
|
+
'${instanceCreatorDeptApprover}': getI18n().t('workflowEditor.process.deptApprover'),
|
|
52
|
+
'${instanceCreatorDirectSuperiorDeptApprover}': getI18n().t('workflowEditor.process.superiorDeptApprover'),
|
|
53
|
+
'${instanceCreatorDirectSuperiorDeptLeader}': getI18n().t('workflowEditor.process.superiorDeptLeader')
|
|
48
54
|
}
|
|
49
55
|
export const departmentStandardFieldsForTransactor = {
|
|
50
56
|
'${upstageDepartment}': getI18n().t('workflowEditor.process.topDepartments'),
|
|
@@ -22,7 +22,6 @@ const getters = {
|
|
|
22
22
|
processCode: state => state.processCode,
|
|
23
23
|
processI18n: state => state.processI18n,
|
|
24
24
|
subtableConditionMap: state => state.subtableConditionMap,
|
|
25
|
-
propSettingKeyList: state => state.propSettingKeyList
|
|
26
|
-
systemVersion: state => state.systemVersion
|
|
25
|
+
propSettingKeyList: state => state.propSettingKeyList
|
|
27
26
|
}
|
|
28
27
|
export default getters
|
|
@@ -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
|
+
|