Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
Z
zrch-risk-39
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
Administrator
zrch-risk-39
Commits
19686bd7
提交
19686bd7
authored
4月 28, 2026
作者:
kxjia
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
完善代码
上级
385fe3aa
隐藏空白字符变更
内嵌
并排
正在显示
11 个修改的文件
包含
977 行增加
和
164 行删除
+977
-164
BaosongFlowerIndex.vue
...client-39/src/views/baosong/flower/BaosongFlowerIndex.vue
+15
-18
BaosongTask.data.ts
...ient-39/src/views/baosong/flower/data/BaosongTask.data.ts
+32
-10
BaosongTaskRecordForm.vue
...9/src/views/baosong/flower/form/BaosongTaskRecordForm.vue
+256
-67
BaosongTaskList.vue
...ient-39/src/views/baosong/flower/list/BaosongTaskList.vue
+141
-64
BaosongTaskMainList.vue
...-39/src/views/baosong/flower/list/BaosongTaskMainList.vue
+177
-0
BaosongTask.api.ts
...-risk-client-39/src/views/baosong/task/BaosongTask.api.ts
+0
-2
FlowMainFormList.vue
zrch-risk-client-39/src/views/common/FlowMainFormList.vue
+325
-0
TaskAssigneeDrawer.vue
zrch-risk-client-39/src/views/common/TaskAssigneeDrawer.vue
+3
-1
WorkFlowFormDrawer.vue
zrch-risk-client-39/src/views/common/WorkFlowFormDrawer.vue
+4
-1
BaosongTaskController.java
...modules/stm/baosong/controller/BaosongTaskController.java
+20
-0
BaosongTask.java
...ava/org/jeecg/modules/stm/baosong/entity/BaosongTask.java
+4
-1
没有找到文件。
zrch-risk-client-39/src/views/baosong/flower/BaosongFlowerIndex.vue
浏览文件 @
19686bd7
...
...
@@ -6,7 +6,7 @@
@
sendWorkFlow=
"handleDefinitionSend"
@
endWorkFlow=
"handleDefinitionEnd"
@
open-multi-form=
"handleOpenMultiForm"
:todo
-l
ist=
"todoList"
:todo
L
ist=
"todoList"
/>
<WorkFlowFormDrawer
v-model:visible=
"drawerVisible"
...
...
@@ -16,7 +16,7 @@
:external-form-data=
"externalFormData"
:proc-def-id=
"currentProcDefId"
:proc-ins-id=
"procInsId"
:show-history-form-data=
"
tru
e"
:show-history-form-data=
"
fals
e"
:data-id=
"dataId"
:deploy-id=
"deployId"
:task-id=
"taskId"
...
...
@@ -57,7 +57,7 @@
const
formComponentRefs
=
ref
<
Map
<
number
,
any
>>
(
new
Map
());
const
assignee
=
ref
<
any
>
(
""
);
const
userType
=
ref
<
any
>
(
""
);
const
todo
aLLList
=
ref
<
any
[]
>
([]);
const
todo
List
=
ref
<
any
[]
>
([]);
const
drawerVisible
=
ref
(
false
);
const
drawerTitle
=
ref
(
'表单处理'
);
const
currentMultiFormIndex
=
ref
(
1
);
...
...
@@ -148,11 +148,8 @@
};
const
handleDefinitionSend
=
async
(
data
)
=>
{
if
(
!
data
.
procInsId
)
{
await
handleDefinitionStart
(
data
)
}
await
setCurrentNodeById
(
data
);
await
setCurrentNodeById
(
data
.
bpmNodeId
);
alert
(
1111
)
dataId
.
value
=
data
.
id
;
deployId
.
value
=
currentNode
.
value
.
deployId
||
''
;
...
...
@@ -247,7 +244,8 @@
}
async
function
handleOpenMultiForm
(
data
:
any
)
{
await
setCurrentNodeById
(
data
.
bpmNodeId
);
deployId
.
value
=
currentNode
.
value
.
deployId
||
''
;
procInsId
.
value
=
data
.
procInsId
||
''
;
drawerVisible
.
value
=
true
;
...
...
@@ -271,6 +269,7 @@
if
(
resData
.
formUrl
)
{
mainFormUrl
.
value
=
resData
.
formUrl
mainFormListUrl
.
value
=
resData
.
formListurl
||
''
}
else
{
mainFormUrl
.
value
=
""
refInnerForm
.
value
.
iniData
(
resData
)
...
...
@@ -290,21 +289,19 @@
});
const
setCurrentNodeById
=
async
(
nodeId
:
string
)
=>
{
const
nodes
=
workflowNodes
.
value
;
const
index
=
nodes
.
findIndex
(
node
=>
node
.
id
===
nodeId
);
if
(
index
!==
-
1
)
{
currentMultiFormIndex
.
value
=
index
;
currentNode
.
value
=
nodes
[
index
];
const
nodes
=
workflowNodes
.
value
;
const
index
=
nodes
.
findIndex
(
node
=>
node
.
id
===
nodeId
);
if
(
index
!==
-
1
)
{
currentMultiFormIndex
.
value
=
index
;
currentNode
.
value
=
nodes
[
index
];
}
}
}
onMounted
(
async
()
=>
{
await
nextTick
();
try
{
todoList
.
value
=
await
todoListAll
();
const
nodes
=
await
getNodesByTableName
(
formTableName
);
todoaLLList
.
value
=
await
todoList
(
queryParams
);
workflowNodes
.
value
=
nodes
;
if
(
workflowNodes
.
value
?.
length
>
0
)
{
workflowNodes
.
value
.
forEach
(
node
=>
{
...
...
zrch-risk-client-39/src/views/baosong/flower/data/BaosongTask.data.ts
浏览文件 @
19686bd7
...
...
@@ -28,7 +28,7 @@ export const columns: BasicColumn[] = [
title
:
'填报人'
,
align
:
'left'
,
dataIndex
:
'fillUser'
,
width
:
0
,
width
:
"10%"
,
ifShow
:
false
,
resizable
:
true
},
...
...
@@ -37,6 +37,7 @@ export const columns: BasicColumn[] = [
align
:
'left'
,
dataIndex
:
'respUser'
,
width
:
"10%"
,
ifShow
:
false
,
resizable
:
true
},
{
...
...
@@ -44,6 +45,7 @@ export const columns: BasicColumn[] = [
align
:
'left'
,
dataIndex
:
'enterTel'
,
width
:
"10%"
,
ifShow
:
false
,
resizable
:
true
},
{
...
...
@@ -79,19 +81,39 @@ export const columns: BasicColumn[] = [
{
title
:
'报告状态'
,
align
:
'left'
,
dataIndex
:
'
sta
'
,
dataIndex
:
'
bpmStatus
'
,
ifShow
:
true
,
width
:
"8%"
,
resizable
:
true
,
customRender
:
({
text
})
=>
{
let
color
=
"red"
;
if
(
!
text
||
text
===
0
)
{
color
=
"red"
;}
if
(
text
===
1
)
{
color
=
"green"
}
if
(
text
===
2
)
{
color
=
"orange"
}
if
(
text
===
3
)
{
color
=
"red"
}
if
(
text
===
4
)
{
color
=
"gray"
}
if
(
text
===
9
)
{
color
=
"blue"
}
return
render
.
renderTag
(
render
.
renderDict
(
text
,
'fxc_report_sta'
),
color
);
let
color
=
""
;
let
status
=
""
;
if
(
text
===
null
||
text
===
undefined
)
{
color
=
"red"
;
status
=
"未启动"
;
}
else
if
(
text
===
"0"
)
{
color
=
"yellow"
;
status
=
"已启动"
;
}
else
if
(
text
===
"2"
)
{
color
=
"green"
;
status
=
"运行中"
;
}
else
{
color
=
""
;
status
=
"完成"
;
}
return
render
.
renderTag
(
status
,
color
);
},
},
{
title
:
'流程节点'
,
align
:
'left'
,
dataIndex
:
'flowtaskName'
,
ifShow
:
true
,
width
:
"10%"
,
resizable
:
true
,
customRender
:
({
text
})
=>
{
return
!
text
?
'开始'
:
text
;
},
},
{
...
...
zrch-risk-client-39/src/views/baosong/flower/form/BaosongTaskRecordForm.vue
浏览文件 @
19686bd7
<
template
>
<div
style=
"min-height: 400px"
>
<BasicForm
@
register=
"registerForm"
></BasicForm>
<div
style=
"width: 100%;text-align: center"
v-if=
"!formDisabled"
>
<a-button
@
click=
"submitForm"
pre-icon=
"ant-design:check"
type=
"primary"
>
提 交
</a-button>
</div>
<a-card
style=
"width: 100%"
:tab-list=
"tabList"
:active-tab-key=
"key"
@
tabChange=
"onTabChange"
>
<div
style=
"background-color: #ececec; padding: 20px"
>
<a-row
:gutter=
"[16, 16]"
>
<a-col
:span=
"8"
v-for=
"item in dataList"
:key=
"item.id"
>
<a-card
:bordered=
"false"
>
<template
#
title
>
{{
item
.
code
}}
-
{{
item
.
nm
}}
</
template
>
<
template
#
extra
>
<a
href=
"#"
@
click
.
prevent=
"openReportModal(item)"
>
填报
</a>
</
template
>
<span>
年度:{{ item.vyear }}
</span>
<span>
版本:{{ item.version }}
</span>
<span>
节点数:{{ item.childNum }}
</span><br
/>
<span>
{{ item.xmlfilePath }}
</span>
</a-card>
</a-col>
</a-row>
</div>
<!-- 全屏报表填报弹窗 -->
<a-modal
v-model:visible=
"modalVisible"
:title=
"modalTitle"
:width=
"'100%'"
:style=
"{ top: '0', paddingBottom: '0' }"
:footer=
"null"
:destroy-on-close=
"true"
:mask-closable=
"false"
:keyboard=
"true"
wrapClassName=
"full-screen-modal"
@
cancel=
"handleModalClose"
>
<
template
#
closeIcon
>
<CloseOutlined
/>
</
template
>
<div
class=
"full-screen-content"
>
<component
:is=
"currentComponent"
v-if=
"currentComponent"
:taskId=
"queryParam.taskId"
:taskName=
"queryParam.taskName"
:tplId=
"queryParam.tplId"
:tplName=
"queryParam.tplName"
:tplCode=
"queryParam.tplCode"
@
close=
"handleModalClose"
@
submit=
"handleFormSubmit"
/>
</div>
</a-modal>
</a-card>
</template>
<
script
lang=
"ts"
>
import
{
BasicForm
,
useForm
}
from
'/@/components/Form/index'
;
import
{
computed
,
defineComponent
}
from
'vue'
;
import
{
defHttp
}
from
'/@/utils/http/axios'
;
import
{
propTypes
}
from
'/@/utils/propTypes'
;
import
{
getBpmFormSchema
}
from
'../data/BaosongTaskRecord.data'
;
import
{
saveOrUpdate
}
from
'../api/BaosongTaskRecord.api'
;
export
default
defineComponent
({
name
:
"BaosongTaskRecordForm"
,
components
:{
BasicForm
},
props
:{
formData
:
propTypes
.
object
.
def
({}),
formBpm
:
propTypes
.
bool
.
def
(
true
),
},
setup
(
props
){
const
[
registerForm
,
{
setFieldsValue
,
setProps
,
getFieldsValue
}]
=
useForm
({
labelWidth
:
150
,
schemas
:
getBpmFormSchema
(
props
.
formData
),
showActionButtonGroup
:
false
,
baseColProps
:
{
span
:
24
}
});
const
formDisabled
=
computed
(()
=>
{
if
(
props
.
formData
.
disabled
===
false
){
return
false
;
}
return
true
;
});
let
formData
=
{};
const
queryByIdUrl
=
'/baosong/baosongTaskRecord/queryById'
;
async
function
initFormData
(){
let
params
=
{
id
:
props
.
formData
.
dataId
};
const
data
=
await
defHttp
.
get
({
url
:
queryByIdUrl
,
params
});
formData
=
{...
data
}
//设置表单的值
await
setFieldsValue
(
formData
);
//默认是禁用
await
setProps
({
disabled
:
formDisabled
.
value
})
}
async
function
submitForm
()
{
let
data
=
getFieldsValue
();
let
params
=
Object
.
assign
({},
formData
,
data
);
console
.
log
(
'表单数据'
,
params
)
await
saveOrUpdate
(
params
,
true
)
}
initFormData
();
return
{
registerForm
,
formDisabled
,
submitForm
,
}
}
});
</
script
>
\ No newline at end of file
<
script
lang=
"ts"
setup
>
import
{
ref
,
computed
,
markRaw
}
from
'vue'
;
import
{
CloseOutlined
}
from
'@ant-design/icons-vue'
;
import
{
findUserRightForTpl
}
from
'../api/BaosongTpl.api'
;
// 静态导入所有组件
import
Tb1
from
'../../report/components/Tb1.vue'
;
import
Tb2
from
'../../report/components/Tb2.vue'
;
import
Tb3
from
'../../report/components/Tb3.vue'
;
import
Tb4
from
'../../report/components/Tb4.vue'
;
import
Tb5
from
'../../report/components/Tb5.vue'
;
import
Tb6
from
'../../report/components/Tb6.vue'
;
import
Tb7
from
'../../report/components/Tb7.vue'
;
import
Tb8
from
'../../report/components/Tb8.vue'
;
import
Tb9
from
'../../report/components/Tb9.vue'
;
import
Tb10
from
'../../report/components/Tb10.vue'
;
import
Tb11
from
'../../report/components/Tb11.vue'
;
import
Rr1
from
'../../report/components/Rr1.vue'
;
import
Rr2
from
'../../report/components/Rr2.vue'
;
import
Tm1
from
'../../report/components/Tm1.vue'
;
import
Tm2
from
'../../report/components/Tm2.vue'
;
import
Tq1
from
'../../report/components/Tq1.vue'
;
import
Tq2
from
'../../report/components/Tq2.vue'
;
import
Tq3
from
'../../report/components/Tq3.vue'
;
import
Tq4
from
'../../report/components/Tq4.vue'
;
// 组件映射
const
componentMap
:
Record
<
string
,
any
>
=
{
'T-B-1'
:
markRaw
(
Tb1
),
'T-B-2'
:
markRaw
(
Tb2
),
'T-B-3'
:
markRaw
(
Tb3
),
'T-B-4'
:
markRaw
(
Tb4
),
'T-B-5'
:
markRaw
(
Tb5
),
'T-B-6'
:
markRaw
(
Tb6
),
'T-B-7'
:
markRaw
(
Tb7
),
'T-B-8'
:
markRaw
(
Tb8
),
'T-B-9'
:
markRaw
(
Tb9
),
'T-B-10'
:
markRaw
(
Tb10
),
'T-B-11'
:
markRaw
(
Tb11
),
'R-R-1'
:
markRaw
(
Rr1
),
'R-R-2'
:
markRaw
(
Rr2
),
'T-M-1'
:
markRaw
(
Tm1
),
'T-M-2'
:
markRaw
(
Tm2
),
'T-Q-1'
:
markRaw
(
Tq1
),
'T-Q-2'
:
markRaw
(
Tq2
),
'T-Q-3'
:
markRaw
(
Tq3
),
'T-Q-4'
:
markRaw
(
Tq4
),
};
// 类型映射
const
typeMap
:
Record
<
string
,
number
>
=
{
tab1
:
1
,
tab2
:
2
,
tab3
:
3
,
tab4
:
4
,
};
const
queryParam
=
ref
({
taskId
:
0
,
taskName
:
''
,
tplId
:
''
,
tplName
:
''
,
tplCode
:
''
,
});
const
key
=
ref
(
'tab1'
);
const
dataList
=
ref
<
any
[]
>
([]);
const
dataMap
=
ref
<
Record
<
number
,
any
[]
>>
({});
const
dataAllList
=
ref
<
any
[]
>
([]);
// 弹窗相关状态
const
modalVisible
=
ref
(
false
);
const
modalTitle
=
ref
(
''
);
const
currentComponent
=
ref
<
any
>
(
null
);
const
tabList
=
computed
(()
=>
{
const
tabs
=
[
{
key
:
'tab1'
,
tab
:
'年报'
,
type
:
1
},
{
key
:
'tab2'
,
tab
:
'季报'
,
type
:
2
},
{
key
:
'tab3'
,
tab
:
'月报'
,
type
:
3
},
{
key
:
'tab4'
,
tab
:
'年度报告'
,
type
:
4
},
];
return
tabs
.
map
(
tab
=>
({
...
tab
,
disabled
:
!
dataMap
.
value
[
tab
.
type
]
||
dataMap
.
value
[
tab
.
type
].
length
===
0
,
}));
});
const
onTabChange
=
async
(
value
:
string
)
=>
{
key
.
value
=
value
;
const
type
=
typeMap
[
value
];
if
(
type
)
{
dataList
.
value
=
dataMap
.
value
[
type
]
||
[];
}
};
// 打开报表填报弹窗
const
openReportModal
=
(
item
:
any
)
=>
{
const
component
=
componentMap
[
item
.
code
];
if
(
!
component
)
{
console
.
warn
(
`未找到对应组件:
${
item
.
code
}
`
);
return
;
}
queryParam
.
value
.
tplName
=
item
.
nm
||
''
;
queryParam
.
value
.
tplCode
=
item
.
code
||
''
;
queryParam
.
value
.
tplId
=
item
.
id
||
''
;
modalTitle
.
value
=
`
${
item
.
code
}
-
${
item
.
nm
}
填报`
;
currentComponent
.
value
=
component
;
modalVisible
.
value
=
true
;
};
// 关闭弹窗
const
handleModalClose
=
()
=>
{
modalVisible
.
value
=
false
;
currentComponent
.
value
=
null
;
};
// 表单提交成功后的处理
const
handleFormSubmit
=
(
data
?:
any
)
=>
{
console
.
log
(
'表单提交成功'
,
data
);
handleModalClose
();
};
// 初始化数据
const
iniData
=
async
(
taskId
:
number
)
=>
{
queryParam
.
value
.
taskId
=
taskId
;
queryParam
.
value
.
tplName
=
''
;
queryParam
.
value
.
tplCode
=
''
;
queryParam
.
value
.
tplId
=
''
;
try
{
dataAllList
.
value
=
await
findUserRightForTpl
({
taskId
});
console
.
log
(
'获取数据:'
,
dataAllList
.
value
);
dataMap
.
value
=
dataAllList
.
value
.
reduce
((
result
,
item
)
=>
{
const
key
=
item
.
tp
;
if
(
!
result
[
key
])
{
result
[
key
]
=
[];
}
result
[
key
].
push
(
item
);
return
result
;
},
{}
as
Record
<
number
,
any
[]
>
);
dataList
.
value
=
dataMap
.
value
[
1
]
||
[];
}
catch
(
error
)
{
console
.
error
(
'初始化数据失败:'
,
error
);
}
};
// 初始化
iniData
(
116
);
defineExpose
({
iniData
,
});
</
script
>
<
style
>
/* 全屏弹窗样式 - 使用全局样式因为 antd modal 挂载在 body 上 */
.full-screen-modal
{
top
:
0
!important
;
padding-bottom
:
0
!important
;
}
.full-screen-modal
.ant-modal
{
top
:
0
!important
;
width
:
100%
!important
;
height
:
100vh
!important
;
margin
:
0
!important
;
padding-bottom
:
0
!important
;
}
.full-screen-modal
.ant-modal-content
{
height
:
100vh
;
display
:
flex
;
flex-direction
:
column
;
border-radius
:
0
;
}
.full-screen-modal
.ant-modal-header
{
flex-shrink
:
0
;
border-radius
:
0
;
padding
:
16px
24px
;
}
.full-screen-modal
.ant-modal-body
{
flex
:
1
;
overflow-y
:
auto
;
padding
:
20px
;
}
.full-screen-modal
.ant-modal-close
{
top
:
16px
;
right
:
16px
;
}
.full-screen-content
{
height
:
100%
;
width
:
100%
;
}
</
style
>
\ No newline at end of file
zrch-risk-client-39/src/views/baosong/flower/list/BaosongTaskList.vue
浏览文件 @
19686bd7
...
...
@@ -16,26 +16,45 @@
</a-dropdown>
</template>
<
template
#
action=
"{ record }"
>
<TableAction
:actions=
"getTableAction(record)"
:dropDownActions=
"getDropDownAction(record)"
/>
<TableAction
v-if=
"record.bpmStatus === null"
:actions=
"getTableAction(record)"
:dropDownActions=
"getDropDownAction(record)"
/>
<TableAction
v-else
:actions=
"getTableAction(record)"
/>
</
template
>
</BasicTable>
<BaosongTaskModal
@
register=
"registerModal"
@
success=
"handleSuccess"
/>
<BaosongAllocDrawer
ref=
"refAllocDrawer"
@
callback=
"handleSuccess"
/>
<FlowHistoryDrawer
@
register=
"refFlowHistoryDrawer"
/>
<BaosongTaskDrawer
ref=
"refTaskDrawer"
@
callback=
"handleSuccess"
/>
<task-assignee-drawer
@
register=
"registerAssigneeDrawer"
@
success=
"handlSendSuccess"
@
error=
"handleError"
/>
</div>
</template>
<
script
lang=
"ts"
setup
>
import
{
ref
,
computed
,
unref
}
from
'vue'
;
import
{
ref
}
from
'vue'
;
import
{
BasicTable
,
TableAction
}
from
'/@/components/Table'
;
import
{
useModal
}
from
'/@/components/Modal'
;
import
{
useListPage
}
from
'/@/hooks/system/useListPage'
;
import
BaosongTaskModal
from
'../form/BaosongTaskModal.vue'
;
import
{
columns
,
searchFormSchema
}
from
'../data/BaosongTask.data'
;
import
{
list
,
deleteOne
,
batchDelete
,
saveOrUpdate
}
from
'../api/BaosongTask.api'
;
import
BaosongAllocDrawer
from
'../form/BaosongAllocDrawer.vue'
;
import
{
definitionStartByDeployId
,
getNodesByTableName
}
from
"/@/components/Process/api/definition"
;
import
{
useDrawer
}
from
'/@/components/Drawer'
;
import
TaskAssigneeDrawer
from
'/@/views/common/TaskAssigneeDrawer.vue'
;
import
FlowHistoryDrawer
from
'/@/views/common/FlowHistoryDrawer.vue'
;
import
BaosongTaskDrawer
from
'/@/views/baosong/task/components/BaosongTaskDrawer.vue'
;
const
[
refFlowHistoryDrawer
,
{
openDrawer
}]
=
useDrawer
();
const
[
registerAssigneeDrawer
,
{
openDrawer
:
openAssigneeDrawer
}]
=
useDrawer
();
const
[
registerModal
,
{
openModal
}]
=
useModal
();
const
refAllocDrawer
=
ref
();
const
workflowNodes
=
ref
<
Recordable
[]
>
([]);
const
currentNodeIndex
=
ref
(
0
);
const
userType
=
ref
(
''
);
const
assignee
=
ref
(
''
);
const
dataId
=
ref
(
''
);
const
deployId
=
ref
(
''
);
const
currentNode
=
ref
<
Recordable
>
({});
const
formTableName
=
"baosong_task"
;
const
refTaskDrawer
=
ref
();
const
{
tableContext
}
=
useListPage
({
tableProps
:
{
...
...
@@ -50,7 +69,8 @@
showAdvancedButton
:
true
,
},
actionColumn
:
{
width
:
200
,
align
:
'left'
,
width
:
150
,
fixed
:
'right'
,
},
},
...
...
@@ -59,31 +79,27 @@
const
[
registerTable
,
{
reload
},
{
rowSelection
,
selectedRowKeys
}]
=
tableContext
;
function
handleAdd
()
{
openModal
(
true
,
{
isUpdate
:
false
,
showFooter
:
true
,
});
openModal
(
true
,
{
isUpdate
:
false
,
showFooter
:
true
});
}
function
handleAlloc
(
record
:
Recordable
)
{
refAllocDrawer
.
value
.
setIniData
(
record
);
}
const
handleDefinitionStart
=
async
(
data
)
=>
{
const
formData
=
{
dataId
:
data
.
id
,
dataName
:
'id'
};
const
startResRaw
=
await
definitionStartByDeployId
(
currentNode
.
value
.
deployId
||
''
,
formData
);
if
(
startResRaw
?.
instanceId
)
{
data
.
procInsId
=
startResRaw
.
instanceId
;
data
.
bpmStatus
=
0
;
data
.
bpmNodeId
=
currentNode
.
value
.
id
;
data
.
deployId
=
currentNode
.
value
.
deployId
;
await
saveOrUpdate
(
data
,
true
);
}
};
function
handleEdit
(
record
:
Recordable
)
{
openModal
(
true
,
{
record
,
isUpdate
:
true
,
showFooter
:
true
,
});
openModal
(
true
,
{
record
,
isUpdate
:
true
,
showFooter
:
true
});
}
function
handleDetail
(
record
:
Recordable
)
{
openModal
(
true
,
{
record
,
isUpdate
:
true
,
showFooter
:
false
,
});
openModal
(
true
,
{
record
,
isUpdate
:
true
,
showFooter
:
false
});
}
async
function
handleDelete
(
record
:
Recordable
)
{
...
...
@@ -99,33 +115,102 @@ function handleAlloc(record: Recordable) {
await
reload
();
}
function
handleShowHistory
(
record
)
{
openDrawer
(
true
,
{
procInsId
:
record
.
procInsId
,
dataId
:
record
.
id
,
deployId
:
record
.
deployId
,
});
};
const
handlSendSuccess
=
async
()
=>
{
await
handleSuccess
();
};
const
handleError
=
(
error
:
Error
)
=>
{
console
.
error
(
'任务分配失败:'
,
error
);
};
const
setNextNodeUser
=
async
()
=>
{
currentNodeIndex
.
value
++
;
const
nextNode
=
workflowNodes
.
value
[
currentNodeIndex
.
value
];
const
attributes
=
nextNode
?.
attributes
||
{};
const
userTypes
=
attributes
.
userType
||
[];
if
(
userTypes
.
length
>
0
)
{
userType
.
value
=
userTypes
[
0
].
value
||
''
;
if
(
userType
.
value
===
"role"
)
{
assignee
.
value
=
nextNode
.
candidateGroups
?.[
0
]?.
id
;
}
else
{
assignee
.
value
=
nextNode
.
assignee
;
}
}
};
const
handleDefinitionSend
=
async
(
data
:
Recordable
)
=>
{
workflowNodes
.
value
=
await
getNodesByTableName
(
formTableName
);
currentNode
.
value
=
workflowNodes
.
value
[
0
];
if
(
!
data
.
procInsId
)
{
await
handleDefinitionStart
(
data
)
}
dataId
.
value
=
data
.
id
;
deployId
.
value
=
currentNode
.
value
.
deployId
||
''
;
await
setNextNodeUser
();
openAssigneeDrawer
(
true
,
{
assignee
:
assignee
.
value
,
assigneeName
:
''
,
userType
:
userType
.
value
,
dataId
:
data
.
id
,
deployId
:
deployId
.
value
,
});
};
function
handleAlloc
(
record
:
Recordable
)
{
refTaskDrawer
.
value
.
setIniData
(
record
);
}
function
getTableAction
(
record
:
Recordable
)
{
return
[
{
label
:
'分配'
,
//disabled:record.sta>1,
onClick
:
handleAlloc
.
bind
(
null
,
record
),
},
{
label
:
'提交'
,
onClick
:
()
=>
emit
(
'sendWorkFlow'
,
record
),
label
:
'发起任务'
,
ifShow
:
record
.
bpmStatus
===
null
,
popConfirm
:
{
title
:
'是否确认发起任务'
,
confirm
:
()
=>
handleDefinitionSend
(
record
),
},
},
{
label
:
'发送任务'
,
ifShow
:
record
.
bpmStatus
===
"0"
,
popConfirm
:
{
title
:
'是否确认发起任务'
,
confirm
:
()
=>
handleDefinitionSend
(
record
),
},
},
{
label
:
'查看流程'
,
ifShow
:
record
.
bpmStatus
!==
null
,
onClick
:
()
=>
handleShowHistory
(
record
),
},
{
label
:
'待办'
,
onClick
:
()
=>
emit
(
'open-multi-form'
,
record
),
{
label
:
'归档'
,
ifShow
:
record
.
bpmStatus
===
"3"
,
onClick
:
()
=>
handleShowHistory
(
record
),
},
];
}
function
getDropDownAction
(
record
:
Recordable
)
{
return
[
{
label
:
'详情'
,
onClick
:
()
=>
handleDetail
(
record
),
},
{
label
:
'编辑'
,
onClick
:
()
=>
handleEdit
(
record
),
},
{
label
:
'详情'
,
onClick
:
()
=>
handleDetail
(
record
)
},
{
label
:
'编辑'
,
onClick
:
()
=>
handleEdit
(
record
)
},
{
label
:
'删除'
,
popConfirm
:
{
...
...
@@ -136,32 +221,23 @@ function handleAlloc(record: Recordable) {
];
}
const
emit
=
defineEmits
([
'sendWorkFlow'
,
'open-multi-form'
]);
const
handleUpdate
=
async
(
dataId
:
string
,
flowNode
:
Recordable
)
=>
{
const
record
=
{
bpmNodeId
:
flowNode
.
id
,
deployId
:
flowNode
.
deployId
,
bpmStatus
:
2
,
id
:
dataId
,
};
await
saveOrUpdate
(
record
,
true
);
await
handleSuccess
();
};
const
handleStartUpdate
=
async
(
flowData
:
Recordable
)
=>
{
const
record
=
{
procInsId
:
flowData
.
procInsId
,
id
:
flowData
.
dataId
,
bpmStatus
:
0
,
};
await
saveOrUpdate
(
record
,
true
);
await
handleSuccess
();
};
defineExpose
({
handleUpdate
,
handleStartUpdate
,
handleUpdate
:
async
(
dataId
:
string
,
flowNode
:
Recordable
)
=>
{
await
saveOrUpdate
({
id
:
dataId
,
bpmNodeId
:
flowNode
.
id
,
deployId
:
flowNode
.
deployId
,
bpmStatus
:
2
,
},
true
);
await
handleSuccess
();
},
handleStartUpdate
:
async
(
flowData
:
Recordable
)
=>
{
await
saveOrUpdate
({
id
:
flowData
.
dataId
,
procInsId
:
flowData
.
procInsId
,
bpmStatus
:
0
,
},
true
);
await
handleSuccess
();
},
});
</
script
>
\ No newline at end of file
zrch-risk-client-39/src/views/baosong/flower/list/BaosongTaskMainList.vue
0 → 100644
浏览文件 @
19686bd7
<
template
>
<div>
<BasicTable
@
register=
"registerTable"
:rowSelection=
"rowSelection"
>
<template
#
tableTitle
>
<a-button
type=
"primary"
@
click=
"handleAdd"
preIcon=
"ant-design:plus-outlined"
>
新增
</a-button>
<a-dropdown
v-if=
"selectedRowKeys.length > 0"
>
<template
#
overlay
>
<a-menu>
<a-menu-item
key=
"1"
@
click=
"batchHandleDelete"
>
<Icon
icon=
"ant-design:delete-outlined"
/>
删除
</a-menu-item>
</a-menu>
</
template
>
<a-button>
批量操作
<Icon
icon=
"mdi:chevron-down"
/></a-button>
</a-dropdown>
</template>
<
template
#
action=
"{ record }"
>
<TableAction
:actions=
"getTableAction(record)"
/>
</
template
>
</BasicTable>
<BaosongTaskModal
@
register=
"registerModal"
@
success=
"handleSuccess"
/>
<BaosongAllocDrawer
ref=
"refAllocDrawer"
@
callback=
"handleSuccess"
/>
</div>
</template>
<
script
lang=
"ts"
setup
>
import
{
ref
,
computed
,
unref
}
from
'vue'
;
import
{
BasicTable
,
TableAction
}
from
'/@/components/Table'
;
import
{
useModal
}
from
'/@/components/Modal'
;
import
{
useListPage
}
from
'/@/hooks/system/useListPage'
;
import
BaosongTaskModal
from
'../form/BaosongTaskModal.vue'
;
import
{
columns
,
searchFormSchema
}
from
'../data/BaosongTask.data'
;
import
{
list
,
deleteOne
,
batchDelete
,
saveOrUpdate
}
from
'../api/BaosongTask.api'
;
import
BaosongAllocDrawer
from
'../form/BaosongAllocDrawer.vue'
;
const
[
registerModal
,
{
openModal
}]
=
useModal
();
const
refAllocDrawer
=
ref
();
const
props
=
defineProps
({
todoList
:
{
type
:
Array
as
()
=>
Recordable
[],
default
:
()
=>
[]
},
})
const
{
tableContext
}
=
useListPage
({
tableProps
:
{
title
:
'任务表'
,
api
:
list
,
columns
,
canResize
:
false
,
formConfig
:
{
labelWidth
:
'30%'
,
schemas
:
searchFormSchema
,
autoSubmitOnEnter
:
true
,
showAdvancedButton
:
true
,
},
beforeFetch
(
params
)
{
params
[
'bpmStatus'
]
=
"2"
;
params
[
'todoList'
]
=
props
.
todoList
;
return
params
;
},
actionColumn
:
{
width
:
200
,
fixed
:
'right'
,
},
},
});
const
[
registerTable
,
{
reload
},
{
rowSelection
,
selectedRowKeys
}]
=
tableContext
;
function
handleAdd
()
{
openModal
(
true
,
{
isUpdate
:
false
,
showFooter
:
true
,
});
}
function
handleAlloc
(
record
:
Recordable
)
{
refAllocDrawer
.
value
.
setIniData
(
record
);
}
function
handleEdit
(
record
:
Recordable
)
{
openModal
(
true
,
{
record
,
isUpdate
:
true
,
showFooter
:
true
,
});
}
function
handleDetail
(
record
:
Recordable
)
{
openModal
(
true
,
{
record
,
isUpdate
:
true
,
showFooter
:
false
,
});
}
async
function
handleDelete
(
record
:
Recordable
)
{
await
deleteOne
({
id
:
record
.
id
},
handleSuccess
);
}
async
function
batchHandleDelete
()
{
await
batchDelete
({
ids
:
selectedRowKeys
.
value
},
handleSuccess
);
}
async
function
handleSuccess
()
{
selectedRowKeys
.
value
=
[];
await
reload
();
}
function
getTableAction
(
record
:
Recordable
)
{
return
[
// {
// label: '分配',
// onClick: handleAlloc.bind(null, record),
// },
// {
// label: '提交',
// onClick: () => emit('sendWorkFlow', record),
// },
{
label
:
'处理'
,
onClick
:
()
=>
emit
(
'open-multi-form'
,
record
),
},
];
}
function
getDropDownAction
(
record
:
Recordable
)
{
return
[
{
label
:
'详情'
,
onClick
:
()
=>
handleDetail
(
record
),
},
{
label
:
'编辑'
,
onClick
:
()
=>
handleEdit
(
record
),
},
{
label
:
'删除'
,
popConfirm
:
{
title
:
'是否确认删除'
,
confirm
:
()
=>
handleDelete
(
record
),
},
},
];
}
const
emit
=
defineEmits
([
'sendWorkFlow'
,
'open-multi-form'
]);
const
handleUpdate
=
async
(
dataId
:
string
,
flowNode
:
Recordable
)
=>
{
const
record
=
{
bpmNodeId
:
flowNode
.
id
,
deployId
:
flowNode
.
deployId
,
bpmStatus
:
2
,
id
:
dataId
,
};
await
saveOrUpdate
(
record
,
true
);
await
handleSuccess
();
};
const
handleStartUpdate
=
async
(
flowData
:
Recordable
)
=>
{
const
record
=
{
procInsId
:
flowData
.
procInsId
,
id
:
flowData
.
dataId
,
bpmStatus
:
0
,
};
await
saveOrUpdate
(
record
,
true
);
await
handleSuccess
();
};
defineExpose
({
handleUpdate
,
handleStartUpdate
,
});
</
script
>
\ No newline at end of file
zrch-risk-client-39/src/views/baosong/task/BaosongTask.api.ts
浏览文件 @
19686bd7
...
...
@@ -16,10 +16,8 @@ enum Api {
listForFillData
=
'/baosong/baosongTask/listForFillData'
,
importData
=
'/baosong/baosongTask/importData'
,
archiveList
=
'/baosong/baosongTask/archiveList'
,
}
/**
* 导出api
...
...
zrch-risk-client-39/src/views/common/FlowMainFormList.vue
0 → 100644
浏览文件 @
19686bd7
<
template
>
<div
class=
"app-container"
>
<vxe-grid
ref=
"xGrid"
v-bind=
"gridOptions"
@
checkbox-change=
"onSelectChange"
@
checkbox-all=
"onSelectChange"
>
<!-- 搜索表单插槽 -->
<template
#
flowNameItem=
"
{ data }">
<vxe-input
v-model=
"data.procDefName"
placeholder=
"请输入流程名称"
clearable
@
keyup
.
enter=
"searchEvent"
></vxe-input>
</
template
>
<
template
#
taskNameItem=
"{ data }"
>
<vxe-input
v-model=
"data.taskName"
placeholder=
"请输入任务名称"
clearable
@
keyup
.
enter=
"searchEvent"
></vxe-input>
</
template
>
<
template
#
startTimeItem=
"{ data }"
>
<vxe-input
type=
"date"
v-model=
"data.startTime"
placeholder=
"请选择开始时间"
clearable
></vxe-input>
</
template
>
<
template
#
actionItem
>
<vxe-button
status=
"primary"
icon=
"vxe-icon-search"
@
click=
"searchEvent"
>
搜索
</vxe-button>
<vxe-button
icon=
"vxe-icon-refresh"
@
click=
"resetEvent"
>
重置
</vxe-button>
</
template
>
<!-- 表格列插槽 -->
<
template
#
procDefVersion_default=
"{ row }"
>
<span
class=
"version-tag"
>
v
{{
row
.
procDefVersion
}}
</span>
</
template
>
<
template
#
startUser_default=
"{ row }"
>
<div
class=
"user-info"
>
<span
class=
"user-name"
>
{{
row
.
startUserName
}}
</span>
<span
class=
"dept-tag"
>
{{
row
.
startDeptName
}}
</span>
</div>
</
template
>
<
template
#
action_default=
"{ row }"
>
<vxe-button
type=
"text"
icon=
"vxe-icon-edit"
status=
"primary"
@
click=
"handleProcess(row)"
>
处理
</vxe-button>
</
template
>
</vxe-grid>
<div
v-if=
"isShowDrawer"
>
<a-drawer
destroyOnClose
v-model:open=
"isShowDrawer"
class=
"custom-class"
root-class-name=
"root-class-name"
:root-style=
"{ color: 'blue' }"
title=
"待办任务"
placement=
"right"
width=
"90%"
style=
"margin: 0px; padding: 0px"
>
<!-- <template #extra>
<div style="float: right">
<a-tag style="margin-left: 10px">发起人:{{ startUser }}</a-tag>
<a-tag>任务节点:{{ taskName }}</a-tag>
</div>
</template> -->
<TodoIndex
v-if=
"isShowDrawer"
ref=
"refTodoIndex"
@
callback=
"handleSuccess"
/>
</a-drawer>
</div>
</div>
</template>
<
script
lang=
"ts"
setup
>
import
{
reactive
,
ref
,
onMounted
,
nextTick
}
from
'vue'
;
import
{
message
}
from
'ant-design-vue'
;
import
type
{
VxeGridProps
,
VxeGridInstance
}
from
'vxe-table'
;
import
{
todoList
,
delDeployment
}
from
'/@/components/Process/api/todo'
;
import
XEUtils
from
'xe-utils'
;
import
TodoIndex
from
'./components/TodoIndex.vue'
;
const
loading
=
ref
(
false
);
const
isShowDrawer
=
ref
(
false
);
const
refTodoIndex
=
ref
();
const
startUser
=
ref
();
const
taskName
=
ref
();
interface
QueryParams
{
pageNum
:
number
;
pageSize
:
number
;
procDefName
?:
string
;
taskName
?:
string
;
startTime
?:
string
;
}
const
queryParams
=
reactive
<
QueryParams
>
({
pageNum
:
1
,
pageSize
:
10
,
procDefName
:
undefined
,
taskName
:
undefined
,
startTime
:
undefined
,
});
interface
TodoItem
{
taskId
:
string
;
procDefName
:
string
;
taskName
:
string
;
procDefVersion
:
number
;
startUserName
:
string
;
startDeptName
:
string
;
createTime
:
string
;
procInsId
:
string
;
executionId
:
string
;
deployId
:
string
;
}
const
defaultData
=
reactive
({
procDefName
:
''
,
taskName
:
''
,
startTime
:
''
,
});
const
selectedRowKeys
=
ref
<
string
[]
>
([]);
const
selectRecords
=
ref
<
TodoItem
[]
>
([]);
const
multiple
=
ref
(
true
);
const
xGrid
=
ref
<
VxeGridInstance
>
();
const
gridOptions
=
reactive
<
VxeGridProps
<
any
>>
({
loading
:
loading
.
value
,
showOverflow
:
true
,
border
:
true
,
rowConfig
:
{
keyField
:
'taskId'
,
isHover
:
true
,
},
columnConfig
:
{
resizable
:
true
,
},
pagerConfig
:
{
enabled
:
true
,
pageSize
:
10
,
pageSizes
:
[
10
,
20
,
50
,
100
],
layouts
:
[
'PrevJump'
,
'PrevPage'
,
'Number'
,
'NextPage'
,
'NextJump'
,
'Sizes'
,
'FullJump'
,
'Total'
],
},
checkboxConfig
:
{
highlight
:
true
,
range
:
true
,
},
layouts
:
[
'Top'
,
'Form'
,
'Toolbar'
,
'Table'
,
'Bottom'
,
'Pager'
],
formConfig
:
{
data
:
XEUtils
.
clone
(
defaultData
,
true
),
items
:
[
{
field
:
'procDefName'
,
title
:
'流程名称'
,
span
:
6
,
itemRender
:
{},
slots
:
{
default
:
'flowNameItem'
}
},
{
field
:
'taskName'
,
title
:
'任务名称'
,
span
:
6
,
itemRender
:
{},
slots
:
{
default
:
'taskNameItem'
}
},
{
field
:
'startTime'
,
title
:
'开始时间'
,
span
:
6
,
itemRender
:
{},
slots
:
{
default
:
'startTimeItem'
}
},
{
span
:
6
,
align
:
'center'
,
itemRender
:
{},
slots
:
{
default
:
'actionItem'
}
},
],
},
proxyConfig
:
{
response
:
{
result
:
'result'
,
total
:
'page.total'
,
},
ajax
:
{
query
:
({
page
})
=>
{
return
findPageList
(
page
.
currentPage
,
page
.
pageSize
);
},
},
},
columns
:
[
{
type
:
'checkbox'
,
width
:
60
,
fixed
:
'left'
},
{
type
:
'seq'
,
width
:
70
,
fixed
:
'left'
},
{
field
:
'taskId'
,
title
:
'任务编号'
,
minWidth
:
120
,
showOverflow
:
true
},
{
field
:
'procDefName'
,
title
:
'流程名称'
,
minWidth
:
160
,
showOverflow
:
true
},
{
field
:
'taskName'
,
title
:
'当前节点'
,
minWidth
:
140
,
showOverflow
:
true
},
{
field
:
'taskType'
,
title
:
'节点类型'
,
minWidth
:
140
,
showOverflow
:
true
},
{
field
:
'procDefVersion'
,
title
:
'流程版本'
,
width
:
100
,
align
:
'center'
,
slots
:
{
default
:
'procDefVersion_default'
}
},
{
field
:
'startUser'
,
title
:
'流程发起人'
,
minWidth
:
180
,
align
:
'center'
,
slots
:
{
default
:
'startUser_default'
}
},
{
field
:
'createTime'
,
title
:
'接收时间'
,
width
:
180
,
align
:
'center'
},
{
title
:
'操作'
,
width
:
120
,
fixed
:
'right'
,
align
:
'center'
,
slots
:
{
default
:
'action_default'
},
},
],
});
const
findPageList
=
async
(
currentPage
:
number
,
pageSize
:
number
)
=>
{
queryParams
.
pageNum
=
currentPage
;
queryParams
.
pageSize
=
pageSize
;
if
(
gridOptions
.
formConfig
?.
data
)
{
queryParams
.
procDefName
=
gridOptions
.
formConfig
.
data
.
procDefName
;
queryParams
.
taskName
=
gridOptions
.
formConfig
.
data
.
taskName
;
queryParams
.
startTime
=
gridOptions
.
formConfig
.
data
.
startTime
;
}
try
{
loading
.
value
=
true
;
const
retData
=
await
todoList
(
queryParams
);
return
{
page
:
{
total
:
retData
.
total
,
},
result
:
retData
.
records
,
};
}
catch
(
error
)
{
console
.
error
(
'查询数据失败:'
,
error
);
message
.
error
(
'查询数据失败'
);
return
{
page
:
{
total
:
0
},
result
:
[],
};
}
finally
{
loading
.
value
=
false
;
}
};
const
searchEvent
=
async
()
=>
{
queryParams
.
pageNum
=
1
;
if
(
xGrid
.
value
)
{
await
xGrid
.
value
.
commitProxy
(
'query'
);
}
};
const
resetEvent
=
()
=>
{
if
(
gridOptions
.
formConfig
)
{
gridOptions
.
formConfig
.
data
=
XEUtils
.
clone
(
defaultData
,
true
);
}
searchEvent
();
};
const
onSelectChange
=
()
=>
{
if
(
xGrid
.
value
)
{
const
checkedRecords
=
xGrid
.
value
.
getCheckboxRecords
();
selectRecords
.
value
=
checkedRecords
;
selectedRowKeys
.
value
=
checkedRecords
.
map
((
item
)
=>
item
.
taskId
);
multiple
.
value
=
!
selectedRowKeys
.
value
.
length
;
}
};
const
handleProcess
=
async
(
row
)
=>
{
isShowDrawer
.
value
=
true
;
startUser
.
value
=
row
.
startUserName
;
taskName
.
value
=
row
.
taskName
;
await
nextTick
(()
=>
{
if
(
refTodoIndex
.
value
)
{
refTodoIndex
.
value
.
iniData
(
row
);
}
else
{
isShowDrawer
.
value
=
false
;
}
});
};
const
handleSuccess
=
async
()
=>
{
isShowDrawer
.
value
=
false
;
await
searchEvent
();
};
</
script
>
<
style
scoped
>
.app-container
{
padding
:
16px
;
width
:
100%
;
height
:
100%
;
}
.user-info
{
display
:
flex
;
align-items
:
center
;
justify-content
:
center
;
gap
:
8px
;
flex-wrap
:
nowrap
;
}
.user-name
{
font-weight
:
500
;
white-space
:
nowrap
;
}
.dept-tag
{
background
:
#f0f0f0
;
color
:
#666
;
padding
:
2px
6px
;
border-radius
:
4px
;
font-size
:
12px
;
white-space
:
nowrap
;
}
.version-tag
{
background
:
#1890ff
;
color
:
white
;
padding
:
2px
8px
;
border-radius
:
4px
;
font-size
:
12px
;
}
/* Vxe Grid 样式调整 */
:deep
(
.vxe-form--wrapper
)
{
background
:
#fafafa
;
padding
:
16px
;
border-radius
:
4px
;
border
:
1px
solid
#e8e8e8
;
margin-bottom
:
16px
;
}
:deep
(
.vxe-form--item-title
)
{
font-weight
:
500
;
color
:
#333
;
}
:deep
(
.vxe-grid--wrapper
)
{
font-family
:
inherit
;
}
:deep
(
.vxe-grid--header
)
{
background-color
:
#fafafa
;
}
:deep
(
.vxe-grid--body
)
{
background-color
:
#fff
;
}
:deep
(
.vxe-cell
)
{
padding
:
8px
4px
;
}
:deep
(
.vxe-toolbar
)
{
background
:
transparent
;
padding
:
8px
0
;
margin-bottom
:
8px
;
}
:deep
(
.vxe-table--render-wrapper
)
{
border-radius
:
4px
;
}
</
style
>
zrch-risk-client-39/src/views/common/TaskAssigneeDrawer.vue
浏览文件 @
19686bd7
...
...
@@ -153,7 +153,9 @@ const handleConfirm = async () => {
taskId
:
myTaskFlow
.
taskId
,
dataId
:
dataId
.
value
,
comment
:
''
,
values
:
{
approval
:
assigneeId
.
value
,
approvalType
:
localUserType
.
value
},
values
:
{
approval
:
assigneeId
.
value
,
approvalType
:
localUserType
.
value
},
})
}
}
...
...
zrch-risk-client-39/src/views/common/WorkFlowFormDrawer.vue
浏览文件 @
19686bd7
...
...
@@ -199,7 +199,10 @@ watch(() => props.externalFormData, (newData) => {
}
},
{
deep
:
true
})
onMounted
(()
=>
{
resetFormData
()
})
onMounted
(()
=>
{
showHistoryVisible
.
value
=
props
.
showHistoryFormData
resetFormData
()
})
defineExpose
({
resetFormData
,
...
...
zrch-risk-server-39/jeecg-module-system/jeecg-module-stm/src/main/java/org/jeecg/modules/stm/baosong/controller/BaosongTaskController.java
浏览文件 @
19686bd7
...
...
@@ -2,6 +2,7 @@ package org.jeecg.modules.stm.baosong.controller;
import
java.util.*
;
import
dev.langchain4j.internal.Utils
;
import
jakarta.servlet.http.HttpServletRequest
;
import
jakarta.servlet.http.HttpServletResponse
;
import
org.jeecg.common.api.vo.Result
;
...
...
@@ -15,6 +16,9 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import
lombok.extern.slf4j.Slf4j
;
import
org.jeecg.common.system.base.controller.JeecgController
;
import
org.jeecg.modules.stm.my.entity.MyTaskFlow
;
import
org.jeecg.modules.stm.my.service.IMyTaskFlowService
;
import
org.jeecg.modules.stm.problem.entity.StProblemCheck
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.*
;
import
org.springframework.web.servlet.ModelAndView
;
...
...
@@ -45,6 +49,8 @@ public class BaosongTaskController extends JeecgController<BaosongTask, IBaosong
private
IBaosongTaskRecordService
baosongTaskRecordService
;
@Autowired
private
IBaosongTaskReviewService
baosongTaskReviewService
;
@Autowired
private
IMyTaskFlowService
myTaskFlowService
;
/**
* 分页列表查询
...
...
@@ -65,6 +71,20 @@ public class BaosongTaskController extends JeecgController<BaosongTask, IBaosong
QueryWrapper
<
BaosongTask
>
queryWrapper
=
QueryGenerator
.
initQueryWrapper
(
baosongTask
,
req
.
getParameterMap
());
queryWrapper
.
ne
(
"sta"
,
9
);
Page
<
BaosongTask
>
page
=
new
Page
<
BaosongTask
>(
pageNo
,
pageSize
);
MyTaskFlow
myTaskFlow
=
new
MyTaskFlow
();
myTaskFlow
.
setFormTableName
(
"baosong_task"
);
if
(!
Utils
.
isNullOrEmpty
(
baosongTask
.
getBpmStatus
())){
String
bpmStatus
=
baosongTask
.
getBpmStatus
();
if
(
bpmStatus
.
equals
(
"2"
))
{
if
(
Utils
.
isNullOrEmpty
(
baosongTask
.
getTodoList
()))
{
return
Result
.
OK
();
}
queryWrapper
.
in
(
"proc_ins_id"
,
baosongTask
.
getTodoList
());
}
}
IPage
<
BaosongTask
>
pageList
=
baosongTaskService
.
page
(
page
,
queryWrapper
);
setStaValue
(
baosongTask
,
pageList
.
getRecords
());
return
Result
.
OK
(
pageList
);
...
...
zrch-risk-server-39/jeecg-module-system/jeecg-module-stm/src/main/java/org/jeecg/modules/stm/baosong/entity/BaosongTask.java
浏览文件 @
19686bd7
...
...
@@ -101,7 +101,7 @@ public class BaosongTask implements Serializable {
// 当前用户需要处理的工作流 实例ID
@TableField
(
exist
=
false
)
private
java
.
util
.
List
todo
l
ist
;
private
java
.
util
.
List
todo
L
ist
;
/**流程状态*/
private
java
.
lang
.
String
bpmStatus
;
/**部署ID*/
...
...
@@ -114,4 +114,7 @@ public class BaosongTask implements Serializable {
/**UID*/
private
java
.
lang
.
String
uid
;
/**flowtaskName*/
private
java
.
lang
.
String
flowtaskName
;
}
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论