workflow-editor 0.9.65 → 0.9.66-dw-pv1

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 (114) hide show
  1. package/lib/workflow-editor.css +1 -1
  2. package/lib/workflow-editor.umd.min.js +10 -10
  3. package/package.json +2 -2
  4. package/packages/index.js +34 -0
  5. package/packages/plugins/formValidatorUtil.js +528 -0
  6. package/packages/plugins/index.js +8 -0
  7. package/packages/workflow-editor/index.js +14 -0
  8. package/packages/workflow-editor/src/api.js +7 -0
  9. package/packages/workflow-editor/src/assets/wf-editor-icons.js +2 -0
  10. package/packages/workflow-editor/src/constant.js +8 -0
  11. package/packages/workflow-editor/src/json-object-templates/copy-task.js +67 -0
  12. package/packages/workflow-editor/src/json-object-templates/decision.js +11 -0
  13. package/packages/workflow-editor/src/json-object-templates/end.js +14 -0
  14. package/packages/workflow-editor/src/json-object-templates/fork.js +10 -0
  15. package/packages/workflow-editor/src/json-object-templates/human-decision.js +9 -0
  16. package/packages/workflow-editor/src/json-object-templates/human-task.js +199 -0
  17. package/packages/workflow-editor/src/json-object-templates/join.js +10 -0
  18. package/packages/workflow-editor/src/json-object-templates/process.js +98 -0
  19. package/packages/workflow-editor/src/json-object-templates/start.js +13 -0
  20. package/packages/workflow-editor/src/json-object-templates/subprocess.js +30 -0
  21. package/packages/workflow-editor/src/json-object-templates/transition.js +26 -0
  22. package/packages/workflow-editor/src/main/admin-save-dialog.vue +66 -0
  23. package/packages/workflow-editor/src/main/canvas.vue +479 -0
  24. package/packages/workflow-editor/src/main/context-menu.vue +132 -0
  25. package/packages/workflow-editor/src/main/icon-svg.vue +32 -0
  26. package/packages/workflow-editor/src/main/selection-region.vue +66 -0
  27. package/packages/workflow-editor/src/main/tache-history-tooltip.vue +38 -0
  28. package/packages/workflow-editor/src/main/tache-name-input.vue +19 -0
  29. package/packages/workflow-editor/src/main/tache-subprocess-history-dialog.vue +35 -0
  30. package/packages/workflow-editor/src/main/toolbox.vue +60 -0
  31. package/packages/workflow-editor/src/main/wf-history-canvas.vue +302 -0
  32. package/packages/workflow-editor/src/process-json.js +622 -0
  33. package/packages/workflow-editor/src/process-service.js +31 -0
  34. package/packages/workflow-editor/src/properties-editors/common/additional-condition-utils.js +531 -0
  35. package/packages/workflow-editor/src/properties-editors/common/additional-condition.vue +276 -0
  36. package/packages/workflow-editor/src/properties-editors/common/auto-filled-fields-utils.js +34 -0
  37. package/packages/workflow-editor/src/properties-editors/common/auto-filled-fields.vue +239 -0
  38. package/packages/workflow-editor/src/properties-editors/common/common-notice-tool.vue +67 -0
  39. package/packages/workflow-editor/src/properties-editors/common/common-user-condition.vue +241 -0
  40. package/packages/workflow-editor/src/properties-editors/common/form-fields-utils.js +23 -0
  41. package/packages/workflow-editor/src/properties-editors/common/form-fields.vue +116 -0
  42. package/packages/workflow-editor/src/properties-editors/common/i18n-input.vue +75 -0
  43. package/packages/workflow-editor/src/properties-editors/common/i18n-set-dialog.vue +125 -0
  44. package/packages/workflow-editor/src/properties-editors/common/notice-reminder.vue +72 -0
  45. package/packages/workflow-editor/src/properties-editors/common/notice.vue +101 -0
  46. package/packages/workflow-editor/src/properties-editors/common/reminder.vue +185 -0
  47. package/packages/workflow-editor/src/properties-editors/common/select-mail-template.vue +83 -0
  48. package/packages/workflow-editor/src/properties-editors/common/standard-fields.vue +65 -0
  49. package/packages/workflow-editor/src/properties-editors/common/system-role-tree-inline.vue +355 -0
  50. package/packages/workflow-editor/src/properties-editors/common/system-role-tree.vue +63 -0
  51. package/packages/workflow-editor/src/properties-editors/common/task-title.vue +148 -0
  52. package/packages/workflow-editor/src/properties-editors/common/transactor-settings.vue +233 -0
  53. package/packages/workflow-editor/src/properties-editors/common/user-selection.vue +386 -0
  54. package/packages/workflow-editor/src/properties-editors/common/value-selection-dialog.vue +209 -0
  55. package/packages/workflow-editor/src/properties-editors/common/variables.vue +135 -0
  56. package/packages/workflow-editor/src/properties-editors/copy-task/basic-properties.vue +90 -0
  57. package/packages/workflow-editor/src/properties-editors/copy-task/permission-settings.vue +155 -0
  58. package/packages/workflow-editor/src/properties-editors/copy-task.vue +80 -0
  59. package/packages/workflow-editor/src/properties-editors/decision.vue +90 -0
  60. package/packages/workflow-editor/src/properties-editors/fork.vue +72 -0
  61. package/packages/workflow-editor/src/properties-editors/human-decision.vue +44 -0
  62. package/packages/workflow-editor/src/properties-editors/human-task/additional-condition-dialog.vue +60 -0
  63. package/packages/workflow-editor/src/properties-editors/human-task/basic-properties.vue +156 -0
  64. package/packages/workflow-editor/src/properties-editors/human-task/componentsConfigUtil.js +291 -0
  65. package/packages/workflow-editor/src/properties-editors/human-task/custom-actions.vue +249 -0
  66. package/packages/workflow-editor/src/properties-editors/human-task/editable-child-field-setting.vue +392 -0
  67. package/packages/workflow-editor/src/properties-editors/human-task/editable-child-fields.vue +241 -0
  68. package/packages/workflow-editor/src/properties-editors/human-task/editable-field-selection.vue +220 -0
  69. package/packages/workflow-editor/src/properties-editors/human-task/editable-fields.vue +204 -0
  70. package/packages/workflow-editor/src/properties-editors/human-task/events.vue +59 -0
  71. package/packages/workflow-editor/src/properties-editors/human-task/permission-settings.vue +207 -0
  72. package/packages/workflow-editor/src/properties-editors/human-task/selection-conditions.vue +390 -0
  73. package/packages/workflow-editor/src/properties-editors/human-task.vue +109 -0
  74. package/packages/workflow-editor/src/properties-editors/join.vue +44 -0
  75. package/packages/workflow-editor/src/properties-editors/process/basic-properties.vue +324 -0
  76. package/packages/workflow-editor/src/properties-editors/process/events.vue +76 -0
  77. package/packages/workflow-editor/src/properties-editors/process/notice-settings.vue +60 -0
  78. package/packages/workflow-editor/src/properties-editors/process/parameter-settings.vue +95 -0
  79. package/packages/workflow-editor/src/properties-editors/process/permission-settings.vue +28 -0
  80. package/packages/workflow-editor/src/properties-editors/process/selectPage.vue +88 -0
  81. package/packages/workflow-editor/src/properties-editors/process.vue +115 -0
  82. package/packages/workflow-editor/src/properties-editors/subprocess/basic-properties.vue +187 -0
  83. package/packages/workflow-editor/src/properties-editors/subprocess/events.vue +26 -0
  84. package/packages/workflow-editor/src/properties-editors/subprocess/field-mappings.vue +206 -0
  85. package/packages/workflow-editor/src/properties-editors/subprocess/transactor-settings.vue +64 -0
  86. package/packages/workflow-editor/src/properties-editors/subprocess.vue +79 -0
  87. package/packages/workflow-editor/src/properties-editors/transition/basic-properties.vue +53 -0
  88. package/packages/workflow-editor/src/properties-editors/transition.vue +74 -0
  89. package/packages/workflow-editor/src/properties-editors/user-condition.js +177 -0
  90. package/packages/workflow-editor/src/store/getters.js +28 -0
  91. package/packages/workflow-editor/src/store/workflow-editor.js +128 -0
  92. package/packages/workflow-editor/src/taches/common-methods.js +21 -0
  93. package/packages/workflow-editor/src/taches/copy-task.vue +99 -0
  94. package/packages/workflow-editor/src/taches/custom-task.vue +88 -0
  95. package/packages/workflow-editor/src/taches/decision.vue +102 -0
  96. package/packages/workflow-editor/src/taches/end.vue +76 -0
  97. package/packages/workflow-editor/src/taches/fork.vue +102 -0
  98. package/packages/workflow-editor/src/taches/human-decision.vue +102 -0
  99. package/packages/workflow-editor/src/taches/human-task.vue +113 -0
  100. package/packages/workflow-editor/src/taches/join.vue +91 -0
  101. package/packages/workflow-editor/src/taches/joint.vue +177 -0
  102. package/packages/workflow-editor/src/taches/start.vue +76 -0
  103. package/packages/workflow-editor/src/taches/subprocess.vue +99 -0
  104. package/packages/workflow-editor/src/taches/tache-resizer.vue +80 -0
  105. package/packages/workflow-editor/src/transitions/broken-line.vue +91 -0
  106. package/packages/workflow-editor/src/transitions/curve-line.vue +91 -0
  107. package/packages/workflow-editor/src/transitions/straight-line.vue +26 -0
  108. package/packages/workflow-editor/src/transitions/transition.vue +212 -0
  109. package/packages/workflow-editor/src/transitions/virtual-transition.vue +43 -0
  110. package/packages/workflow-editor/src/util.js +493 -0
  111. package/packages/workflow-editor/src/workflow-editor.vue +625 -0
  112. package/packages/workflow-editor/src/workflow-history.vue +153 -0
  113. package/src/i18n/langs/cn.js +14 -6
  114. package/src/i18n/langs/en.js +14 -6
@@ -0,0 +1,324 @@
1
+ <template>
2
+ <el-form :model="formModel" label-width="100px">
3
+ <el-row>
4
+ <el-col :span="12">
5
+ <el-form-item :label="$t('workflowEditor.process.processName')" prop="name" :rules="[requiredRule]">
6
+ <!-- <el-input v-model.trim="formModel.name" /> -->
7
+ <i18n-input v-model.trim="formModel.name" :i18n-key="model.i18nKey?model.i18nKey:'processName'" @setI18n="setI18nValue" /> <!--:tache-code="'222333'"-->
8
+ </el-form-item>
9
+ </el-col>
10
+ <el-col :span="12">
11
+ <el-form-item :label="$t('workflowEditor.process.processCode')" prop="code" :rules="[requiredRule]">
12
+ <el-input v-model.trim="formModel.code" />
13
+ </el-form-item>
14
+ </el-col>
15
+ </el-row>
16
+ <el-row>
17
+ <el-col :span="12">
18
+ <el-form-item :label="$t('workflowEditor.process.processAdministrator')" :rules="[requiredRule]">
19
+ <el-input v-model="formModel.adminName" readonly suffix-icon="el-icon-search" @focus="selectAdmin" />
20
+ <department-user-tree v-if="isSelectAdmin" width="30%" :multiple="false" @close="addAdmin" />
21
+ </el-form-item>
22
+ </el-col>
23
+ <el-col :span="12">
24
+ <el-form-item :label="$t('workflowEditor.process.creater')">
25
+ <el-input v-model="model.creator" readonly />
26
+ </el-form-item>
27
+ </el-col>
28
+ </el-row>
29
+ <el-row>
30
+ <el-col :span="12">
31
+ <el-form-item :label="$t('workflowEditor.process.correspondingForm')" :rules="[requiredRule]">
32
+ <el-cascader
33
+ v-model="selectedForm"
34
+ :show-all-levels="false"
35
+ :options="allForms"
36
+ @change="handleChange"
37
+ />
38
+ </el-form-item>
39
+ </el-col>
40
+ <el-col :span="12">
41
+ <el-form-item :label="$t('workflowEditor.process.processType')">
42
+ <el-select v-model="model.processTypeCode" :placeholder="$t('workflowEditorMessage.pleaseSelect')">
43
+ <el-option
44
+ v-for="item in allProcessTypes"
45
+ :key="item.code"
46
+ :label="item.name"
47
+ :value="item.code"
48
+ />
49
+ </el-select>
50
+ </el-form-item>
51
+ </el-col>
52
+ </el-row>
53
+ <el-row>
54
+ <el-col :span="12">
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')" @change="changeSystem(model.systemCode, null)">
57
+ <el-option
58
+ v-for="item in allSystems"
59
+ :key="item.code"
60
+ :label="item.name"
61
+ :value="item.code"
62
+ />
63
+ </el-select>
64
+ </el-form-item>
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
+ <el-col :span="12">
81
+ <el-form-item :label="$t('workflowEditor.process.affiliatedBranch')">
82
+ <el-select v-model="model.branchCode" clearable :placeholder="$t('workflowEditorMessage.pleaseSelect')">
83
+ <el-option
84
+ v-for="(item, index) in allBranches"
85
+ :key="item.code+'-'+index"
86
+ :label="item.name"
87
+ :value="item.code"
88
+ />
89
+ </el-select>
90
+ </el-form-item>
91
+ </el-col>
92
+ </el-row>
93
+ <el-form-item :label="$t('workflowEditor.process.customCategory')">
94
+ <el-input v-model="model.customType" />
95
+ </el-form-item>
96
+ </el-form>
97
+ </template>
98
+ <script>
99
+ import { mapGetters, mapMutations } from 'vuex'
100
+ import processService from '../../process-service'
101
+ import { getI18n } from '../../../../workflow-editor/src/util'
102
+ import i18nInput from '../common/i18n-input'
103
+ import { getUsername } from 'imatrix-ui/src/utils/auth'
104
+ import authApi from 'imatrix-ui/src/utils/auth-api'
105
+ export default {
106
+ name: 'BasicProperties',
107
+ components: {
108
+ i18nInput
109
+ },
110
+ props: {
111
+ model: {
112
+ type: Object,
113
+ default: null
114
+ },
115
+ name: {
116
+ type: String,
117
+ default: null
118
+ },
119
+ code: {
120
+ type: String,
121
+ default: null
122
+ }
123
+ },
124
+ data() {
125
+ return {
126
+ formModel: {
127
+ name: this.name,
128
+ code: this.code,
129
+ model: this.model
130
+ },
131
+ allForms: [],
132
+ allProcessTypes: [],
133
+ allSystems: [],
134
+ allBranches: [],
135
+ nameError: null,
136
+ codeError: null,
137
+ systemError: null,
138
+ adminError: null,
139
+ formError: null,
140
+ requiredRule: {
141
+ required: true,
142
+ message: getI18n().t('workflowEditor.process.cannotBeEmpty'),
143
+ trigger: 'blur'
144
+ },
145
+ isSelectAdmin: false,
146
+ selectedForm: [],
147
+ systemPublishVersion: null,
148
+ sysCode: null,
149
+ systems: []
150
+
151
+ }
152
+ },
153
+ computed: {
154
+ ...mapGetters('wfEditor', [
155
+ 'systemVersion', 'systemCode'
156
+ ])
157
+ },
158
+ created() {
159
+ this.getAdminNameWhenUpdate()
160
+ // this.listAllForms()
161
+ this.listAllProcessTypes()
162
+ this.listAllSystems()
163
+ this.listAllBranches()
164
+ // TODO 流程创建人先写死,现在的资源路径都是匿名的无法获得当前用户
165
+ // this.model.creator = 'admin'
166
+ if (!this.model.creator) {
167
+ this.model.creator = getUsername()
168
+ }
169
+ this.setProcessCode(this.formModel.code)
170
+ if (this.model.systemCode) {
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)
180
+ },
181
+ mounted() {
182
+ // 支持.snyc修饰符的写法
183
+ this.$watch('formModel.name', function(newVal, oldVal) {
184
+ this.$emit('update:name', newVal)
185
+ })
186
+ this.$watch('formModel.code', function(newVal, oldVal) {
187
+ this.$emit('update:code', newVal)
188
+ this.setProcessCode(newVal)
189
+ })
190
+ this.$watch('model.systemCode', function(newVal, oldVal) {
191
+ this.setSystemCode(newVal)
192
+ })
193
+ this.$watch('systemPublishVersion', function(newVal, oldVal) {
194
+ this.setSystemVersion(newVal)
195
+ })
196
+ },
197
+ methods: {
198
+ ...mapMutations('wfEditor', [
199
+ 'setFormFields',
200
+ 'setSystemCode',
201
+ 'setSystemVersion',
202
+ 'setProcessCode'
203
+ ]),
204
+ handleChange(values) {
205
+ // values格式为:['系统编码','系统编码/表单编码/表单版本']
206
+ console.log(values)
207
+ const formInfo = values[1]
208
+ this.model.formCode = formInfo.substring(formInfo.indexOf('/') + 1, formInfo.lastIndexOf('/'))
209
+ this.model.formVersion = formInfo.substring(formInfo.lastIndexOf('/') + 1)
210
+ // 表单改变时,重新获取表单字段并放到vuex中
211
+ processService.fetchFormFields(this.model.formCode, this.model.formVersion, this.systemPublishVersion)
212
+ },
213
+ // 弹出人员树
214
+ selectAdmin() {
215
+ this.isSelectAdmin = true
216
+ },
217
+ addAdmin(selectNodeInfo) {
218
+ if (selectNodeInfo) {
219
+ selectNodeInfo.containBranch = true
220
+ let loginName = selectNodeInfo.loginName
221
+ const user = selectNodeInfo.user
222
+ if (selectNodeInfo.containBranch) {
223
+ if (user.subCompanyCode) {
224
+ loginName = selectNodeInfo.loginName + '~~' + user.subCompanyCode
225
+ } else {
226
+ loginName = selectNodeInfo.loginName + '~~' + user.tenantCode
227
+ }
228
+ }
229
+ this.model.admin = loginName
230
+ console.log(loginName)
231
+ this.formModel.adminName = selectNodeInfo.name
232
+ }
233
+ this.isSelectAdmin = false
234
+ },
235
+ // 获得对应表单列表
236
+ listAllForms(systemCode, publishVersion) {
237
+ this.$http.get(this.baseAPI + '/wf-editor/workflow-editors/forms?systemCode=' + systemCode + '&publishVersion=' + publishVersion).then(systemAndForms => {
238
+ // 设置表单信息
239
+ const selectedFormInfo = this.model.formCode + '/' + this.model.formVersion
240
+ // 修改时,获得默认选中的表单项
241
+ this.setDefaultSelectedFormWhenUpdate(systemAndForms, selectedFormInfo)
242
+ this.allForms = systemAndForms
243
+ })
244
+ },
245
+ // 修改时,获得默认选中的表单项
246
+ setDefaultSelectedFormWhenUpdate(systemAndForms, selectFormInfo) {
247
+ let selectedForm
248
+ let selectedSystemCode
249
+ for (var i = 0; i < systemAndForms.length; i++) {
250
+ const systemCode = systemAndForms[i].value
251
+ const forms = systemAndForms[i].children
252
+ const selectedForms = forms.filter(this.filterForm(selectFormInfo))
253
+ if (selectedForms.length > 0) {
254
+ selectedSystemCode = systemCode
255
+ selectedForm = selectedForms[0]
256
+ break
257
+ }
258
+ }
259
+ if (selectedForm) {
260
+ const result = []
261
+ result.push(selectedSystemCode + '')
262
+ result.push(selectedSystemCode + '/' + selectFormInfo)
263
+ this.selectedForm = result
264
+ }
265
+ },
266
+ // 过滤表单
267
+ filterForm(selectFormInfo) {
268
+ return (form) => {
269
+ // systemAndformInfo格式为“systemCode/表单编号/表单版本”
270
+ const systemAndformInfo = form.value
271
+ // 获得“表单编号/表单版本”
272
+ const formInfo = systemAndformInfo.substring(systemAndformInfo.indexOf('/') + 1)
273
+ return (formInfo === selectFormInfo)
274
+ }
275
+ },
276
+ // 获得对应流程类型列表
277
+ listAllProcessTypes() {
278
+ this.$http.get(this.baseAPI + '/api/workflow-types/all').then(types => {
279
+ this.allProcessTypes = types
280
+ })
281
+ },
282
+ // 获得所有启用的系统列表
283
+ listAllSystems() {
284
+ this.$http.get(this.baseAPI + '/api/all-enabled-systems').then(systems => {
285
+ console.log(systems)
286
+ this.allSystems = systems
287
+ })
288
+ },
289
+ // 获得所有分支机构列表
290
+ listAllBranches() {
291
+ this.$http.get(this.baseAPI + '/api/branches/all').then(branches => {
292
+ this.allBranches = branches
293
+ })
294
+ },
295
+ // 修改流程属性时,根据流程管理员登录名信息获得流程管理员姓名信息
296
+ getAdminNameWhenUpdate() {
297
+ if (this.model.admin && this.model.admin !== '') {
298
+ this.$http.get(this.baseAPI + '/wf-editor/workflow-editors/admin-name-info?loginNameInfo=' + this.model.admin).then(adminName => {
299
+ console.log(adminName)
300
+ this.formModel.adminName = adminName
301
+ })
302
+ }
303
+ },
304
+ setI18nValue(i18nKey) {
305
+ this.model.i18nKey = i18nKey
306
+ },
307
+ changeSystem(systemCode, systemPublishVersion) {
308
+ this.systemPublishVersion = systemPublishVersion
309
+ this.allForms = []
310
+ this.$http.get(this.baseAPI + '/wf-editor/systems/getPublishVersionsByCode/' + systemCode).then(result => {
311
+ if (result) {
312
+ this.systems = result
313
+ } else {
314
+ this.systems = []
315
+ }
316
+ })
317
+ },
318
+ changeVersion() {
319
+ this.listAllForms(this.model.systemCode, this.systemPublishVersion)
320
+ }
321
+ }
322
+ }
323
+ </script>
324
+
@@ -0,0 +1,76 @@
1
+ <template>
2
+ <el-checkbox-group v-model="selectedEvents">
3
+ <el-row :gutter="12">
4
+ <el-col v-for="event in events" :key="event.name" :span="8" style="margin-bottom:12px">
5
+ <el-card shadow="always">
6
+ <el-checkbox :label="event.name">
7
+ {{ event.label }}
8
+ </el-checkbox>
9
+ </el-card>
10
+ </el-col>
11
+ </el-row>
12
+ </el-checkbox-group>
13
+ </template>
14
+ <script>
15
+ import { getI18n } from '../../../../workflow-editor/src/util'
16
+ export default {
17
+ name: 'Events',
18
+ props: {
19
+ value: {
20
+ type: Object,
21
+ default: null
22
+ }
23
+ },
24
+ data() {
25
+ const selectedEvents = []
26
+ const initSelectEvents = this.value.event
27
+ if (initSelectEvents !== undefined && initSelectEvents.length && initSelectEvents.length > 0) {
28
+ let initSelectEventArr = []
29
+ if (typeof initSelectEvents === 'string') {
30
+ initSelectEventArr = initSelectEvents.split(',')
31
+ } else {
32
+ initSelectEventArr = this.value.event
33
+ }
34
+ initSelectEventArr.map(function(event) {
35
+ selectedEvents.push(event)
36
+ })
37
+ }
38
+ return {
39
+ events: [
40
+ { name: 'START_INSTANCE', label: getI18n().t('workflowEditor.process.initiationProcess') },
41
+ { name: 'DELETE_INSTANCE', label: getI18n().t('workflowEditor.process.deleteProcess') },
42
+ { name: 'CANCEL_INSTANCE', label: getI18n().t('workflowEditor.process.cancelProcess') },
43
+ { name: 'END_INSTANCE', label: getI18n().t('workflowEditor.process.endProcess') },
44
+ { name: 'STOP_INSTANCE', label: getI18n().t('workflowEditor.process.pauseProcess') },
45
+ { name: 'RESUME_INSTANCE', label: getI18n().t('workflowEditor.process.continueTheProcess') },
46
+ { name: 'JUMP_TACHE', label: getI18n().t('workflowEditor.process.jumpLink') },
47
+ { name: 'CHANGE_TRANSACTOR', label: getI18n().t('workflowEditor.process.modificationHandler') },
48
+ { name: 'ADD_TRANSACTOR', label: getI18n().t('workflowEditor.process.addHandler') },
49
+ { name: 'REMOVE_TRANSACTOR', label: getI18n().t('workflowEditor.process.decreaseOofHandler') },
50
+ { name: 'ASSIGN_TASK', label: getI18n().t('workflowEditor.process.appointedTask') },
51
+ { name: 'RETURN_TASK', label: getI18n().t('workflowEditor.process.returnTask') },
52
+ { name: 'WITHDRAW_TASK', label: getI18n().t('workflowEditor.process.retrieveTask') },
53
+ { name: 'TRUST_TASK', label: getI18n().t('workflowEditor.process.trustTask') }
54
+ ],
55
+ selectedEvents
56
+ }
57
+ },
58
+ watch: {
59
+ selectedEvents(val) {
60
+ // const events = []
61
+ // this.selectedEvents.map(event => {
62
+ // events.push({
63
+ // name: event
64
+ // })
65
+ // })
66
+
67
+ this.$emit('input', {
68
+ event: this.selectedEvents
69
+ })
70
+ }
71
+ },
72
+ methods: {
73
+
74
+ }
75
+ }
76
+ </script>
@@ -0,0 +1,60 @@
1
+ <template>
2
+ <el-form v-if="model" :model="model" label-width="100px">
3
+ <notice v-model="model" :switch-label="$t('workflowEditor.process.sendNotificationAfterProcessEnds')" />
4
+ <el-form-item :label="$t('workflowEditor.process.defaultMailTemplate')">
5
+ <select-mail-templates v-model="model.defaultMailTemplateCode" @set-value="setMailTemplateCode" />
6
+ </el-form-item>
7
+ </el-form>
8
+ </template>
9
+ <script>
10
+ import Notice from '../common/notice'
11
+ import SelectMailTemplates from '../common/select-mail-template.vue'
12
+ export default {
13
+ name: 'NoticeSettings',
14
+ components: {
15
+ Notice,
16
+ SelectMailTemplates
17
+ },
18
+ props: {
19
+ value: {
20
+ type: [Object, String],
21
+ default: null
22
+ }
23
+ },
24
+ data() {
25
+ let model = {
26
+ informType: '',
27
+ userCondition: '',
28
+ subject: null,
29
+ content: null,
30
+ defaultMailTemplateCode: ''
31
+ }
32
+ if (this.value !== null && this.value !== undefined && this.value !== '') {
33
+ model = this.value
34
+ }
35
+ return {
36
+ showMailTemplateFlag: false,
37
+ model
38
+ }
39
+ },
40
+ created() {
41
+ // inform在xml中可能是没有的,所以不能直接使用inform作为model
42
+ // 通过deep监听model把设置的值返回给流程的inform属性
43
+ this.$watch('model', function(newVal, oldVal) {
44
+ this.getValue()
45
+ }, {
46
+ deep: true
47
+ })
48
+ },
49
+ methods: {
50
+ getValue() {
51
+ const notice = this.model
52
+ this.$emit('input', notice)
53
+ },
54
+ setMailTemplateCode(mailTemplateCode) {
55
+ this.model.defaultMailTemplateCode = mailTemplateCode
56
+ }
57
+ }
58
+ }
59
+ </script>
60
+
@@ -0,0 +1,95 @@
1
+ <template>
2
+ <el-form :model="model" label-width="150px">
3
+ <el-card>
4
+ <div slot="header">
5
+ <span>{{ $t('workflowEditor.process.processTaskParameterSettings') }}</span>
6
+ </div>
7
+ <el-form-item :label="$t('workflowEditor.process.uRLForProcessingTask')">
8
+ <el-input v-model="model.doTask.url">
9
+ <i slot="suffix" class="el-input__icon el-icon-search" @click="openSelectPage" />
10
+ </el-input>
11
+ </el-form-item>
12
+ <el-form-item :label="$t('workflowEditor.process.parametersForReceivingTaskID')">
13
+ <el-input v-model="model.doTask.parameterName" />
14
+ </el-form-item>
15
+ </el-card>
16
+ <el-card>
17
+ <div slot="header">
18
+ <span>{{ $t('workflowEditor.process.viewFormParameterSettings') }}</span>
19
+ </div>
20
+ <el-form-item :label="$t('workflowEditor.process.viewTheURLOfTheForm')">
21
+ <el-input v-model="model.viewForm.url" />
22
+ </el-form-item>
23
+ <el-form-item :label="$t('workflowEditor.process.parametersOfReceivingEntityID')">
24
+ <el-input v-model="model.viewForm.parameterName" />
25
+ </el-form-item>
26
+ </el-card>
27
+ <el-card>
28
+ <div slot="header">
29
+ <span>{{ $t('workflowEditor.process.emergencyTreatmentParameterSetting') }}</span>
30
+ </div>
31
+ <el-form-item :label="$t('workflowEditor.process.uRLOfEmergencyHandling')">
32
+ <el-input v-model="model.handleEmergency.url" />
33
+ </el-form-item>
34
+ <el-form-item :label="$t('workflowEditor.process.parametersOfReceivingEntityID')">
35
+ <el-input v-model="model.handleEmergency.parameterName" />
36
+ </el-form-item>
37
+ </el-card>
38
+ <el-card>
39
+ <div slot="header">
40
+ <span>{{ $t('workflowEditor.process.initiateProcessParameterSettings') }}</span>
41
+ </div>
42
+ <el-form-item :label="$t('workflowEditor.process.uRLOfTheInitiatingProcess')">
43
+ <el-input v-model="model.startProcess.url" />
44
+ </el-form-item>
45
+ <el-form-item :label="$t('workflowEditor.process.parametersForReceivingProcessName')">
46
+ <el-input v-model="model.startProcess.parameterName" />
47
+ </el-form-item>
48
+ <el-form-item :label="$t('workflowEditor.process.customParameterValue')">
49
+ <el-input v-model="model.startProcess.parameterValue" />
50
+ </el-form-item>
51
+ </el-card>
52
+ <select-page v-if="selectPageFlag" :page-form-code="pageFormCode" @setPage="setPage" />
53
+ </el-form>
54
+ </template>
55
+ <script>
56
+
57
+ import selectPage from './selectPage.vue'
58
+ import { mapGetters } from 'vuex'
59
+
60
+ export default {
61
+ name: 'ParameterSettings',
62
+ components: {
63
+ selectPage
64
+ },
65
+ props: {
66
+ model: {
67
+ type: Object,
68
+ default: null
69
+ }
70
+ },
71
+ data() {
72
+ return {
73
+ selectPageFlag: false,
74
+ pageFormCode: null
75
+ }
76
+ },
77
+ computed: {
78
+ ...mapGetters('wfEditor', [
79
+ 'formCode'
80
+ ])
81
+ },
82
+ methods: {
83
+ openSelectPage() {
84
+ if (this.formCode) {
85
+ this.pageFormCode = this.formCode
86
+ }
87
+ this.selectPageFlag = true
88
+ },
89
+ setPage(path) {
90
+ this.$set(this.model.doTask, 'url', path)
91
+ this.selectPageFlag = false
92
+ }
93
+ }
94
+ }
95
+ </script>
@@ -0,0 +1,28 @@
1
+ <template>
2
+ <el-form :model="model" label-width="80px">
3
+ <user-selection v-model="model.viewFlowHistory" :label="$t('workflowEditor.process.ViewFlowHistoryPersonnel')" label-width="130px" />
4
+ <user-selection v-model="model.viewSubscribeResult" :label="$t('workflowEditor.process.ViewCountersignatureResultPersonnel')" label-width="130px" />
5
+ <user-selection v-model="model.viewVoteResult" :label="$t('workflowEditor.process.ViewVotingResultsBy')" label-width="130px" />
6
+ </el-form>
7
+ </template>
8
+ <script>
9
+ import UserSelection from '../common//user-selection'
10
+ export default {
11
+ name: 'PermissionSettings',
12
+ components: {
13
+ UserSelection
14
+ },
15
+ props: {
16
+ model: {
17
+ type: Object,
18
+ default: null
19
+ }
20
+ },
21
+ data() {
22
+ return {
23
+ showNotice: false
24
+ }
25
+ }
26
+ }
27
+ </script>
28
+
@@ -0,0 +1,88 @@
1
+ <template>
2
+ <el-dialog
3
+ :show-close="true"
4
+ :append-to-body="true"
5
+ :title="$t('workflowEditorPublicModel.selectPage')"
6
+ width="60%"
7
+ visible
8
+ @close="savePage"
9
+ >
10
+ <div style="overflow-y:auto;max-height: 500px">
11
+ <div class="operation-area">
12
+ <el-button size="small" @click="savePage">
13
+ <span>{{ $t('workflowEditorPublicModel.close') }}</span>
14
+ </el-button>
15
+ </div>
16
+ <div>
17
+ <super-grid
18
+ ref="grid"
19
+ :url="baseURL + listURL"
20
+ code="MMS_MODULE_PAGE"
21
+ @select="select"
22
+ />
23
+ </div>
24
+ </div>
25
+ </el-dialog>
26
+ </template>
27
+ <script>
28
+
29
+ // import modulePageService from '@/subsystems/mms/api/module-page'
30
+ import Vue from 'vue'
31
+ import { mapGetters } from 'vuex'
32
+ import authApi from 'imatrix-ui/src/utils/auth-api'
33
+
34
+ export default {
35
+ props: {
36
+ pageFormCode: {
37
+ type: String,
38
+ default: null
39
+ }
40
+ },
41
+ data() {
42
+ return {
43
+ baseURL: '',
44
+ listURL: '',
45
+ selection: []
46
+ }
47
+ },
48
+ computed: {
49
+ ...mapGetters('wfEditor', [
50
+ 'systemVersion'
51
+ ])
52
+ },
53
+ watch: {
54
+ conditionList: {
55
+ handler(newValue, oldValue) {
56
+ this.judgeHeavyData = newValue
57
+ }
58
+ }
59
+ },
60
+ created() {
61
+ this.baseURL = Vue.prototype.baseURL
62
+ if (this.pageFormCode) {
63
+ this.listURL = '/wf-editor/workflow-editors/modulePages/' + this.pageFormCode + '/' + parseInt(authApi.getSessionCache('wf_editor_systemVersion'))
64
+ }
65
+ },
66
+ methods: {
67
+ savePage() {
68
+ if (this.selection && this.selection.length > 0) {
69
+ if (this.selection.length !== 1) {
70
+ this.$message({
71
+ showClose: true,
72
+ type: 'error',
73
+ message: this.$t('message.pleaseSelectARecord')
74
+ })
75
+ } else {
76
+ const code = 'page:' + this.selection[0].code
77
+ this.$emit('setPage', code)
78
+ }
79
+ } else {
80
+ this.$emit('setPage', '')
81
+ }
82
+ },
83
+ select(selection, row) {
84
+ this.selection = selection
85
+ }
86
+ }
87
+ }
88
+ </script>