Skip to content
Toggle navigation
P
Projects
G
Groups
S
Snippets
Help
Chatopera OpenSource
/
ferry_web
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Members
Activity
Graph
Charts
Create a new issue
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Commit
2b80405d
authored
Jun 05, 2021
by
lanyulei
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat: 添加流程节点邮件抄送功能。
parent
5a394dba
Show whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
59 additions
and
1 deletions
src/components/wfd/components/DetailPanel/DefaultDetail.vue
src/components/wfd/components/DetailPanel/EndEventDetail.vue
src/components/wfd/components/DetailPanel/HandleNodeDetail.vue
src/components/wfd/components/DetailPanel/NodeDetail.vue
src/components/wfd/components/DetailPanel/StartEventDetail.vue
src/components/wfd/components/DetailPanel/UserTaskDetail.vue
src/components/wfd/components/DetailPanel/index.vue
src/components/wfd/components/DetailPanel/DefaultDetail.vue
View file @
2b80405d
...
@@ -6,12 +6,14 @@
...
@@ -6,12 +6,14 @@
style=
"width:90%; font-size:12px"
style=
"width:90%; font-size:12px"
:disabled=
"readOnly"
:disabled=
"readOnly"
:value=
"model.label"
:value=
"model.label"
size=
"small"
@
input=
"(value) =>
{onChange('label', value)}"
@
input=
"(value) =>
{onChange('label', value)}"
/>
/>
</div>
</div>
<div
class=
"panelRow"
>
<div
class=
"panelRow"
>
<div><span
style=
"color: red"
>
*
</span>
顺序:
</div>
<div><span
style=
"color: red"
>
*
</span>
顺序:
</div>
<el-input
<el-input
size=
"small"
style=
"width:90%; font-size:12px"
style=
"width:90%; font-size:12px"
:disabled=
"readOnly"
:disabled=
"readOnly"
:value=
"model.sort"
:value=
"model.sort"
...
@@ -20,11 +22,13 @@
...
@@ -20,11 +22,13 @@
</div>
</div>
<div
class=
"panelRow"
>
<div
class=
"panelRow"
>
<el-checkbox
<el-checkbox
size=
"small"
:disabled=
"readOnly"
:disabled=
"readOnly"
:value=
"!!model.isHideNode"
:value=
"!!model.isHideNode"
@
change=
"(value) => onChange('isHideNode', value)"
@
change=
"(value) => onChange('isHideNode', value)"
>
隐藏节点
</el-checkbox>
>
隐藏节点
</el-checkbox>
<el-checkbox
<el-checkbox
size=
"small"
:disabled=
"readOnly"
:disabled=
"readOnly"
:value=
"!!model.hideIcon"
:value=
"!!model.hideIcon"
@
change=
"(value) => onChange('hideIcon', value)"
@
change=
"(value) => onChange('hideIcon', value)"
...
...
src/components/wfd/components/DetailPanel/EndEventDetail.vue
View file @
2b80405d
...
@@ -6,6 +6,7 @@
...
@@ -6,6 +6,7 @@
<div
class=
"panelRow"
>
<div
class=
"panelRow"
>
<div>
之后任务:
</div>
<div>
之后任务:
</div>
<el-select
<el-select
size=
"small"
style=
"width:90%; font-size:12px"
style=
"width:90%; font-size:12px"
placeholder=
"选择任务"
placeholder=
"选择任务"
:disabled=
"readOnly"
:disabled=
"readOnly"
...
@@ -25,6 +26,7 @@
...
@@ -25,6 +26,7 @@
:templates-base=
"templatesBase"
:templates-base=
"templatesBase"
:write-preview=
"false"
:write-preview=
"false"
:readonly-preview=
"false"
:readonly-preview=
"false"
:cc-preview=
"false"
/>
/>
</div>
</div>
</div>
</div>
...
...
src/components/wfd/components/DetailPanel/HandleNodeDetail.vue
View file @
2b80405d
...
@@ -6,6 +6,7 @@
...
@@ -6,6 +6,7 @@
<div
class=
"panelRow"
>
<div
class=
"panelRow"
>
<div>
之后任务:
</div>
<div>
之后任务:
</div>
<el-select
<el-select
size=
"small"
style=
"width:90%; font-size:12px"
style=
"width:90%; font-size:12px"
placeholder=
"选择任务"
placeholder=
"选择任务"
:disabled=
"readOnly"
:disabled=
"readOnly"
...
@@ -20,6 +21,7 @@
...
@@ -20,6 +21,7 @@
<div
class=
"panelRow"
>
<div
class=
"panelRow"
>
<div><span
style=
"color: red"
>
*
</span>
{{
i18n
[
'handleNode.assignType'
]
}}
:
</div>
<div><span
style=
"color: red"
>
*
</span>
{{
i18n
[
'handleNode.assignType'
]
}}
:
</div>
<el-select
<el-select
size=
"small"
style=
"width:90%; font-size: 12px"
style=
"width:90%; font-size: 12px"
:placeholder=
"i18n['handleNode.assignType.placeholder']"
:placeholder=
"i18n['handleNode.assignType.placeholder']"
:value=
"model.assignType"
:value=
"model.assignType"
...
@@ -36,6 +38,7 @@
...
@@ -36,6 +38,7 @@
<div
v-if=
"model.assignType === 'person'"
class=
"panelRow"
>
<div
v-if=
"model.assignType === 'person'"
class=
"panelRow"
>
<div><span
style=
"color: red"
>
*
</span>
{{
i18n
[
'handleNode.assignType.person.title'
]
}}
:
</div>
<div><span
style=
"color: red"
>
*
</span>
{{
i18n
[
'handleNode.assignType.person.title'
]
}}
:
</div>
<el-select
<el-select
size=
"small"
style=
"width:90%; font-size:12px"
style=
"width:90%; font-size:12px"
:placeholder=
"i18n['handleNode.assignType.person.placeholder']"
:placeholder=
"i18n['handleNode.assignType.person.placeholder']"
:disabled=
"readOnly"
:disabled=
"readOnly"
...
@@ -51,6 +54,7 @@
...
@@ -51,6 +54,7 @@
<div><span
style=
"color: red"
>
*
</span>
{{
i18n
[
'userTask.assignType.role.title'
]
}}
:
</div>
<div><span
style=
"color: red"
>
*
</span>
{{
i18n
[
'userTask.assignType.role.title'
]
}}
:
</div>
<el-select
<el-select
v-model
.
number=
"model.assignValue"
v-model
.
number=
"model.assignValue"
size=
"small"
style=
"width:90%; font-size:12px"
style=
"width:90%; font-size:12px"
:placeholder=
"i18n['userTask.assignType.role.placeholder']"
:placeholder=
"i18n['userTask.assignType.role.placeholder']"
:disabled=
"readOnly"
:disabled=
"readOnly"
...
@@ -77,6 +81,7 @@
...
@@ -77,6 +81,7 @@
<div
v-else-if=
"model.assignType === 'department'"
class=
"panelRow"
>
<div
v-else-if=
"model.assignType === 'department'"
class=
"panelRow"
>
<div><span
style=
"color: red"
>
*
</span>
{{
i18n
[
'userTask.assignType.department.title'
]
}}
:
</div>
<div><span
style=
"color: red"
>
*
</span>
{{
i18n
[
'userTask.assignType.department.title'
]
}}
:
</div>
<el-select
<el-select
size=
"small"
style=
"width:90%; font-size:12px"
style=
"width:90%; font-size:12px"
:placeholder=
"i18n['userTask.assignType.department.placeholder']"
:placeholder=
"i18n['userTask.assignType.department.placeholder']"
:value=
"model.assignValue"
:value=
"model.assignValue"
...
@@ -92,6 +97,7 @@
...
@@ -92,6 +97,7 @@
<div><span
style=
"color: red"
>
*
</span>
{{
i18n
[
'handleNode.assignType.variable.title'
]
}}
:
</div>
<div><span
style=
"color: red"
>
*
</span>
{{
i18n
[
'handleNode.assignType.variable.title'
]
}}
:
</div>
<el-select
<el-select
v-model
.
number=
"model.assignValue"
v-model
.
number=
"model.assignValue"
size=
"small"
style=
"width:90%; font-size:12px"
style=
"width:90%; font-size:12px"
:placeholder=
"i18n['handleNode.assignType.variable.placeholder']"
:placeholder=
"i18n['handleNode.assignType.variable.placeholder']"
:disabled=
"readOnly"
:disabled=
"readOnly"
...
@@ -104,6 +110,7 @@
...
@@ -104,6 +110,7 @@
</div>
</div>
<div
class=
"panelRow"
>
<div
class=
"panelRow"
>
<el-checkbox
<el-checkbox
size=
"small"
:disabled=
"model.assignType !== 'role' && model.assignType !== 'department' && (
:disabled=
"model.assignType !== 'role' && model.assignType !== 'department' && (
model.assignValue===undefined ||
model.assignValue===undefined ||
model.assignValue===null ||
model.assignValue===null ||
...
@@ -114,6 +121,7 @@
...
@@ -114,6 +121,7 @@
@
change=
"(e) =>
{ onChange('isCounterSign', e); initCounterSign(e) }"
@
change=
"(e) =>
{ onChange('isCounterSign', e); initCounterSign(e) }"
>
{{
i18n
[
'handleNode.counterSign'
]
}}
</el-checkbox>
>
{{
i18n
[
'handleNode.counterSign'
]
}}
</el-checkbox>
<el-checkbox
<el-checkbox
size=
"small"
:disabled=
"
:disabled=
"
model.assignValue===undefined||
model.assignValue===undefined||
model.assignValue===null||
model.assignValue===null||
...
@@ -129,6 +137,7 @@
...
@@ -129,6 +137,7 @@
model.assignValue!==null &&
model.assignValue!==null &&
model.assignValue.length >= 1 &&
model.assignValue.length >= 1 &&
model.isCounterSign"
model.isCounterSign"
size=
"small"
:value=
"model.fullHandle"
:value=
"model.fullHandle"
@
change=
"(value) => onChange('fullHandle', value)"
@
change=
"(value) => onChange('fullHandle', value)"
>
{{
i18n
[
'userTask.fullHandle'
]
}}
</el-checkbox>
>
{{
i18n
[
'userTask.fullHandle'
]
}}
</el-checkbox>
...
@@ -140,6 +149,7 @@
...
@@ -140,6 +149,7 @@
:templates=
"templates"
:templates=
"templates"
:templates-base=
"templatesBase"
:templates-base=
"templatesBase"
:readonly-preview=
"false"
:readonly-preview=
"false"
:users=
"users"
/>
/>
</div>
</div>
</div>
</div>
...
...
src/components/wfd/components/DetailPanel/NodeDetail.vue
View file @
2b80405d
...
@@ -9,6 +9,7 @@
...
@@ -9,6 +9,7 @@
:value=
"model.writeTpls"
:value=
"model.writeTpls"
:multiple=
"true"
:multiple=
"true"
:filterable=
"true"
:filterable=
"true"
size=
"small"
@
change=
"(e) => onChange('writeTpls', e)"
@
change=
"(e) => onChange('writeTpls', e)"
>
>
<template
v-for=
"(templateValue, templateIndex) in templatesBase"
>
<template
v-for=
"(templateValue, templateIndex) in templatesBase"
>
...
@@ -25,6 +26,7 @@
...
@@ -25,6 +26,7 @@
:value=
"model.readonlyTpls"
:value=
"model.readonlyTpls"
:multiple=
"true"
:multiple=
"true"
:filterable=
"true"
:filterable=
"true"
size=
"small"
@
change=
"(e) => onChange('readonlyTpls', e)"
@
change=
"(e) => onChange('readonlyTpls', e)"
>
>
<
template
v-for=
"(templateValue, templateIndex) in templatesBase"
>
<
template
v-for=
"(templateValue, templateIndex) in templatesBase"
>
...
@@ -41,6 +43,7 @@
...
@@ -41,6 +43,7 @@
:value=
"model.hideTpls"
:value=
"model.hideTpls"
:multiple=
"true"
:multiple=
"true"
:filterable=
"true"
:filterable=
"true"
size=
"small"
@
change=
"(e) => onChange('hideTpls', e)"
@
change=
"(e) => onChange('hideTpls', e)"
>
>
<
template
v-for=
"(templateValue, templateIndex) in templatesBase"
>
<
template
v-for=
"(templateValue, templateIndex) in templatesBase"
>
...
@@ -48,6 +51,20 @@
...
@@ -48,6 +51,20 @@
</
template
>
</
template
>
</el-select>
</el-select>
</div>
</div>
<div
v-if=
"ccPreview"
class=
"panelRow"
>
<div>
抄送邮件:
</div>
<el-select
size=
"small"
style=
"width:90%; font-size:12px"
placeholder=
"请选择抄送人"
:value=
"model.cc"
:multiple=
"true"
:filterable=
"true"
@
change=
"(e) => { onChange('cc', e); getPersons(e) }"
>
<el-option
v-for=
"user in users"
:key=
"user.userId"
:label=
"user.nickName===''?user.username:user.nickName"
:value=
"user.userId"
/>
</el-select>
</div>
</div>
</div>
</template>
</template>
<
script
>
<
script
>
...
@@ -81,6 +98,14 @@ export default {
...
@@ -81,6 +98,14 @@ export default {
readonlyPreview
:
{
readonlyPreview
:
{
type
:
Boolean
,
type
:
Boolean
,
default
:
true
default
:
true
},
ccPreview
:
{
type
:
Boolean
,
default
:
true
},
users
:
{
type
:
Array
,
default
:
()
=>
([])
}
}
}
}
}
}
...
...
src/components/wfd/components/DetailPanel/StartEventDetail.vue
View file @
2b80405d
...
@@ -12,6 +12,7 @@
...
@@ -12,6 +12,7 @@
:value=
"model.task"
:value=
"model.task"
:multiple=
"true"
:multiple=
"true"
:filterable=
"true"
:filterable=
"true"
size=
"small"
@
change=
"(e) => onChange('task', e)"
@
change=
"(e) => onChange('task', e)"
>
>
<el-option
v-for=
"(taskValue, taskIndex) in tasks"
:key=
"taskIndex"
:label=
"taskValue.name"
:value=
"taskValue.full_name"
/>
<el-option
v-for=
"(taskValue, taskIndex) in tasks"
:key=
"taskIndex"
:label=
"taskValue.name"
:value=
"taskValue.full_name"
/>
...
@@ -24,6 +25,7 @@
...
@@ -24,6 +25,7 @@
:templates=
"templates"
:templates=
"templates"
:templates-base=
"templatesBase"
:templates-base=
"templatesBase"
:write-preview=
"false"
:write-preview=
"false"
:users=
"users"
/>
/>
</div>
</div>
</div>
</div>
...
@@ -61,6 +63,10 @@ export default {
...
@@ -61,6 +63,10 @@ export default {
templatesBase
:
{
templatesBase
:
{
type
:
Array
,
type
:
Array
,
default
:
()
=>
([])
default
:
()
=>
([])
},
users
:
{
type
:
Array
,
default
:
()
=>
([])
}
}
}
}
}
}
...
...
src/components/wfd/components/DetailPanel/UserTaskDetail.vue
View file @
2b80405d
...
@@ -6,6 +6,7 @@
...
@@ -6,6 +6,7 @@
<div
class=
"panelRow"
>
<div
class=
"panelRow"
>
<div>
之后任务:
</div>
<div>
之后任务:
</div>
<el-select
<el-select
size=
"small"
style=
"width:90%; font-size:12px"
style=
"width:90%; font-size:12px"
placeholder=
"选择任务"
placeholder=
"选择任务"
:disabled=
"readOnly"
:disabled=
"readOnly"
...
@@ -20,6 +21,7 @@
...
@@ -20,6 +21,7 @@
<div
class=
"panelRow"
>
<div
class=
"panelRow"
>
<div><span
style=
"color: red"
>
*
</span>
{{
i18n
[
'userTask.assignType'
]
}}
:
</div>
<div><span
style=
"color: red"
>
*
</span>
{{
i18n
[
'userTask.assignType'
]
}}
:
</div>
<el-select
<el-select
size=
"small"
style=
"width:90%; font-size: 12px"
style=
"width:90%; font-size: 12px"
:placeholder=
"i18n['userTask.assignType.placeholder']"
:placeholder=
"i18n['userTask.assignType.placeholder']"
:value=
"model.assignType"
:value=
"model.assignType"
...
@@ -36,6 +38,7 @@
...
@@ -36,6 +38,7 @@
<div
v-if=
"model.assignType === 'person'"
class=
"panelRow"
>
<div
v-if=
"model.assignType === 'person'"
class=
"panelRow"
>
<div><span
style=
"color: red"
>
*
</span>
{{
i18n
[
'userTask.assignType.person.title'
]
}}
:
</div>
<div><span
style=
"color: red"
>
*
</span>
{{
i18n
[
'userTask.assignType.person.title'
]
}}
:
</div>
<el-select
<el-select
size=
"small"
style=
"width:90%; font-size:12px"
style=
"width:90%; font-size:12px"
:placeholder=
"i18n['userTask.assignType.person.placeholder']"
:placeholder=
"i18n['userTask.assignType.person.placeholder']"
:disabled=
"readOnly"
:disabled=
"readOnly"
...
@@ -51,6 +54,7 @@
...
@@ -51,6 +54,7 @@
<div><span
style=
"color: red"
>
*
</span>
{{
i18n
[
'userTask.assignType.role.title'
]
}}
:
</div>
<div><span
style=
"color: red"
>
*
</span>
{{
i18n
[
'userTask.assignType.role.title'
]
}}
:
</div>
<el-select
<el-select
v-model
.
number=
"model.assignValue"
v-model
.
number=
"model.assignValue"
size=
"small"
style=
"width:90%; font-size:12px"
style=
"width:90%; font-size:12px"
:placeholder=
"i18n['userTask.assignType.role.placeholder']"
:placeholder=
"i18n['userTask.assignType.role.placeholder']"
:disabled=
"readOnly"
:disabled=
"readOnly"
...
@@ -77,6 +81,7 @@
...
@@ -77,6 +81,7 @@
<div
v-else-if=
"model.assignType === 'department'"
class=
"panelRow"
>
<div
v-else-if=
"model.assignType === 'department'"
class=
"panelRow"
>
<div><span
style=
"color: red"
>
*
</span>
{{
i18n
[
'userTask.assignType.department.title'
]
}}
:
</div>
<div><span
style=
"color: red"
>
*
</span>
{{
i18n
[
'userTask.assignType.department.title'
]
}}
:
</div>
<el-select
<el-select
size=
"small"
style=
"width:90%; font-size:12px"
style=
"width:90%; font-size:12px"
:placeholder=
"i18n['userTask.assignType.department.placeholder']"
:placeholder=
"i18n['userTask.assignType.department.placeholder']"
:value=
"model.assignValue"
:value=
"model.assignValue"
...
@@ -92,6 +97,7 @@
...
@@ -92,6 +97,7 @@
<div><span
style=
"color: red"
>
*
</span>
{{
i18n
[
'userTask.assignType.variable.title'
]
}}
:
</div>
<div><span
style=
"color: red"
>
*
</span>
{{
i18n
[
'userTask.assignType.variable.title'
]
}}
:
</div>
<el-select
<el-select
v-model
.
number=
"model.assignValue"
v-model
.
number=
"model.assignValue"
size=
"small"
style=
"width:90%; font-size:12px"
style=
"width:90%; font-size:12px"
:placeholder=
"i18n['userTask.assignType.variable.placeholder']"
:placeholder=
"i18n['userTask.assignType.variable.placeholder']"
:disabled=
"readOnly"
:disabled=
"readOnly"
...
@@ -104,6 +110,7 @@
...
@@ -104,6 +110,7 @@
</div>
</div>
<div
class=
"panelRow"
>
<div
class=
"panelRow"
>
<el-checkbox
<el-checkbox
size=
"small"
:disabled=
"model.assignType !== 'role' && model.assignType !== 'department' && (
:disabled=
"model.assignType !== 'role' && model.assignType !== 'department' && (
model.assignValue===undefined ||
model.assignValue===undefined ||
model.assignValue===null ||
model.assignValue===null ||
...
@@ -114,6 +121,7 @@
...
@@ -114,6 +121,7 @@
@
change=
"(e) =>
{ onChange('isCounterSign', e); initCounterSign(e) }"
@
change=
"(e) =>
{ onChange('isCounterSign', e); initCounterSign(e) }"
>
{{
i18n
[
'userTask.counterSign'
]
}}
</el-checkbox>
>
{{
i18n
[
'userTask.counterSign'
]
}}
</el-checkbox>
<el-checkbox
<el-checkbox
size=
"small"
:disabled=
"
:disabled=
"
model.assignValue===undefined||
model.assignValue===undefined||
model.assignValue===null||
model.assignValue===null||
...
@@ -129,6 +137,7 @@
...
@@ -129,6 +137,7 @@
model.assignValue!==null &&
model.assignValue!==null &&
model.assignValue.length >= 1 &&
model.assignValue.length >= 1 &&
model.isCounterSign"
model.isCounterSign"
size=
"small"
:value=
"model.fullHandle"
:value=
"model.fullHandle"
@
change=
"(value) => onChange('fullHandle', value)"
@
change=
"(value) => onChange('fullHandle', value)"
>
{{
i18n
[
'userTask.fullHandle'
]
}}
</el-checkbox>
>
{{
i18n
[
'userTask.fullHandle'
]
}}
</el-checkbox>
...
@@ -140,6 +149,7 @@
...
@@ -140,6 +149,7 @@
:templates=
"templates"
:templates=
"templates"
:templates-base=
"templatesBase"
:templates-base=
"templatesBase"
:readonly-preview=
"false"
:readonly-preview=
"false"
:users=
"users"
/>
/>
</div>
</div>
</div>
</div>
...
...
src/components/wfd/components/DetailPanel/index.vue
View file @
2b80405d
<
template
>
<
template
>
<div
class=
"detailPanel"
:style=
"
{'height':height+'px'}">
<div
class=
"detailPanel"
:style=
"
{'height':height+'px'}"
style="overflow-y: scroll; padding-bottom: 10px;"
>
<UserTaskDetail
<UserTaskDetail
v-if=
"model.clazz === 'userTask'"
v-if=
"model.clazz === 'userTask'"
:model=
"model"
:model=
"model"
...
@@ -45,6 +45,7 @@
...
@@ -45,6 +45,7 @@
<StartEventDetail
<StartEventDetail
v-else-if=
"model.clazz === 'start'"
v-else-if=
"model.clazz === 'start'"
:model=
"model"
:model=
"model"
:users=
"users"
:on-change=
"onChange"
:on-change=
"onChange"
:read-only=
"readOnly"
:read-only=
"readOnly"
:tasks=
"tasks"
:tasks=
"tasks"
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment