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
145eabbf
authored
Oct 02, 2024
by
jason
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
【工作流】- 新审批界面按钮权限
parent
2d16816f
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
73 additions
and
176 deletions
+73
-176
src/views/bpm/processInstance/detail/ProcessInstanceOperationButton.vue
+52
-12
src/views/bpm/processInstance/detail/ProcessInstanceTimeline.vue
+8
-162
src/views/bpm/processInstance/detail/index_new.vue
+13
-2
No files found.
src/views/bpm/processInstance/detail/ProcessInstanceOperationButton.vue
View file @
145eabbf
<
template
>
<div
class=
"h-50px bottom-10 text-14px flex items-center color-#32373c dark:color-#fff font-bold btn-container"
v-if=
"runningTask.id"
>
<el-popover
:visible=
"passVisible"
placement=
"top-end"
:width=
"500"
trigger=
"click"
>
<el-popover
:visible=
"passVisible"
placement=
"top-end"
:width=
"500"
trigger=
"click"
v-if=
"isShowButton(OperationButtonType.APPROVE)"
>
<template
#
reference
>
<el-button
plain
type=
"success"
@
click=
"openPopover('1')"
>
<Icon
icon=
"ep:select"
/>
通过
<Icon
icon=
"ep:select"
/>
{{
getButtonDisplayName
(
OperationButtonType
.
APPROVE
)
}}
</el-button>
</
template
>
<div
class=
"flex flex-col flex-1 pt-20px px-20px"
v-loading=
"formLoading"
>
...
...
@@ -50,17 +57,23 @@
<el-form-item>
<el-button
:disabled=
"formLoading"
type=
"success"
@
click=
"handleAudit(true)"
>
通过
{{ getButtonDisplayName(OperationButtonType.APPROVE) }}
</el-button>
<el-button
@
click=
"passVisible = false"
>
取消
</el-button>
</el-form-item>
</el-form>
</div>
</el-popover>
<el-popover
:visible=
"rejectVisible"
placement=
"top-end"
:width=
"500"
trigger=
"click"
>
<el-popover
:visible=
"rejectVisible"
placement=
"top-end"
:width=
"500"
trigger=
"click"
v-if=
"isShowButton(OperationButtonType.REJECT)"
>
<
template
#
reference
>
<el-button
class=
"mr-20px"
plain
type=
"danger"
@
click=
"openPopover('2')"
>
<Icon
icon=
"ep:close"
/>
拒绝
<Icon
icon=
"ep:close"
/>
{{
getButtonDisplayName
(
OperationButtonType
.
REJECT
)
}}
</el-button>
</
template
>
<div
class=
"flex flex-col flex-1 pt-20px px-20px"
v-loading=
"formLoading"
>
...
...
@@ -105,7 +118,7 @@
<el-form-item>
<el-button
:disabled=
"formLoading"
type=
"danger"
@
click=
"handleAudit(false)"
>
拒绝
{{ getButtonDisplayName(OperationButtonType.REJECT) }}
</el-button>
<el-button
@
click=
"rejectVisible = false"
>
取消
</el-button>
</el-form-item>
...
...
@@ -113,12 +126,18 @@
</div>
</el-popover>
<div
@
click=
"handleSend"
>
<Icon
:size=
"14"
icon=
"svg-icon:send"
/>
抄送
</div>
<div
@
click=
"openTaskUpdateAssigneeForm"
>
<Icon
:size=
"14"
icon=
"fa:share-square-o"
/>
转交
<div
@
click=
"openTaskUpdateAssigneeForm"
v-if=
"isShowButton(OperationButtonType.TRANSFER)"
>
<Icon
:size=
"14"
icon=
"fa:share-square-o"
/>
{{ getButtonDisplayName(OperationButtonType.TRANSFER) }}
</div>
<div
@
click=
"handleDelegate"
v-if=
"isShowButton(OperationButtonType.DELEGATE)"
>
<Icon
:size=
"14"
icon=
"ep:position"
/>
{{ getButtonDisplayName(OperationButtonType.DELEGATE) }}
</div>
<div
@
click=
"handleSign"
v-if=
"isShowButton(OperationButtonType.ADD_SIGN)"
>
<Icon
:size=
"14"
icon=
"ep:plus"
/>
{{ getButtonDisplayName(OperationButtonType.ADD_SIGN) }}
</div>
<div
@
click=
"handleBack"
v-if=
"isShowButton(OperationButtonType.RETURN)"
>
<Icon
:size=
"14"
icon=
"fa:mail-reply"
/>
{{ getButtonDisplayName(OperationButtonType.RETURN) }}
</div>
<div
@
click=
"handleDelegate"
>
<Icon
:size=
"14"
icon=
"ep:position"
/>
委派
</div>
<div
@
click=
"handleSign"
>
<Icon
:size=
"14"
icon=
"ep:plus"
/>
加签
</div>
<div
@
click=
"handleBack"
>
<Icon
:size=
"14"
icon=
"fa:mail-reply"
/>
退回
</div>
</div>
<!-- </div> -->
<!-- 弹窗:转派审批人 -->
...
...
@@ -141,7 +160,10 @@ import TaskDelegateForm from './dialog/TaskDelegateForm.vue'
import
TaskTransferForm
from
'./dialog/TaskTransferForm.vue'
import
TaskSignCreateForm
from
'./dialog/TaskSignCreateForm.vue'
import
{
isEmpty
}
from
'@/utils/is'
import
{
OperationButtonType
,
OPERATION_BUTTON_NAME
}
from
'@/components/SimpleProcessDesignerV2/src/consts'
defineOptions
({
name
:
'ProcessInstanceBtnConatiner'
})
const
userId
=
useUserStore
().
getUser
.
id
// 当前登录的编号
...
...
@@ -290,6 +312,24 @@ const getDetail = () => {
emit
(
'success'
)
}
/** 是否显示按钮 */
const
isShowButton
=
(
btnType
:
OperationButtonType
):
boolean
=>
{
let
isShow
=
true
if
(
runningTask
.
value
.
buttonsSetting
&&
runningTask
.
value
.
buttonsSetting
[
btnType
])
{
isShow
=
runningTask
.
value
.
buttonsSetting
[
btnType
].
enable
}
return
isShow
}
/** 获取按钮的显示名称 */
const
getButtonDisplayName
=
(
btnType
:
OperationButtonType
)
=>
{
let
diaplayName
=
OPERATION_BUTTON_NAME
.
get
(
btnType
)
if
(
runningTask
.
value
.
buttonsSetting
&&
runningTask
.
value
.
buttonsSetting
[
btnType
])
{
diaplayName
=
runningTask
.
value
.
buttonsSetting
[
btnType
].
displayName
}
return
diaplayName
}
defineExpose
({
loadRunningTask
})
</
script
>
...
...
src/views/bpm/processInstance/detail/ProcessInstanceTimeline.vue
View file @
145eabbf
...
...
@@ -207,168 +207,14 @@ const getApprovalNodeTime = (node: ProcessInstanceApi.ApprovalNodeInfo) => {
}
}
const
mockData
:
any
=
[
{
id
:
'fe1190ee-68c3-11ef-9c7d-00a6181404fd'
,
name
:
'发起人'
,
createTime
:
1725237646192
,
endTime
:
null
,
durationInMillis
:
null
,
status
:
1
,
reason
:
null
,
ownerUser
:
null
,
assigneeUser
:
{
id
:
104
,
nickname
:
'测试号'
,
deptId
:
107
,
deptName
:
'运维部门'
},
taskDefinitionKey
:
'task-01'
,
processInstanceId
:
'fe0c60c6-68c3-11ef-9c7d-00a6181404fd'
,
processInstance
:
{
id
:
'fe0c60c6-68c3-11ef-9c7d-00a6181404fd'
,
name
:
'oa_leave'
,
createTime
:
null
,
processDefinitionId
:
'oa_leave:1:6e5ac269-5f87-11ef-bdb6-00a6181404fd'
,
startUser
:
null
},
parentTaskId
:
null
,
children
:
null
,
formId
:
null
,
formName
:
null
,
formConf
:
null
,
formFields
:
null
,
formVariables
:
null
},
{
id
:
'fe1190ee-68c3-11ef-9c7d-00a6181404fd'
,
name
:
'领导审批'
,
createTime
:
1725237646192
,
endTime
:
null
,
durationInMillis
:
null
,
status
:
2
,
reason
:
null
,
ownerUser
:
null
,
assigneeUser
:
{
id
:
104
,
nickname
:
'领导'
,
deptId
:
107
,
deptName
:
'运维部门'
},
taskDefinitionKey
:
'task-01'
,
processInstanceId
:
'fe0c60c6-68c3-11ef-9c7d-00a6181404fd'
,
processInstance
:
{
id
:
'fe0c60c6-68c3-11ef-9c7d-00a6181404fd'
,
name
:
'oa_leave'
,
createTime
:
null
,
processDefinitionId
:
'oa_leave:1:6e5ac269-5f87-11ef-bdb6-00a6181404fd'
,
startUser
:
null
},
parentTaskId
:
null
,
children
:
null
,
formId
:
null
,
formName
:
null
,
formConf
:
null
,
formFields
:
null
,
formVariables
:
null
},
{
id
:
'fe1190ee-68c3-11ef-9c7d-00a6181404fd'
,
name
:
'财务总监审核'
,
createTime
:
1725237646192
,
endTime
:
null
,
durationInMillis
:
null
,
status
:
3
,
reason
:
null
,
ownerUser
:
null
,
assigneeUser
:
{
id
:
104
,
nickname
:
'财务总监'
,
deptId
:
107
,
deptName
:
'运维部门'
},
taskDefinitionKey
:
'task-01'
,
processInstanceId
:
'fe0c60c6-68c3-11ef-9c7d-00a6181404fd'
,
processInstance
:
{
id
:
'fe0c60c6-68c3-11ef-9c7d-00a6181404fd'
,
name
:
'oa_leave'
,
createTime
:
null
,
processDefinitionId
:
'oa_leave:1:6e5ac269-5f87-11ef-bdb6-00a6181404fd'
,
startUser
:
null
},
parentTaskId
:
null
,
children
:
null
,
formId
:
null
,
formName
:
null
,
formConf
:
null
,
formFields
:
null
,
formVariables
:
null
},
{
id
:
'fe1190ee-68c3-11ef-9c7d-00a6181404fd'
,
name
:
'领导审批'
,
createTime
:
1725237646192
,
endTime
:
null
,
durationInMillis
:
null
,
status
:
2
,
reason
:
null
,
ownerUser
:
null
,
assigneeUser
:
{
id
:
104
,
nickname
:
'领导'
,
deptId
:
107
,
deptName
:
'运维部门'
},
taskDefinitionKey
:
'task-01'
,
processInstanceId
:
'fe0c60c6-68c3-11ef-9c7d-00a6181404fd'
,
processInstance
:
{
id
:
'fe0c60c6-68c3-11ef-9c7d-00a6181404fd'
,
name
:
'oa_leave'
,
createTime
:
null
,
processDefinitionId
:
'oa_leave:1:6e5ac269-5f87-11ef-bdb6-00a6181404fd'
,
startUser
:
null
},
parentTaskId
:
null
,
children
:
null
,
formId
:
null
,
formName
:
null
,
formConf
:
null
,
formFields
:
null
,
formVariables
:
null
},
{
id
:
'fe1190ee-68c3-11ef-9c7d-00a6181404fd'
,
name
:
'财务总监审核'
,
createTime
:
1725237646192
,
endTime
:
null
,
durationInMillis
:
null
,
status
:
3
,
reason
:
null
,
ownerUser
:
null
,
assigneeUser
:
{
id
:
104
,
nickname
:
'财务总监'
,
deptId
:
107
,
deptName
:
'运维部门'
},
taskDefinitionKey
:
'task-01'
,
processInstanceId
:
'fe0c60c6-68c3-11ef-9c7d-00a6181404fd'
,
processInstance
:
{
id
:
'fe0c60c6-68c3-11ef-9c7d-00a6181404fd'
,
name
:
'oa_leave'
,
createTime
:
null
,
processDefinitionId
:
'oa_leave:1:6e5ac269-5f87-11ef-bdb6-00a6181404fd'
,
startUser
:
null
},
parentTaskId
:
null
,
children
:
null
,
formId
:
null
,
formName
:
null
,
formConf
:
null
,
formFields
:
null
,
formVariables
:
null
}
]
/**
* 重新刷新审批详情
*/
const
refresh
=
()
=>
{
getApprovalDetail
()
}
defineExpose
({
refresh
})
onMounted
(
async
()
=>
{
getApprovalDetail
()
...
...
src/views/bpm/processInstance/detail/index_new.vue
View file @
145eabbf
...
...
@@ -58,7 +58,7 @@
</el-col>
<el-col
:span=
"6"
>
<!-- 审批记录时间线 -->
<ProcessInstanceTimeline
:process-instance-id=
"id"
/>
<ProcessInstanceTimeline
ref=
"timelineRef"
:process-instance-id=
"id"
/>
</el-col>
</el-row>
</el-scrollbar>
...
...
@@ -97,7 +97,7 @@
ref=
"operationButtonRef"
:processInstance=
"processInstance"
:userOptions=
"userOptions"
@
success=
"
getDetail
"
@
success=
"
refresh
"
/>
</div>
</el-scrollbar>
...
...
@@ -133,6 +133,7 @@ const message = useMessage() // 消息弹窗
const
processInstanceLoading
=
ref
(
false
)
// 流程实例的加载中
const
processInstance
=
ref
<
any
>
({})
// 流程实例
const
operationButtonRef
=
ref
()
const
timelineRef
=
ref
()
const
bpmnXml
=
ref
(
''
)
// BPMN XML
const
tasksLoad
=
ref
(
true
)
// 任务的加载中
const
tasks
=
ref
<
any
[]
>
([])
// 任务列表
...
...
@@ -260,6 +261,16 @@ const getTaskList = async () => {
}
}
/**
* 操作成功后刷新
*/
const
refresh
=
()
=>
{
// 重新获取详情
getDetail
()
// 刷新审批详情 Timeline
timelineRef
.
value
?.
refresh
();
}
/** 当前的Tab */
const
activeTab
=
ref
(
'form'
)
...
...
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