Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
Z
zrch-risk-39
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
Administrator
zrch-risk-39
Commits
b56d7a7f
提交
b56d7a7f
authored
4月 14, 2026
作者:
kxjia
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
完善问题
上级
89bf837f
全部展开
显示空白字符变更
内嵌
并排
正在显示
32 个修改的文件
包含
421 行增加
和
1074 行删除
+421
-1074
CurrentFormPanel.vue
zrch-risk-client-39/src/views/common/CurrentFormPanel.vue
+0
-0
FlowHistoryDrawer.vue
zrch-risk-client-39/src/views/common/FlowHistoryDrawer.vue
+9
-26
HistoryPanel.vue
zrch-risk-client-39/src/views/common/HistoryPanel.vue
+0
-0
TaskAssigneeDrawer.vue
zrch-risk-client-39/src/views/common/TaskAssigneeDrawer.vue
+18
-175
WorkFlowFormDrawer.vue
zrch-risk-client-39/src/views/common/WorkFlowFormDrawer.vue
+0
-0
ApprovalModal.vue
...k-client-39/src/views/common/components/ApprovalModal.vue
+18
-13
ApprovalPanel.vue
...k-client-39/src/views/common/components/ApprovalPanel.vue
+52
-28
AssigneePanel.vue
...k-client-39/src/views/common/components/AssigneePanel.vue
+21
-186
SendModal.vue
...-risk-client-39/src/views/common/components/SendModal.vue
+0
-2
TaskModal.vue
...-risk-client-39/src/views/common/components/TaskModal.vue
+36
-59
StProblemCheckArchive.data.ts
...iews/project/problemArchive/StProblemCheckArchive.data.ts
+2
-2
StProblemArchiveList.vue
...9/src/views/project/problemCheck/StProblemArchiveList.vue
+14
-39
StProblemCheck.api.ts
...t-39/src/views/project/problemCheck/StProblemCheck.api.ts
+15
-38
StProblemCheck.data.ts
...-39/src/views/project/problemCheck/StProblemCheck.data.ts
+1
-16
StProblemCheckList.vue
...-39/src/views/project/problemCheck/StProblemCheckList.vue
+36
-102
StProblemExecApprovalList.vue
.../views/project/problemCheck/StProblemExecApprovalList.vue
+22
-60
StProblemExecList.vue
...t-39/src/views/project/problemCheck/StProblemExecList.vue
+24
-65
StProblemIndex.vue
...ient-39/src/views/project/problemCheck/StProblemIndex.vue
+0
-0
StProblemPlanApprovalList.vue
.../views/project/problemCheck/StProblemPlanApprovalList.vue
+22
-62
StProblemPlanList.vue
...t-39/src/views/project/problemCheck/StProblemPlanList.vue
+24
-62
StProblemCheckFlowModal.vue
...oject/problemCheck/components/StProblemCheckFlowModal.vue
+0
-52
StProblemCheckFormDetail.vue
...ject/problemCheck/components/StProblemCheckFormDetail.vue
+17
-64
StProblemCheckModal.vue
...s/project/problemCheck/components/StProblemCheckModal.vue
+1
-1
StProblemCheckPlanForm.vue
...roject/problemCheck/components/StProblemCheckPlanForm.vue
+2
-5
StProblemCheckPlanModal.vue
...oject/problemCheck/components/StProblemCheckPlanModal.vue
+0
-0
useProblemList.ts
.../views/project/problemCheck/composables/useProblemList.ts
+62
-0
FlowTaskServiceImpl.java
...cg/modules/flowable/service/impl/FlowTaskServiceImpl.java
+3
-3
MyTaskFlowServiceImpl.java
...cg/modules/stm/my/service/impl/MyTaskFlowServiceImpl.java
+2
-5
StProblemCheckController.java
...ules/stm/problem/controller/StProblemCheckController.java
+1
-1
StProblemCheck.java
.../org/jeecg/modules/stm/problem/entity/StProblemCheck.java
+6
-7
application-dev.yml
...jeecg-system-start/src/main/resources/application-dev.yml
+1
-0
application-prod.yml
...eecg-system-start/src/main/resources/application-prod.yml
+12
-1
没有找到文件。
zrch-risk-client-39/src/views/common/CurrentFormPanel.vue
浏览文件 @
b56d7a7f
差异被折叠。
点击展开。
zrch-risk-client-39/src/views/common/FlowHistoryDrawer.vue
浏览文件 @
b56d7a7f
<
template
>
<
template
>
<BasicDrawer
v-bind=
"$attrs"
title=
"流程追踪"
width=
"100%"
<BasicDrawer
v-bind=
"$attrs"
title=
"流程追踪"
width=
"100%"
@
register=
"registerBasicDrawer"
:header-style=
"
{ backgroundColor: '#018ffb', borderBottom: '1px solid #e8eef2' }">
@
register=
"registerBasicDrawer"
:header-style=
"
{ backgroundColor: '#018ffb', borderBottom: '1px solid #e8eef2' }">
<div
class=
"drawer-content"
>
<div
class=
"drawer-content"
>
<a-tabs
v-model:activeKey=
"activeKey"
type=
"card"
@
change=
"handleTabChange"
>
<a-tabs
v-model:activeKey=
"activeKey"
type=
"card"
@
change=
"handleTabChange"
>
<a-tab-pane
key=
"chart"
tab=
"流程图"
>
<a-tab-pane
key=
"chart"
tab=
"流程图"
>
...
@@ -21,45 +19,30 @@
...
@@ -21,45 +19,30 @@
import
FlowHistoryChart
from
'./FlowHistoryChart.vue'
;
import
FlowHistoryChart
from
'./FlowHistoryChart.vue'
;
import
FlowHistoryRecord
from
'./FlowHistoryRecord.vue'
;
import
FlowHistoryRecord
from
'./FlowHistoryRecord.vue'
;
const
activeKey
=
ref
(
'chart'
);
const
activeKey
=
ref
(
'chart'
);
const
procInsId
=
ref
(
''
);
const
dataId
=
ref
(
''
);
const
deployId
=
ref
(
''
);
const
refFlowHistoryChart
=
ref
();
const
refFlowHistoryChart
=
ref
();
const
refFlowHistoryRecord
=
ref
();
const
refFlowHistoryRecord
=
ref
();
const
curData
=
ref
({});
const
curData
=
ref
({});
const
callback
=
(
data
)
=>
{
const
callback
=
(
data
)
=>
{
curData
.
value
=
data
;
curData
.
value
=
data
;
handleTabChange
(
'chart'
);
handleTabChange
(
'chart'
);
}
}
const
handleTabChange
=
(
key
)
=>
{
const
handleTabChange
=
(
key
)
=>
{
if
(
key
===
'chart'
)
{
if
(
key
===
'chart'
)
{
nextTick
(()
=>
{
nextTick
(()
=>
refFlowHistoryChart
.
value
?.
loadData
(
curData
.
value
));
refFlowHistoryChart
.
value
.
loadData
(
curData
.
value
);
})
}
else
if
(
key
===
'record'
)
{
}
else
if
(
key
===
'record'
)
{
nextTick
(()
=>
{
nextTick
(()
=>
refFlowHistoryRecord
.
value
?.
loadData
(
curData
.
value
));
refFlowHistoryRecord
.
value
.
loadData
(
curData
.
value
);
})
}
}
activeKey
.
value
=
key
;
activeKey
.
value
=
key
;
}
}
const
[
registerBasicDrawer
,
{
closeDrawer
,
setDrawerProps
}]
=
useDrawerInner
(
callback
);
const
[
registerBasicDrawer
,
{
closeDrawer
}]
=
useDrawerInner
(
callback
);
</
script
>
</
script
>
<
style
scoped
>
<
style
scoped
>
.drawer-content
{
.drawer-content
{
height
:
100%
;
}
height
:
100%
;
.drawer-content
:deep
(
.ant-tabs
)
{
height
:
100%
;
}
}
.drawer-content
:deep
(
.ant-tabs-content
)
{
height
:
calc
(
100%
-
40px
);
overflow-y
:
auto
;
}
.drawer-content
:deep
(
.ant-tabs
)
{
height
:
100%
;
}
.drawer-content
:deep
(
.ant-tabs-content
)
{
height
:
calc
(
100%
-
40px
);
overflow-y
:
auto
;
}
</
style
>
</
style
>
zrch-risk-client-39/src/views/common/HistoryPanel.vue
浏览文件 @
b56d7a7f
差异被折叠。
点击展开。
zrch-risk-client-39/src/views/common/TaskAssigneeDrawer.vue
浏览文件 @
b56d7a7f
...
@@ -14,20 +14,11 @@
...
@@ -14,20 +14,11 @@
<a-form
layout=
"vertical"
>
<a-form
layout=
"vertical"
>
<a-form-item
label=
"用户类型"
required
>
<a-form-item
label=
"用户类型"
required
>
<a-radio-group
v-model:value=
"localUserType"
disabled
>
<a-radio-group
v-model:value=
"localUserType"
disabled
>
<a-radio
value=
"user"
>
<a-radio
value=
"user"
><UserOutlined
/>
用户
</a-radio>
<UserOutlined
/>
用户
<a-radio
value=
"role"
><TeamOutlined
/>
角色
</a-radio>
</a-radio>
<a-radio
value=
"role"
>
<TeamOutlined
/>
角色
</a-radio>
</a-radio-group>
</a-radio-group>
</a-form-item>
</a-form-item>
<a-form-item
v-if=
"!assigneeId"
:label=
"localUserType === 'user' ? '选择用户' : '选择角色'"
>
<!-- 用户/角色选择区域(未选择时) -->
<a-form-item
v-if=
"!assigneeId"
:label=
"localUserType === 'user' ? '选择用户' : '选择角色'"
>
<div
class=
"assignee-selector"
>
<div
class=
"assignee-selector"
>
<a-input
<a-input
:value=
"assigneeDisplayName"
:value=
"assigneeDisplayName"
...
@@ -41,8 +32,6 @@
...
@@ -41,8 +32,6 @@
</a-input>
</a-input>
</div>
</div>
</a-form-item>
</a-form-item>
<!-- 已指定信息展示 -->
<div
v-if=
"assigneeId"
class=
"assignee-info-wrapper"
>
<div
v-if=
"assigneeId"
class=
"assignee-info-wrapper"
>
<div
class=
"assignee-info-label"
>
已指定{{ localUserType === 'user' ? '用户' : '角色' }}:
</div>
<div
class=
"assignee-info-label"
>
已指定{{ localUserType === 'user' ? '用户' : '角色' }}:
</div>
<a-descriptions
:column=
"1"
size=
"small"
bordered
>
<a-descriptions
:column=
"1"
size=
"small"
bordered
>
...
@@ -53,12 +42,9 @@
...
@@ -53,12 +42,9 @@
{{ assigneeDisplayName || '--' }}
{{ assigneeDisplayName || '--' }}
</a-descriptions-item>
</a-descriptions-item>
</a-descriptions>
</a-descriptions>
<a-button
type=
"link"
size=
"small"
@
click=
"clearAssignee"
class=
"change-btn"
>
<a-button
type=
"link"
size=
"small"
@
click=
"clearAssignee"
class=
"change-btn"
>
重新选择
</a-button>
重新选择
</a-button>
</div>
</div>
</a-form>
</a-form>
<div
class=
"assignee-actions"
>
<div
class=
"assignee-actions"
>
<a-space>
<a-space>
<a-button
@
click=
"handleClose"
>
取消
</a-button>
<a-button
@
click=
"handleClose"
>
取消
</a-button>
...
@@ -68,27 +54,13 @@
...
@@ -68,27 +54,13 @@
</a-card>
</a-card>
</div>
</div>
<RoleSelectModal
<RoleSelectModal
rowKey=
"id"
@
register=
"registerSelRoleModal"
@
getSelectResult=
"onSelectRoleOk"
isRadioSelection
:showButton=
"false"
labelKey=
"roleName"
/>
rowKey=
"id"
<UserSelectModal
rowKey=
"id"
@
register=
"registerSelUserModal"
@
getSelectResult=
"onSelectUserOk"
isRadioSelection
:showButton=
"false"
labelKey=
"realname"
/>
@
register=
"registerSelRoleModal"
@
getSelectResult=
"onSelectRoleOk"
isRadioSelection
:showButton=
"false"
labelKey=
"roleName"
/>
<UserSelectModal
rowKey=
"id"
@
register=
"registerSelUserModal"
@
getSelectResult=
"onSelectUserOk"
isRadioSelection
:showButton=
"false"
labelKey=
"realname"
/>
</BasicDrawer>
</BasicDrawer>
</template>
</template>
<
script
lang=
"ts"
setup
>
<
script
lang=
"ts"
setup
>
import
{
ref
,
computed
,
watch
,
nextTick
}
from
'vue'
import
{
ref
}
from
'vue'
import
{
message
}
from
'ant-design-vue'
import
{
message
}
from
'ant-design-vue'
import
{
useModal
}
from
'/@/components/Modal'
import
{
useModal
}
from
'/@/components/Modal'
import
{
BasicDrawer
,
useDrawerInner
}
from
'/@/components/Drawer'
import
{
BasicDrawer
,
useDrawerInner
}
from
'/@/components/Drawer'
...
@@ -97,43 +69,26 @@ import UserSelectModal from '/@/components/Form/src/jeecg/components/modal/UserS
...
@@ -97,43 +69,26 @@ import UserSelectModal from '/@/components/Form/src/jeecg/components/modal/UserS
import
RoleSelectModal
from
'/@/components/Form/src/jeecg/components/modal/RoleSelectModal.vue'
import
RoleSelectModal
from
'/@/components/Form/src/jeecg/components/modal/RoleSelectModal.vue'
import
{
complete
,
getMyTaskFlow
}
from
'/@/components/Process/api/todo'
import
{
complete
,
getMyTaskFlow
}
from
'/@/components/Process/api/todo'
interface
formDadta
{
assignee
:
string
userType
:
string
deployId
?:
string
required
?:
string
assigneeName
?:
string
dataId
?:
string
}
const
emit
=
defineEmits
([
'success'
,
'error'
,
'close'
])
const
emit
=
defineEmits
([
'success'
,
'error'
,
'close'
])
const
[
registerSelUserModal
,
{
openModal
:
userOpenModal
}]
=
useModal
()
const
[
registerSelUserModal
,
{
openModal
:
userOpenModal
}]
=
useModal
()
const
[
registerSelRoleModal
,
{
openModal
:
roleOpenModal
}]
=
useModal
()
const
[
registerSelRoleModal
,
{
openModal
:
roleOpenModal
}]
=
useModal
()
// 状态
const
localUserType
=
ref
<
'user'
|
'role'
>
(
'user'
)
const
localUserType
=
ref
<
'user'
|
'role'
>
(
'user'
)
const
assigneeId
=
ref
(
''
)
const
assigneeId
=
ref
(
''
)
const
assigneeDisplayName
=
ref
(
''
)
const
assigneeDisplayName
=
ref
(
''
)
const
confirmLoading
=
ref
(
false
)
const
confirmLoading
=
ref
(
false
)
const
dataId
=
ref
(
''
)
const
dataId
=
ref
(
''
)
const
deployId
=
ref
(
''
)
const
deployId
=
ref
(
''
)
const
taskId
=
ref
(
''
)
const
hasAssignee
=
ref
(
false
)
// 使用 useDrawerInner 接收外部传入的数据
const
[
registerBasicDrawer
,
{
closeDrawer
}]
=
useDrawerInner
((
data
)
=>
{
const
[
registerBasicDrawer
,
{
closeDrawer
,
setDrawerProps
}]
=
useDrawerInner
((
data
)
=>
{
alert
(
JSON
.
stringify
(
data
))
if
(
data
)
{
if
(
data
)
{
dataId
.
value
=
data
.
dataId
||
''
dataId
.
value
=
data
.
dataId
||
''
deployId
.
value
=
data
.
deployId
||
''
deployId
.
value
=
data
.
deployId
||
''
if
(
data
.
assignee
)
{
if
(
data
.
assignee
)
{
localUserType
.
value
=
data
.
userType
===
'role'
?
'role'
:
'user'
localUserType
.
value
=
data
.
userType
===
'role'
?
'role'
:
'user'
assigneeId
.
value
=
data
.
assignee
assigneeId
.
value
=
data
.
assignee
if
(
data
.
assigneeName
)
{
assigneeDisplayName
.
value
=
data
.
assigneeName
||
''
assigneeDisplayName
.
value
=
data
.
assigneeName
}
}
else
{
}
else
{
localUserType
.
value
=
data
.
userType
===
'role'
?
'role'
:
'user'
localUserType
.
value
=
data
.
userType
===
'role'
?
'role'
:
'user'
}
}
...
@@ -146,14 +101,9 @@ const clearAssignee = () => {
...
@@ -146,14 +101,9 @@ const clearAssignee = () => {
}
}
const
handleSelect
=
()
=>
{
const
handleSelect
=
()
=>
{
if
(
localUserType
.
value
===
'user'
)
{
localUserType
.
value
===
'user'
?
userOpenModal
()
:
roleOpenModal
()
userOpenModal
()
}
else
{
roleOpenModal
()
}
}
}
// 选择用户回调
const
onSelectUserOk
=
(
options
:
any
[],
values
:
any
[])
=>
{
const
onSelectUserOk
=
(
options
:
any
[],
values
:
any
[])
=>
{
if
(
!
values
?.
length
)
return
if
(
!
values
?.
length
)
return
assigneeId
.
value
=
values
[
0
]
assigneeId
.
value
=
values
[
0
]
...
@@ -161,7 +111,6 @@ const onSelectUserOk = (options: any[], values: any[]) => {
...
@@ -161,7 +111,6 @@ const onSelectUserOk = (options: any[], values: any[]) => {
localUserType
.
value
=
'user'
localUserType
.
value
=
'user'
}
}
// 选择角色回调
const
onSelectRoleOk
=
(
options
:
any
[],
values
:
any
[])
=>
{
const
onSelectRoleOk
=
(
options
:
any
[],
values
:
any
[])
=>
{
if
(
!
values
?.
length
)
return
if
(
!
values
?.
length
)
return
assigneeId
.
value
=
values
[
0
]
assigneeId
.
value
=
values
[
0
]
...
@@ -175,7 +124,6 @@ const handleClose = () => {
...
@@ -175,7 +124,6 @@ const handleClose = () => {
}
}
const
handleConfirm
=
async
()
=>
{
const
handleConfirm
=
async
()
=>
{
confirmLoading
.
value
=
true
confirmLoading
.
value
=
true
try
{
try
{
if
(
dataId
.
value
&&
deployId
.
value
)
{
if
(
dataId
.
value
&&
deployId
.
value
)
{
...
@@ -187,28 +135,20 @@ const handleConfirm = async () => {
...
@@ -187,28 +135,20 @@ const handleConfirm = async () => {
taskId
:
myTaskFlow
.
taskId
,
taskId
:
myTaskFlow
.
taskId
,
dataId
:
dataId
.
value
,
dataId
:
dataId
.
value
,
comment
:
''
,
comment
:
''
,
values
:
{
values
:
{
approval
:
assigneeId
.
value
,
approvalType
:
localUserType
.
value
},
approval
:
assigneeId
.
value
,
approvalType
:
localUserType
.
value
},
})
})
}
}
}
}
emit
(
'success'
,
dataId
.
value
)
emit
(
'success'
,
dataId
.
value
)
nextTick
(()
=>
{
message
.
success
(
'任务发送成功'
)
message
.
success
(
'任务发送成功'
)
handleClose
()
handleClose
()
})
}
catch
(
error
)
{
}
catch
(
error
:
any
)
{
emit
(
'error'
,
error
)
emit
(
'error'
,
error
)
}
finally
{
}
finally
{
confirmLoading
.
value
=
false
confirmLoading
.
value
=
false
}
}
}
}
// 对外暴露的方法
const
getAssigneeData
=
()
=>
({
const
getAssigneeData
=
()
=>
({
userType
:
localUserType
.
value
,
userType
:
localUserType
.
value
,
assignee
:
assigneeId
.
value
,
assignee
:
assigneeId
.
value
,
...
@@ -228,110 +168,13 @@ const setRoleInfo = (roleId: string, roleNameValue: string) => {
...
@@ -228,110 +168,13 @@ const setRoleInfo = (roleId: string, roleNameValue: string) => {
localUserType
.
value
=
'role'
localUserType
.
value
=
'role'
}
}
defineExpose
({
defineExpose
({
getAssigneeData
,
submit
:
handleConfirm
,
setUserInfo
,
setRoleInfo
})
getAssigneeData
,
submit
:
handleConfirm
,
setUserInfo
,
setRoleInfo
})
</
script
>
</
script
>
<
style
scoped
lang=
"scss"
>
<
style
scoped
lang=
"scss"
>
.drawer-content
{
.drawer-content
{
height
:
100%
;
overflow-y
:
auto
;
padding
:
16px
20px
;
&
:
:-
webkit-scrollbar
{
width
:
4px
;
}
&
:
:-
webkit-scrollbar-track
{
background
:
#f1f1f1
;
border-radius
:
2px
;
}
&
:
:-
webkit-scrollbar-thumb
{
background
:
#c1c1c1
;
border-radius
:
2px
;
&
:hover
{
background
:
#a8a8a8
;
}
}
}
height
:
100%
;
.assignee-card
{
height
:
100%
;
border-radius
:
8px
;
box-shadow
:
0
2px
8px
rgba
(
0
,
0
,
0
,
0
.06
);
:deep
(
.ant-card-head
)
{
background-color
:
#fafbfc
;
border-bottom
:
1px
solid
#e8eef2
;
.ant-card-head-title
{
font-size
:
16px
;
font-weight
:
500
;
}
}
:deep
(
.ant-card-body
)
{
padding
:
24px
;
height
:
calc
(
100%
-
57px
);
display
:
flex
;
flex-direction
:
column
;
}
}
overflow-y
:
auto
;
.assignee-selector
{
display
:
flex
;
align-items
:
center
;
gap
:
8px
;
.assignee-input
{
flex
:
1
;
:deep
(
.ant-input
)
{
background-color
:
#fafafa
;
cursor
:
pointer
;
&
:hover
{
background-color
:
#fff
;
}
}
}
}
padding
:
16px
20px
;
.assignee-info-wrapper
{
margin-top
:
12px
;
padding
:
12px
;
background-color
:
#fafbfc
;
border-radius
:
8px
;
.assignee-info-label
{
margin-bottom
:
8px
;
font-weight
:
500
;
color
:
#1f2f3d
;
}
.change-btn
{
margin-top
:
8px
;
padding-left
:
0
;
}
:deep
(
.ant-descriptions
)
{
.ant-descriptions-item-label
{
background-color
:
#f5f5f5
;
width
:
80px
;
}
}
}
.assignee-actions
{
margin-top
:
auto
;
padding-top
:
24px
;
text-align
:
center
;
border-top
:
1px
solid
#f0f0f0
;
}
&
:
:-
webkit-scrollbar
{
width
:
4px
;
}
&
:
:-
webkit-scrollbar-track
{
background
:
#f1f1f1
;
border-radius
:
2px
;
}
&
:
:-
webkit-scrollbar-thumb
{
background
:
#c1c1c1
;
border-radius
:
2px
;
&
:hover
{
background
:
#a8a8a8
;
}
}
}
.assignee-card
{
height
:
100%
;
border-radius
:
8px
;
box-shadow
:
0
2px
8px
rgba
(
0
,
0
,
0
,
0
.06
);
:deep
(
.ant-card-head
)
{
background-color
:
#fafbfc
;
border-bottom
:
1px
solid
#e8eef2
;
.ant-card-head-title
{
font-size
:
16px
;
font-weight
:
500
;
}
}
:deep
(
.ant-card-body
)
{
padding
:
24px
;
height
:
calc
(
100%
-
57px
);
display
:
flex
;
flex-direction
:
column
;
}
}
.assignee-selector
{
display
:
flex
;
align-items
:
center
;
gap
:
8px
;
.assignee-input
{
flex
:
1
;
:deep
(
.ant-input
)
{
background-color
:
#fafafa
;
cursor
:
pointer
;
&
:hover
{
background-color
:
#fff
;
}
}
}
}
.assignee-info-wrapper
{
margin-top
:
12px
;
padding
:
12px
;
background-color
:
#fafbfc
;
border-radius
:
8px
;
.assignee-info-label
{
margin-bottom
:
8px
;
font-weight
:
500
;
color
:
#1f2f3d
;
}
.change-btn
{
margin-top
:
8px
;
padding-left
:
0
;
}
:deep
(
.ant-descriptions
)
{
.ant-descriptions-item-label
{
background-color
:
#f5f5f5
;
width
:
80px
;
}
}
}
.assignee-actions
{
margin-top
:
auto
;
padding-top
:
24px
;
text-align
:
center
;
border-top
:
1px
solid
#f0f0f0
;
}
</
style
>
</
style
>
zrch-risk-client-39/src/views/common/WorkFlowFormDrawer.vue
浏览文件 @
b56d7a7f
差异被折叠。
点击展开。
zrch-risk-client-39/src/views/common/components/ApprovalModal.vue
浏览文件 @
b56d7a7f
...
@@ -8,33 +8,38 @@
...
@@ -8,33 +8,38 @@
:minHeight=
"400"
:minHeight=
"400"
:useWrapper=
"true"
:useWrapper=
"true"
:wrapperFooterOffset=
"20"
:wrapperFooterOffset=
"20"
@
cancel=
""
@
ok=
"handleOk"
@
ok=
"handleOk"
>
>
<ApprovalPanel
ref=
"approvalPanelRef"
/>
<ApprovalPanel
ref=
"approvalPanelRef"
@
success=
"handleSuccess"
@
approval-fail=
"handleApprovalFail"
/>
</BasicModal>
</BasicModal>
</
template
>
</
template
>
<
script
setup
lang=
"ts"
>
<
script
setup
lang=
"ts"
>
import
{
ref
,
computed
,
watch
,
nextTick
}
from
'vue'
import
{
ref
}
from
'vue'
import
{
BasicModal
,
useModalInner
}
from
'/@/components/Modal'
;
import
{
BasicModal
,
useModalInner
}
from
'/@/components/Modal'
;
import
ApprovalPanel
from
'./ApprovalPanel.vue'
;
import
ApprovalPanel
from
'./ApprovalPanel.vue'
;
import
{
complete
,
getMyTaskFlow
,
rejectTask
,
assignRead
,
assign
}
from
'/@/components/Process/api/todo'
;
const
approvalPanelRef
=
ref
();
const
approvalPanelRef
=
ref
();
const
emit
=
defineEmits
([
'success'
,
'approval-fail'
,
'update-form-data'
])
const
emit
=
defineEmits
([
'success'
,
'approval-fail'
,
'update-form-data'
])
const
[
registerModal
,
{
setModalProps
,
closeModal
}]
=
useModalInner
(
async
(
data
)
=>
{
setModalProps
({
confirmLoading
:
false
,
showCancelBtn
:
!!
data
?.
showFooter
,
showOkBtn
:
!!
data
?.
showFooter
});
approvalPanelRef
.
value
?.
initFormData
?.(
data
);
const
[
registerModal
,
{
setModalProps
,
closeModal
}]
=
useModalInner
(
async
(
data
)
=>
{
setModalProps
({
confirmLoading
:
false
,
showCancelBtn
:
!!
data
?.
showFooter
,
showOkBtn
:
!!
data
?.
showFooter
});
});
});
function
handleOk
()
{
function
handleOk
()
{
alert
(
'handleOk'
);
setModalProps
({
confirmLoading
:
true
});
setModalProps
({
confirmLoading
:
true
});
approvalPanelRef
.
value
?.
handleSaveApp
?.();
approvalPanelRef
.
value
.
handleSaveApp
();
setModalProps
({
confirmLoading
:
false
});
setModalProps
({
confirmLoading
:
false
});
}
}
function
handleSuccess
(
data
:
any
)
{
emit
(
'success'
,
data
)
closeModal
()
}
function
handleApprovalFail
(
data
:
any
)
{
emit
(
'approval-fail'
,
data
)
closeModal
()
}
</
script
>
</
script
>
zrch-risk-client-39/src/views/common/components/ApprovalPanel.vue
浏览文件 @
b56d7a7f
...
@@ -30,23 +30,19 @@
...
@@ -30,23 +30,19 @@
</template>
</template>
<
script
lang=
"ts"
setup
>
<
script
lang=
"ts"
setup
>
import
{
ref
,
onMounted
,
nextTick
}
from
'vue'
;
import
{
ref
,
nextTick
}
from
'vue'
;
import
{
useForm
,
BasicForm
,
FormSchema
}
from
'/@/components/Form'
;
import
{
useForm
,
BasicForm
,
FormSchema
}
from
'/@/components/Form'
;
import
{
CheckCircleOutlined
,
CloseCircleOutlined
}
from
'@ant-design/icons-vue'
;
import
{
CheckCircleOutlined
,
CloseCircleOutlined
}
from
'@ant-design/icons-vue'
;
import
{
complete
,
getMyTaskFlow
,
getRejectNode
,
rejectTask
}
from
'/@/components/Process/api/todo'
;
import
{
complete
,
getMyTaskFlow
,
rejectTask
}
from
'/@/components/Process/api/todo'
;
import
{
message
}
from
'ant-design-vue'
;
import
{
message
}
from
'ant-design-vue'
;
const
emit
=
defineEmits
([
'update:visible'
,
'success'
,
'error'
,
'close'
,
'approval-fail'
]);
const
emit
=
defineEmits
([
'update:visible'
,
'success'
,
'error'
,
'close'
,
'approval-fail'
]);
const
props
=
defineProps
({
beforeFlowNode
:
{
const
beforeFlowNode
=
ref
<
any
>
({})
type
:
Object
,
const
assignee
=
ref
()
default
:
()
=>
({}),
const
userType
=
ref
(
''
)
},
const
deployId
=
ref
(
''
)
assignee
:
{
type
:
String
,
default
:
null
},
const
dataId
=
ref
(
''
)
userType
:
{
type
:
String
,
default
:
''
},
deployId
:
{
type
:
String
,
default
:
''
},
dataId
:
{
type
:
String
,
default
:
''
},
});
const
formSchemas
:
FormSchema
[]
=
[
const
formSchemas
:
FormSchema
[]
=
[
{
{
...
@@ -60,7 +56,7 @@
...
@@ -60,7 +56,7 @@
label
:
'用户类型'
,
label
:
'用户类型'
,
field
:
'userType'
,
field
:
'userType'
,
component
:
'Input'
,
component
:
'Input'
,
defaultValue
:
props
.
userType
,
defaultValue
:
''
,
ifShow
:
false
,
ifShow
:
false
,
},
},
{
{
...
@@ -112,16 +108,17 @@
...
@@ -112,16 +108,17 @@
labelWidth
:
'120px'
,
labelWidth
:
'120px'
,
size
:
'large'
,
size
:
'large'
,
baseColProps
:
{
style
:
{
width
:
'100%'
}
},
baseColProps
:
{
style
:
{
width
:
'100%'
}
},
});
});
const
handleClose
=
()
=>
{
const
handleClose
=
()
=>
{
emit
(
'update:visible'
,
false
);
//
emit('update:visible', false);
emit
(
'close'
);
//
emit('close');
};
};
const
handleSaveApp
=
async
()
=>
{
const
handleSaveApp
=
async
()
=>
{
const
formDataTmp
=
await
validate
();
const
formDataTmp
=
await
validate
();
const
myTaskFlow
=
await
getMyTaskFlow
({
deploymentId
:
props
.
deployId
,
dataId
:
props
.
dataId
});
const
myTaskFlow
=
await
getMyTaskFlow
({
deploymentId
:
deployId
.
value
,
dataId
:
dataId
.
value
});
if
(
myTaskFlow
?.
taskId
)
{
if
(
myTaskFlow
?.
taskId
)
{
const
reviewStatus
=
formDataTmp
.
reviewStatus
;
const
reviewStatus
=
formDataTmp
.
reviewStatus
;
if
(
reviewStatus
===
true
)
{
if
(
reviewStatus
===
true
)
{
...
@@ -132,9 +129,13 @@
...
@@ -132,9 +129,13 @@
comment
:
formDataTmp
.
comment
,
comment
:
formDataTmp
.
comment
,
values
:
{
values
:
{
approval
:
formDataTmp
.
approvalUser
||
formDataTmp
.
approvalRole
,
approval
:
formDataTmp
.
approvalUser
||
formDataTmp
.
approvalRole
,
approvalType
:
props
.
userTyp
e
,
approvalType
:
userType
.
valu
e
,
},
},
});
});
emit
(
'success'
,
{
dataId
:
dataId
.
value
,
bpmNodeId
:
myTaskFlow
.
taskDefinitionKey
||
''
,
});
}
else
{
}
else
{
await
rejectTask
({
await
rejectTask
({
instanceId
:
myTaskFlow
.
procInsId
||
''
,
instanceId
:
myTaskFlow
.
procInsId
||
''
,
...
@@ -142,18 +143,18 @@
...
@@ -142,18 +143,18 @@
taskId
:
myTaskFlow
.
taskId
,
taskId
:
myTaskFlow
.
taskId
,
comment
:
formDataTmp
.
comment
,
comment
:
formDataTmp
.
comment
,
values
:
{
values
:
{
rejectNode
:
props
.
beforeFlowNod
e
,
rejectNode
:
beforeFlowNode
.
valu
e
,
},
},
});
});
emit
(
'approval-fail'
,
{
emit
(
'approval-fail'
,
props
.
dataId
);
dataId
:
dataId
.
value
,
bpmNodeId
:
beforeFlowNode
.
value
.
id
});
}
}
}
}
emit
(
'success'
,
props
.
dataId
);
nextTick
(()
=>
{
nextTick
(()
=>
{
message
.
success
(
'任务发送成功'
);
//
message.success('任务发送成功');
handleClose
();
//
handleClose();
});
});
};
};
...
@@ -173,7 +174,7 @@
...
@@ -173,7 +174,7 @@
};
};
const
handleClickPass
=
async
()
=>
{
const
handleClickPass
=
async
()
=>
{
updateField
(
props
.
userTyp
e
);
updateField
(
userType
.
valu
e
);
};
};
const
updateField
=
(
userTp
)
=>
{
const
updateField
=
(
userTp
)
=>
{
...
@@ -182,6 +183,7 @@
...
@@ -182,6 +183,7 @@
{
{
field
:
'approvalUser'
,
field
:
'approvalUser'
,
required
:
true
,
required
:
true
,
defaultValue
:
assignee
.
value
,
ifShow
:
true
,
ifShow
:
true
,
},
},
{
{
...
@@ -190,11 +192,18 @@
...
@@ -190,11 +192,18 @@
ifShow
:
false
,
ifShow
:
false
,
},
},
]);
]);
nextTick
(
async
()
=>
{
await
setFieldsValue
({
userType
:
userType
.
value
,
approvalUser
:
assignee
.
value
,
})
})
}
else
{
}
else
{
updateSchema
([
updateSchema
([
{
{
field
:
'approvalRole'
,
field
:
'approvalRole'
,
required
:
true
,
required
:
true
,
defaultValue
:
assignee
.
value
,
ifShow
:
true
,
ifShow
:
true
,
},
},
{
{
...
@@ -203,15 +212,30 @@
...
@@ -203,15 +212,30 @@
ifShow
:
false
,
ifShow
:
false
,
},
},
]);
]);
nextTick
(
async
()
=>
{
await
setFieldsValue
({
userType
:
userType
.
value
,
approvalRole
:
assignee
.
value
,
})
})
}
}
};
};
onMounted
(
async
()
=>
{
const
initFormData
=
async
(
data
)
=>
{
updateField
(
props
.
userType
);
beforeFlowNode
.
value
=
data
.
beforeFlowNode
||
{}
});
assignee
.
value
=
data
.
assignee
||
''
userType
.
value
=
data
.
userType
||
''
deployId
.
value
=
data
.
deployId
||
''
dataId
.
value
=
data
.
dataId
||
''
nextTick
(
async
()
=>
{
updateField
(
userType
.
value
);
})
}
defineExpose
({
defineExpose
({
handleSaveApp
,
handleSaveApp
,
initFormData
,
})
})
</
script
>
</
script
>
...
...
zrch-risk-client-39/src/views/common/components/AssigneePanel.vue
浏览文件 @
b56d7a7f
...
@@ -2,245 +2,80 @@
...
@@ -2,245 +2,80 @@
<a-form
layout=
"vertical"
>
<a-form
layout=
"vertical"
>
<a-form-item
label=
"用户类型"
required
>
<a-form-item
label=
"用户类型"
required
>
<a-radio-group
v-model:value=
"localUserType"
disabled
>
<a-radio-group
v-model:value=
"localUserType"
disabled
>
<a-radio
value=
"user"
>
<a-radio
value=
"user"
><UserOutlined
/>
用户
</a-radio>
<UserOutlined
/>
用户
<a-radio
value=
"role"
><TeamOutlined
/>
角色
</a-radio>
</a-radio>
<a-radio
value=
"role"
>
<TeamOutlined
/>
角色
</a-radio>
</a-radio-group>
</a-radio-group>
</a-form-item>
</a-form-item>
<!-- 用户/角色选择区域(未选择时) -->
<a-form-item
v-if=
"!assigneeId"
:label=
"localUserType === 'user' ? '选择用户' : '选择角色'"
>
<a-form-item
v-if=
"!assigneeId"
:label=
"localUserType === 'user' ? '选择用户' : '选择角色'"
>
<div
class=
"assignee-selector"
>
<div
class=
"assignee-selector"
>
<a-input
<a-input
:value=
"assigneeDisplayName"
:placeholder=
"`点击'选择'按钮选择$
{localUserType === 'user' ? '用户' : '角色'}`" readonly class="assignee-input">
:value=
"assigneeDisplayName"
:placeholder=
"`点击'选择'按钮选择$
{localUserType === 'user' ? '用户' : '角色'}`"
readonly
class="assignee-input"
>
<template
#
suffix
>
<template
#
suffix
>
<a-button
type=
"link"
size=
"small"
@
click=
"handleSelect"
>
选择
</a-button>
<a-button
type=
"link"
size=
"small"
@
click=
"handleSelect"
>
选择
</a-button>
</
template
>
</
template
>
</a-input>
</a-input>
</div>
</div>
</a-form-item>
</a-form-item>
<!-- 已指定信息展示 -->
<div
v-if=
"assigneeId"
class=
"assignee-info-wrapper"
>
<div
v-if=
"assigneeId"
class=
"assignee-info-wrapper"
>
<div
class=
"assignee-info-label"
>
已指定{{ localUserType === 'user' ? '用户' : '角色' }}:
</div>
<div
class=
"assignee-info-label"
>
已指定{{ localUserType === 'user' ? '用户' : '角色' }}:
</div>
<a-descriptions
:column=
"2"
size=
"small"
bordered
>
<a-descriptions
:column=
"2"
size=
"small"
bordered
>
<a-descriptions-item
:label=
"localUserType === 'user' ? '用户ID' : '角色ID'"
>
<a-descriptions-item
:label=
"localUserType === 'user' ? '用户ID' : '角色ID'"
>
{{ assigneeId }}
</a-descriptions-item>
{{ assigneeId }}
<a-descriptions-item
:label=
"localUserType === 'user' ? '用户名' : '角色名'"
>
{{ assigneeDisplayName || '--' }}
</a-descriptions-item>
</a-descriptions-item>
<a-descriptions-item><a-button
type=
"link"
size=
"small"
@
click=
"clearAssignee"
class=
"change-btn"
>
重新选择
</a-button></a-descriptions-item>
<a-descriptions-item
:label=
"localUserType === 'user' ? '用户名' : '角色名'"
>
{{ assigneeDisplayName || '--' }}
</a-descriptions-item>
<a-descriptions-item>
<a-button
type=
"link"
size=
"small"
@
click=
"clearAssignee"
class=
"change-btn"
>
重新选择
</a-button>
</a-descriptions-item>
</a-descriptions>
</a-descriptions>
</div>
</div>
<a-form-item
label=
"说明"
>
<a-form-item
label=
"说明"
>
<a-textarea
<a-textarea
v-model:value=
"assigneeRemark"
placeholder=
"请输入说明"
:rows=
"4"
allow-clear
show-count
:maxlength=
"200"
/>
v-model:value=
"assigneeRemark"
placeholder=
"请输入说明"
:rows=
"4"
allow-clear
show-count
:maxlength=
"200"
/>
</a-form-item>
</a-form-item>
</a-form>
</a-form>
<RoleSelectModal
<RoleSelectModal
rowKey=
"id"
@
register=
"registerSelRoleModal"
@
getSelectResult=
"onSelectRoleOk"
isRadioSelection
:showButton=
"false"
labelKey=
"roleName"
/>
rowKey=
"id"
<UserSelectModal
rowKey=
"id"
@
register=
"registerSelUserModal"
@
getSelectResult=
"onSelectUserOk"
isRadioSelection
:showButton=
"false"
labelKey=
"realname"
/>
@
register=
"registerSelRoleModal"
@
getSelectResult=
"onSelectRoleOk"
isRadioSelection
:showButton=
"false"
labelKey=
"roleName"
/>
<UserSelectModal
rowKey=
"id"
@
register=
"registerSelUserModal"
@
getSelectResult=
"onSelectUserOk"
isRadioSelection
:showButton=
"false"
labelKey=
"realname"
/>
</template>
</template>
<
script
lang=
"ts"
setup
>
<
script
lang=
"ts"
setup
>
import
{
ref
,
computed
,
watch
,
nextTick
}
from
'vue'
import
{
ref
}
from
'vue'
import
{
useModal
}
from
'/@/components/Modal'
import
{
useModal
}
from
'/@/components/Modal'
import
{
UserOutlined
,
TeamOutlined
}
from
'@ant-design/icons-vue'
import
{
UserOutlined
,
TeamOutlined
}
from
'@ant-design/icons-vue'
import
UserSelectModal
from
'/@/components/Form/src/jeecg/components/modal/UserSelectModal.vue'
import
UserSelectModal
from
'/@/components/Form/src/jeecg/components/modal/UserSelectModal.vue'
import
RoleSelectModal
from
'/@/components/Form/src/jeecg/components/modal/RoleSelectModal.vue'
import
RoleSelectModal
from
'/@/components/Form/src/jeecg/components/modal/RoleSelectModal.vue'
const
emit
=
defineEmits
([
'success'
,
'error'
,
'close'
])
const
[
registerSelUserModal
,
{
openModal
:
userOpenModal
}]
=
useModal
()
const
[
registerSelUserModal
,
{
openModal
:
userOpenModal
}]
=
useModal
()
const
[
registerSelRoleModal
,
{
openModal
:
roleOpenModal
}]
=
useModal
()
const
[
registerSelRoleModal
,
{
openModal
:
roleOpenModal
}]
=
useModal
()
// 状态
const
localUserType
=
ref
<
'user'
|
'role'
>
(
'user'
)
const
localUserType
=
ref
<
'user'
|
'role'
>
(
'user'
)
const
assigneeId
=
ref
(
''
)
const
assigneeId
=
ref
(
''
)
const
assigneeDisplayName
=
ref
(
''
)
const
assigneeDisplayName
=
ref
(
''
)
const
assigneeRemark
=
ref
(
''
)
const
assigneeRemark
=
ref
(
''
)
const
setAssigneeData
=
(
(
data
)
=>
{
const
setAssigneeData
=
(
data
:
any
)
=>
{
if
(
data
)
{
if
(
data
)
{
if
(
data
.
assignee
)
{
localUserType
.
value
=
data
.
userType
===
'role'
?
'role'
:
'user'
localUserType
.
value
=
data
.
userType
===
'role'
?
'role'
:
'user'
if
(
data
.
assignee
)
{
assigneeId
.
value
=
data
.
assignee
assigneeId
.
value
=
data
.
assignee
if
(
data
.
assigneeName
)
{
assigneeDisplayName
.
value
=
data
.
assigneeName
||
''
assigneeDisplayName
.
value
=
data
.
assigneeName
}
}
else
{
localUserType
.
value
=
data
.
userType
===
'role'
?
'role'
:
'user'
}
}
}
})
const
clearAssignee
=
()
=>
{
assigneeId
.
value
=
''
assigneeDisplayName
.
value
=
''
}
const
handleSelect
=
()
=>
{
if
(
localUserType
.
value
===
'user'
)
{
userOpenModal
()
}
else
{
roleOpenModal
()
}
}
}
}
const
clearAssignee
=
()
=>
{
assigneeId
.
value
=
''
;
assigneeDisplayName
.
value
=
''
}
const
handleSelect
=
()
=>
{
localUserType
.
value
===
'user'
?
userOpenModal
()
:
roleOpenModal
()
}
const
onSelectUserOk
=
(
options
:
any
[],
values
:
any
[])
=>
{
const
onSelectUserOk
=
(
options
:
any
[],
values
:
any
[])
=>
{
if
(
!
values
?.
length
)
return
if
(
!
values
?.
length
)
return
assigneeId
.
value
=
values
[
0
]
assigneeId
.
value
=
values
[
0
]
assigneeDisplayName
.
value
=
options
[
0
]?.
label
||
''
assigneeDisplayName
.
value
=
options
[
0
]?.
label
||
''
localUserType
.
value
=
'user'
localUserType
.
value
=
'user'
}
}
const
onSelectRoleOk
=
(
options
:
any
[],
values
:
any
[])
=>
{
const
onSelectRoleOk
=
(
options
:
any
[],
values
:
any
[])
=>
{
if
(
!
values
?.
length
)
return
if
(
!
values
?.
length
)
return
assigneeId
.
value
=
values
[
0
]
assigneeId
.
value
=
values
[
0
]
assigneeDisplayName
.
value
=
options
[
0
]?.
label
||
''
assigneeDisplayName
.
value
=
options
[
0
]?.
label
||
''
localUserType
.
value
=
'role'
localUserType
.
value
=
'role'
}
}
const
getAssigneeData
=
()
=>
({
userType
:
localUserType
.
value
,
assignee
:
assigneeId
.
value
,
name
:
assigneeDisplayName
.
value
,
remark
:
assigneeRemark
.
value
})
// 对外暴露的方法
defineExpose
({
setAssigneeData
,
getAssigneeData
})
const
getAssigneeData
=
()
=>
({
userType
:
localUserType
.
value
,
assignee
:
assigneeId
.
value
,
name
:
assigneeDisplayName
.
value
,
remark
:
assigneeRemark
.
value
})
defineExpose
({
setAssigneeData
,
getAssigneeData
,
})
</
script
>
</
script
>
<
style
scoped
lang=
"scss"
>
<
style
scoped
lang=
"scss"
>
.drawer-content
{
.assignee-selector
{
display
:
flex
;
align-items
:
center
;
gap
:
8px
;
.assignee-input
{
flex
:
1
;
:deep
(
.ant-input
)
{
background-color
:
#fafafa
;
cursor
:
pointer
;
&
:hover
{
background-color
:
#fff
;
}
}
}
}
height
:
100%
;
.assignee-info-wrapper
{
margin-top
:
12px
;
padding
:
12px
;
background-color
:
#fafbfc
;
border-radius
:
8px
;
.assignee-info-label
{
margin-bottom
:
8px
;
font-weight
:
500
;
color
:
#1f2f3d
;
}
.change-btn
{
margin-top
:
8px
;
padding-left
:
0
;
}
:deep
(
.ant-descriptions
)
{
.ant-descriptions-item-label
{
background-color
:
#f5f5f5
;
width
:
80px
;
}
}
}
overflow-y
:
auto
;
padding
:
16px
20px
;
&
:
:-
webkit-scrollbar
{
width
:
4px
;
}
&
:
:-
webkit-scrollbar-track
{
background
:
#f1f1f1
;
border-radius
:
2px
;
}
&
:
:-
webkit-scrollbar-thumb
{
background
:
#c1c1c1
;
border-radius
:
2px
;
&
:hover
{
background
:
#a8a8a8
;
}
}
}
.assignee-card
{
height
:
100%
;
border-radius
:
8px
;
box-shadow
:
0
2px
8px
rgba
(
0
,
0
,
0
,
0
.06
);
:deep
(
.ant-card-head
)
{
background-color
:
#fafbfc
;
border-bottom
:
1px
solid
#e8eef2
;
.ant-card-head-title
{
font-size
:
16px
;
font-weight
:
500
;
}
}
:deep
(
.ant-card-body
)
{
padding
:
24px
;
height
:
calc
(
100%
-
57px
);
display
:
flex
;
flex-direction
:
column
;
}
}
.assignee-selector
{
display
:
flex
;
align-items
:
center
;
gap
:
8px
;
.assignee-input
{
flex
:
1
;
:deep
(
.ant-input
)
{
background-color
:
#fafafa
;
cursor
:
pointer
;
&
:hover
{
background-color
:
#fff
;
}
}
}
}
.assignee-info-wrapper
{
margin-top
:
12px
;
padding
:
12px
;
background-color
:
#fafbfc
;
border-radius
:
8px
;
.assignee-info-label
{
margin-bottom
:
8px
;
font-weight
:
500
;
color
:
#1f2f3d
;
}
.change-btn
{
margin-top
:
8px
;
padding-left
:
0
;
}
:deep
(
.ant-descriptions
)
{
.ant-descriptions-item-label
{
background-color
:
#f5f5f5
;
width
:
80px
;
}
}
}
.assignee-actions
{
margin-top
:
auto
;
padding-top
:
24px
;
text-align
:
center
;
border-top
:
1px
solid
#f0f0f0
;
}
</
style
>
</
style
>
zrch-risk-client-39/src/views/common/components/SendModal.vue
浏览文件 @
b56d7a7f
...
@@ -16,8 +16,6 @@
...
@@ -16,8 +16,6 @@
<
script
setup
lang=
"ts"
>
<
script
setup
lang=
"ts"
>
import
{
BasicModal
,
useModalInner
}
from
'/@/components/Modal'
;
import
{
BasicModal
,
useModalInner
}
from
'/@/components/Modal'
;
import
ApprovalPanel
from
'./ApprovalPanel.vue'
;
import
ApprovalPanel
from
'./ApprovalPanel.vue'
;
const
[
registerModal
,
{
setModalProps
,
closeModal
}]
=
useModalInner
(
async
(
data
)
=>
{
const
[
registerModal
,
{
setModalProps
,
closeModal
}]
=
useModalInner
(
async
(
data
)
=>
{
setModalProps
({
confirmLoading
:
false
,
showCancelBtn
:
!!
data
?.
showFooter
,
showOkBtn
:
!!
data
?.
showFooter
});
setModalProps
({
confirmLoading
:
false
,
showCancelBtn
:
!!
data
?.
showFooter
,
showOkBtn
:
!!
data
?.
showFooter
});
});
});
...
...
zrch-risk-client-39/src/views/common/components/TaskModal.vue
浏览文件 @
b56d7a7f
...
@@ -21,35 +21,29 @@
...
@@ -21,35 +21,29 @@
import
{
ref
}
from
'vue'
import
{
ref
}
from
'vue'
import
{
BasicModal
,
useModalInner
}
from
'/@/components/Modal'
;
import
{
BasicModal
,
useModalInner
}
from
'/@/components/Modal'
;
import
AssigneePanel
from
'./AssigneePanel.vue'
;
import
AssigneePanel
from
'./AssigneePanel.vue'
;
import
{
complete
,
getMyTaskFlow
,
rejectTask
,
assignRead
,
assign
}
from
'/@/components/Process/api/todo'
;
import
{
complete
,
getMyTaskFlow
,
rejectTask
,
assignRead
,
assign
}
from
'/@/components/Process/api/todo'
;
import
{
message
}
from
'ant-design-vue'
;
const
emit
=
defineEmits
([
'success'
,
'approval-fail'
,
'update-form-data'
])
const
emit
=
defineEmits
([
'success'
,
'approval-fail'
,
'update-form-data'
])
const
taskTitle
=
ref
(
'任务'
)
const
taskTitle
=
ref
(
'任务'
)
const
sending
=
ref
(
false
);
const
sending
=
ref
(
false
);
const
taskType
=
ref
<
any
>
(
{}
);
const
taskType
=
ref
<
any
>
(
null
);
const
refAssigneePanel
=
ref
<
any
>
(
null
);
const
refAssigneePanel
=
ref
<
any
>
(
null
);
const
myTaskFlow
=
ref
<
any
>
({});
const
myTaskFlow
=
ref
<
any
>
({});
const
[
registerModal
,
{
setModalProps
,
closeModal
}]
=
useModalInner
(
async
(
data
)
=>
{
const
[
registerModal
,
{
setModalProps
,
closeModal
}]
=
useModalInner
(
async
(
data
)
=>
{
setModalProps
({
confirmLoading
:
false
,
showCancelBtn
:
!!
data
?.
showFooter
,
showOkBtn
:
!!
data
?.
showFooter
});
setModalProps
({
confirmLoading
:
false
,
showCancelBtn
:
!!
data
?.
showFooter
,
showOkBtn
:
!!
data
?.
showFooter
});
taskTitle
.
value
=
data
?.
taskTitle
||
'任务'
taskTitle
.
value
=
data
?.
taskTitle
||
'任务'
taskType
.
value
=
data
?.
taskType
||
""
;
taskType
.
value
=
data
?.
taskType
||
''
refAssigneePanel
.
value
?.
setAssigneeData
(
data
)
refAssigneePanel
.
value
.
setAssigneeData
(
data
);
myTaskFlow
.
value
=
await
getMyTaskFlow
({
deploymentId
:
data
?.
deployId
||
''
,
dataId
:
data
?.
dataId
||
''
})
myTaskFlow
.
value
=
await
getMyTaskFlow
({
deploymentId
:
data
?.
deployId
||
''
,
dataId
:
data
?.
dataId
||
''
,
})
});
});
const
handleTaskOk
=
async
()
=>
{
const
handleTaskOk
=
async
()
=>
{
if
(
sending
.
value
)
return
;
if
(
sending
.
value
)
return
try
{
try
{
sending
.
value
=
true
;
sending
.
value
=
true
const
assigneeData
=
refAssigneePanel
.
value
.
getAssigneeData
();
const
assigneeData
=
refAssigneePanel
.
value
?.
getAssigneeData
()
||
{}
const
submitData
:
any
=
{
const
submitData
:
any
=
{
instanceId
:
myTaskFlow
.
value
.
procInsId
,
instanceId
:
myTaskFlow
.
value
.
procInsId
,
deployId
:
myTaskFlow
.
value
.
deployId
,
deployId
:
myTaskFlow
.
value
.
deployId
,
...
@@ -57,55 +51,38 @@
...
@@ -57,55 +51,38 @@
comment
:
assigneeData
.
remark
||
''
,
comment
:
assigneeData
.
remark
||
''
,
values
:
{
values
:
{
approval
:
assigneeData
.
assignee
,
approval
:
assigneeData
.
assignee
,
approvalType
:
assigneeData
.
userType
,
approvalType
:
assigneeData
.
userType
}
}
};
if
(
taskType
.
value
===
'send'
)
{
await
handleSendTask
(
submitData
);
}
else
if
(
taskType
.
value
===
'reject'
)
{
await
handleRejectTask
(
submitData
);
}
else
if
(
taskType
.
value
===
'transmit'
)
{
await
handleTransmitTask
(
submitData
);
}
else
if
(
taskType
.
value
===
'read'
)
{
await
handleReadTask
(
submitData
);
}
}
//message.success('操作成功');
if
(
taskType
.
value
===
'send'
)
await
handleSendTask
(
submitData
)
emit
(
'success'
,
submitData
);
else
if
(
taskType
.
value
===
'reject'
)
await
handleRejectTask
(
submitData
)
closeThisModal
();
else
if
(
taskType
.
value
===
'transmit'
)
await
handleTransmitTask
(
submitData
)
}
catch
(
error
:
any
)
{
else
if
(
taskType
.
value
===
'read'
)
await
handleReadTask
(
submitData
)
emit
(
'success'
,
submitData
)
closeThisModal
()
}
catch
(
error
)
{
console
.
error
(
'任务操作失败:'
,
error
)
}
finally
{
}
finally
{
sending
.
value
=
false
;
sending
.
value
=
false
}
}
}
}
const
handleSendTask
=
async
(
submitData
:
any
)
=>
{
const
result
=
await
complete
(
submitData
);
return
false
;
};
const
handleRejectTask
=
async
(
submitData
)
=>
{
const
result
=
await
rejectTask
(
submitData
);
return
false
;
};
const
handleReadTask
=
async
(
submitData
)
=>
{
const
result
=
await
assignRead
(
submitData
);
return
false
;
};
const
handleTransmitTask
=
async
(
submitData
)
=>
{
const
result
=
await
assign
(
submitData
);
return
false
;
};
const
closeThisModal
=
()
=>
{
closeModal
();
}
const
handleSendTask
=
async
(
submitData
:
any
)
=>
{
await
complete
(
submitData
)
}
const
handleRejectTask
=
async
(
submitData
:
any
)
=>
{
await
rejectTask
(
submitData
)
}
const
handleReadTask
=
async
(
submitData
:
any
)
=>
{
alert
(
JSON
.
stringify
(
submitData
))
await
assignRead
(
submitData
)
}
const
handleTransmitTask
=
async
(
submitData
:
any
)
=>
{
await
assign
(
submitData
)
}
const
closeThisModal
=
()
=>
{
closeModal
()
}
</
script
>
</
script
>
<
style
scoped
lang=
"scss"
>
<
style
scoped
lang=
"scss"
>
.assignee-panel-wrapper
{
.assignee-panel-wrapper
{
padding
:
0px
;
}
padding
:
0px
;
}
</
style
>
</
style
>
zrch-risk-client-39/src/views/project/problemArchive/StProblemCheckArchive.data.ts
浏览文件 @
b56d7a7f
...
@@ -220,7 +220,7 @@ export const formSchema: FormSchema[] = [
...
@@ -220,7 +220,7 @@ export const formSchema: FormSchema[] = [
},
},
{
{
label
:
'流程节点顺序号'
,
label
:
'流程节点顺序号'
,
field
:
'b
mp
NodeId'
,
field
:
'b
pm
NodeId'
,
component
:
'Input'
,
component
:
'Input'
,
},
},
{
{
...
@@ -327,7 +327,7 @@ export const superQuerySchema = {
...
@@ -327,7 +327,7 @@ export const superQuerySchema = {
execEndDate
:
{
title
:
'整改结束时间'
,
order
:
22
,
view
:
'date'
,
type
:
'string'
,},
execEndDate
:
{
title
:
'整改结束时间'
,
order
:
22
,
view
:
'date'
,
type
:
'string'
,},
execRemark
:
{
title
:
'整改落实情况'
,
order
:
23
,
view
:
'textarea'
,
type
:
'string'
,},
execRemark
:
{
title
:
'整改落实情况'
,
order
:
23
,
view
:
'textarea'
,
type
:
'string'
,},
reviewComment
:
{
title
:
'审核意见'
,
order
:
24
,
view
:
'textarea'
,
type
:
'string'
,},
reviewComment
:
{
title
:
'审核意见'
,
order
:
24
,
view
:
'textarea'
,
type
:
'string'
,},
b
mp
NodeId
:
{
title
:
'流程节点顺序号'
,
order
:
25
,
view
:
'text'
,
type
:
'string'
,},
b
pm
NodeId
:
{
title
:
'流程节点顺序号'
,
order
:
25
,
view
:
'text'
,
type
:
'string'
,},
bpmStatus
:
{
title
:
'流程状态'
,
order
:
26
,
view
:
'text'
,
type
:
'string'
,},
bpmStatus
:
{
title
:
'流程状态'
,
order
:
26
,
view
:
'text'
,
type
:
'string'
,},
deployId
:
{
title
:
'部署ID'
,
order
:
27
,
view
:
'text'
,
type
:
'string'
,},
deployId
:
{
title
:
'部署ID'
,
order
:
27
,
view
:
'text'
,
type
:
'string'
,},
createdUser
:
{
title
:
'创建人'
,
order
:
28
,
view
:
'text'
,
type
:
'string'
,},
createdUser
:
{
title
:
'创建人'
,
order
:
28
,
view
:
'text'
,
type
:
'string'
,},
...
...
zrch-risk-client-39/src/views/project/problemCheck/StProblemArchiveList.vue
浏览文件 @
b56d7a7f
<
template
>
<
template
>
<div>
<div>
<!--引用表格-->
<BasicTable
@
register=
"registerTable"
:rowSelection=
"rowSelection"
>
<BasicTable
@
register=
"registerTable"
:rowSelection=
"rowSelection"
>
<!--插槽:table标题-->
<template
#
tableTitle
></
template
>
<template
#
tableTitle
>
</
template
>
<!--操作栏-->
<
template
#
action=
"{ record }"
>
<
template
#
action=
"{ record }"
>
<TableAction
:actions=
"getTableAction(record)"
/>
<TableAction
:actions=
"getTableAction(record)"
/>
</
template
>
</
template
>
</BasicTable>
</BasicTable>
<!-- 整改执行 -->
<StProblemCheckExecuteModal
@
register=
"registerExecuteModal"
@
success=
"handleSuccess"
/>
</div>
</div>
</template>
</template>
<
script
lang=
"ts"
name=
"problem-stProblemCheck"
setup
>
<
script
lang=
"ts"
name=
"problem-stProblemCheck"
setup
>
import
{
BasicTable
,
TableAction
}
from
'/@/components/Table'
;
import
{
BasicTable
,
TableAction
}
from
'/@/components/Table'
;
import
{
useModal
}
from
'/@/components/Modal'
;
import
{
useListPage
}
from
'/@/hooks/system/useListPage'
;
import
{
useListPage
}
from
'/@/hooks/system/useListPage'
;
import
{
columns
,
searchFormSchema
}
from
'./StProblemCheck.data'
;
import
{
columns
}
from
'./StProblemCheck.data'
;
import
{
list
,
problemArchive
}
from
'./StProblemCheck.api'
;
import
{
list
,
problemArchive
}
from
'./StProblemCheck.api'
;
import
StProblemCheckExecuteModal
from
'./components/StProblemCheckExecuteModal.vue'
;
const
emit
=
defineEmits
([
'callback'
,
'openMultiForm'
])
const
props
=
defineProps
({
const
props
=
defineProps
({
currentFlowNode
:
{
currentFlowNode
:
{
type
:
Object
,
default
:
()
=>
({})
},
type
:
Object
,
});
default
:
()
=>
({})
},
})
const
emit
=
defineEmits
([
'callback'
,
'openMultiForm'
]);
//注册model
const
{
tableContext
}
=
useListPage
({
const
[
registerExecuteModal
,
{
openModal
:
openExecuteModal
}]
=
useModal
();
//注册table数据
const
{
prefixCls
,
tableContext
}
=
useListPage
({
tableProps
:
{
tableProps
:
{
title
:
'问题归档'
,
title
:
'问题归档'
,
api
:
list
,
api
:
list
,
columns
,
columns
,
canResize
:
false
,
canResize
:
false
,
beforeFetch
(
params
)
{
beforeFetch
(
params
)
{
params
[
'bmpNodeId'
]
=
props
.
currentFlowNode
.
id
params
[
'bpmNodeId'
]
=
props
.
currentFlowNode
.
id
;
},
actionColumn
:
{
width
:
200
,
fixed
:
'right'
,
},
},
actionColumn
:
{
width
:
200
,
fixed
:
'right'
},
},
},
});
});
const
[
registerTable
,
{
reload
},
{
rowSelection
,
selectedRowKeys
}]
=
tableContext
;
const
[
registerTable
,
{
reload
},
{
rowSelection
,
selectedRowKeys
}]
=
tableContext
;
function
handleArchive
(
record
:
Recordable
)
{
function
handleArchive
(
record
:
Recordable
)
{
problemArchive
({
id
:
record
.
id
,
}).
then
(
handleSuccess
);
problemArchive
({
id
:
record
.
id
}).
then
(
handleSuccess
);
}
}
function
handleSuccess
()
{
function
handleSuccess
()
{
(
selectedRowKeys
.
value
=
[])
&&
reload
();
selectedRowKeys
.
value
=
[];
reload
();
}
}
function
getTableAction
(
record
)
{
function
getTableAction
(
record
)
{
return
[
return
[{
label
:
'问题归档'
,
onClick
:
handleArchive
.
bind
(
null
,
record
)
}];
{
label
:
'问题归档'
,
onClick
:
handleArchive
.
bind
(
null
,
record
),
},
];
}
}
</
script
>
</
script
>
<
style
scoped
></
style
>
<
style
scoped
></
style
>
zrch-risk-client-39/src/views/project/problemCheck/StProblemCheck.api.ts
浏览文件 @
b56d7a7f
import
{
defHttp
}
from
'/@/utils/http/axios'
;
import
{
defHttp
}
from
'/@/utils/http/axios'
;
import
{
useMessage
}
from
"/@/hooks/web/useMessage"
;
import
{
useMessage
}
from
"/@/hooks/web/useMessage"
;
const
{
createConfirm
}
=
useMessage
();
const
{
createConfirm
}
=
useMessage
();
enum
Api
{
const
enum
Api
{
list
=
'/problem/stProblemCheck/list'
,
list
=
'/problem/stProblemCheck/list'
,
save
=
'/problem/stProblemCheck/add'
,
save
=
'/problem/stProblemCheck/add'
,
edit
=
'/problem/stProblemCheck/edit'
,
edit
=
'/problem/stProblemCheck/edit'
,
...
@@ -12,35 +12,22 @@ enum Api {
...
@@ -12,35 +12,22 @@ enum Api {
importExcel
=
'/problem/stProblemCheck/importExcel'
,
importExcel
=
'/problem/stProblemCheck/importExcel'
,
exportXls
=
'/problem/stProblemCheck/exportXls'
,
exportXls
=
'/problem/stProblemCheck/exportXls'
,
problemArchive
=
'/problem/stProblemCheck/problemArchive'
,
problemArchive
=
'/problem/stProblemCheck/problemArchive'
,
queryById
=
'/problem/stProblemCheck/queryById'
,
}
}
/**
* 导出api
* @param params
*/
export
const
getExportUrl
=
Api
.
exportXls
;
export
const
getExportUrl
=
Api
.
exportXls
;
/**
* 导入api
*/
export
const
getImportUrl
=
Api
.
importExcel
;
export
const
getImportUrl
=
Api
.
importExcel
;
/**
* 列表接口
* @param params
*/
export
const
list
=
(
params
)
=>
defHttp
.
get
({
url
:
Api
.
list
,
params
});
/**
export
const
list
=
(
params
)
=>
defHttp
.
get
({
url
:
Api
.
list
,
params
});
* 删除单个
*/
export
const
queryById
=
(
params
)
=>
defHttp
.
get
({
url
:
Api
.
queryById
,
params
});
export
const
deleteOne
=
(
params
,
handleSuccess
)
=>
{
export
const
deleteOne
=
(
params
,
handleSuccess
)
=>
{
return
defHttp
.
delete
({
url
:
Api
.
deleteOne
,
params
},
{
joinParamsToUrl
:
true
}).
then
(()
=>
{
return
defHttp
.
delete
({
url
:
Api
.
deleteOne
,
params
},
{
joinParamsToUrl
:
true
}).
then
(()
=>
{
handleSuccess
();
handleSuccess
?.
();
});
});
}
}
/**
* 批量删除
* @param params
*/
export
const
batchDelete
=
(
params
,
handleSuccess
)
=>
{
export
const
batchDelete
=
(
params
,
handleSuccess
)
=>
{
createConfirm
({
createConfirm
({
iconType
:
'warning'
,
iconType
:
'warning'
,
...
@@ -50,26 +37,16 @@ export const batchDelete = (params, handleSuccess) => {
...
@@ -50,26 +37,16 @@ export const batchDelete = (params, handleSuccess) => {
cancelText
:
'取消'
,
cancelText
:
'取消'
,
onOk
:
()
=>
{
onOk
:
()
=>
{
return
defHttp
.
delete
({
url
:
Api
.
deleteBatch
,
data
:
params
},
{
joinParamsToUrl
:
true
}).
then
(()
=>
{
return
defHttp
.
delete
({
url
:
Api
.
deleteBatch
,
data
:
params
},
{
joinParamsToUrl
:
true
}).
then
(()
=>
{
handleSuccess
();
handleSuccess
?.
();
});
});
}
}
});
});
}
}
/**
* 保存或者更新
export
const
saveOrUpdate
=
(
params
,
isUpdate
=
false
)
=>
{
* @param params
*/
export
const
saveOrUpdate
=
(
params
,
isUpdate
)
=>
{
let
url
=
isUpdate
?
Api
.
edit
:
Api
.
save
;
let
url
=
isUpdate
?
Api
.
edit
:
Api
.
save
;
return
defHttp
.
post
({
url
:
url
,
params
});
return
defHttp
.
post
({
url
:
url
,
params
});
}
}
/**
export
const
problemArchive
=
(
params
)
=>
defHttp
.
post
({
url
:
Api
.
problemArchive
,
params
});
* 保存或者更新
* @param params
*/
export
const
problemArchive
=
(
params
)
=>
{
let
url
=
Api
.
problemArchive
;
return
defHttp
.
post
({
url
:
url
,
params
});
}
zrch-risk-client-39/src/views/project/problemCheck/StProblemCheck.data.ts
浏览文件 @
b56d7a7f
import
{
BasicColumn
}
from
'/@/components/Table'
;
import
{
BasicColumn
}
from
'/@/components/Table'
;
import
{
FormSchema
}
from
'/@/components/Table'
;
import
{
FormSchema
}
from
'/@/components/Table'
;
import
{
render
}
from
'/@/utils/common/renderUtils'
;
import
{
render
}
from
'/@/utils/common/renderUtils'
;
//列表数据
export
const
columns
:
BasicColumn
[]
=
[
export
const
columns
:
BasicColumn
[]
=
[
{
{
title
:
'问题编号'
,
title
:
'问题编号'
,
...
@@ -357,29 +357,14 @@ export const reviewFormSchema: FormSchema[] = [
...
@@ -357,29 +357,14 @@ export const reviewFormSchema: FormSchema[] = [
},
},
];
];
/**
* 流程表单调用这个方法获取formSchema-默认弹窗(查看详情)
* @param param
*/
export
function
getBpmFormSchema
(
_formData
):
FormSchema
[]
{
export
function
getBpmFormSchema
(
_formData
):
FormSchema
[]
{
// 默认和原始表单保持一致 如果流程中配置了权限数据,这里需要单独处理formSchema
return
formSchema
;
return
formSchema
;
}
}
/**
* 流程表单调用这个方法获取formSchema-整改计划
* @param param
*/
export
function
getPlanFormSchema
(
_planFormSchema
):
FormSchema
[]
{
export
function
getPlanFormSchema
(
_planFormSchema
):
FormSchema
[]
{
// 默认和原始表单保持一致 如果流程中配置了权限数据,这里需要单独处理formSchema
return
planFormSchema
;
return
planFormSchema
;
}
}
/**
* 流程表单调用这个方法获取formSchema-整改执行
* @param param
*/
export
function
getExecuteFormSchema
(
_executeFormSchema
):
FormSchema
[]
{
export
function
getExecuteFormSchema
(
_executeFormSchema
):
FormSchema
[]
{
// 默认和原始表单保持一致 如果流程中配置了权限数据,这里需要单独处理formSchema
return
executeFormSchema
;
return
executeFormSchema
;
}
}
zrch-risk-client-39/src/views/project/problemCheck/StProblemCheckList.vue
浏览文件 @
b56d7a7f
...
@@ -18,50 +18,35 @@
...
@@ -18,50 +18,35 @@
</a-button>
</a-button>
</a-dropdown>
</a-dropdown>
</template>
</template>
<!--操作栏-->
<
template
#
action=
"{ record }"
>
<
template
#
action=
"{ record }"
>
<TableAction
:actions=
"getTableAction(record)"
:dropDownActions=
"getDropDownAction(record)"
/>
<TableAction
:actions=
"getTableAction(record)"
:dropDownActions=
"getDropDownAction(record)"
/>
</
template
>
</
template
>
</BasicTable>
</BasicTable>
<!-- 表单区域 -->
<StProblemCheckModal
@
register=
"registerModal"
@
success=
"handleSuccess"
:center=
"true"
/>
<StProblemCheckModal
@
register=
"registerModal"
@
success=
"handleSuccess"
:center=
"true"
/>
</div>
</div>
</template>
</template>
<
script
lang=
"ts"
name=
"problem-stProblemCheck"
setup
>
<
script
lang=
"ts"
name=
"problem-stProblemCheck"
setup
>
import
{
ref
}
from
'vue'
;
import
{
ref
,
unref
}
from
'vue'
;
import
{
BasicTable
,
TableAction
}
from
'/@/components/Table'
;
import
{
BasicTable
,
TableAction
}
from
'/@/components/Table'
;
import
{
useModal
}
from
'/@/components/Modal'
;
import
{
useModal
}
from
'/@/components/Modal'
;
import
{
Icon
}
from
'/@/components/Icon'
;
import
{
useListPage
}
from
'/@/hooks/system/useListPage'
;
import
{
useListPage
}
from
'/@/hooks/system/useListPage'
;
import
StProblemCheckModal
from
'./components/StProblemCheckModal.vue'
;
import
StProblemCheckModal
from
'./components/StProblemCheckModal.vue'
;
import
{
columns
,
searchFormSchema
}
from
'./StProblemCheck.data'
;
import
{
columns
,
searchFormSchema
}
from
'./StProblemCheck.data'
;
import
{
list
,
deleteOne
,
batchDelete
,
getImportUrl
,
getExportUrl
,
saveOrUpdate
}
from
'./StProblemCheck.api'
;
import
{
list
,
deleteOne
,
batchDelete
,
getImportUrl
,
getExportUrl
,
saveOrUpdate
}
from
'./StProblemCheck.api'
;
const
props
=
defineProps
({
const
props
=
defineProps
({
beforeFlowNode
:
{
beforeFlowNode
:
{
type
:
Object
,
default
:
()
=>
({})
},
type
:
Object
,
currentFlowNode
:
{
type
:
Object
,
default
:
()
=>
({})
},
default
:
()
=>
({})
nextFlowNode
:
{
type
:
Object
,
default
:
()
=>
({})
},
},
todoList
:
{
type
:
Array
,
default
:
()
=>
[]
},
currentFlowNode
:
{
});
type
:
Object
,
default
:
()
=>
({})
},
nextFlowNode
:
{
type
:
Object
,
default
:
()
=>
({})
},
todoList
:
{
type
:
Array
,
default
:
()
=>
[]
}
})
const
emit
=
defineEmits
([
'callback'
,
'startWorkFlow'
,
'sendWorkFlow'
,
'openMultiForm'
])
const
emit
=
defineEmits
([
'callback'
,
'startWorkFlow'
,
'sendWorkFlow'
,
'openMultiForm'
]);
//注册model
const
[
registerModal
,
{
openModal
}]
=
useModal
();
const
[
registerModal
,
{
openModal
}]
=
useModal
();
const
[
registerPlanModal
,
{
openModal
:
openPlanModal
}]
=
useModal
();
const
[
registerPlanModal
,
{
openModal
:
openPlanModal
}]
=
useModal
();
//注册table数据
const
{
prefixCls
,
tableContext
,
onExportXls
,
onImportXls
}
=
useListPage
({
const
{
prefixCls
,
tableContext
,
onExportXls
,
onImportXls
}
=
useListPage
({
tableProps
:
{
tableProps
:
{
title
:
'问题整改'
,
title
:
'问题整改'
,
...
@@ -69,55 +54,31 @@
...
@@ -69,55 +54,31 @@
columns
,
columns
,
canResize
:
false
,
canResize
:
false
,
beforeFetch
(
params
)
{
beforeFetch
(
params
)
{
params
[
'bmpNodeId'
]
=
props
.
currentFlowNode
.
id
params
[
'bpmNodeId'
]
=
props
.
currentFlowNode
.
id
;
params
[
'todoList'
]
=
props
.
todoList
params
[
'todoList'
]
=
props
.
todoList
;
},
actionColumn
:
{
width
:
200
,
fixed
:
'right'
,
},
},
exportConfig
:
{
name
:
'问题整改'
,
url
:
getExportUrl
,
},
},
importConfig
:
{
actionColumn
:
{
width
:
200
,
fixed
:
'right'
},
url
:
getImportUrl
,
success
:
handleSuccess
,
},
},
exportConfig
:
{
name
:
'问题整改'
,
url
:
getExportUrl
},
importConfig
:
{
url
:
getImportUrl
,
success
:
handleSuccess
},
});
});
const
[
registerTable
,
{
reload
},
{
rowSelection
,
selectedRowKeys
}]
=
tableContext
;
const
[
registerTable
,
{
reload
},
{
rowSelection
,
selectedRowKeys
}]
=
tableContext
;
/**
* 新增事件
*/
function
handleAdd
()
{
function
handleAdd
()
{
openModal
(
true
,
{
openModal
(
true
,
{
isUpdate
:
false
,
isUpdate
:
false
,
showFooter
:
true
,
showFooter
:
true
,
record
:
{
record
:
{
bpmNodeId
:
props
.
currentFlowNode
.
id
,
deployId
:
props
.
currentFlowNode
.
deployId
,
bpmStatus
:
0
},
bmpNodeId
:
props
.
currentFlowNode
.
id
,
deployId
:
props
.
currentFlowNode
.
deployId
,
bpmStatus
:
0
,
}
});
});
}
}
function
handleEdit
(
record
:
Recordable
)
{
function
handleEdit
(
record
:
Recordable
)
{
openModal
(
true
,
{
openModal
(
true
,
{
record
,
isUpdate
:
true
,
showFooter
:
true
});
record
,
isUpdate
:
true
,
showFooter
:
true
,
});
}
}
function
handleDetail
(
record
:
Recordable
)
{
function
handleDetail
(
record
:
Recordable
)
{
openModal
(
true
,
{
openModal
(
true
,
{
record
,
isUpdate
:
true
,
showFooter
:
false
});
record
,
isUpdate
:
true
,
showFooter
:
false
,
});
}
}
async
function
handleDelete
(
record
)
{
async
function
handleDelete
(
record
)
{
...
@@ -125,77 +86,50 @@
...
@@ -125,77 +86,50 @@
}
}
async
function
batchHandleDelete
()
{
async
function
batchHandleDelete
()
{
await
batchDelete
({
ids
:
selectedRowKeys
.
value
},
handleSuccess
);
await
batchDelete
({
ids
:
unref
(
selectedRowKeys
)
},
handleSuccess
);
}
}
function
handleSuccess
(
retData
)
{
function
handleSuccess
(
retData
)
{
(
selectedRowKeys
.
value
=
[])
&&
reload
();
selectedRowKeys
.
value
=
[];
if
(
retData
){
reload
();
emit
(
'startWorkFlow'
,
retData
)
if
(
retData
)
emit
(
'startWorkFlow'
,
retData
);
}
}
}
function
getTableAction
(
record
)
{
function
getTableAction
(
record
)
{
return
[
return
[
{
{
label
:
'编辑'
,
onClick
:
handleEdit
.
bind
(
null
,
record
)
},
label
:
'编辑'
,
{
label
:
'发送任务'
,
onClick
:
handleFlow
.
bind
(
null
,
record
)
},
onClick
:
handleEdit
.
bind
(
null
,
record
),
},
{
label
:
'发送任务'
,
onClick
:
handleFlow
.
bind
(
null
,
record
),
},
];
];
}
}
function
getDropDownAction
(
record
)
{
function
getDropDownAction
(
record
)
{
return
[
return
[
{
{
label
:
'详情'
,
onClick
:
handleDetail
.
bind
(
null
,
record
)
},
label
:
'详情'
,
onClick
:
handleDetail
.
bind
(
null
,
record
),
},
{
{
label
:
'删除'
,
label
:
'删除'
,
popConfirm
:
{
popConfirm
:
{
title
:
'是否确认删除'
,
confirm
:
handleDelete
.
bind
(
null
,
record
)
},
title
:
'是否确认删除'
,
confirm
:
handleDelete
.
bind
(
null
,
record
),
},
},
},
];
];
}
}
async
function
handleFlow
(
record
:
Recordable
)
{
async
function
handleFlow
(
record
:
Recordable
)
{
emit
(
"sendWorkFlow"
,
record
)
emit
(
'sendWorkFlow'
,
record
);
}
}
async
function
handleUpdate
(
dataId
,
flowNode
)
{
async
function
handleUpdate
(
dataId
,
flowNode
)
{
let
record
=
{
const
record
=
{
bpmNodeId
:
flowNode
.
id
,
deployId
:
flowNode
.
deployId
,
bpmStatus
:
2
,
id
:
dataId
};
bmpNodeId
:
flowNode
.
id
,
await
saveOrUpdate
(
record
,
true
);
deployId
:
flowNode
.
deployId
,
selectedRowKeys
.
value
=
[];
bpmStatus
:
2
,
reload
();
id
:
dataId
}
await
saveOrUpdate
(
record
,
true
).
then
(
res
=>
{
(
selectedRowKeys
.
value
=
[])
&&
reload
();
})
}
}
async
function
handleStartUpdate
(
flowData
)
{
async
function
handleStartUpdate
(
flowData
)
{
let
record
=
{
const
record
=
{
procInsId
:
flowData
.
procInsId
,
id
:
flowData
.
dataId
,
bpmStatus
:
0
};
procInsId
:
flowData
.
procInsId
,
await
saveOrUpdate
(
record
,
true
);
id
:
flowData
.
dataId
,
bpmStatus
:
0
,
}
await
saveOrUpdate
(
record
,
true
).
then
(
res
=>
{
handleSuccess
(
null
);
handleSuccess
(
null
);
})
}
}
defineExpose
({
defineExpose
({
handleUpdate
,
handleStartUpdate
});
handleUpdate
,
handleStartUpdate
})
</
script
>
</
script
>
<
style
scoped
></
style
>
<
style
scoped
></
style
>
zrch-risk-client-39/src/views/project/problemCheck/StProblemExecApprovalList.vue
浏览文件 @
b56d7a7f
<
template
>
<
template
>
<div>
<div>
<!--引用表格-->
<BasicTable
@
register=
"registerTable"
:rowSelection=
"rowSelection"
>
<BasicTable
@
register=
"registerTable"
:rowSelection=
"rowSelection"
>
<!--插槽:table标题-->
<template
#
tableTitle
></
template
>
<template
#
tableTitle
>
</
template
>
<!--操作栏-->
<
template
#
action=
"{ record }"
>
<
template
#
action=
"{ record }"
>
<TableAction
:actions=
"getTableAction(record)"
/>
<TableAction
:actions=
"getTableAction(record)"
/>
</
template
>
</
template
>
</BasicTable>
</BasicTable>
<!-- 整改执行 -->
<StProblemCheckExecuteModal
@
register=
"registerExecuteModal"
@
success=
"handleSuccess"
/>
</div>
</div>
</template>
</template>
<
script
lang=
"ts"
name=
"problem-stProblemCheck"
setup
>
<
script
lang=
"ts"
name=
"problem-stProblemCheck"
setup
>
import
{
BasicTable
,
TableAction
}
from
'/@/components/Table'
;
import
{
BasicTable
,
TableAction
}
from
'/@/components/Table'
;
import
{
useModal
}
from
'/@/components/Modal'
;
import
{
useListPage
}
from
'/@/hooks/system/useListPage'
;
import
{
useListPage
}
from
'/@/hooks/system/useListPage'
;
import
{
columns
,
searchFormSchema
}
from
'./StProblemCheck.data'
;
import
{
columns
}
from
'./StProblemCheck.data'
;
import
{
list
,
saveOrUpdate
}
from
'./StProblemCheck.api'
;
import
{
list
,
saveOrUpdate
}
from
'./StProblemCheck.api'
;
import
StProblemCheckExecuteModal
from
'./components/StProblemCheckExecuteModal.vue'
;
const
emit
=
defineEmits
([
'callback'
,
'sendWorkFlow'
,
'openMultiForm'
])
const
props
=
defineProps
({
const
props
=
defineProps
({
beforeFlowNode
:
{
beforeFlowNode
:
{
type
:
Object
,
default
:
()
=>
({})
},
type
:
Object
,
currentFlowNode
:
{
type
:
Object
,
default
:
()
=>
({})
},
default
:
()
=>
({})
nextFlowNode
:
{
type
:
Object
,
default
:
()
=>
({})
},
},
});
currentFlowNode
:
{
type
:
Object
,
const
emit
=
defineEmits
([
'callback'
,
'sendWorkFlow'
,
'openMultiForm'
]);
default
:
()
=>
({})
},
nextFlowNode
:
{
type
:
Object
,
default
:
()
=>
({})
}
})
//注册model
const
{
tableContext
}
=
useListPage
({
const
[
registerExecuteModal
,
{
openModal
:
openExecuteModal
}]
=
useModal
();
//注册table数据
const
{
prefixCls
,
tableContext
}
=
useListPage
({
tableProps
:
{
tableProps
:
{
title
:
'计划执行审批'
,
title
:
'计划执行审批'
,
api
:
list
,
api
:
list
,
columns
,
columns
,
canResize
:
true
,
canResize
:
true
,
beforeFetch
(
params
)
{
beforeFetch
(
params
)
{
params
[
'bmpNodeId'
]
=
props
.
currentFlowNode
.
id
params
[
'bpmNodeId'
]
=
props
.
currentFlowNode
.
id
;
},
actionColumn
:
{
width
:
200
,
fixed
:
'right'
,
},
},
actionColumn
:
{
width
:
200
,
fixed
:
'right'
},
},
},
});
});
const
[
registerTable
,
{
reload
},
{
rowSelection
,
selectedRowKeys
}]
=
tableContext
;
const
[
registerTable
,
{
reload
},
{
rowSelection
,
selectedRowKeys
}]
=
tableContext
;
function
handleExecuteApproval
(
record
:
Recordable
)
{
function
handleExecuteApproval
(
record
:
Recordable
)
{
emit
(
"openMultiForm"
,
record
)
emit
(
'openMultiForm'
,
record
);
}
}
function
handleS
uccess
(
)
{
function
handleS
endNext
(
record
:
Recordable
)
{
(
selectedRowKeys
.
value
=
[])
&&
reload
(
);
emit
(
'sendWorkFlow'
,
record
);
}
}
function
handleSendNext
(
record
:
Recordable
)
{
function
handleSuccess
()
{
emit
(
"sendWorkFlow"
,
record
)
selectedRowKeys
.
value
=
[];
reload
();
}
}
function
getTableAction
(
record
)
{
function
getTableAction
(
record
)
{
return
[
return
[
{
{
label
:
'整改审核'
,
onClick
:
handleExecuteApproval
.
bind
(
null
,
record
)
},
label
:
'整改审核'
,
{
label
:
'提交'
,
onClick
:
handleSendNext
.
bind
(
null
,
record
)
},
onClick
:
handleExecuteApproval
.
bind
(
null
,
record
),
},
{
label
:
'提交'
,
onClick
:
handleSendNext
.
bind
(
null
,
record
),
},
];
];
}
}
async
function
handleUpdate
(
dataId
)
{
async
function
handleUpdate
(
dataId
)
{
await
saveOrUpdate
({
await
saveOrUpdate
({
bpmNodeId
:
props
.
nextFlowNode
?.
id
,
id
:
dataId
},
true
);
bmpNodeId
:
props
.
nextFlowNode
.
id
,
id
:
dataId
,
},
true
).
then
(
res
=>
{
handleSuccess
();
handleSuccess
();
})
}
}
defineExpose
({
defineExpose
({
handleUpdate
});
handleUpdate
,
})
</
script
>
</
script
>
<
style
scoped
></
style
>
<
style
scoped
></
style
>
zrch-risk-client-39/src/views/project/problemCheck/StProblemExecList.vue
浏览文件 @
b56d7a7f
<
template
>
<
template
>
<div>
<div>
<!--引用表格-->
<BasicTable
@
register=
"registerTable"
:rowSelection=
"rowSelection"
>
<BasicTable
@
register=
"registerTable"
:rowSelection=
"rowSelection"
>
<!--插槽:table标题-->
<template
#
tableTitle
></
template
>
<template
#
tableTitle
>
</
template
>
<!--操作栏-->
<
template
#
action=
"{ record }"
>
<
template
#
action=
"{ record }"
>
<TableAction
:actions=
"getTableAction(record)"
/>
<TableAction
:actions=
"getTableAction(record)"
/>
</
template
>
</
template
>
</BasicTable>
</BasicTable>
<!-- 整改执行 -->
<StProblemCheckExecuteModal
@
register=
"registerExecuteModal"
@
success=
"handleSuccess"
/>
</div>
</div>
</template>
</template>
<
script
lang=
"ts"
name=
"problem-stProblemCheck"
setup
>
<
script
lang=
"ts"
name=
"problem-stProblemCheck"
setup
>
import
{
ref
}
from
'vue'
;
import
{
BasicTable
,
TableAction
}
from
'/@/components/Table'
;
import
{
BasicTable
,
TableAction
}
from
'/@/components/Table'
;
import
{
useModal
}
from
'/@/components/Modal'
;
import
{
useListPage
}
from
'/@/hooks/system/useListPage'
;
import
{
useListPage
}
from
'/@/hooks/system/useListPage'
;
import
{
columns
,
searchFormSchema
}
from
'./StProblemCheck.data'
;
import
{
columns
}
from
'./StProblemCheck.data'
;
import
{
list
,
saveOrUpdate
}
from
'./StProblemCheck.api'
;
import
{
list
,
saveOrUpdate
}
from
'./StProblemCheck.api'
;
import
StProblemCheckExecuteModal
from
'./components/StProblemCheckExecuteModal.vue'
;
const
emit
=
defineEmits
([
'callback'
,
'sendWorkFlow'
,
'openMultiForm'
])
const
props
=
defineProps
({
const
props
=
defineProps
({
beforeFlowNode
:
{
beforeFlowNode
:
{
type
:
Object
,
default
:
()
=>
({})
},
type
:
Object
,
currentFlowNode
:
{
type
:
Object
,
default
:
()
=>
({})
},
default
:
()
=>
({})
nextFlowNode
:
{
type
:
Object
,
default
:
()
=>
({})
},
},
});
currentFlowNode
:
{
type
:
Object
,
const
emit
=
defineEmits
([
'callback'
,
'sendWorkFlow'
,
'openMultiForm'
]);
default
:
()
=>
({})
},
nextFlowNode
:
{
type
:
Object
,
default
:
()
=>
({})
}
})
//注册model
const
{
tableContext
}
=
useListPage
({
const
[
registerExecuteModal
,
{
openModal
:
openExecuteModal
}]
=
useModal
();
//注册table数据
const
{
prefixCls
,
tableContext
}
=
useListPage
({
tableProps
:
{
tableProps
:
{
title
:
'问题整改'
,
title
:
'问题整改'
,
api
:
list
,
api
:
list
,
columns
,
columns
,
canResize
:
true
,
canResize
:
true
,
beforeFetch
(
params
)
{
beforeFetch
(
params
)
{
params
[
'bmpNodeId'
]
=
props
.
currentFlowNode
.
id
params
[
'bpmNodeId'
]
=
props
.
currentFlowNode
.
id
;
},
actionColumn
:
{
width
:
200
,
fixed
:
'right'
,
},
},
actionColumn
:
{
width
:
200
,
fixed
:
'right'
},
},
},
});
});
const
[
registerTable
,
{
reload
},
{
rowSelection
,
selectedRowKeys
}]
=
tableContext
;
const
[
registerTable
,
{
reload
},
{
rowSelection
,
selectedRowKeys
}]
=
tableContext
;
function
handleExecute
(
record
:
Recordable
)
{
function
handleExecute
(
record
:
Recordable
)
{
emit
(
"openMultiForm"
,
record
)
emit
(
'openMultiForm'
,
record
);
}
}
function
handleS
uccess
(
)
{
function
handleS
endNext
(
record
:
Recordable
)
{
(
selectedRowKeys
.
value
=
[])
&&
reload
(
);
emit
(
'sendWorkFlow'
,
record
);
}
}
function
handleSendNext
(
record
:
Recordable
)
{
function
handleSuccess
()
{
emit
(
"sendWorkFlow"
,
record
)
selectedRowKeys
.
value
=
[];
reload
();
}
}
function
getTableAction
(
record
)
{
function
getTableAction
(
record
)
{
return
[
return
[
{
{
label
:
'整改执行'
,
onClick
:
handleExecute
.
bind
(
null
,
record
)
},
label
:
'整改执行'
,
{
label
:
'提交'
,
onClick
:
handleSendNext
.
bind
(
null
,
record
)
},
onClick
:
handleExecute
.
bind
(
null
,
record
),
},
{
label
:
'提交'
,
onClick
:
handleSendNext
.
bind
(
null
,
record
),
},
];
];
}
}
async
function
handleUpdate
(
dataId
,
flowNode
)
{
async
function
handleUpdate
(
dataId
,
flowNode
)
{
const
record
=
{
bpmNodeId
:
flowNode
.
id
,
deployId
:
flowNode
.
deployId
,
bpmStatus
:
2
,
id
:
dataId
};
let
record
=
{
await
saveOrUpdate
(
record
,
true
);
bmpNodeId
:
flowNode
.
id
,
deployId
:
flowNode
.
deployId
,
bpmStatus
:
2
,
id
:
dataId
}
await
saveOrUpdate
(
record
,
true
).
then
(
res
=>
{
handleSuccess
();
handleSuccess
();
})
}
}
defineExpose
({
defineExpose
({
handleUpdate
});
handleUpdate
,
})
</
script
>
</
script
>
<
style
scoped
></
style
>
<
style
scoped
></
style
>
zrch-risk-client-39/src/views/project/problemCheck/StProblemIndex.vue
浏览文件 @
b56d7a7f
差异被折叠。
点击展开。
zrch-risk-client-39/src/views/project/problemCheck/StProblemPlanApprovalList.vue
浏览文件 @
b56d7a7f
<
template
>
<
template
>
<div>
<div>
<!--引用表格-->
<BasicTable
@
register=
"registerTable"
:rowSelection=
"rowSelection"
>
<BasicTable
@
register=
"registerTable"
:rowSelection=
"rowSelection"
>
<!--插槽:table标题-->
<template
#
tableTitle
></
template
>
<template
#
tableTitle
>
</
template
>
<!--操作栏-->
<
template
#
action=
"{ record }"
>
<
template
#
action=
"{ record }"
>
<TableAction
:actions=
"getTableAction(record)"
/>
<TableAction
:actions=
"getTableAction(record)"
/>
</
template
>
</
template
>
</BasicTable>
</BasicTable>
<!-- 整改执行 -->
<StProblemCheckExecuteModal
@
register=
"registerExecuteModal"
@
success=
"handleSuccess"
/>
</div>
</div>
</template>
</template>
<
script
lang=
"ts"
name=
"problem-stProblemCheck"
setup
>
<
script
lang=
"ts"
name=
"problem-stProblemCheck"
setup
>
import
{
ref
}
from
'vue'
;
import
{
BasicTable
,
TableAction
}
from
'/@/components/Table'
;
import
{
BasicTable
,
TableAction
}
from
'/@/components/Table'
;
import
{
useModal
}
from
'/@/components/Modal'
;
import
{
useListPage
}
from
'/@/hooks/system/useListPage'
;
import
{
useListPage
}
from
'/@/hooks/system/useListPage'
;
import
{
columns
,
searchFormSchema
}
from
'./StProblemCheck.data'
;
import
{
columns
}
from
'./StProblemCheck.data'
;
import
{
list
,
saveOrUpdate
}
from
'./StProblemCheck.api'
;
import
{
list
,
saveOrUpdate
}
from
'./StProblemCheck.api'
;
import
StProblemCheckExecuteModal
from
'./components/StProblemCheckExecuteModal.vue'
;
const
props
=
defineProps
({
const
props
=
defineProps
({
beforeFlowNode
:
{
beforeFlowNode
:
{
type
:
Object
,
default
:
()
=>
({})
},
type
:
Object
,
currentFlowNode
:
{
type
:
Object
,
default
:
()
=>
({})
},
default
:
()
=>
({})
nextFlowNode
:
{
type
:
Object
,
default
:
()
=>
({})
},
},
});
currentFlowNode
:
{
type
:
Object
,
default
:
()
=>
({})
},
nextFlowNode
:
{
type
:
Object
,
default
:
()
=>
({})
}
})
const
emit
=
defineEmits
([
'callback'
,
'sendWorkFlow'
,
'openMultiForm'
])
const
emit
=
defineEmits
([
'callback'
,
'sendWorkFlow'
,
'openMultiForm'
]);
//注册model
const
{
tableContext
}
=
useListPage
({
const
[
registerExecuteModal
,
{
openModal
:
openExecuteModal
}]
=
useModal
();
//注册table数据
const
{
prefixCls
,
tableContext
}
=
useListPage
({
tableProps
:
{
tableProps
:
{
title
:
'问题整改'
,
title
:
'问题整改'
,
api
:
list
,
api
:
list
,
columns
,
columns
,
canResize
:
false
,
canResize
:
false
,
beforeFetch
(
params
)
{
beforeFetch
(
params
)
{
params
[
'bmpNodeId'
]
=
props
.
currentFlowNode
.
id
params
[
'bpmNodeId'
]
=
props
.
currentFlowNode
.
id
;
},
actionColumn
:
{
width
:
200
,
fixed
:
'right'
,
},
},
actionColumn
:
{
width
:
200
,
fixed
:
'right'
},
},
},
});
});
const
[
registerTable
,
{
reload
},
{
rowSelection
,
selectedRowKeys
}]
=
tableContext
;
const
[
registerTable
,
{
reload
},
{
rowSelection
,
selectedRowKeys
}]
=
tableContext
;
function
handlePlanApproval
(
record
:
Recordable
)
{
function
handlePlanApproval
(
record
:
Recordable
)
{
emit
(
"openMultiForm"
,
record
)
emit
(
'openMultiForm'
,
record
);
}
}
function
handleS
uccess
(
)
{
function
handleS
endNext
(
record
:
Recordable
)
{
(
selectedRowKeys
.
value
=
[])
&&
reload
(
);
emit
(
'sendWorkFlow'
,
record
);
}
}
function
handleSendNext
(
record
:
Recordable
)
{
function
handleSuccess
()
{
emit
(
"sendWorkFlow"
,
record
)
selectedRowKeys
.
value
=
[];
reload
();
}
}
function
getTableAction
(
record
)
{
function
getTableAction
(
record
)
{
return
[
return
[
{
{
label
:
'计划审核'
,
onClick
:
handlePlanApproval
.
bind
(
null
,
record
)
},
label
:
'计划审核'
,
onClick
:
handlePlanApproval
.
bind
(
null
,
record
),
},
// {
// label: '提交',
// onClick: handleSendNext.bind(null, record),
// },
];
];
}
}
async
function
handleUpdate
(
dataId
,
flowNode
)
{
async
function
handleUpdate
(
dataId
,
flowNode
)
{
let
record
=
{
const
record
=
{
bpmNodeId
:
flowNode
.
id
,
deployId
:
flowNode
.
deployId
,
bpmStatus
:
2
,
id
:
dataId
};
bmpNodeId
:
flowNode
.
id
,
await
saveOrUpdate
(
record
,
true
);
deployId
:
flowNode
.
deployId
,
bpmStatus
:
2
,
id
:
dataId
}
await
saveOrUpdate
(
record
,
true
).
then
(
res
=>
{
handleSuccess
();
handleSuccess
();
})
}
}
defineExpose
({
defineExpose
({
handleUpdate
});
handleUpdate
,
})
</
script
>
</
script
>
<
style
scoped
></
style
>
<
style
scoped
></
style
>
zrch-risk-client-39/src/views/project/problemCheck/StProblemPlanList.vue
浏览文件 @
b56d7a7f
<
template
>
<
template
>
<div>
<div>
<!--引用表格-->
<BasicTable
@
register=
"registerTable"
:rowSelection=
"rowSelection"
>
<BasicTable
@
register=
"registerTable"
:rowSelection=
"rowSelection"
>
<!--插槽:table标题-->
<template
#
tableTitle
></
template
>
<template
#
tableTitle
>
</
template
>
<!--操作栏-->
<
template
#
action=
"{ record }"
>
<
template
#
action=
"{ record }"
>
<TableAction
:actions=
"getTableAction(record)"
/>
<TableAction
:actions=
"getTableAction(record)"
/>
</
template
>
</
template
>
</BasicTable>
</BasicTable>
<!-- 整改执行 -->
<StProblemCheckExecuteModal
@
register=
"registerExecuteModal"
@
success=
"handleSuccess"
/>
</div>
</div>
</template>
</template>
<
script
lang=
"ts"
name=
"problem-stProblemCheck"
setup
>
<
script
lang=
"ts"
name=
"problem-stProblemCheck"
setup
>
import
{
ref
}
from
'vue'
;
import
{
BasicTable
,
TableAction
}
from
'/@/components/Table'
;
import
{
BasicTable
,
TableAction
}
from
'/@/components/Table'
;
import
{
useModal
}
from
'/@/components/Modal'
;
import
{
useListPage
}
from
'/@/hooks/system/useListPage'
;
import
{
useListPage
}
from
'/@/hooks/system/useListPage'
;
import
{
columns
,
searchFormSchema
}
from
'./StProblemCheck.data'
;
import
{
columns
}
from
'./StProblemCheck.data'
;
import
{
list
,
saveOrUpdate
}
from
'./StProblemCheck.api'
;
import
{
list
,
saveOrUpdate
}
from
'./StProblemCheck.api'
;
import
StProblemCheckExecuteModal
from
'./components/StProblemCheckExecuteModal.vue'
;
const
emit
=
defineEmits
([
'callback'
,
'sendWorkFlow'
,
'openMultiForm'
])
const
props
=
defineProps
({
const
props
=
defineProps
({
beforeFlowNode
:
{
beforeFlowNode
:
{
type
:
Object
,
default
:
()
=>
({})
},
type
:
Object
,
currentFlowNode
:
{
type
:
Object
,
default
:
()
=>
({})
},
default
:
()
=>
({})
nextFlowNode
:
{
type
:
Object
,
default
:
()
=>
({})
},
},
});
currentFlowNode
:
{
type
:
Object
,
default
:
()
=>
({})
},
nextFlowNode
:
{
type
:
Object
,
default
:
()
=>
({})
}
})
const
[
registerExecuteModal
,
{
openModal
:
openExecuteModal
}]
=
useModal
();
const
emit
=
defineEmits
([
'callback'
,
'sendWorkFlow'
,
'openMultiForm'
]);
const
{
prefixCls
,
tableContext
}
=
useListPage
({
const
{
tableContext
}
=
useListPage
({
tableProps
:
{
tableProps
:
{
title
:
'问题整改计划'
,
title
:
'问题整改计划'
,
api
:
list
,
api
:
list
,
columns
,
columns
,
canResize
:
false
,
canResize
:
false
,
beforeFetch
(
params
)
{
beforeFetch
(
params
)
{
params
[
'bmpNodeId'
]
=
props
.
currentFlowNode
.
id
params
[
'bpmNodeId'
]
=
props
.
currentFlowNode
.
id
;
},
actionColumn
:
{
width
:
200
,
fixed
:
'right'
,
},
},
actionColumn
:
{
width
:
200
,
fixed
:
'right'
},
},
},
});
});
const
[
registerTable
,
{
reload
},
{
rowSelection
,
selectedRowKeys
}]
=
tableContext
;
const
[
registerTable
,
{
reload
},
{
rowSelection
,
selectedRowKeys
}]
=
tableContext
;
function
handlePlan
(
record
:
Recordable
)
{
function
handlePlan
(
record
:
Recordable
)
{
emit
(
"openMultiForm"
,
record
)
emit
(
'openMultiForm'
,
record
);
}
}
async
function
handleSendNext
(
record
:
Recordable
)
{
function
handleSendNext
(
record
:
Recordable
)
{
emit
(
"sendWorkFlow"
,
record
)
emit
(
'sendWorkFlow'
,
record
);
}
}
function
handleSuccess
()
{
function
handleSuccess
()
{
(
selectedRowKeys
.
value
=
[])
&&
reload
();
selectedRowKeys
.
value
=
[];
reload
();
}
}
function
getTableAction
(
record
)
{
function
getTableAction
(
record
)
{
return
[
return
[
{
{
label
:
'制定计划'
,
onClick
:
handlePlan
.
bind
(
null
,
record
)
},
label
:
'制定计划'
,
{
label
:
'提交'
,
onClick
:
handleSendNext
.
bind
(
null
,
record
)
},
onClick
:
handlePlan
.
bind
(
null
,
record
),
},
{
label
:
'提交'
,
onClick
:
handleSendNext
.
bind
(
null
,
record
),
},
];
];
}
}
async
function
handleUpdate
(
dataId
,
flowNode
)
{
async
function
handleUpdate
(
dataId
,
flowNode
)
{
let
record
=
{
const
record
=
{
bpmNodeId
:
flowNode
.
id
,
deployId
:
flowNode
.
deployId
,
bpmStatus
:
2
,
id
:
dataId
};
bmpNodeId
:
flowNode
.
id
,
await
saveOrUpdate
(
record
,
true
);
deployId
:
flowNode
.
deployId
,
bpmStatus
:
2
,
id
:
dataId
}
await
saveOrUpdate
(
record
,
true
).
then
(
res
=>
{
handleSuccess
();
handleSuccess
();
})
}
}
defineExpose
({
defineExpose
({
handleUpdate
});
handleUpdate
,
})
</
script
>
</
script
>
<
style
scoped
></
style
>
<
style
scoped
></
style
>
zrch-risk-client-39/src/views/project/problemCheck/components/StProblemCheckFlowModal.vue
deleted
100644 → 0
浏览文件 @
89bf837f
<
template
>
<div>
<vxe-drawer
show-confirm-button
show-cancel-button
v-model=
"showPopup"
:title=
"pageTilte"
width=
"100%"
height=
"100%"
:loading=
"loading"
>
<iframe
id=
"iframeId"
ref=
"iframeRef"
:src=
"frmUrl"
frameborder=
"0"
style=
"width: 100%; height: 100%;"
></iframe>
</vxe-drawer>
</div>
</
template
>
<
script
lang=
"ts"
setup
>
import
{
ref
,
onMounted
,
nextTick
}
from
"vue"
;
import
{
useUserStoreWithOut
}
from
"/@/store/modules/user"
;
import
{
defHttp
}
from
'/@/utils/http/axios'
;
import
{
getToken
}
from
'/@/utils/auth'
;
const
user
=
useUserStoreWithOut
();
const
showPopup
=
ref
(
false
);
const
frmUrl
=
ref
(
""
);
const
loading
=
ref
(
false
);
const
pageTilte
=
ref
(
""
);
const
iframeRef
=
ref
<
HTMLIFrameElement
>
();
const
iniPage
=
async
(
data
)
=>
{
pageTilte
.
value
=
data
.
projectName
;
showPopup
.
value
=
true
;
frmUrl
.
value
=
`
${
import
.
meta
.
env
.
VITE_APP_JFLOW_CORE_ADDR
}
/#/WF/MyFlow?FlowNo=102&Token=
${
user
.
getJflowToken
}
&tid=
${
data
.
id
}
`
;
const
setSourctUrl
=
'/api/jflow/setCCWorkId'
;
await
defHttp
.
get
({
url
:
setSourctUrl
,
params
:
{
"targetId"
:
data
.
id
,
"targetKey"
:
"targetKey"
,
"token"
:
getToken
()},
});
}
// 暴露方法
defineExpose
({
iniPage
});
</
script
>
zrch-risk-client-39/src/views/project/problemCheck/components/StProblemCheckFormDetail.vue
浏览文件 @
b56d7a7f
...
@@ -38,32 +38,17 @@
...
@@ -38,32 +38,17 @@
</
template
>
</
template
>
<
script
lang=
"ts"
setup
>
<
script
lang=
"ts"
setup
>
import
{
ref
,
reactive
,
defineExpose
,
nextTick
,
defineProps
,
computed
,
onMounted
}
from
'vue'
;
import
{
ref
,
reactive
,
onMounted
}
from
'vue'
;
import
{
defHttp
}
from
'/@/utils/http/axios'
;
import
{
defHttp
}
from
'/@/utils/http/axios'
;
import
{
useMessage
}
from
'/@/hooks/web/useMessage'
;
import
{
useMessage
}
from
'/@/hooks/web/useMessage'
;
import
JDictSelectTag
from
'/@/components/Form/src/jeecg/components/JDictSelectTag.vue'
;
import
{
getValueType
}
from
'/@/utils'
;
import
{
Form
}
from
'ant-design-vue'
;
import
{
Form
}
from
'ant-design-vue'
;
import
{
useTabs
}
from
'/@/hooks/web/useTabs'
;
import
{
useModal
}
from
'/@/components/Modal'
;
import
{
useListPage
}
from
'/@/hooks/system/useListPage'
;
import
{
useUserStoreWithOut
}
from
'/@/store/modules/user'
;
import
{
useRouter
}
from
'vue-router'
;
import
{
getAuthCache
,
setAuthCache
,
removeAuthCache
}
from
'/@/utils/auth'
;
import
{
TOKEN_KEY
}
from
'/@/enums/cacheEnum'
;
import
{
useUserStore
}
from
'/@/store/modules/user'
;
const
router
=
useRouter
();
const
user
=
useUserStoreWithOut
();
const
{
closeCurrent
,
refreshPage
,
setTitle
}
=
useTabs
();
const
props
=
defineProps
({
const
props
=
defineProps
({
formDisabled
:
{
type
:
Boolean
,
default
:
false
},
formDisabled
:
{
type
:
Boolean
,
default
:
false
},
formData
:
{
type
:
Object
,
default
:
()
=>
{}
},
formData
:
{
type
:
Object
,
default
:
()
=>
({})
},
formBpm
:
{
type
:
Boolean
,
default
:
true
},
formBpm
:
{
type
:
Boolean
,
default
:
true
},
});
});
const
formRef
=
ref
();
const
useForm
=
Form
.
useForm
;
const
emit
=
defineEmits
([
'register'
,
'ok'
]);
const
emit
=
defineEmits
([
'register'
,
'ok'
]);
const
formData
=
reactive
<
Record
<
string
,
any
>>
({
const
formData
=
reactive
<
Record
<
string
,
any
>>
({
id
:
''
,
id
:
''
,
...
@@ -72,65 +57,36 @@
...
@@ -72,65 +57,36 @@
problemSource
:
''
,
problemSource
:
''
,
isReceive
:
''
,
isReceive
:
''
,
programme
:
''
,
programme
:
''
,
labels
:
''
,
actIds
:
''
,
});
});
const
{
createMessage
}
=
useMessage
();
const
{
createMessage
}
=
useMessage
();
const
labelCol
=
ref
<
any
>
({
xs
:
{
span
:
24
},
sm
:
{
span
:
5
}
});
const
labelCol
=
ref
({
xs
:
{
span
:
24
},
sm
:
{
span
:
5
}
});
const
wrapperCol
=
ref
<
any
>
({
xs
:
{
span
:
24
},
sm
:
{
span
:
16
}
});
const
wrapperCol
=
ref
({
xs
:
{
span
:
24
},
sm
:
{
span
:
16
}
});
const
confirmLoading
=
ref
<
boolean
>
(
false
);
const
confirmLoading
=
ref
(
false
);
const
loading
=
ref
(
false
);
const
disabled
=
ref
(
true
);
//表单验证
const
validatorRules
=
{};
const
{
resetFields
,
validate
,
validateInfos
}
=
useForm
(
formData
,
validatorRules
,
{
immediate
:
true
});
const
disabled
=
ref
<
boolean
>
(
true
);
const
listAll
=
'/problem/stProblemCheck/queryById'
;
const
listAll
=
'/problem/stProblemCheck/queryById'
;
// 从URL获取参数
const
getUrlParams
=
()
=>
{
const
getUrlParams
=
()
=>
{
const
winurl
=
window
.
location
.
href
;
const
winurl
=
window
.
location
.
href
;
const
params
=
new
URLSearchParams
(
winurl
.
split
(
'?'
)[
1
]);
const
params
=
new
URLSearchParams
(
winurl
.
split
(
'?'
)[
1
]);
return
{
return
{
cctoken
:
params
.
get
(
'Token'
)
||
''
,
WorkID
:
params
.
get
(
'WorkID'
)
||
''
};
cctoken
:
params
.
get
(
'Token'
)
||
''
,
WorkID
:
params
.
get
(
'WorkID'
)
||
''
,
};
};
};
const
iniData
=
async
()
=>
{
const
iniData
=
async
()
=>
{
try
{
try
{
l
oading
.
value
=
true
;
confirmL
oading
.
value
=
true
;
const
{
cctoken
,
WorkID
}
=
getUrlParams
();
const
{
cctoken
,
WorkID
}
=
getUrlParams
();
console
.
log
(
'Token:'
,
cctoken
,
'WorkID:'
,
WorkID
);
const
timestamp
=
new
Date
().
getTime
();
const
timestamp
=
new
Date
().
getTime
();
const
gettokeyUrl
=
'/api/jflow/getCCWorkTokenAndTid'
;
const
gettokeyUrl
=
'/api/jflow/getCCWorkTokenAndTid'
;
const
{
tid
,
token
}
=
await
defHttp
.
get
({
const
{
tid
,
token
}
=
await
defHttp
.
get
({
url
:
gettokeyUrl
,
url
:
gettokeyUrl
,
params
:
{
params
:
{
targetKey
:
'targetKey'
,
flowToken
:
cctoken
,
WorkID
:
WorkID
,
_t
:
timestamp
},
targetKey
:
'targetKey'
,
flowToken
:
cctoken
,
WorkID
:
WorkID
,
_t
:
timestamp
,
},
});
});
console
.
log
(
'问题整改tid '
,
tid
);
// setAuthCache(TOKEN_KEY, token);
//params: { id: tid, token: token, "_t": timestamp },
defHttp
.
get
({
url
:
listAll
,
params
:
{
token
:
token
,
id
:
tid
}
}).
then
((
res
)
=>
{
console
.
log
(
'res '
,
res
);
defHttp
.
get
({
url
:
listAll
,
params
:
{
token
,
id
:
tid
}
}).
then
((
res
)
=>
{
formData
.
problemItem
=
res
.
problemItem
;
formData
.
problemItem
=
res
.
problemItem
;
formData
.
problemDes
=
res
.
problemDes
;
formData
.
problemDes
=
res
.
problemDes
;
formData
.
problemSource
=
res
.
problemSource
;
formData
.
problemSource
=
res
.
problemSource
;
if
(
res
.
isReceive
==
'1'
)
{
formData
.
isReceive
=
res
.
isReceive
==
'1'
?
'是'
:
'否'
;
formData
.
isReceive
=
'是'
;
}
else
{
formData
.
isReceive
=
'否'
;
}
formData
.
programme
=
res
.
programme
;
formData
.
programme
=
res
.
programme
;
formData
.
strategy
=
res
.
strategy
;
formData
.
strategy
=
res
.
strategy
;
});
});
...
@@ -138,21 +94,18 @@
...
@@ -138,21 +94,18 @@
console
.
error
(
'初始化表单数据失败:'
,
error
);
console
.
error
(
'初始化表单数据失败:'
,
error
);
createMessage
.
error
(
'初始化表单数据失败'
);
createMessage
.
error
(
'初始化表单数据失败'
);
}
finally
{
}
finally
{
l
oading
.
value
=
false
;
confirmL
oading
.
value
=
false
;
}
}
};
};
onMounted
(
async
()
=>
{
onMounted
(()
=>
{
iniData
();
});
iniData
();
});
defineExpose
({});
defineExpose
({});
</
script
>
</
script
>
<
style
lang=
"less"
scoped
>
<
style
lang=
"less"
scoped
>
.antd-modal-form {
.antd-modal-form {
min-height: 500px !important;
min-height: 500px !important;
overflow-y: auto;
overflow-y: auto;
padding: 24px 24px 24px
24px;
padding:
24px;
}
}
</
style
>
</
style
>
zrch-risk-client-39/src/views/project/problemCheck/components/StProblemCheckModal.vue
浏览文件 @
b56d7a7f
...
@@ -47,7 +47,7 @@
...
@@ -47,7 +47,7 @@
try
{
try
{
let
values
=
await
validate
();
let
values
=
await
validate
();
values
.
bpmStatus
=
bpmFlowData
.
value
?.
bpmStatus
||
''
;
values
.
bpmStatus
=
bpmFlowData
.
value
?.
bpmStatus
||
''
;
values
.
b
mpNodeId
=
bpmFlowData
.
value
?.
bmp
NodeId
||
''
;
values
.
b
pmNodeId
=
bpmFlowData
.
value
?.
bpm
NodeId
||
''
;
values
.
deployId
=
bpmFlowData
.
value
?.
deployId
||
''
;
values
.
deployId
=
bpmFlowData
.
value
?.
deployId
||
''
;
setModalProps
({
confirmLoading
:
true
});
setModalProps
({
confirmLoading
:
true
});
//提交表单
//提交表单
...
...
zrch-risk-client-39/src/views/project/problemCheck/components/StProblemCheckPlanForm.vue
浏览文件 @
b56d7a7f
...
@@ -65,12 +65,9 @@
...
@@ -65,12 +65,9 @@
}
}
// 保存按钮
// 保存按钮
async
function
saveForm
()
{
async
function
saveForm
(
formData
)
{
try
{
try
{
let
data
=
getFieldsValue
();
const
result
=
await
saveOrUpdate
(
formData
,
true
);
let
params
=
Object
.
assign
({},
currentFormData
.
value
,
data
);
const
result
=
await
saveOrUpdate
(
params
,
true
);
// 保存成功后更新表单
// 保存成功后更新表单
if
(
result
&&
result
.
id
)
{
if
(
result
&&
result
.
id
)
{
await
initFormData
(
result
.
id
);
await
initFormData
(
result
.
id
);
...
...
zrch-risk-client-39/src/views/project/problemCheck/components/StProblemCheckPlanModal.vue
deleted
100644 → 0
浏览文件 @
89bf837f
差异被折叠。
点击展开。
zrch-risk-client-39/src/views/project/problemCheck/composables/useProblemList.ts
0 → 100644
浏览文件 @
b56d7a7f
import
{
ref
,
computed
}
from
'vue'
;
import
{
useListPage
}
from
'/@/hooks/system/useListPage'
;
import
{
list
,
saveOrUpdate
}
from
'../StProblemCheck.api'
;
import
{
columns
}
from
'../StProblemCheck.data'
;
export
function
useProblemList
(
props
)
{
const
{
tableContext
,
reload
}
=
useListPage
({
tableProps
:
{
title
:
props
?.
title
||
'问题整改'
,
api
:
list
,
columns
,
canResize
:
props
?.
canResize
??
false
,
beforeFetch
(
params
)
{
if
(
props
?.
currentFlowNode
?.
id
)
{
params
[
'bpmNodeId'
]
=
props
.
currentFlowNode
.
id
;
}
if
(
props
?.
todoList
)
{
params
[
'todoList'
]
=
props
.
todoList
;
}
},
actionColumn
:
{
width
:
200
,
fixed
:
'right'
,
},
},
exportConfig
:
{
name
:
'问题整改'
,
url
:
'/problem/stProblemCheck/exportXls'
,
},
importConfig
:
{
url
:
'/problem/stProblemCheck/importExcel'
,
},
});
const
[
registerTable
,
,
{
rowSelection
,
selectedRowKeys
}]
=
tableContext
;
async
function
handleUpdate
(
dataId
,
flowNode
)
{
const
record
=
{
bpmNodeId
:
flowNode
.
id
,
deployId
:
flowNode
.
deployId
,
bpmStatus
:
2
,
id
:
dataId
,
};
await
saveOrUpdate
(
record
,
true
);
selectedRowKeys
.
value
=
[];
reload
();
}
function
handleSuccess
()
{
selectedRowKeys
.
value
=
[];
reload
();
}
return
{
registerTable
,
reload
,
rowSelection
,
selectedRowKeys
,
handleUpdate
,
handleSuccess
,
};
}
zrch-risk-server-39/jeecg-module-system/jeecg-module-flowable/src/main/java/org/jeecg/modules/flowable/service/impl/FlowTaskServiceImpl.java
浏览文件 @
b56d7a7f
...
@@ -2496,19 +2496,19 @@ public class FlowTaskServiceImpl extends FlowServiceFactory implements IFlowTask
...
@@ -2496,19 +2496,19 @@ public class FlowTaskServiceImpl extends FlowServiceFactory implements IFlowTask
//flowTaskVo.getDeploymentId()
//flowTaskVo.getDeploymentId()
//flowTaskVo.getDataId()
//flowTaskVo.getDataId()
MyTaskFlow
myTaskFlow
=
myTaskFlowService
.
selectMyTaskFlowByDeployId
(
flowTaskVo
.
getDeploymentId
(),
flowTaskVo
.
getDataId
());
MyTaskFlow
myTaskFlow
=
myTaskFlowService
.
selectMyTaskFlowByDeployId
(
flowTaskVo
.
getDeploymentId
(),
flowTaskVo
.
getDataId
());
if
(
myTaskFlow
==
null
)
{
return
null
;
}
MyTaskFlowVo
vo
=
new
MyTaskFlowVo
();
MyTaskFlowVo
vo
=
new
MyTaskFlowVo
();
vo
.
setTaskId
(
myTaskFlow
.
getTaskId
());
vo
.
setTaskId
(
myTaskFlow
.
getTaskId
());
vo
.
setDeployId
(
myTaskFlow
.
getDeployId
());
vo
.
setDeployId
(
myTaskFlow
.
getDeployId
());
vo
.
setProcDefId
(
myTaskFlow
.
getProcDefId
());
vo
.
setProcDefId
(
myTaskFlow
.
getProcDefId
());
vo
.
setProcInsId
(
myTaskFlow
.
getProcInsId
());
vo
.
setProcInsId
(
myTaskFlow
.
getProcInsId
());
vo
.
setExecutionId
(
myTaskFlow
.
getExecutionId
());
vo
.
setExecutionId
(
myTaskFlow
.
getExecutionId
());
FlowNextDto
flowtDto
=
getFlowNodeType
(
myTaskFlow
.
getTaskId
());
FlowNextDto
flowtDto
=
getFlowNodeType
(
myTaskFlow
.
getTaskId
());
if
(
flowtDto
!=
null
){
if
(
flowtDto
!=
null
){
vo
.
setNodeisApprove
(
flowtDto
.
isNodeisApprove
());
vo
.
setNodeisApprove
(
flowtDto
.
isNodeisApprove
());
}
}
return
Result
.
OK
(
vo
);
return
Result
.
OK
(
vo
);
}
}
...
...
zrch-risk-server-39/jeecg-module-system/jeecg-module-stm/src/main/java/org/jeecg/modules/stm/my/service/impl/MyTaskFlowServiceImpl.java
浏览文件 @
b56d7a7f
...
@@ -41,21 +41,18 @@ public class MyTaskFlowServiceImpl extends ServiceImpl<MyTaskFlowMapper, MyTaskF
...
@@ -41,21 +41,18 @@ public class MyTaskFlowServiceImpl extends ServiceImpl<MyTaskFlowMapper, MyTaskF
@Override
@Override
public
List
<
String
>
queryTodoList
(
MyTaskFlow
myTaskFlow
)
{
public
List
<
String
>
queryTodoList
(
MyTaskFlow
myTaskFlow
)
{
LambdaQueryWrapper
<
MyTaskFlow
>
query
=
new
LambdaQueryWrapper
<>();
LambdaQueryWrapper
<
MyTaskFlow
>
query
=
new
LambdaQueryWrapper
<>();
String
roleCodes
=
UserUtil
.
getRoleCode
();
String
roleCodes
=
UserUtil
.
getRoleCode
();
final
List
<
String
>
roleCodeList
;
final
List
<
String
>
roleCodeList
;
final
List
<
String
>
roleIdList
;
// 使用 final 关键字
final
List
<
String
>
roleIdList
;
// 使用 final 关键字
if
(
StringUtils
.
hasText
(
roleCodes
))
{
if
(
StringUtils
.
hasText
(
roleCodes
))
{
roleCodeList
=
Arrays
.
asList
(
roleCodes
.
split
(
","
));
roleCodeList
=
Arrays
.
asList
(
roleCodes
.
split
(
","
));
roleIdList
=
queryRoleIdsByRoleCodes
(
roleCodeList
);
roleIdList
=
queryRoleIdsByRoleCodes
(
roleCodeList
);
}
else
{
}
else
{
roleCodeList
=
Collections
.
emptyList
();
// 明确赋值为空列表
roleCodeList
=
Collections
.
emptyList
();
roleIdList
=
Collections
.
emptyList
();
roleIdList
=
Collections
.
emptyList
();
}
}
// 基础条件
// 基础条件
query
.
eq
(
Objects
.
nonNull
(
myTaskFlow
.
getDeployId
()),
query
.
eq
(
Objects
.
nonNull
(
myTaskFlow
.
getDeployId
()),
MyTaskFlow:
:
getDeployId
,
myTaskFlow
.
getDeployId
())
MyTaskFlow:
:
getDeployId
,
myTaskFlow
.
getDeployId
())
...
...
zrch-risk-server-39/jeecg-module-system/jeecg-module-stm/src/main/java/org/jeecg/modules/stm/problem/controller/StProblemCheckController.java
浏览文件 @
b56d7a7f
...
@@ -72,7 +72,7 @@ public class StProblemCheckController extends JeecgController<StProblemCheck, IS
...
@@ -72,7 +72,7 @@ public class StProblemCheckController extends JeecgController<StProblemCheck, IS
QueryWrapper
<
StProblemCheck
>
queryWrapper
=
QueryGenerator
.
initQueryWrapper
(
stProblemCheck
,
req
.
getParameterMap
());
QueryWrapper
<
StProblemCheck
>
queryWrapper
=
QueryGenerator
.
initQueryWrapper
(
stProblemCheck
,
req
.
getParameterMap
());
MyTaskFlow
myTaskFlow
=
new
MyTaskFlow
();
MyTaskFlow
myTaskFlow
=
new
MyTaskFlow
();
myTaskFlow
.
setFormTableName
(
"st_problem_check"
);
myTaskFlow
.
setFormTableName
(
"st_problem_check"
);
myTaskFlow
.
setTaskDefinitionKey
(
stProblemCheck
.
getB
mp
NodeId
());
myTaskFlow
.
setTaskDefinitionKey
(
stProblemCheck
.
getB
pm
NodeId
());
List
<
String
>
todoList
=
myTaskFlowService
.
queryTodoList
(
myTaskFlow
);
List
<
String
>
todoList
=
myTaskFlowService
.
queryTodoList
(
myTaskFlow
);
if
(
Utils
.
isNullOrEmpty
(
todoList
))
{
if
(
Utils
.
isNullOrEmpty
(
todoList
))
{
...
...
zrch-risk-server-39/jeecg-module-system/jeecg-module-stm/src/main/java/org/jeecg/modules/stm/problem/entity/StProblemCheck.java
浏览文件 @
b56d7a7f
...
@@ -152,24 +152,23 @@ public class StProblemCheck implements Serializable {
...
@@ -152,24 +152,23 @@ public class StProblemCheck implements Serializable {
/**整改落实情况*/
/**整改落实情况*/
private
java
.
lang
.
String
execRemark
;
private
java
.
lang
.
String
execRemark
;
/**发现人*/
/**发现人*/
private
java
.
lang
.
String
findUser
;
private
java
.
lang
.
String
findUser
;
/**流程状态*/
private
java
.
lang
.
String
bpmStatus
;
/**部署ID*/
private
java
.
lang
.
String
deployId
;
/**流程实例ID*/
/**流程实例ID*/
private
java
.
lang
.
String
procInsId
;
private
java
.
lang
.
String
procInsId
;
/**风险等级*/
/**风险等级*/
private
java
.
lang
.
Integer
riskLevel
;
private
java
.
lang
.
Integer
riskLevel
;
/**流程节点ID*/
private
java
.
lang
.
String
bmpNodeId
;
// 当前用户需要处理的工作流 实例ID
// 当前用户需要处理的工作流 实例ID
@TableField
(
exist
=
false
)
@TableField
(
exist
=
false
)
private
java
.
util
.
List
todolist
;
private
java
.
util
.
List
todolist
;
/**流程状态*/
private
java
.
lang
.
String
bpmStatus
;
/**部署ID*/
private
java
.
lang
.
String
deployId
;
/**流程节点ID*/
private
java
.
lang
.
String
bpmNodeId
;
}
}
zrch-risk-server-39/jeecg-module-system/jeecg-system-start/src/main/resources/application-dev.yml
浏览文件 @
b56d7a7f
...
@@ -173,6 +173,7 @@ spring:
...
@@ -173,6 +173,7 @@ spring:
url
:
jdbc:mysql://localhost:3306/zrch_stm_db_3.9_new?characterEncoding=UTF-8&useUnicode=true&useSSL=false&tinyInt1isBit=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai
url
:
jdbc:mysql://localhost:3306/zrch_stm_db_3.9_new?characterEncoding=UTF-8&useUnicode=true&useSSL=false&tinyInt1isBit=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai
username
:
root
username
:
root
password
:
123456
password
:
123456
driver-class-name
:
com.mysql.cj.jdbc.Driver
driver-class-name
:
com.mysql.cj.jdbc.Driver
# # shardingjdbc数据源
# # shardingjdbc数据源
# sharding-db:
# sharding-db:
...
...
zrch-risk-server-39/jeecg-module-system/jeecg-system-start/src/main/resources/application-prod.yml
浏览文件 @
b56d7a7f
...
@@ -18,7 +18,18 @@ management:
...
@@ -18,7 +18,18 @@ management:
web
:
web
:
exposure
:
exposure
:
include
:
metrics,httpexchanges,jeecghttptrace
include
:
metrics,httpexchanges,jeecghttptrace
flowable
:
database-schema-update
:
false
cmmn
:
enabled
:
false
app
:
enabled
:
false
content
:
enabled
:
false
dmn
:
enabled
:
false
form
:
enabled
:
false
spring
:
spring
:
# main:
# main:
# # 启动加速 (建议开发环境,开启后flyway自动升级失效)
# # 启动加速 (建议开发环境,开启后flyway自动升级失效)
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论