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
d4432ace
authored
Jan 19, 2025
by
芋道源码
Committed by
Gitee
Jan 19, 2025
Browse files
Options
Browse Files
Download
Plain Diff
!665 BPM:审批意见
Merge pull request !665 from Lesan/feature/bpm-审批意见
parents
8330f61e
82ee62cb
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
60 additions
and
12 deletions
+60
-12
src/components/SimpleProcessDesignerV2/src/consts.ts
+2
-0
src/components/SimpleProcessDesignerV2/src/node.ts
+1
-0
src/components/SimpleProcessDesignerV2/src/nodes-config/UserTaskNodeConfig.vue
+9
-0
src/components/bpmnProcessDesigner/package/designer/plugins/descriptor/flowableDescriptor.json
+14
-0
src/components/bpmnProcessDesigner/package/penal/custom-config/components/UserTaskCustomConfig.vue
+23
-7
src/views/bpm/processInstance/detail/ProcessInstanceOperationButton.vue
+11
-5
No files found.
src/components/SimpleProcessDesignerV2/src/consts.ts
View file @
d4432ace
...
@@ -120,6 +120,8 @@ export interface SimpleFlowNode {
...
@@ -120,6 +120,8 @@ export interface SimpleFlowNode {
defaultFlowId
?:
string
defaultFlowId
?:
string
// 签名
// 签名
signEnable
?:
boolean
signEnable
?:
boolean
// 审批意见
reasonRequire
?:
boolean
}
}
// 候选人策略枚举 ( 用于审批节点。抄送节点 )
// 候选人策略枚举 ( 用于审批节点。抄送节点 )
export
enum
CandidateStrategy
{
export
enum
CandidateStrategy
{
...
...
src/components/SimpleProcessDesignerV2/src/node.ts
View file @
d4432ace
...
@@ -149,6 +149,7 @@ export type UserTaskFormType = {
...
@@ -149,6 +149,7 @@ export type UserTaskFormType = {
taskCompleteListenerHeader
?:
ListenerParam
[]
taskCompleteListenerHeader
?:
ListenerParam
[]
taskCompleteListenerBody
?:
ListenerParam
[]
taskCompleteListenerBody
?:
ListenerParam
[]
signEnable
:
boolean
signEnable
:
boolean
reasonRequire
:
boolean
}
}
export
type
CopyTaskFormType
=
{
export
type
CopyTaskFormType
=
{
...
...
src/components/SimpleProcessDesignerV2/src/nodes-config/UserTaskNodeConfig.vue
View file @
d4432ace
...
@@ -361,6 +361,11 @@
...
@@ -361,6 +361,11 @@
<el-form-item
prop=
"signEnable"
>
<el-form-item
prop=
"signEnable"
>
<el-switch
v-model=
"configForm.signEnable"
active-text=
"是"
inactive-text=
"否"
/>
<el-switch
v-model=
"configForm.signEnable"
active-text=
"是"
inactive-text=
"否"
/>
</el-form-item>
</el-form-item>
<el-divider
content-position=
"left"
>
审批意见
</el-divider>
<el-form-item
prop=
"reasonRequire"
>
<el-switch
v-model=
"configForm.reasonRequire"
active-text=
"必填"
inactive-text=
"非必填"
/>
</el-form-item>
</el-form>
</el-form>
</div>
</div>
</el-tab-pane>
</el-tab-pane>
...
@@ -698,6 +703,8 @@ const saveConfig = async () => {
...
@@ -698,6 +703,8 @@ const saveConfig = async () => {
}
}
// 签名
// 签名
currentNode
.
value
.
signEnable
=
configForm
.
value
.
signEnable
currentNode
.
value
.
signEnable
=
configForm
.
value
.
signEnable
// 审批意见
currentNode
.
value
.
reasonRequire
=
configForm
.
value
.
reasonRequire
currentNode
.
value
.
showText
=
showText
currentNode
.
value
.
showText
=
showText
settingVisible
.
value
=
false
settingVisible
.
value
=
false
...
@@ -767,6 +774,8 @@ const showUserTaskNodeConfig = (node: SimpleFlowNode) => {
...
@@ -767,6 +774,8 @@ const showUserTaskNodeConfig = (node: SimpleFlowNode) => {
configForm
.
value
.
taskCompleteListenerBody
=
node
.
taskCompleteListener
?.
body
??
[]
configForm
.
value
.
taskCompleteListenerBody
=
node
.
taskCompleteListener
?.
body
??
[]
// 6. 签名
// 6. 签名
configForm
.
value
.
signEnable
=
node
?.
signEnable
??
false
configForm
.
value
.
signEnable
=
node
?.
signEnable
??
false
// 7. 审批意见
configForm
.
value
.
reasonRequire
=
node
?.
reasonRequire
??
false
}
}
defineExpose
({
openDrawer
,
showUserTaskNodeConfig
})
// 暴露方法给父组件
defineExpose
({
openDrawer
,
showUserTaskNodeConfig
})
// 暴露方法给父组件
...
...
src/components/bpmnProcessDesigner/package/designer/plugins/descriptor/flowableDescriptor.json
View file @
d4432ace
...
@@ -1463,6 +1463,20 @@
...
@@ -1463,6 +1463,20 @@
"type"
:
"String"
"type"
:
"String"
}
}
]
]
},
{
"name"
:
"ReasonRequire"
,
"superClass"
:
[
"Element"
],
"meta"
:
{
"allowedIn"
:
[
"bpmn:UserTask"
]
},
"properties"
:
[
{
"name"
:
"value"
,
"type"
:
"Boolean"
,
"isBody"
:
true
}
]
}
}
],
],
"emumerations"
:
[]
"emumerations"
:
[]
...
...
src/components/bpmnProcessDesigner/package/penal/custom-config/components/UserTaskCustomConfig.vue
View file @
d4432ace
...
@@ -167,6 +167,11 @@
...
@@ -167,6 +167,11 @@
<el-form-item
prop=
"signEnable"
>
<el-form-item
prop=
"signEnable"
>
<el-switch
v-model=
"signEnable.value"
active-text=
"是"
inactive-text=
"否"
/>
<el-switch
v-model=
"signEnable.value"
active-text=
"是"
inactive-text=
"否"
/>
</el-form-item>
</el-form-item>
<el-divider
content-position=
"left"
>
审批意见
</el-divider>
<el-form-item
prop=
"reasonRequire"
>
<el-switch
v-model=
"reasonRequire.value"
active-text=
"必填"
inactive-text=
"非必填"
/>
</el-form-item>
</div>
</div>
</
template
>
</
template
>
...
@@ -227,6 +232,9 @@ const approveType = ref({ value: ApproveType.USER })
...
@@ -227,6 +232,9 @@ const approveType = ref({ value: ApproveType.USER })
// 是否需要签名
// 是否需要签名
const
signEnable
=
ref
({
value
:
false
})
const
signEnable
=
ref
({
value
:
false
})
// 审批意见
const
reasonRequire
=
ref
({
value
:
false
})
const
elExtensionElements
=
ref
()
const
elExtensionElements
=
ref
()
const
otherExtensions
=
ref
()
const
otherExtensions
=
ref
()
const
bpmnElement
=
ref
()
const
bpmnElement
=
ref
()
...
@@ -320,6 +328,16 @@ const resetCustomConfigList = () => {
...
@@ -320,6 +328,16 @@ const resetCustomConfigList = () => {
})
})
}
}
// 是否需要签名
signEnable
.
value
=
elExtensionElements
.
value
.
values
?.
filter
((
ex
)
=>
ex
.
$type
===
`
${
prefix
}
:SignEnable`
)?.[
0
]
||
bpmnInstances
().
moddle
.
create
(
`
${
prefix
}
:SignEnable`
,
{
value
:
false
})
// 审批意见
reasonRequire
.
value
=
elExtensionElements
.
value
.
values
?.
filter
((
ex
)
=>
ex
.
$type
===
`
${
prefix
}
:ReasonRequire`
)?.[
0
]
||
bpmnInstances
().
moddle
.
create
(
`
${
prefix
}
:ReasonRequire`
,
{
value
:
false
})
// 保留剩余扩展元素,便于后面更新该元素对应属性
// 保留剩余扩展元素,便于后面更新该元素对应属性
otherExtensions
.
value
=
otherExtensions
.
value
=
elExtensionElements
.
value
.
values
?.
filter
(
elExtensionElements
.
value
.
values
?.
filter
(
...
@@ -331,14 +349,11 @@ const resetCustomConfigList = () => {
...
@@ -331,14 +349,11 @@ const resetCustomConfigList = () => {
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`
ex
.
$type
!==
`
${
prefix
}
:ApproveType`
&&
ex
.
$type
!==
`
${
prefix
}
:SignEnable`
&&
ex
.
$type
!==
`
${
prefix
}
:ReasonRequire`
)
??
[]
)
??
[]
// 是否需要签名
signEnable
.
value
=
elExtensionElements
.
value
.
values
?.
filter
((
ex
)
=>
ex
.
$type
===
`
${
prefix
}
:SignEnable`
)?.[
0
]
||
bpmnInstances
().
moddle
.
create
(
`
${
prefix
}
:SignEnable`
,
{
value
:
false
})
// 更新元素扩展属性,避免后续报错
// 更新元素扩展属性,避免后续报错
updateElementExtensions
()
updateElementExtensions
()
}
}
...
@@ -388,7 +403,8 @@ const updateElementExtensions = () => {
...
@@ -388,7 +403,8 @@ const updateElementExtensions = () => {
approveType
.
value
,
approveType
.
value
,
...
buttonsSettingEl
.
value
,
...
buttonsSettingEl
.
value
,
...
fieldsPermissionEl
.
value
,
...
fieldsPermissionEl
.
value
,
signEnable
.
value
signEnable
.
value
,
reasonRequire
.
value
]
]
})
})
bpmnInstances
().
modeling
.
updateProperties
(
toRaw
(
bpmnElement
.
value
),
{
bpmnInstances
().
modeling
.
updateProperties
(
toRaw
(
bpmnElement
.
value
),
{
...
...
src/views/bpm/processInstance/detail/ProcessInstanceOperationButton.vue
View file @
d4432ace
...
@@ -548,6 +548,7 @@ const approveForm = ref<any>({}) // 审批通过时,额外的补充信息
...
@@ -548,6 +548,7 @@ const approveForm = ref<any>({}) // 审批通过时,额外的补充信息
const
approveFormFApi
=
ref
<
any
>
({})
// approveForms 的 fAPi
const
approveFormFApi
=
ref
<
any
>
({})
// approveForms 的 fAPi
// 审批通过意见表单
// 审批通过意见表单
const
reasonRequire
=
ref
()
const
approveFormRef
=
ref
<
FormInstance
>
()
const
approveFormRef
=
ref
<
FormInstance
>
()
const
signRef
=
ref
()
const
signRef
=
ref
()
const
approveSignFormRef
=
ref
()
const
approveSignFormRef
=
ref
()
...
@@ -555,17 +556,21 @@ const approveReasonForm = reactive({
...
@@ -555,17 +556,21 @@ const approveReasonForm = reactive({
reason
:
''
,
reason
:
''
,
signPicUrl
:
''
signPicUrl
:
''
})
})
const
approveReasonRule
=
reactive
<
FormRules
<
typeof
approveReasonForm
>>
({
const
approveReasonRule
=
computed
(()
=>
{
reason
:
[{
required
:
true
,
message
:
'审批意见不能为空'
,
trigger
:
'blur'
}],
return
{
signPicUrl
:
[{
required
:
true
,
message
:
'签名不能为空'
,
trigger
:
'change'
}]
reason
:
[{
required
:
reasonRequire
.
value
,
message
:
'审批意见不能为空'
,
trigger
:
'blur'
}],
signPicUrl
:
[{
required
:
true
,
message
:
'签名不能为空'
,
trigger
:
'change'
}]
}
})
})
// 拒绝表单
// 拒绝表单
const
rejectFormRef
=
ref
<
FormInstance
>
()
const
rejectFormRef
=
ref
<
FormInstance
>
()
const
rejectReasonForm
=
reactive
({
const
rejectReasonForm
=
reactive
({
reason
:
''
reason
:
''
})
})
const
rejectReasonRule
=
reactive
<
FormRules
<
typeof
rejectReasonForm
>>
({
const
rejectReasonRule
=
computed
(()
=>
{
reason
:
[{
required
:
true
,
message
:
'审批意见不能为空'
,
trigger
:
'blur'
}]
return
{
reason
:
[{
required
:
reasonRequire
.
value
,
message
:
'审批意见不能为空'
,
trigger
:
'blur'
}]
}
})
})
// 抄送表单
// 抄送表单
...
@@ -966,6 +971,7 @@ const loadTodoTask = (task: any) => {
...
@@ -966,6 +971,7 @@ const loadTodoTask = (task: any) => {
approveForm
.
value
=
{}
approveForm
.
value
=
{}
approveFormFApi
.
value
=
{}
approveFormFApi
.
value
=
{}
runningTask
.
value
=
task
runningTask
.
value
=
task
reasonRequire
.
value
=
task
?.
reasonRequire
??
false
// 处理 approve 表单.
// 处理 approve 表单.
if
(
task
&&
task
.
formId
&&
task
.
formConf
)
{
if
(
task
&&
task
.
formId
&&
task
.
formConf
)
{
const
tempApproveForm
=
{}
const
tempApproveForm
=
{}
...
...
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