workflow-editor 0.9.66 → 0.9.67-boe1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/workflow-editor.css +1 -1
- package/lib/workflow-editor.umd.min.js +6 -6
- package/package.json +2 -2
- package/packages/workflow-editor/src/properties-editors/common/common-notice-tool.vue +30 -10
- 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/human-task.vue +10 -4
- package/packages/workflow-editor/src/properties-editors/process/basic-properties.vue +2 -2
- package/packages/workflow-editor/src/properties-editors/process.vue +10 -4
- package/src/i18n/langs/cn.js +9 -5
- package/src/i18n/langs/en.js +9 -5
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "workflow-editor",
|
|
3
|
-
"version": "0.9.
|
|
3
|
+
"version": "0.9.67-boe1",
|
|
4
4
|
"description": "流程编辑器",
|
|
5
5
|
"main": "lib/workflow-editor.umd.min.js",
|
|
6
6
|
"private": false,
|
|
@@ -33,7 +33,7 @@
|
|
|
33
33
|
"element-ui": "2.15.3",
|
|
34
34
|
"eslint": "5.16.0",
|
|
35
35
|
"eslint-plugin-vue": "5.2.2",
|
|
36
|
-
"imatrix-ui": "2.8.
|
|
36
|
+
"imatrix-ui": "2.8.22-boe3",
|
|
37
37
|
"node-sass": "4.12.0",
|
|
38
38
|
"nprogress": "^0.2.0",
|
|
39
39
|
"sass-loader": "^7.1.0",
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<
|
|
3
|
-
<el-
|
|
4
|
-
<el-checkbox
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
2
|
+
<div>
|
|
3
|
+
<el-form-item :label="label">
|
|
4
|
+
<el-checkbox-group v-model="tools">
|
|
5
|
+
<el-checkbox label="mail">
|
|
6
|
+
{{ $t('workflowEditorPublicModel.mail') }}
|
|
7
|
+
</el-checkbox>
|
|
8
|
+
<!-- <el-checkbox label="sms">
|
|
8
9
|
{{ $t('workflowEditorPublicModel.message') }}
|
|
9
10
|
</el-checkbox>
|
|
10
11
|
<el-checkbox label="app">
|
|
@@ -12,9 +13,16 @@
|
|
|
12
13
|
</el-checkbox>
|
|
13
14
|
<el-checkbox label="dingding">
|
|
14
15
|
{{ $t('workflowEditorPublicModel.dingding') }}
|
|
15
|
-
</el-checkbox>
|
|
16
|
-
|
|
17
|
-
|
|
16
|
+
</el-checkbox> -->
|
|
17
|
+
<el-checkbox label="custom">
|
|
18
|
+
{{ $t('workflowEditorPublicModel.custom') }}
|
|
19
|
+
</el-checkbox>
|
|
20
|
+
</el-checkbox-group>
|
|
21
|
+
</el-form-item>
|
|
22
|
+
<el-form-item v-if="tools.indexOf('custom')>=0" :label="$t('workflowEditor.common.customMsg')">
|
|
23
|
+
<el-input v-model="myCustomMsg" />
|
|
24
|
+
</el-form-item>
|
|
25
|
+
</div>
|
|
18
26
|
</template>
|
|
19
27
|
<script>
|
|
20
28
|
export default {
|
|
@@ -27,6 +35,10 @@ export default {
|
|
|
27
35
|
value: {
|
|
28
36
|
type: String,
|
|
29
37
|
default: null
|
|
38
|
+
},
|
|
39
|
+
customMsg: {
|
|
40
|
+
type: String,
|
|
41
|
+
default: null
|
|
30
42
|
}
|
|
31
43
|
},
|
|
32
44
|
data() {
|
|
@@ -34,13 +46,21 @@ export default {
|
|
|
34
46
|
if (this.value && this.value !== '' && this.value !== null) {
|
|
35
47
|
tools = this.value.split(',')
|
|
36
48
|
}
|
|
49
|
+
let myCustomMsg = ''
|
|
50
|
+
if (this.customMsg && this.customMsg !== '' && this.customMsg !== null) {
|
|
51
|
+
myCustomMsg = this.customMsg
|
|
52
|
+
}
|
|
37
53
|
return {
|
|
38
|
-
tools
|
|
54
|
+
tools,
|
|
55
|
+
myCustomMsg
|
|
39
56
|
}
|
|
40
57
|
},
|
|
41
58
|
watch: {
|
|
42
59
|
tools(val) {
|
|
43
60
|
this.$emit('input', this.tools.join(','))
|
|
61
|
+
},
|
|
62
|
+
myCustomMsg(val) {
|
|
63
|
+
this.$emit('input-msg', this.myCustomMsg)
|
|
44
64
|
}
|
|
45
65
|
}
|
|
46
66
|
}
|
|
@@ -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="model" 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
|
}
|
|
@@ -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 === undefined) {
|
|
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
|
}
|
package/src/i18n/langs/cn.js
CHANGED
|
@@ -29,7 +29,8 @@ const cn = {
|
|
|
29
29
|
i18nZh: '中文',
|
|
30
30
|
i18nEn: '英文',
|
|
31
31
|
i18nKey: '国际化key',
|
|
32
|
-
subprocessTitle: '子流程流转历史'
|
|
32
|
+
subprocessTitle: '子流程流转历史',
|
|
33
|
+
custom:'自定义'
|
|
33
34
|
},
|
|
34
35
|
workflowEditorMessage: {
|
|
35
36
|
requiredAndMustBeADate: '必填且必须为日期',
|
|
@@ -137,7 +138,10 @@ const cn = {
|
|
|
137
138
|
formField: '表单字段',
|
|
138
139
|
variableName: '变量名',
|
|
139
140
|
variableValue: '变量值',
|
|
140
|
-
selectField: '选择字段'
|
|
141
|
+
selectField: '选择字段',
|
|
142
|
+
taskNotice:'待办通知',
|
|
143
|
+
reminderNotice:'催办通知',
|
|
144
|
+
customMsg:'自定义消息内容'
|
|
141
145
|
},
|
|
142
146
|
// 流程属性
|
|
143
147
|
process: {
|
|
@@ -291,7 +295,7 @@ const cn = {
|
|
|
291
295
|
permissionSettings: '权限设置',
|
|
292
296
|
notificationSettings: '通知设置',
|
|
293
297
|
sendNotificationAfterProcessEnds: '流程结束后发送通知',
|
|
294
|
-
reminderSettings: '
|
|
298
|
+
reminderSettings: '通知与催办',
|
|
295
299
|
parameterSsetting: '参数设置',
|
|
296
300
|
event: '事件',
|
|
297
301
|
processVariables: '流程变量',
|
|
@@ -413,7 +417,7 @@ const cn = {
|
|
|
413
417
|
attributesOfManualJudgment: '人工判断的属性',
|
|
414
418
|
linkAttribute: '环节属性',
|
|
415
419
|
autoFillInFieldSettings: '自动填写字段设置',
|
|
416
|
-
reminderSettings: '
|
|
420
|
+
reminderSettings: '通知与催办',
|
|
417
421
|
eventProcessing: '事件处理',
|
|
418
422
|
linkVariable: '环节变量',
|
|
419
423
|
convergedProperties: '汇聚的属性',
|
|
@@ -421,7 +425,7 @@ const cn = {
|
|
|
421
425
|
conditionJudgment: '条件判断',
|
|
422
426
|
cCtask: '抄送任务',
|
|
423
427
|
canItBeRejected: '是否可驳回',
|
|
424
|
-
selectMailTemplate: '
|
|
428
|
+
selectMailTemplate: '选择通知模板',
|
|
425
429
|
selectTemplate: '选择模板'
|
|
426
430
|
},
|
|
427
431
|
// 流向属性
|
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: {
|
|
@@ -291,7 +295,7 @@ const en = {
|
|
|
291
295
|
permissionSettings: 'Permission Settings',
|
|
292
296
|
notificationSettings: 'Notification Settings',
|
|
293
297
|
sendNotificationAfterProcessEnds: 'Send Notification After Process Ends',
|
|
294
|
-
reminderSettings: 'Reminder Settings',
|
|
298
|
+
reminderSettings: 'Notice And Reminder Settings',
|
|
295
299
|
parameterSsetting: 'Parameter Setting',
|
|
296
300
|
event: 'Event',
|
|
297
301
|
processVariables: 'Process Variables',
|
|
@@ -413,7 +417,7 @@ const en = {
|
|
|
413
417
|
attributesOfManualJudgment: 'Attributes of manual Judgment',
|
|
414
418
|
linkAttribute: 'Link Attribute',
|
|
415
419
|
autoFillInFieldSettings: 'Auto Fill In Field Settings',
|
|
416
|
-
reminderSettings: 'Reminder Settings',
|
|
420
|
+
reminderSettings: 'Notice And Reminder Settings',
|
|
417
421
|
eventProcessing: 'Event Processing',
|
|
418
422
|
linkVariable: 'Link Variable',
|
|
419
423
|
convergedProperties: 'Converged Properties',
|
|
@@ -421,7 +425,7 @@ const en = {
|
|
|
421
425
|
conditionJudgment: 'Condition Judgment',
|
|
422
426
|
cCtask: 'CC Task',
|
|
423
427
|
canItBeRejected: 'Can It Be Rejected',
|
|
424
|
-
selectMailTemplate: 'Select
|
|
428
|
+
selectMailTemplate: 'Select Notice Template',
|
|
425
429
|
selectTemplate: 'Select Template'
|
|
426
430
|
},
|
|
427
431
|
// 流向属性
|