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.
- package/lib/workflow-editor.css +1 -1
- package/lib/workflow-editor.umd.min.js +10 -10
- package/package.json +2 -2
- package/packages/index.js +34 -0
- package/packages/plugins/formValidatorUtil.js +528 -0
- package/packages/plugins/index.js +8 -0
- package/packages/workflow-editor/index.js +14 -0
- package/packages/workflow-editor/src/api.js +7 -0
- package/packages/workflow-editor/src/assets/wf-editor-icons.js +2 -0
- package/packages/workflow-editor/src/constant.js +8 -0
- package/packages/workflow-editor/src/json-object-templates/copy-task.js +67 -0
- package/packages/workflow-editor/src/json-object-templates/decision.js +11 -0
- package/packages/workflow-editor/src/json-object-templates/end.js +14 -0
- package/packages/workflow-editor/src/json-object-templates/fork.js +10 -0
- package/packages/workflow-editor/src/json-object-templates/human-decision.js +9 -0
- package/packages/workflow-editor/src/json-object-templates/human-task.js +199 -0
- package/packages/workflow-editor/src/json-object-templates/join.js +10 -0
- package/packages/workflow-editor/src/json-object-templates/process.js +98 -0
- package/packages/workflow-editor/src/json-object-templates/start.js +13 -0
- package/packages/workflow-editor/src/json-object-templates/subprocess.js +30 -0
- package/packages/workflow-editor/src/json-object-templates/transition.js +26 -0
- package/packages/workflow-editor/src/main/admin-save-dialog.vue +66 -0
- package/packages/workflow-editor/src/main/canvas.vue +479 -0
- package/packages/workflow-editor/src/main/context-menu.vue +132 -0
- package/packages/workflow-editor/src/main/icon-svg.vue +32 -0
- package/packages/workflow-editor/src/main/selection-region.vue +66 -0
- package/packages/workflow-editor/src/main/tache-history-tooltip.vue +38 -0
- package/packages/workflow-editor/src/main/tache-name-input.vue +19 -0
- package/packages/workflow-editor/src/main/tache-subprocess-history-dialog.vue +35 -0
- package/packages/workflow-editor/src/main/toolbox.vue +60 -0
- package/packages/workflow-editor/src/main/wf-history-canvas.vue +302 -0
- package/packages/workflow-editor/src/process-json.js +622 -0
- package/packages/workflow-editor/src/process-service.js +31 -0
- package/packages/workflow-editor/src/properties-editors/common/additional-condition-utils.js +531 -0
- package/packages/workflow-editor/src/properties-editors/common/additional-condition.vue +276 -0
- package/packages/workflow-editor/src/properties-editors/common/auto-filled-fields-utils.js +34 -0
- package/packages/workflow-editor/src/properties-editors/common/auto-filled-fields.vue +239 -0
- package/packages/workflow-editor/src/properties-editors/common/common-notice-tool.vue +67 -0
- package/packages/workflow-editor/src/properties-editors/common/common-user-condition.vue +241 -0
- package/packages/workflow-editor/src/properties-editors/common/form-fields-utils.js +23 -0
- package/packages/workflow-editor/src/properties-editors/common/form-fields.vue +116 -0
- package/packages/workflow-editor/src/properties-editors/common/i18n-input.vue +75 -0
- package/packages/workflow-editor/src/properties-editors/common/i18n-set-dialog.vue +125 -0
- package/packages/workflow-editor/src/properties-editors/common/notice-reminder.vue +72 -0
- package/packages/workflow-editor/src/properties-editors/common/notice.vue +101 -0
- package/packages/workflow-editor/src/properties-editors/common/reminder.vue +185 -0
- package/packages/workflow-editor/src/properties-editors/common/select-mail-template.vue +83 -0
- package/packages/workflow-editor/src/properties-editors/common/standard-fields.vue +65 -0
- package/packages/workflow-editor/src/properties-editors/common/system-role-tree-inline.vue +355 -0
- package/packages/workflow-editor/src/properties-editors/common/system-role-tree.vue +63 -0
- package/packages/workflow-editor/src/properties-editors/common/task-title.vue +148 -0
- package/packages/workflow-editor/src/properties-editors/common/transactor-settings.vue +233 -0
- package/packages/workflow-editor/src/properties-editors/common/user-selection.vue +386 -0
- package/packages/workflow-editor/src/properties-editors/common/value-selection-dialog.vue +209 -0
- package/packages/workflow-editor/src/properties-editors/common/variables.vue +135 -0
- package/packages/workflow-editor/src/properties-editors/copy-task/basic-properties.vue +90 -0
- package/packages/workflow-editor/src/properties-editors/copy-task/permission-settings.vue +155 -0
- package/packages/workflow-editor/src/properties-editors/copy-task.vue +80 -0
- package/packages/workflow-editor/src/properties-editors/decision.vue +90 -0
- package/packages/workflow-editor/src/properties-editors/fork.vue +72 -0
- package/packages/workflow-editor/src/properties-editors/human-decision.vue +44 -0
- package/packages/workflow-editor/src/properties-editors/human-task/additional-condition-dialog.vue +60 -0
- package/packages/workflow-editor/src/properties-editors/human-task/basic-properties.vue +156 -0
- package/packages/workflow-editor/src/properties-editors/human-task/componentsConfigUtil.js +291 -0
- package/packages/workflow-editor/src/properties-editors/human-task/custom-actions.vue +249 -0
- package/packages/workflow-editor/src/properties-editors/human-task/editable-child-field-setting.vue +392 -0
- package/packages/workflow-editor/src/properties-editors/human-task/editable-child-fields.vue +241 -0
- package/packages/workflow-editor/src/properties-editors/human-task/editable-field-selection.vue +220 -0
- package/packages/workflow-editor/src/properties-editors/human-task/editable-fields.vue +204 -0
- package/packages/workflow-editor/src/properties-editors/human-task/events.vue +59 -0
- package/packages/workflow-editor/src/properties-editors/human-task/permission-settings.vue +207 -0
- package/packages/workflow-editor/src/properties-editors/human-task/selection-conditions.vue +390 -0
- package/packages/workflow-editor/src/properties-editors/human-task.vue +109 -0
- package/packages/workflow-editor/src/properties-editors/join.vue +44 -0
- package/packages/workflow-editor/src/properties-editors/process/basic-properties.vue +324 -0
- package/packages/workflow-editor/src/properties-editors/process/events.vue +76 -0
- package/packages/workflow-editor/src/properties-editors/process/notice-settings.vue +60 -0
- package/packages/workflow-editor/src/properties-editors/process/parameter-settings.vue +95 -0
- package/packages/workflow-editor/src/properties-editors/process/permission-settings.vue +28 -0
- package/packages/workflow-editor/src/properties-editors/process/selectPage.vue +88 -0
- package/packages/workflow-editor/src/properties-editors/process.vue +115 -0
- package/packages/workflow-editor/src/properties-editors/subprocess/basic-properties.vue +187 -0
- package/packages/workflow-editor/src/properties-editors/subprocess/events.vue +26 -0
- package/packages/workflow-editor/src/properties-editors/subprocess/field-mappings.vue +206 -0
- package/packages/workflow-editor/src/properties-editors/subprocess/transactor-settings.vue +64 -0
- package/packages/workflow-editor/src/properties-editors/subprocess.vue +79 -0
- package/packages/workflow-editor/src/properties-editors/transition/basic-properties.vue +53 -0
- package/packages/workflow-editor/src/properties-editors/transition.vue +74 -0
- package/packages/workflow-editor/src/properties-editors/user-condition.js +177 -0
- package/packages/workflow-editor/src/store/getters.js +28 -0
- package/packages/workflow-editor/src/store/workflow-editor.js +128 -0
- package/packages/workflow-editor/src/taches/common-methods.js +21 -0
- package/packages/workflow-editor/src/taches/copy-task.vue +99 -0
- package/packages/workflow-editor/src/taches/custom-task.vue +88 -0
- package/packages/workflow-editor/src/taches/decision.vue +102 -0
- package/packages/workflow-editor/src/taches/end.vue +76 -0
- package/packages/workflow-editor/src/taches/fork.vue +102 -0
- package/packages/workflow-editor/src/taches/human-decision.vue +102 -0
- package/packages/workflow-editor/src/taches/human-task.vue +113 -0
- package/packages/workflow-editor/src/taches/join.vue +91 -0
- package/packages/workflow-editor/src/taches/joint.vue +177 -0
- package/packages/workflow-editor/src/taches/start.vue +76 -0
- package/packages/workflow-editor/src/taches/subprocess.vue +99 -0
- package/packages/workflow-editor/src/taches/tache-resizer.vue +80 -0
- package/packages/workflow-editor/src/transitions/broken-line.vue +91 -0
- package/packages/workflow-editor/src/transitions/curve-line.vue +91 -0
- package/packages/workflow-editor/src/transitions/straight-line.vue +26 -0
- package/packages/workflow-editor/src/transitions/transition.vue +212 -0
- package/packages/workflow-editor/src/transitions/virtual-transition.vue +43 -0
- package/packages/workflow-editor/src/util.js +493 -0
- package/packages/workflow-editor/src/workflow-editor.vue +625 -0
- package/packages/workflow-editor/src/workflow-history.vue +153 -0
- package/src/i18n/langs/cn.js +14 -6
- package/src/i18n/langs/en.js +14 -6
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<div
|
|
3
|
+
ref="wfEditor"
|
|
4
|
+
style="position:relative;height:100%;"
|
|
5
|
+
>
|
|
6
|
+
<div
|
|
7
|
+
class="main"
|
|
8
|
+
>
|
|
9
|
+
<section>
|
|
10
|
+
<wf-history-canvas
|
|
11
|
+
onselectstart="return false"
|
|
12
|
+
:process="process"
|
|
13
|
+
:histories="histories"
|
|
14
|
+
:current-tasks="currentTasks"
|
|
15
|
+
:all-process-i18n="allProcessI18n"
|
|
16
|
+
:show-history="true"
|
|
17
|
+
class="canvas"
|
|
18
|
+
@contextmenu.native.prevent="showContextMenu"
|
|
19
|
+
/>
|
|
20
|
+
</section>
|
|
21
|
+
</div>
|
|
22
|
+
</div>
|
|
23
|
+
</template>
|
|
24
|
+
<script>
|
|
25
|
+
import './assets/wf-editor-icons.js'
|
|
26
|
+
import { mapGetters, mapMutations } from 'vuex'
|
|
27
|
+
import { removeTextProperty, initializeProcessData, processTemplate } from './util'
|
|
28
|
+
import WfHistoryCanvas from './main/wf-history-canvas'
|
|
29
|
+
import convert from 'xml-js'
|
|
30
|
+
import ApiJs from './api'
|
|
31
|
+
export default {
|
|
32
|
+
name: 'WorkflowHistory',
|
|
33
|
+
components: {
|
|
34
|
+
WfHistoryCanvas
|
|
35
|
+
},
|
|
36
|
+
props: {
|
|
37
|
+
// 实例id
|
|
38
|
+
id: {
|
|
39
|
+
type: Number,
|
|
40
|
+
default: null
|
|
41
|
+
}
|
|
42
|
+
},
|
|
43
|
+
data: function() {
|
|
44
|
+
return {
|
|
45
|
+
process: null,
|
|
46
|
+
histories: [],
|
|
47
|
+
currentTasks: [],
|
|
48
|
+
allProcessI18n: null
|
|
49
|
+
}
|
|
50
|
+
},
|
|
51
|
+
computed: {
|
|
52
|
+
...mapGetters(
|
|
53
|
+
'wfEditor', ['componentToDraw', 'taches', 'transitions', 'contextMenuVisible']
|
|
54
|
+
),
|
|
55
|
+
...mapGetters([
|
|
56
|
+
'sidebar'
|
|
57
|
+
])
|
|
58
|
+
|
|
59
|
+
},
|
|
60
|
+
watch: {
|
|
61
|
+
|
|
62
|
+
},
|
|
63
|
+
created: function() {
|
|
64
|
+
this.showHistory()
|
|
65
|
+
},
|
|
66
|
+
mounted: function() {
|
|
67
|
+
|
|
68
|
+
},
|
|
69
|
+
methods: {
|
|
70
|
+
...ApiJs,
|
|
71
|
+
...mapMutations('wfEditor', [
|
|
72
|
+
'setComponentToDraw',
|
|
73
|
+
'clearCanvas',
|
|
74
|
+
'setContextMenuVisible',
|
|
75
|
+
'setProcessI18n'
|
|
76
|
+
]),
|
|
77
|
+
showHistory() {
|
|
78
|
+
// 打开或新建流程图时先清空画布,开发过程中代码热更新的时候可以避免节点重复
|
|
79
|
+
this.clearCanvas()
|
|
80
|
+
if (this.id) {
|
|
81
|
+
this.$http.get(this.baseAPI + '/wf-editor/i18n-settings/get-bundle-info?workflowId=' + this.id).then(processI18n => {
|
|
82
|
+
this.allProcessI18n = processI18n
|
|
83
|
+
const url = this.baseAPI + '/wf-editor/instance-histories/' + this.id
|
|
84
|
+
this.$http.get(url).then(data => {
|
|
85
|
+
this.initProcessByXml(data.xml)
|
|
86
|
+
let mainBundleCode
|
|
87
|
+
if (data.histories && data.histories.length > 0) {
|
|
88
|
+
mainBundleCode = data.histories[0].bundleCode
|
|
89
|
+
}
|
|
90
|
+
if (!mainBundleCode && data.currentTasks && data.currentTasks.length > 0) {
|
|
91
|
+
mainBundleCode = data.currentTasks[0].bundleCode
|
|
92
|
+
}
|
|
93
|
+
if (mainBundleCode) {
|
|
94
|
+
this.setProcessI18n(processI18n[mainBundleCode])
|
|
95
|
+
}
|
|
96
|
+
this.histories = data.histories
|
|
97
|
+
this.currentTasks = data.currentTasks
|
|
98
|
+
})
|
|
99
|
+
})
|
|
100
|
+
} else {
|
|
101
|
+
this.process = processTemplate.newProcess()
|
|
102
|
+
initializeProcessData(this.process)
|
|
103
|
+
}
|
|
104
|
+
},
|
|
105
|
+
showContextMenu(event) {
|
|
106
|
+
|
|
107
|
+
},
|
|
108
|
+
initProcessByXml(xml) {
|
|
109
|
+
const options = { nativeType: true, attributesKey: 'attr', compact: true, ignoreComment: true, spaces: 4 }
|
|
110
|
+
const processObj = convert.xml2js(xml, options)
|
|
111
|
+
removeTextProperty(processObj.process)
|
|
112
|
+
this.process = processObj.process
|
|
113
|
+
|
|
114
|
+
initializeProcessData(this.process)
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
</script>
|
|
119
|
+
<style lang="scss" scoped>
|
|
120
|
+
.main{
|
|
121
|
+
position: relative;
|
|
122
|
+
display:flex;
|
|
123
|
+
height: 100%;
|
|
124
|
+
width:100%;
|
|
125
|
+
}
|
|
126
|
+
.canvas-container{
|
|
127
|
+
position: relative;
|
|
128
|
+
// display:flex;
|
|
129
|
+
height: 100%;
|
|
130
|
+
width:100%;
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
section{
|
|
134
|
+
overflow: hidden;
|
|
135
|
+
width:100%;
|
|
136
|
+
height:100%;
|
|
137
|
+
padding: 0;
|
|
138
|
+
// min-height: 500px;
|
|
139
|
+
}
|
|
140
|
+
.canvas{
|
|
141
|
+
overflow: auto;
|
|
142
|
+
height:100%;
|
|
143
|
+
// border:1px solid red;
|
|
144
|
+
// background: #ffffff;
|
|
145
|
+
padding: 0;
|
|
146
|
+
min-height: 500px;
|
|
147
|
+
|
|
148
|
+
}
|
|
149
|
+
.canvas /deep/ .draggable{
|
|
150
|
+
cursor: default;
|
|
151
|
+
}
|
|
152
|
+
</style>
|
|
153
|
+
|
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: {
|
|
@@ -224,6 +228,8 @@ const cn = {
|
|
|
224
228
|
handlingYyThePersonnelOfTheDepartmentOfTheInitiator: '发起人所在部门人员办理',
|
|
225
229
|
personnelOfTheDepartmentWhereTheInitiatorWorksParticipateInTheHandling: '发起人所在部门人员参与办理',
|
|
226
230
|
selectSpecificHandler: '选择具体办理人',
|
|
231
|
+
selectOneFromDept: '同一部门仅需一人办理',
|
|
232
|
+
generateOneInstanceFromDept: '同一部门生成一个实例',
|
|
227
233
|
selectionMethod: '选择方式',
|
|
228
234
|
manualSelection: '人工选择',
|
|
229
235
|
autoSelect: '自动选择',
|
|
@@ -289,7 +295,7 @@ const cn = {
|
|
|
289
295
|
permissionSettings: '权限设置',
|
|
290
296
|
notificationSettings: '通知设置',
|
|
291
297
|
sendNotificationAfterProcessEnds: '流程结束后发送通知',
|
|
292
|
-
reminderSettings: '
|
|
298
|
+
reminderSettings: '通知与催办',
|
|
293
299
|
parameterSsetting: '参数设置',
|
|
294
300
|
event: '事件',
|
|
295
301
|
processVariables: '流程变量',
|
|
@@ -313,7 +319,9 @@ const cn = {
|
|
|
313
319
|
isNull: '等于Null',
|
|
314
320
|
isNotNull: '不等于Null',
|
|
315
321
|
defaultMailTemplate: '默认邮件模板',
|
|
316
|
-
trustTask: '委托任务'
|
|
322
|
+
trustTask: '委托任务',
|
|
323
|
+
subprocessIsSharedForm: '主子流程共用表单',
|
|
324
|
+
systemVersion: '系统版本'
|
|
317
325
|
},
|
|
318
326
|
// 环节属性
|
|
319
327
|
task: {
|
|
@@ -410,7 +418,7 @@ const cn = {
|
|
|
410
418
|
attributesOfManualJudgment: '人工判断的属性',
|
|
411
419
|
linkAttribute: '环节属性',
|
|
412
420
|
autoFillInFieldSettings: '自动填写字段设置',
|
|
413
|
-
reminderSettings: '
|
|
421
|
+
reminderSettings: '通知与催办',
|
|
414
422
|
eventProcessing: '事件处理',
|
|
415
423
|
linkVariable: '环节变量',
|
|
416
424
|
convergedProperties: '汇聚的属性',
|
|
@@ -418,7 +426,7 @@ const cn = {
|
|
|
418
426
|
conditionJudgment: '条件判断',
|
|
419
427
|
cCtask: '抄送任务',
|
|
420
428
|
canItBeRejected: '是否可驳回',
|
|
421
|
-
selectMailTemplate: '
|
|
429
|
+
selectMailTemplate: '选择通知模板',
|
|
422
430
|
selectTemplate: '选择模板'
|
|
423
431
|
},
|
|
424
432
|
// 流向属性
|
package/src/i18n/langs/en.js
CHANGED
|
@@ -29,7 +29,8 @@ const en = {
|
|
|
29
29
|
i18nZh: 'Chinese',
|
|
30
30
|
i18nEn: 'English',
|
|
31
31
|
i18nKey: 'I18n Key',
|
|
32
|
-
subprocessTitle: 'Subprocess History'
|
|
32
|
+
subprocessTitle: 'Subprocess History',
|
|
33
|
+
custom: 'Custom'
|
|
33
34
|
},
|
|
34
35
|
workflowEditorMessage: {
|
|
35
36
|
requiredAndMustBeADate: 'Required And Must Be A Date',
|
|
@@ -137,7 +138,10 @@ const en = {
|
|
|
137
138
|
formField: 'Form Field',
|
|
138
139
|
variableName: 'Variable Name',
|
|
139
140
|
variableValue: 'Variable Value',
|
|
140
|
-
selectField: 'Select Field'
|
|
141
|
+
selectField: 'Select Field',
|
|
142
|
+
taskNotice: 'Task Notice',
|
|
143
|
+
reminderNotice: 'Reminder Notice',
|
|
144
|
+
customMsg: 'Custom Notice Message'
|
|
141
145
|
},
|
|
142
146
|
// 流程属性
|
|
143
147
|
process: {
|
|
@@ -224,6 +228,8 @@ const en = {
|
|
|
224
228
|
handlingYyThePersonnelOfTheDepartmentOfTheInitiator: 'Handling By The Personnel Of The Department Of The Initiator',
|
|
225
229
|
personnelOfTheDepartmentWhereTheInitiatorWorksParticipateInTheHandling: 'Personnel Of The Department Where The Initiator Works Participate In The Handling',
|
|
226
230
|
selectSpecificHandler: 'Select Specific Handler',
|
|
231
|
+
selectOneFromDept: 'Only one person is required to handle the same department',
|
|
232
|
+
generateOneInstanceFromDept: 'Generate an instance from the same department',
|
|
227
233
|
selectionMethod: 'Selection Method',
|
|
228
234
|
manualSelection: 'Manual Selection',
|
|
229
235
|
autoSelect: 'Auto Select',
|
|
@@ -289,7 +295,7 @@ const en = {
|
|
|
289
295
|
permissionSettings: 'Permission Settings',
|
|
290
296
|
notificationSettings: 'Notification Settings',
|
|
291
297
|
sendNotificationAfterProcessEnds: 'Send Notification After Process Ends',
|
|
292
|
-
reminderSettings: 'Reminder Settings',
|
|
298
|
+
reminderSettings: 'Notice And Reminder Settings',
|
|
293
299
|
parameterSsetting: 'Parameter Setting',
|
|
294
300
|
event: 'Event',
|
|
295
301
|
processVariables: 'Process Variables',
|
|
@@ -313,7 +319,9 @@ const en = {
|
|
|
313
319
|
isNull: 'Is Null',
|
|
314
320
|
isNotNull: 'Is Not Null',
|
|
315
321
|
defaultMailTemplate: 'Default Mail Template',
|
|
316
|
-
trustTask: 'Trust Task'
|
|
322
|
+
trustTask: 'Trust Task',
|
|
323
|
+
subprocessIsSharedForm: 'Main process and subprocess shared form',
|
|
324
|
+
systemVersion: 'System Version'
|
|
317
325
|
},
|
|
318
326
|
// 环节属性
|
|
319
327
|
task: {
|
|
@@ -410,7 +418,7 @@ const en = {
|
|
|
410
418
|
attributesOfManualJudgment: 'Attributes of manual Judgment',
|
|
411
419
|
linkAttribute: 'Link Attribute',
|
|
412
420
|
autoFillInFieldSettings: 'Auto Fill In Field Settings',
|
|
413
|
-
reminderSettings: 'Reminder Settings',
|
|
421
|
+
reminderSettings: 'Notice And Reminder Settings',
|
|
414
422
|
eventProcessing: 'Event Processing',
|
|
415
423
|
linkVariable: 'Link Variable',
|
|
416
424
|
convergedProperties: 'Converged Properties',
|
|
@@ -418,7 +426,7 @@ const en = {
|
|
|
418
426
|
conditionJudgment: 'Condition Judgment',
|
|
419
427
|
cCtask: 'CC Task',
|
|
420
428
|
canItBeRejected: 'Can It Be Rejected',
|
|
421
|
-
selectMailTemplate: 'Select
|
|
429
|
+
selectMailTemplate: 'Select Notice Template',
|
|
422
430
|
selectTemplate: 'Select Template'
|
|
423
431
|
},
|
|
424
432
|
// 流向属性
|