Skip to content
Toggle navigation
P
Projects
G
Groups
S
Snippets
Help
phsl
/
admin
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Issues
0
Merge Requests
0
Pipelines
Wiki
Snippets
Members
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Unverified
Commit
bfb9e2e7
authored
Dec 11, 2024
by
芋道源码
Committed by
Gitee
Dec 11, 2024
Browse files
Options
Browse Files
Download
Plain Diff
!614 bpm设计器优化
Merge pull request !614 from Lesan/feature/bpm
parents
46985c6e
fe2ac97f
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
198 additions
and
81 deletions
+198
-81
src/components/bpmnProcessDesigner/package/penal/custom-config/components/UserTaskCustomConfig.vue
+34
-68
src/components/bpmnProcessDesigner/package/penal/task/task-components/UserTask.vue
+164
-13
No files found.
src/components/bpmnProcessDesigner/package/penal/custom-config/components/UserTaskCustomConfig.vue
View file @
bfb9e2e7
...
@@ -4,9 +4,24 @@
...
@@ -4,9 +4,24 @@
3. 审批人为空时
3. 审批人为空时
4. 操作按钮
4. 操作按钮
5. 字段权限
5. 字段权限
6. 审批类型
-->
-->
<
template
>
<
template
>
<div>
<div>
<el-divider
content-position=
"left"
>
审批类型
</el-divider>
<el-form-item
prop=
"approveType"
>
<el-radio-group
v-model=
"approveType.value"
>
<el-radio
v-for=
"(item, index) in APPROVE_TYPE"
:key=
"index"
:value=
"item.value"
:label=
"item.value"
>
{{
item
.
label
}}
</el-radio>
</el-radio-group>
</el-form-item>
<el-divider
content-position=
"left"
>
审批人拒绝时
</el-divider>
<el-divider
content-position=
"left"
>
审批人拒绝时
</el-divider>
<el-form-item
prop=
"rejectHandlerType"
>
<el-form-item
prop=
"rejectHandlerType"
>
<el-radio-group
<el-radio-group
...
@@ -158,10 +173,13 @@ import {
...
@@ -158,10 +173,13 @@ import {
AssignEmptyHandlerType
,
AssignEmptyHandlerType
,
OPERATION_BUTTON_NAME
,
OPERATION_BUTTON_NAME
,
DEFAULT_BUTTON_SETTING
,
DEFAULT_BUTTON_SETTING
,
FieldPermissionType
FieldPermissionType
,
APPROVE_TYPE
,
ApproveType
,
ButtonSetting
}
from
'@/components/SimpleProcessDesignerV2/src/consts'
}
from
'@/components/SimpleProcessDesignerV2/src/consts'
import
*
as
UserApi
from
'@/api/system/user'
import
*
as
UserApi
from
'@/api/system/user'
import
{
cloneDeep
}
from
'lodash-es
'
import
{
useFormFieldsPermission
}
from
'@/components/SimpleProcessDesignerV2/src/node
'
defineOptions
({
name
:
'ElementCustomConfig4UserTask'
})
defineOptions
({
name
:
'ElementCustomConfig4UserTask'
})
const
props
=
defineProps
({
const
props
=
defineProps
({
...
@@ -189,8 +207,7 @@ const assignEmptyUserIds = ref()
...
@@ -189,8 +207,7 @@ const assignEmptyUserIds = ref()
// 操作按钮
// 操作按钮
const
buttonsSettingEl
=
ref
()
const
buttonsSettingEl
=
ref
()
const
{
buttonsSetting
,
btnDisplayNameEdit
,
changeBtnDisplayName
,
btnDisplayNameBlurEvent
}
=
const
{
btnDisplayNameEdit
,
changeBtnDisplayName
,
btnDisplayNameBlurEvent
}
=
useButtonsSetting
()
useButtonsSetting
()
// 字段权限
// 字段权限
const
fieldsPermissionEl
=
ref
([])
const
fieldsPermissionEl
=
ref
([])
...
@@ -198,6 +215,9 @@ const { formType, fieldsPermissionConfig, getNodeConfigFormFields } = useFormFie
...
@@ -198,6 +215,9 @@ const { formType, fieldsPermissionConfig, getNodeConfigFormFields } = useFormFie
FieldPermissionType
.
READ
FieldPermissionType
.
READ
)
)
// 审批类型
const
approveType
=
ref
({
value
:
ApproveType
.
USER
})
const
elExtensionElements
=
ref
()
const
elExtensionElements
=
ref
()
const
otherExtensions
=
ref
()
const
otherExtensions
=
ref
()
const
bpmnElement
=
ref
()
const
bpmnElement
=
ref
()
...
@@ -217,6 +237,11 @@ const resetCustomConfigList = () => {
...
@@ -217,6 +237,11 @@ const resetCustomConfigList = () => {
bpmnElement
.
value
.
businessObject
?.
extensionElements
??
bpmnElement
.
value
.
businessObject
?.
extensionElements
??
bpmnInstances
().
moddle
.
create
(
'bpmn:ExtensionElements'
,
{
values
:
[]
})
bpmnInstances
().
moddle
.
create
(
'bpmn:ExtensionElements'
,
{
values
:
[]
})
// 审批类型
approveType
.
value
=
elExtensionElements
.
value
.
values
?.
filter
((
ex
)
=>
ex
.
$type
===
`
${
prefix
}
:ApproveType`
)?.[
0
]
||
bpmnInstances
().
moddle
.
create
(
`
${
prefix
}
:ApproveType`
,
{
value
:
ApproveType
.
USER
})
// 审批人与提交人为同一人时
// 审批人与提交人为同一人时
assignStartUserHandlerTypeEl
.
value
=
assignStartUserHandlerTypeEl
.
value
=
elExtensionElements
.
value
.
values
?.
filter
(
elExtensionElements
.
value
.
values
?.
filter
(
...
@@ -275,6 +300,8 @@ const resetCustomConfigList = () => {
...
@@ -275,6 +300,8 @@ const resetCustomConfigList = () => {
)
)
fieldsPermissionEl
.
value
=
[]
fieldsPermissionEl
.
value
=
[]
getNodeConfigFormFields
()
getNodeConfigFormFields
()
// 由于默认添加了发起人元素,这里需要删掉
fieldsPermissionConfig
.
value
=
fieldsPermissionConfig
.
value
.
slice
(
1
)
fieldsPermissionConfig
.
value
.
forEach
((
element
)
=>
{
fieldsPermissionConfig
.
value
.
forEach
((
element
)
=>
{
element
.
permission
=
element
.
permission
=
fieldsPermissionList
?.
find
((
obj
)
=>
obj
.
field
===
element
.
field
)?.
permission
??
'1'
fieldsPermissionList
?.
find
((
obj
)
=>
obj
.
field
===
element
.
field
)?.
permission
??
'1'
...
@@ -294,7 +321,8 @@ const resetCustomConfigList = () => {
...
@@ -294,7 +321,8 @@ const resetCustomConfigList = () => {
ex
.
$type
!==
`
${
prefix
}
:AssignEmptyHandlerType`
&&
ex
.
$type
!==
`
${
prefix
}
:AssignEmptyHandlerType`
&&
ex
.
$type
!==
`
${
prefix
}
:AssignEmptyUserIds`
&&
ex
.
$type
!==
`
${
prefix
}
:AssignEmptyUserIds`
&&
ex
.
$type
!==
`
${
prefix
}
:ButtonsSetting`
&&
ex
.
$type
!==
`
${
prefix
}
:ButtonsSetting`
&&
ex
.
$type
!==
`
${
prefix
}
:FieldsPermission`
ex
.
$type
!==
`
${
prefix
}
:FieldsPermission`
&&
ex
.
$type
!==
`
${
prefix
}
:ApproveType`
)
??
[]
)
??
[]
// 更新元素扩展属性,避免后续报错
// 更新元素扩展属性,避免后续报错
...
@@ -343,6 +371,7 @@ const updateElementExtensions = () => {
...
@@ -343,6 +371,7 @@ const updateElementExtensions = () => {
returnNodeIdEl
.
value
,
returnNodeIdEl
.
value
,
assignEmptyHandlerTypeEl
.
value
,
assignEmptyHandlerTypeEl
.
value
,
assignEmptyUserIdsEl
.
value
,
assignEmptyUserIdsEl
.
value
,
approveType
.
value
,
...
buttonsSettingEl
.
value
,
...
buttonsSettingEl
.
value
,
...
fieldsPermissionEl
.
value
...
fieldsPermissionEl
.
value
]
]
...
@@ -427,69 +456,6 @@ function useButtonsSetting() {
...
@@ -427,69 +456,6 @@ function useButtonsSetting() {
}
}
}
}
// 表单字段权限设置
function
useFormFieldsPermission
(
defaultPermission
)
{
// 字段权限配置. 需要有 field, title, permissioin 属性
const
fieldsPermissionConfig
=
ref
<
Array
<
Record
<
string
,
string
>>>
([])
const
formType
=
inject
<
Ref
<
number
>>
(
'formType'
)
// 表单类型
const
formFields
=
inject
<
Ref
<
string
[]
>>
(
'formFields'
)
// 流程表单字段
const
getNodeConfigFormFields
=
(
nodeFormFields
?:
Array
<
Record
<
string
,
string
>>
)
=>
{
nodeFormFields
=
toRaw
(
nodeFormFields
)
fieldsPermissionConfig
.
value
=
cloneDeep
(
nodeFormFields
)
||
getDefaultFieldsPermission
(
unref
(
formFields
))
}
// 默认的表单权限: 获取表单的所有字段,设置字段默认权限为只读
const
getDefaultFieldsPermission
=
(
formFields
?:
string
[])
=>
{
const
defaultFieldsPermission
:
Array
<
Record
<
string
,
string
>>
=
[]
if
(
formFields
)
{
formFields
.
forEach
((
fieldStr
:
string
)
=>
{
parseFieldsSetDefaultPermission
(
JSON
.
parse
(
fieldStr
),
defaultFieldsPermission
)
})
}
return
defaultFieldsPermission
}
// 解析字段。赋给默认权限
const
parseFieldsSetDefaultPermission
=
(
rule
:
Record
<
string
,
any
>
,
fieldsPermission
:
Array
<
Record
<
string
,
string
>>
,
parentTitle
:
string
=
''
)
=>
{
const
{
/**type,*/
field
,
title
:
tempTitle
,
children
}
=
rule
if
(
field
&&
tempTitle
)
{
let
title
=
tempTitle
if
(
parentTitle
)
{
title
=
`
${
parentTitle
}
.
${
tempTitle
}
`
}
fieldsPermission
.
push
({
field
,
title
,
permission
:
defaultPermission
})
// TODO 子表单 需要处理子表单字段
// if (type === 'group' && rule.props?.rule && Array.isArray(rule.props.rule)) {
// // 解析子表单的字段
// rule.props.rule.forEach((item) => {
// parseFieldsSetDefaultPermission(item, fieldsPermission, title)
// })
// }
}
if
(
children
&&
Array
.
isArray
(
children
))
{
children
.
forEach
((
rule
)
=>
{
parseFieldsSetDefaultPermission
(
rule
,
fieldsPermission
)
})
}
}
return
{
formType
,
fieldsPermissionConfig
,
getNodeConfigFormFields
}
}
const
userOptions
=
ref
<
UserApi
.
UserVO
[]
>
([])
// 用户列表
const
userOptions
=
ref
<
UserApi
.
UserVO
[]
>
([])
// 用户列表
onMounted
(
async
()
=>
{
onMounted
(
async
()
=>
{
// 获得用户列表
// 获得用户列表
...
...
src/components/bpmnProcessDesigner/package/penal/task/task-components/UserTask.vue
View file @
bfb9e2e7
This diff is collapsed.
Click to expand it.
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