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
Commit
3b5a0ae2
authored
Mar 03, 2025
by
smallNorthLee
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fix: 流程再次发起,预测节点查询
parent
c2e99fb4
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
18 additions
and
21 deletions
+18
-21
src/views/bpm/processInstance/create/ProcessDefinitionDetail.vue
+8
-3
src/views/bpm/processInstance/detail/ProcessInstanceOperationButton.vue
+10
-18
No files found.
src/views/bpm/processInstance/create/ProcessDefinitionDetail.vue
View file @
3b5a0ae2
...
...
@@ -117,6 +117,7 @@ const activityNodes = ref<ProcessInstanceApi.ApprovalNodeInfo[]>([]) // 审批
/** 设置表单信息、获取流程图数据 **/
const
initProcessInfo
=
async
(
row
:
any
,
formVariables
?:
any
)
=>
{
// 重置指定审批人
startUserSelectTasks
.
value
=
[]
startUserSelectAssignees
.
value
=
{}
...
...
@@ -138,9 +139,13 @@ const initProcessInfo = async (row: any, formVariables?: any) => {
await
nextTick
()
fApi
.
value
?.
btn
.
show
(
false
)
// 隐藏提交按钮
// 获取流程审批信息
await
getApprovalDetail
(
row
)
// 获取流程审批信息,当再次发起时,流程审批节点要根据原始表单参数预测出来
const
param
=
{
id
:
row
.
id
,
processVariablesStr
:
JSON
.
stringify
(
formVariables
)
}
await
getApprovalDetail
(
param
)
// }
// 加载流程图
const
processDefinitionDetail
=
await
DefinitionApi
.
getProcessDefinition
(
row
.
id
)
if
(
processDefinitionDetail
)
{
...
...
src/views/bpm/processInstance/detail/ProcessInstanceOperationButton.vue
View file @
3b5a0ae2
...
...
@@ -44,7 +44,7 @@
:rows=
"4"
/>
</el-form-item>
<el-form-item
label=
"下一个节点的审批人"
prop=
"nextAssignees"
v-if=
"nextAssignees
Visible
"
>
<el-form-item
label=
"下一个节点的审批人"
prop=
"nextAssignees"
v-if=
"nextAssignees
ActivityNode.length > 0
"
>
<div
class=
"ml-10px -mt-15px -mb-35px"
>
<ProcessInstanceTimeline
:activity-nodes=
"nextAssigneesActivityNode"
...
...
@@ -522,6 +522,7 @@ import { BpmModelFormType, BpmProcessInstanceStatus } from '@/utils/constants'
import
type
{
FormInstance
,
FormRules
}
from
'element-plus'
import
SignDialog
from
'./SignDialog.vue'
import
ProcessInstanceTimeline
from
'../detail/ProcessInstanceTimeline.vue'
import
{
isEmpty
}
from
'@/utils/is'
defineOptions
({
name
:
'ProcessInstanceBtnContainer'
})
...
...
@@ -565,7 +566,6 @@ const reasonRequire = ref()
const
approveFormRef
=
ref
<
FormInstance
>
()
const
signRef
=
ref
()
const
approveSignFormRef
=
ref
()
const
nextAssigneesVisible
=
ref
(
false
)
// 是否显示下一个节点的审批人
const
nextAssigneesActivityNode
=
ref
<
ProcessInstanceApi
.
ApprovalNodeInfo
[]
>
([])
// 下一个审批节点信息
const
approveReasonForm
=
reactive
({
reason
:
''
,
...
...
@@ -711,7 +711,7 @@ const closePopover = (type: string, formRef: FormInstance | undefined) => {
formRef
.
resetFields
()
}
popOverVisible
.
value
[
type
]
=
false
nextAssignees
Visible
.
value
=
false
nextAssignees
ActivityNode
.
value
=
[]
}
/** 流程通过时,根据表单变量查询新的流程节点,判断下一个节点类型是否为自选审批人 */
...
...
@@ -726,23 +726,14 @@ const initNextAssigneesFormField = async () => {
if
(
data
&&
data
.
length
>
0
)
{
data
.
forEach
((
node
:
any
)
=>
{
if
(
node
.
candidateStrategy
===
CandidateStrategy
.
START_USER_SELECT
&&
node
.
candidateUsers
&&
node
.
task
isEmpty
(
node
.
tasks
)
&&
isEmpty
(
node
.
candidateUsers
)
&&
(
CandidateStrategy
.
START_USER_SELECT
===
node
.
candidateStrategy
||
CandidateStrategy
.
APPROVE_USER_SELECT
===
node
.
candidateStrategy
)
)
{
nextAssigneesActivityNode
.
value
.
push
(
node
)
}
})
if
(
nextAssigneesActivityNode
.
value
.
length
>
0
)
{
nextAssigneesVisible
.
value
=
true
}
// // 自选审批人,则弹出选择审批人弹窗
// // TODO @小北:需要考虑下,这里的 nextNode 可能是多个节点,需要怎么处理;类似你在后端的处理哈
// // TODO @小北:有点纠结,是不是写个预测下一个节点的接口,更合适?
// nextAssigneesActivityNode.value = [nextNode]
// nextAssigneesVisible.value = true
// }
// // TODO @小北:情况二:审批人选择的情况
}
}
...
...
@@ -767,7 +758,8 @@ const handleAudit = async (pass: boolean, formRef: FormInstance | undefined) =>
if
(
pass
)
{
// 如果需要自选审批人,则校验自选审批人
if
(
nextAssigneesVisible
.
value
&&
Object
.
keys
(
approveReasonForm
.
nextAssignees
).
length
===
0
)
{
if
(
Object
.
keys
(
nextAssigneesActivityNode
.
value
).
length
>
0
&&
Object
.
keys
(
approveReasonForm
.
nextAssignees
).
length
===
0
)
{
message
.
warning
(
'下一个节点的审批人不能为空!'
)
return
}
...
...
@@ -793,7 +785,7 @@ const handleAudit = async (pass: boolean, formRef: FormInstance | undefined) =>
}
await
TaskApi
.
approveTask
(
data
)
popOverVisible
.
value
.
approve
=
false
nextAssignees
Visible
.
value
=
false
nextAssignees
ActivityNode
.
value
=
[]
message
.
success
(
'审批通过成功'
)
}
else
{
// 审批不通过数据
...
...
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