Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
Z
zrch-risk-39
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
Administrator
zrch-risk-39
Commits
893f18de
提交
893f18de
authored
4月 17, 2026
作者:
liuluyu
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
更新问题归档表单
上级
77f061e6
隐藏空白字符变更
内嵌
并排
正在显示
5 个修改的文件
包含
523 行增加
和
257 行删除
+523
-257
StProblemCheckArchive.data.ts
...iews/project/problemArchive/StProblemCheckArchive.data.ts
+107
-113
StProblemCheckArchiveList.vue
...iews/project/problemArchive/StProblemCheckArchiveList.vue
+202
-140
ExecutionDetailModal.vue
...roject/problemArchive/components/ExecutionDetailModal.vue
+102
-0
RectifyPlanModal.vue
...ws/project/problemArchive/components/RectifyPlanModal.vue
+110
-0
StProblemCheck.data.ts
...-39/src/views/project/problemCheck/StProblemCheck.data.ts
+2
-4
没有找到文件。
zrch-risk-client-39/src/views/project/problemArchive/StProblemCheckArchive.data.ts
浏览文件 @
893f18de
import
{
BasicColumn
}
from
'/@/components/Table'
;
import
{
FormSchema
}
from
'/@/components/Table'
;
import
{
BasicColumn
}
from
'/@/components/Table'
;
import
{
FormSchema
}
from
'/@/components/Table'
;
import
{
render
}
from
'/@/utils/common/renderUtils'
;
import
{
h
}
from
'vue'
;
//列表数据
export
const
columns
:
BasicColumn
[]
=
[
...
...
@@ -10,36 +11,7 @@ export const columns: BasicColumn[] = [
dataIndex
:
'problemNo'
,
resizable
:
true
,
ifShow
:
true
,
width
:
100
,
sorter
:
true
,
},
{
title
:
'项目分类'
,
align
:
'center'
,
dataIndex
:
'projectCategory'
,
resizable
:
true
,
width
:
100
,
sorter
:
true
,
customRender
:
({
text
})
=>
{
return
render
.
renderDict
(
text
,
'project_category'
);
},
},
{
title
:
'问题来源'
,
align
:
'center'
,
dataIndex
:
'problemSource'
,
resizable
:
true
,
width
:
150
,
},
{
title
:
'所属领域'
,
align
:
'center'
,
dataIndex
:
'domain'
,
width
:
150
,
resizable
:
true
,
customRender
:
({
text
})
=>
{
return
render
.
renderDict
(
text
,
'rate_domain'
);
},
sorter
:
true
,
},
{
...
...
@@ -47,34 +19,57 @@ export const columns: BasicColumn[] = [
align
:
'center'
,
dataIndex
:
'problemDes'
,
resizable
:
true
,
ifShow
:
false
,
ifShow
:
true
,
width
:
250
,
customRender
:
({
text
})
=>
{
// 如果问题描述过长,进行截断显示
if
(
text
&&
text
.
length
>
30
)
{
return
`
${
text
.
substring
(
0
,
30
)}
...`
;
}
return
text
;
},
},
{
title
:
'
风险等级
'
,
title
:
'
整改计划
'
,
align
:
'center'
,
dataIndex
:
'riskLevel'
,
width
:
100
,
dataIndex
:
'rectifyPlan'
,
resizable
:
true
,
customRender
:
({
text
})
=>
{
return
render
.
renderDict
(
text
,
'risk_level'
);
width
:
150
,
customRender
:
({
record
})
=>
{
return
{
children
:
h
(
'a-button'
,
{
type
:
'link'
,
onClick
:
()
=>
record
.
onViewDetail
(
'rectifyPlan'
),
},
'查看详情'
),
};
},
},
{
title
:
'
整改状态
'
,
title
:
'
执行情况
'
,
align
:
'center'
,
dataIndex
:
'bpmStatus'
,
width
:
100
,
dataIndex
:
'execRemark'
,
resizable
:
true
,
customRender
:
({
text
})
=>
{
return
render
.
renderDict
(
text
,
'bpm_status'
);
width
:
150
,
customRender
:
({
record
})
=>
{
return
{
children
:
h
(
'a-button'
,
{
type
:
'link'
,
onClick
:
()
=>
record
.
onViewDetail
(
'execRemark'
),
},
'查看详情'
),
};
},
sorter
:
true
,
},
];
//查询数据
export
const
searchFormSchema
:
FormSchema
[]
=
[
];
export
const
searchFormSchema
:
FormSchema
[]
=
[];
//表单数据
export
const
formSchema
:
FormSchema
[]
=
[
{
...
...
@@ -107,9 +102,9 @@ export const formSchema: FormSchema[] = [
field
:
'findingTime'
,
component
:
'DatePicker'
,
componentProps
:
{
showTime
:
true
,
valueFormat
:
'YYYY-MM-DD HH:mm:ss'
},
showTime
:
true
,
valueFormat
:
'YYYY-MM-DD HH:mm:ss'
,
},
},
{
label
:
'问题来源'
,
...
...
@@ -117,7 +112,7 @@ export const formSchema: FormSchema[] = [
component
:
'Input'
,
},
{
label
:
'严重程度
;0001 不严重 0002 一般 0003 严重 0004 非常严重
'
,
label
:
'严重程度'
,
field
:
'severity'
,
component
:
'Input'
,
},
...
...
@@ -137,7 +132,7 @@ export const formSchema: FormSchema[] = [
component
:
'Input'
,
},
{
label
:
'是否整改
: 0-否 1-是
'
,
label
:
'是否整改'
,
field
:
'isRectified'
,
component
:
'Input'
,
},
...
...
@@ -166,7 +161,7 @@ export const formSchema: FormSchema[] = [
field
:
'planStartDate'
,
component
:
'DatePicker'
,
componentProps
:
{
valueFormat
:
'YYYY-MM-DD'
valueFormat
:
'YYYY-MM-DD'
,
},
},
{
...
...
@@ -179,7 +174,7 @@ export const formSchema: FormSchema[] = [
field
:
'planEndDate'
,
component
:
'DatePicker'
,
componentProps
:
{
valueFormat
:
'YYYY-MM-DD'
valueFormat
:
'YYYY-MM-DD'
,
},
},
{
...
...
@@ -197,7 +192,7 @@ export const formSchema: FormSchema[] = [
field
:
'execStartDate'
,
component
:
'DatePicker'
,
componentProps
:
{
valueFormat
:
'YYYY-MM-DD'
valueFormat
:
'YYYY-MM-DD'
,
},
},
{
...
...
@@ -205,7 +200,7 @@ export const formSchema: FormSchema[] = [
field
:
'execEndDate'
,
component
:
'DatePicker'
,
componentProps
:
{
valueFormat
:
'YYYY-MM-DD'
valueFormat
:
'YYYY-MM-DD'
,
},
},
{
...
...
@@ -243,9 +238,9 @@ export const formSchema: FormSchema[] = [
field
:
'createdTime'
,
component
:
'DatePicker'
,
componentProps
:
{
showTime
:
true
,
valueFormat
:
'YYYY-MM-DD HH:mm:ss'
},
showTime
:
true
,
valueFormat
:
'YYYY-MM-DD HH:mm:ss'
,
},
},
{
label
:
'更新人'
,
...
...
@@ -257,12 +252,12 @@ export const formSchema: FormSchema[] = [
field
:
'updatedTime'
,
component
:
'DatePicker'
,
componentProps
:
{
showTime
:
true
,
valueFormat
:
'YYYY-MM-DD HH:mm:ss'
},
showTime
:
true
,
valueFormat
:
'YYYY-MM-DD HH:mm:ss'
,
},
},
{
label
:
'
0=未 1=
接收'
,
label
:
'
是否
接收'
,
field
:
'isReceive'
,
component
:
'InputNumber'
,
},
...
...
@@ -291,62 +286,62 @@ export const formSchema: FormSchema[] = [
field
:
'receivestatus'
,
component
:
'Input'
,
},
// TODO 主键隐藏字段,目前写死为ID
{
label
:
''
,
field
:
'id'
,
component
:
'Input'
,
show
:
false
},
// TODO 主键隐藏字段,目前写死为ID
{
label
:
''
,
field
:
'id'
,
component
:
'Input'
,
show
:
false
,
},
];
// 高级查询数据
export
const
superQuerySchema
=
{
problemNo
:
{
title
:
'编号'
,
order
:
0
,
view
:
'text'
,
type
:
'string'
,
},
projectCategory
:
{
title
:
'projectCategory'
,
order
:
1
,
view
:
'text'
,
type
:
'string'
,
},
problemItem
:
{
title
:
'类别'
,
order
:
2
,
view
:
'text'
,
type
:
'string'
,
},
problemDes
:
{
title
:
'问题描述'
,
order
:
3
,
view
:
'textarea'
,
type
:
'string'
,
},
findUser
:
{
title
:
'发现人'
,
order
:
4
,
view
:
'text'
,
type
:
'string'
,
},
findingTime
:
{
title
:
'发现时间'
,
order
:
5
,
view
:
'datetime'
,
type
:
'string'
,
},
problemSource
:
{
title
:
'问题来源'
,
order
:
6
,
view
:
'text'
,
type
:
'string'
,
},
severity
:
{
title
:
'严重程度;0001 不严重 0002 一般 0003 严重 0004 非常严重'
,
order
:
7
,
view
:
'text'
,
type
:
'string'
,
},
domain
:
{
title
:
'领域'
,
order
:
8
,
view
:
'text'
,
type
:
'string'
,
},
headDepCode
:
{
title
:
'负责部门'
,
order
:
9
,
view
:
'text'
,
type
:
'string'
,
},
headUserId
:
{
title
:
'负责人'
,
order
:
10
,
view
:
'text'
,
type
:
'string'
,
},
isRectified
:
{
title
:
'是否整改: 0-否 1-是'
,
order
:
11
,
view
:
'text'
,
type
:
'string'
,
},
rectifyStatus
:
{
title
:
'整改状态'
,
order
:
12
,
view
:
'text'
,
type
:
'string'
,
},
riskLevel
:
{
title
:
'风险等级'
,
order
:
13
,
view
:
'number'
,
type
:
'number'
,
},
rectifyCycle
:
{
title
:
'整改周期'
,
order
:
14
,
view
:
'number'
,
type
:
'number'
,
},
rectifyPlan
:
{
title
:
'整改方案'
,
order
:
15
,
view
:
'textarea'
,
type
:
'string'
,
},
planStartDate
:
{
title
:
'计划开始时间'
,
order
:
16
,
view
:
'date'
,
type
:
'string'
,
},
causeAnalysis
:
{
title
:
'成因分析'
,
order
:
17
,
view
:
'text'
,
type
:
'string'
,
},
planEndDate
:
{
title
:
'计划结束时间'
,
order
:
18
,
view
:
'date'
,
type
:
'string'
,
},
execDepCode
:
{
title
:
'执行部门'
,
order
:
19
,
view
:
'text'
,
type
:
'string'
,
},
execUserId
:
{
title
:
'执行人'
,
order
:
20
,
view
:
'text'
,
type
:
'string'
,
},
execStartDate
:
{
title
:
'整改开始时间'
,
order
:
21
,
view
:
'date'
,
type
:
'string'
,
},
execEndDate
:
{
title
:
'整改结束时间'
,
order
:
22
,
view
:
'date'
,
type
:
'string'
,
},
execRemark
:
{
title
:
'整改落实情况'
,
order
:
23
,
view
:
'textarea'
,
type
:
'string'
,
},
reviewComment
:
{
title
:
'审核意见'
,
order
:
24
,
view
:
'textarea'
,
type
:
'string'
,
},
bpmNodeId
:
{
title
:
'流程节点顺序号'
,
order
:
25
,
view
:
'text'
,
type
:
'string'
,
},
bpmStatus
:
{
title
:
'流程状态'
,
order
:
26
,
view
:
'text'
,
type
:
'string'
,
},
deployId
:
{
title
:
'部署ID'
,
order
:
27
,
view
:
'text'
,
type
:
'string'
,
},
createdUser
:
{
title
:
'创建人'
,
order
:
28
,
view
:
'text'
,
type
:
'string'
,
},
createdTime
:
{
title
:
'创建时间'
,
order
:
29
,
view
:
'datetime'
,
type
:
'string'
,
},
updatedUser
:
{
title
:
'更新人'
,
order
:
30
,
view
:
'text'
,
type
:
'string'
,
},
updatedTime
:
{
title
:
'更新时间'
,
order
:
31
,
view
:
'datetime'
,
type
:
'string'
,
},
isReceive
:
{
title
:
'0=未 1=接收'
,
order
:
32
,
view
:
'number'
,
type
:
'number'
,
},
programme
:
{
title
:
'programme'
,
order
:
33
,
view
:
'text'
,
type
:
'string'
,
},
strategy
:
{
title
:
'strategy'
,
order
:
34
,
view
:
'text'
,
type
:
'string'
,
},
caNo
:
{
title
:
'caNo'
,
order
:
35
,
view
:
'number'
,
type
:
'number'
,
},
headUserCode
:
{
title
:
'headUserCode'
,
order
:
36
,
view
:
'text'
,
type
:
'string'
,
},
receivestatus
:
{
title
:
'receivestatus'
,
order
:
37
,
view
:
'text'
,
type
:
'string'
,
},
problemNo
:
{
title
:
'编号'
,
order
:
0
,
view
:
'text'
,
type
:
'string'
},
projectCategory
:
{
title
:
'projectCategory'
,
order
:
1
,
view
:
'text'
,
type
:
'string'
},
problemItem
:
{
title
:
'类别'
,
order
:
2
,
view
:
'text'
,
type
:
'string'
},
problemDes
:
{
title
:
'问题描述'
,
order
:
3
,
view
:
'textarea'
,
type
:
'string'
},
findUser
:
{
title
:
'发现人'
,
order
:
4
,
view
:
'text'
,
type
:
'string'
},
findingTime
:
{
title
:
'发现时间'
,
order
:
5
,
view
:
'datetime'
,
type
:
'string'
},
problemSource
:
{
title
:
'问题来源'
,
order
:
6
,
view
:
'text'
,
type
:
'string'
},
severity
:
{
title
:
'严重程度'
,
order
:
7
,
view
:
'text'
,
type
:
'string'
},
domain
:
{
title
:
'领域'
,
order
:
8
,
view
:
'text'
,
type
:
'string'
},
headDepCode
:
{
title
:
'负责部门'
,
order
:
9
,
view
:
'text'
,
type
:
'string'
},
headUserId
:
{
title
:
'负责人'
,
order
:
10
,
view
:
'text'
,
type
:
'string'
},
isRectified
:
{
title
:
'是否整改: 0-否 1-是'
,
order
:
11
,
view
:
'text'
,
type
:
'string'
},
rectifyStatus
:
{
title
:
'整改状态'
,
order
:
12
,
view
:
'text'
,
type
:
'string'
},
riskLevel
:
{
title
:
'风险等级'
,
order
:
13
,
view
:
'number'
,
type
:
'number'
},
rectifyCycle
:
{
title
:
'整改周期'
,
order
:
14
,
view
:
'number'
,
type
:
'number'
},
rectifyPlan
:
{
title
:
'整改方案'
,
order
:
15
,
view
:
'textarea'
,
type
:
'string'
},
planStartDate
:
{
title
:
'计划开始时间'
,
order
:
16
,
view
:
'date'
,
type
:
'string'
},
causeAnalysis
:
{
title
:
'成因分析'
,
order
:
17
,
view
:
'text'
,
type
:
'string'
},
planEndDate
:
{
title
:
'计划结束时间'
,
order
:
18
,
view
:
'date'
,
type
:
'string'
},
execDepCode
:
{
title
:
'执行部门'
,
order
:
19
,
view
:
'text'
,
type
:
'string'
},
execUserId
:
{
title
:
'执行人'
,
order
:
20
,
view
:
'text'
,
type
:
'string'
},
execStartDate
:
{
title
:
'整改开始时间'
,
order
:
21
,
view
:
'date'
,
type
:
'string'
},
execEndDate
:
{
title
:
'整改结束时间'
,
order
:
22
,
view
:
'date'
,
type
:
'string'
},
execRemark
:
{
title
:
'整改落实情况'
,
order
:
23
,
view
:
'textarea'
,
type
:
'string'
},
reviewComment
:
{
title
:
'审核意见'
,
order
:
24
,
view
:
'textarea'
,
type
:
'string'
},
bpmNodeId
:
{
title
:
'流程节点顺序号'
,
order
:
25
,
view
:
'text'
,
type
:
'string'
},
bpmStatus
:
{
title
:
'流程状态'
,
order
:
26
,
view
:
'text'
,
type
:
'string'
},
deployId
:
{
title
:
'部署ID'
,
order
:
27
,
view
:
'text'
,
type
:
'string'
},
createdUser
:
{
title
:
'创建人'
,
order
:
28
,
view
:
'text'
,
type
:
'string'
},
createdTime
:
{
title
:
'创建时间'
,
order
:
29
,
view
:
'datetime'
,
type
:
'string'
},
updatedUser
:
{
title
:
'更新人'
,
order
:
30
,
view
:
'text'
,
type
:
'string'
},
updatedTime
:
{
title
:
'更新时间'
,
order
:
31
,
view
:
'datetime'
,
type
:
'string'
},
isReceive
:
{
title
:
'是否接收'
,
order
:
32
,
view
:
'number'
,
type
:
'number'
},
programme
:
{
title
:
'programme'
,
order
:
33
,
view
:
'text'
,
type
:
'string'
},
strategy
:
{
title
:
'strategy'
,
order
:
34
,
view
:
'text'
,
type
:
'string'
},
caNo
:
{
title
:
'caNo'
,
order
:
35
,
view
:
'number'
,
type
:
'number'
},
headUserCode
:
{
title
:
'headUserCode'
,
order
:
36
,
view
:
'text'
,
type
:
'string'
},
receivestatus
:
{
title
:
'receivestatus'
,
order
:
37
,
view
:
'text'
,
type
:
'string'
},
};
/**
* 流程表单调用这个方法获取formSchema
* @param param
*/
export
function
getBpmFormSchema
(
_formData
):
FormSchema
[]{
* 流程表单调用这个方法获取formSchema
* @param param
*/
export
function
getBpmFormSchema
(
_formData
):
FormSchema
[]
{
// 默认和原始表单保持一致 如果流程中配置了权限数据,这里需要单独处理formSchema
return
formSchema
;
}
\ No newline at end of file
}
zrch-risk-client-39/src/views/project/problemArchive/StProblemCheckArchiveList.vue
浏览文件 @
893f18de
<
template
>
<div>
<!--引用表格-->
<BasicTable
@
register=
"registerTable"
:rowSelection=
"rowSelection"
>
<!--插槽:table标题-->
<BasicTable
@
register=
"registerTable"
:rowSelection=
"rowSelection"
>
<!--插槽:table标题-->
<template
#
tableTitle
>
<a-button
type=
"primary"
v-auth=
"'problem:st_problem_check_archive:add'"
@
click=
"handleAdd"
preIcon=
"ant-design:plus-outlined"
>
新增
</a-button>
<a-button
type=
"primary"
v-auth=
"'problem:st_problem_check_archive:exportXls'"
preIcon=
"ant-design:export-outlined"
@
click=
"onExportXls"
>
导出
</a-button>
<j-upload-button
type=
"primary"
v-auth=
"'problem:st_problem_check_archive:importExcel'"
preIcon=
"ant-design:import-outlined"
@
click=
"onImportXls"
>
导入
</j-upload-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"
></Icon>
删除
</a-menu-item>
</a-menu>
</
template
>
<a-button
v-auth=
"'problem:st_problem_check_archive:deleteBatch'"
>
批量操作
<Icon
icon=
"mdi:chevron-down"
></Icon>
</a-button>
<a-button
type=
"primary"
v-auth=
"'problem:st_problem_check_archive:add'"
@
click=
"handleAdd"
preIcon=
"ant-design:plus-outlined"
>
新增
</a-button
>
<a-button
type=
"primary"
v-auth=
"'problem:st_problem_check_archive:exportXls'"
preIcon=
"ant-design:export-outlined"
@
click=
"onExportXls"
>
导出
</a-button
>
<j-upload-button
type=
"primary"
v-auth=
"'problem:st_problem_check_archive:importExcel'"
preIcon=
"ant-design:import-outlined"
@
click=
"onImportXls"
>
导入
</j-upload-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"
></Icon>
删除
</a-menu-item>
</a-menu>
</
template
>
<a-button
v-auth=
"'problem:st_problem_check_archive:deleteBatch'"
>
批量操作
</a-button>
</a-dropdown>
<!-- 高级查询 -->
<super-query
:config=
"superQueryConfig"
@
search=
"handleSuperQuery"
/>
</template>
<!--操作栏-->
<!--操作栏-->
<
template
#
action=
"{ record }"
>
<TableAction
:actions=
"getTableAction(record)"
:dropDownActions=
"getDropDownAction(record)"
/>
<TableAction
:actions=
"getTableAction(record)"
:dropDownActions=
"getDropDownAction(record)"
/>
</
template
>
<!--字段回显插槽-->
<
template
v-slot:bodyCell=
"{ column, record, index, text }"
>
</
template
>
<
template
#
bodyCell=
"{ column, record, index, text }"
>
</
template
>
</BasicTable>
<!-- 表单区域 -->
<StProblemCheckArchiveModal
@
register=
"registerModal"
@
success=
"handleSuccess"
></StProblemCheckArchiveModal>
<!-- 审批记录 -->
<BpmPictureModal
@
register=
"registerBpmModal"
/>
<FlowHistoryDrawer
@
register=
"refFlowHistoryDrawer"
/>
<FlowHistoryDrawer
@
register=
"refFlowHistoryDrawer"
/>
<!-- 整改计划详情弹窗 -->
<RectifyPlanModal
v-model=
"rectifyPlanModalVisible"
:formData=
"rectifyPlanData"
title=
"整改计划详情"
/>
<!-- 执行情况详情弹窗 -->
<ExecutionDetailModal
v-model=
"executionDetailModalVisible"
:formData=
"executionDetailData"
title=
"执行情况详情"
/>
</div>
</template>
<
script
lang=
"ts"
name=
"problem-stProblemCheckArchive"
setup
>
import
{
ref
,
reactive
,
computed
,
unref
}
from
'vue'
;
import
{
BasicTable
,
useTable
,
TableAction
}
from
'/@/components/Table'
;
import
{
useModal
}
from
'/@/components/Modal'
;
import
{
useListPage
}
from
'/@/hooks/system/useListPage'
import
StProblemCheckArchiveModal
from
'./components/StProblemCheckArchiveModal.vue'
import
{
columns
,
searchFormSchema
,
superQuerySchema
}
from
'./StProblemCheckArchive.data'
;
import
{
list
,
deleteOne
,
batchDelete
,
getImportUrl
,
getExportUrl
}
from
'./StProblemCheckArchive.api'
;
import
FlowHistoryDrawer
from
'../../common/FlowHistoryDrawer.vue'
import
{
reactive
,
computed
,
ref
,
unref
,
h
}
from
'vue'
;
import
{
BasicTable
,
useTable
,
TableAction
}
from
'/@/components/Table'
;
import
{
useModal
}
from
'/@/components/Modal'
;
import
{
useListPage
}
from
'/@/hooks/system/useListPage'
;
import
StProblemCheckArchiveModal
from
'./components/StProblemCheckArchiveModal.vue'
;
import
RectifyPlanModal
from
'./components/RectifyPlanModal.vue'
;
import
ExecutionDetailModal
from
'./components/ExecutionDetailModal.vue'
;
import
{
columns
,
searchFormSchema
,
superQuerySchema
}
from
'./StProblemCheckArchive.data'
;
import
{
list
,
deleteOne
,
batchDelete
,
getImportUrl
,
getExportUrl
}
from
'./StProblemCheckArchive.api'
;
import
FlowHistoryDrawer
from
'../../common/FlowHistoryDrawer.vue'
;
import
{
useDrawer
}
from
'/@/components/Drawer'
;
import
{
getDateByPicker
}
from
'/@/utils'
;
//日期个性化选择
...
...
@@ -58,51 +71,110 @@
const
[
refFlowHistoryDrawer
,
{
openDrawer
}]
=
useDrawer
();
const
queryParam
=
reactive
<
any
>
({});
const
[
registerModal
,
{
openModal
}]
=
useModal
();
const
{
prefixCls
,
tableContext
,
onExportXls
,
onImportXls
}
=
useListPage
({
tableProps
:{
title
:
'问题归档'
,
api
:
list
,
columns
,
canResize
:
true
,
formConfig
:
{
//labelWidth: 120,
schemas
:
searchFormSchema
,
autoSubmitOnEnter
:
true
,
showAdvancedButton
:
true
,
fieldMapToNumber
:
[
],
fieldMapToTime
:
[
],
},
actionColumn
:
{
width
:
120
,
fixed
:
'right'
const
[
registerModal
,
{
openModal
}]
=
useModal
();
// 整改计划弹窗状态
const
rectifyPlanModalVisible
=
ref
(
false
);
const
rectifyPlanData
=
ref
({});
// 执行情况弹窗状态
const
executionDetailModalVisible
=
ref
(
false
);
const
executionDetailData
=
ref
({});
// 查看详情方法
function
handleViewDetail
(
record
,
type
)
{
console
.
log
(
'查看详情:'
,
type
,
record
);
if
(
type
===
'rectifyPlan'
)
{
// 打开整改计划弹窗
rectifyPlanData
.
value
=
record
;
rectifyPlanModalVisible
.
value
=
true
;
}
else
if
(
type
===
'execRemark'
)
{
// 打开执行情况弹窗
executionDetailData
.
value
=
record
;
executionDetailModalVisible
.
value
=
true
;
}
}
// 复制列配置并修改customRender
const
customColumns
=
computed
(()
=>
{
const
cols
=
[...
columns
];
const
rectifyPlanCol
=
cols
.
find
((
col
)
=>
col
.
dataIndex
===
'rectifyPlan'
);
const
execRemarkCol
=
cols
.
find
((
col
)
=>
col
.
dataIndex
===
'execRemark'
);
if
(
rectifyPlanCol
)
{
rectifyPlanCol
.
customRender
=
({
record
})
=>
{
return
{
children
:
h
(
'a-button'
,
{
type
:
'link'
,
onClick
:
()
=>
handleViewDetail
(
record
,
'rectifyPlan'
),
},
beforeFetch
:
(
params
)
=>
{
if
(
params
&&
fieldPickers
)
{
for
(
let
key
in
fieldPickers
)
{
if
(
params
[
key
])
{
params
[
key
]
=
getDateByPicker
(
params
[
key
],
fieldPickers
[
key
]);
}
}
}
return
Object
.
assign
(
params
,
queryParam
);
'查看详情'
),
};
};
}
if
(
execRemarkCol
)
{
execRemarkCol
.
customRender
=
({
record
})
=>
{
return
{
children
:
h
(
'a-button'
,
{
type
:
'link'
,
onClick
:
()
=>
handleViewDetail
(
record
,
'execRemark'
),
},
'查看详情'
),
};
};
}
return
cols
;
});
const
{
prefixCls
,
tableContext
,
onExportXls
,
onImportXls
}
=
useListPage
({
tableProps
:
{
title
:
'问题归档'
,
api
:
list
,
columns
:
customColumns
.
value
,
canResize
:
true
,
formConfig
:
{
//labelWidth: 120,
schemas
:
searchFormSchema
,
autoSubmitOnEnter
:
true
,
showAdvancedButton
:
true
,
fieldMapToNumber
:
[],
fieldMapToTime
:
[],
},
exportConfig
:
{
name
:
"问题归档"
,
url
:
getExportUrl
,
params
:
queryParam
,
},
importConfig
:
{
url
:
getImportUrl
,
success
:
handleSuccess
},
})
actionColumn
:
{
width
:
120
,
fixed
:
'right'
,
},
beforeFetch
:
(
params
)
=>
{
if
(
params
&&
fieldPickers
)
{
for
(
let
key
in
fieldPickers
)
{
if
(
params
[
key
])
{
params
[
key
]
=
getDateByPicker
(
params
[
key
],
fieldPickers
[
key
]);
}
}
}
return
Object
.
assign
(
params
,
queryParam
);
},
},
exportConfig
:
{
name
:
'问题归档'
,
url
:
getExportUrl
,
params
:
queryParam
,
},
importConfig
:
{
url
:
getImportUrl
,
success
:
handleSuccess
,
},
});
const
[
registerTable
,
{
reload
},{
rowSelection
,
selectedRowKeys
}]
=
tableContext
const
[
registerTable
,
{
reload
},
{
rowSelection
,
selectedRowKeys
}]
=
tableContext
;
const
superQueryConfig
=
reactive
(
superQuerySchema
);
function
handleSuperQuery
(
params
)
{
Object
.
keys
(
params
).
map
((
k
)
=>
{
...
...
@@ -112,88 +184,79 @@
}
function
handleAdd
()
{
openModal
(
true
,
{
isUpdate
:
false
,
showFooter
:
true
,
});
openModal
(
true
,
{
isUpdate
:
false
,
showFooter
:
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
)
{
await
deleteOne
({
id
:
record
.
id
},
handleSuccess
);
}
await
deleteOne
({
id
:
record
.
id
},
handleSuccess
);
}
async
function
batchHandleDelete
()
{
await
batchDelete
({
ids
:
selectedRowKeys
.
value
},
handleSuccess
);
}
await
batchDelete
({
ids
:
selectedRowKeys
.
value
},
handleSuccess
);
}
function
handleSuccess
()
{
(
selectedRowKeys
.
value
=
[])
&&
reload
();
}
(
selectedRowKeys
.
value
=
[])
&&
reload
();
}
function
handleShowHistory
(
record
)
{
openDrawer
(
true
,{
procInsId
:
record
.
procInsId
,
dataId
:
record
.
id
,
deployId
:
record
.
deployId
,
});
}
function
getTableAction
(
record
){
return
[
{
label
:
'编辑'
,
onClick
:
handleEdit
.
bind
(
null
,
record
),
auth
:
'problem:st_problem_check_archive:edit'
},
{
label
:
'查看流程'
,
onClick
:
handleShowHistory
.
bind
(
null
,
record
),
}
]
}
function
getDropDownAction
(
record
){
let
dropDownAction
=
[
{
label
:
'详情'
,
onClick
:
handleDetail
.
bind
(
null
,
record
),
},
{
label
:
'删除'
,
popConfirm
:
{
title
:
'是否确认删除'
,
confirm
:
handleDelete
.
bind
(
null
,
record
),
placement
:
'topLeft'
,
},
auth
:
'problem:st_problem_check_archive:delete'
},
];
return
dropDownAction
;
}
openDrawer
(
true
,
{
procInsId
:
record
.
procInsId
,
dataId
:
record
.
id
,
deployId
:
record
.
deployId
,
});
}
function
getTableAction
(
record
)
{
return
[
{
label
:
'查看流程'
,
onClick
:
handleShowHistory
.
bind
(
null
,
record
),
},
];
}
function
getDropDownAction
(
record
)
{
let
dropDownAction
=
[
{
label
:
'编辑'
,
onClick
:
handleEdit
.
bind
(
null
,
record
),
auth
:
'problem:st_problem_check_archive:edit'
,
},
{
label
:
'删除'
,
popConfirm
:
{
title
:
'是否确认删除'
,
confirm
:
handleDelete
.
bind
(
null
,
record
),
placement
:
'topLeft'
,
},
auth
:
'problem:st_problem_check_archive:delete'
,
},
];
return
dropDownAction
;
}
</
script
>
<
style
lang=
"less"
scoped
>
:deep(.ant-picker),:deep(.ant-input-number){
:deep(.ant-picker),
:deep(.ant-input-number) {
width: 100%;
}
</
style
>
\ No newline at end of file
</
style
>
zrch-risk-client-39/src/views/project/problemArchive/components/ExecutionDetailModal.vue
0 → 100644
浏览文件 @
893f18de
<
template
>
<a-modal
:open=
"modelValue"
:title=
"title"
:width=
"600"
:footer=
"null"
@
cancel=
"handleCancel"
@
update:open=
"handleOpenChange"
>
<div
class=
"modal-content"
>
<div
class=
"form-item"
>
<div
class=
"form-label"
>
执行部门:
</div>
<div
class=
"form-value"
>
{{
formData
.
execDepCode
||
'-'
}}
</div>
</div>
<div
class=
"form-item"
>
<div
class=
"form-label"
>
负责人:
</div>
<div
class=
"form-value"
>
{{
formData
.
execUserId
||
'-'
}}
</div>
</div>
<div
class=
"form-item"
>
<div
class=
"form-label"
>
实际开始日期:
</div>
<div
class=
"form-value"
>
{{
formData
.
execStartDate
||
'-'
}}
</div>
</div>
<div
class=
"form-item"
>
<div
class=
"form-label"
>
实际完成日期:
</div>
<div
class=
"form-value"
>
{{
formData
.
execEndDate
||
'-'
}}
</div>
</div>
<div
class=
"form-item"
>
<div
class=
"form-label"
>
整改落实情况:
</div>
<div
class=
"form-value"
>
{{
formData
.
execRemark
||
'-'
}}
</div>
</div>
</div>
<template
#
footer
>
<div
class=
"modal-footer"
>
<a-button
type=
"primary"
@
click=
"handleCancel"
>
关闭
</a-button>
</div>
</
template
>
</a-modal>
</template>
<
script
setup
lang=
"ts"
>
import
{
ref
,
watch
}
from
'vue'
;
// 定义组件props
const
props
=
defineProps
({
visible
:
{
type
:
Boolean
,
default
:
false
,
},
modelValue
:
{
type
:
Boolean
,
default
:
false
,
},
formData
:
{
type
:
Object
,
default
:
()
=>
({}),
},
title
:
{
type
:
String
,
default
:
'执行情况详情'
,
},
});
// 定义事件
const
emit
=
defineEmits
([
'update:modelValue'
,
'cancel'
]);
// 处理modal打开状态变化
const
handleOpenChange
=
(
newVal
)
=>
{
emit
(
'update:modelValue'
,
newVal
);
};
// 关闭弹窗
const
handleCancel
=
()
=>
{
emit
(
'update:modelValue'
,
false
);
emit
(
'cancel'
);
};
</
script
>
<
style
scoped
lang=
"less"
>
.modal-content {
padding: 0 20px;
}
.form-item {
margin-bottom: 16px;
display: flex;
align-items: flex-start;
}
.form-label {
width: 120px;
font-weight: 500;
color: #333;
margin-right: 16px;
text-align: right;
padding-top: 6px;
}
.form-value {
flex: 1;
color: #666;
line-height: 1.5;
word-break: break-word;
}
.modal-footer {
text-align: center;
margin-top: 24px;
}
</
style
>
zrch-risk-client-39/src/views/project/problemArchive/components/RectifyPlanModal.vue
0 → 100644
浏览文件 @
893f18de
<
template
>
<a-modal
:open=
"modelValue"
:title=
"title"
:width=
"600"
:footer=
"null"
@
cancel=
"handleCancel"
@
update:open=
"handleOpenChange"
>
<div
class=
"modal-content"
>
<div
class=
"form-item"
>
<div
class=
"form-label"
>
成因分析:
</div>
<div
class=
"form-value"
>
{{
formData
.
causeAnalysis
||
'-'
}}
</div>
</div>
<div
class=
"form-item"
>
<div
class=
"form-label"
>
整改方案:
</div>
<div
class=
"form-value"
>
{{
formData
.
rectifyPlan
||
'-'
}}
</div>
</div>
<div
class=
"form-item"
>
<div
class=
"form-label"
>
整改周期:
</div>
<div
class=
"form-value"
>
{{
formData
.
rectifyCycle
||
'-'
}}
天
</div>
</div>
<div
class=
"form-item"
>
<div
class=
"form-label"
>
计划开始日期:
</div>
<div
class=
"form-value"
>
{{
formData
.
planStartDate
||
'-'
}}
</div>
</div>
<div
class=
"form-item"
>
<div
class=
"form-label"
>
计划结束日期:
</div>
<div
class=
"form-value"
>
{{
formData
.
planEndDate
||
'-'
}}
</div>
</div>
<div
class=
"form-item"
>
<div
class=
"form-label"
>
负责部门:
</div>
<div
class=
"form-value"
>
{{
formData
.
headDepCode
||
'-'
}}
</div>
</div>
<div
class=
"form-item"
>
<div
class=
"form-label"
>
负责人:
</div>
<div
class=
"form-value"
>
{{
formData
.
headUserId
||
'-'
}}
</div>
</div>
</div>
<template
#
footer
>
<div
class=
"modal-footer"
>
<a-button
type=
"primary"
@
click=
"handleCancel"
>
关闭
</a-button>
</div>
</
template
>
</a-modal>
</template>
<
script
setup
lang=
"ts"
>
import
{
ref
,
watch
}
from
'vue'
;
// 定义组件props
const
props
=
defineProps
({
visible
:
{
type
:
Boolean
,
default
:
false
,
},
modelValue
:
{
type
:
Boolean
,
default
:
false
,
},
formData
:
{
type
:
Object
,
default
:
()
=>
({}),
},
title
:
{
type
:
String
,
default
:
'整改计划详情'
,
},
});
// 定义事件
const
emit
=
defineEmits
([
'update:modelValue'
,
'cancel'
]);
// 处理modal打开状态变化
const
handleOpenChange
=
(
newVal
)
=>
{
emit
(
'update:modelValue'
,
newVal
);
};
// 关闭弹窗
const
handleCancel
=
()
=>
{
emit
(
'update:modelValue'
,
false
);
emit
(
'cancel'
);
};
</
script
>
<
style
scoped
lang=
"less"
>
.modal-content {
padding: 0 20px;
}
.form-item {
margin-bottom: 16px;
display: flex;
align-items: flex-start;
}
.form-label {
width: 120px;
font-weight: 500;
color: #333;
margin-right: 16px;
text-align: right;
padding-top: 6px;
}
.form-value {
flex: 1;
color: #666;
line-height: 1.5;
word-break: break-word;
}
.modal-footer {
text-align: center;
margin-top: 24px;
}
</
style
>
zrch-risk-client-39/src/views/project/problemCheck/StProblemCheck.data.ts
浏览文件 @
893f18de
...
...
@@ -47,7 +47,6 @@ export const columns: BasicColumn[] = [
dataIndex
:
'problemDes'
,
resizable
:
true
,
ifShow
:
false
,
},
{
title
:
'风险等级'
,
...
...
@@ -185,12 +184,11 @@ export const formSchema: FormSchema[] = [
{
label
:
'问题描述'
,
field
:
'problemDes'
,
component
:
'
JEditor
'
,
component
:
'
InputTextArea
'
,
required
:
true
,
componentProps
:
{
showCount
:
true
,
maxlength
:
512
,
height
:
220
,
rows
:
3
,
},
},
{
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论