Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
R
rongtong-pc
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
融通安全管理系统
rongtong-pc
Commits
b01edaf0
Commit
b01edaf0
authored
Dec 07, 2023
by
kaitly205422@163.com
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'develop' of
http://git.censoft.com.cn/rongtong/ruoyi-ui
into develop
parents
cde37b70
fcc624d2
Changes
7
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
1238 additions
and
5 deletions
+1238
-5
package.json
package.json
+1
-0
src/api/risk/riskUserPatrol.js
src/api/risk/riskUserPatrol.js
+10
-0
src/router/index.js
src/router/index.js
+14
-0
src/views/risk/currentProject/projectPost.vue
src/views/risk/currentProject/projectPost.vue
+48
-5
src/views/risk/riskUserPatrol/index.vue
src/views/risk/riskUserPatrol/index.vue
+350
-0
src/views/riskLedger/detail.vue
src/views/riskLedger/detail.vue
+524
-0
src/views/riskLedger/list.vue
src/views/riskLedger/list.vue
+291
-0
No files found.
package.json
View file @
b01edaf0
...
...
@@ -57,6 +57,7 @@
"
js-cookie
"
:
"
3.0.1
"
,
"
jsencrypt
"
:
"
3.0.0-rc.1
"
,
"
jspdf
"
:
"
^2.5.1
"
,
"
moment
"
:
"
^2.29.4
"
,
"
nprogress
"
:
"
0.2.0
"
,
"
postcss-pxtorem
"
:
"
^5.1.1
"
,
"
quill
"
:
"
1.3.7
"
,
...
...
src/api/risk/riskUserPatrol.js
0 → 100644
View file @
b01edaf0
import
request
from
'
@/utils/request
'
// 查询巡查执行管理列表
export
function
riskUserPatrolList
(
query
)
{
return
request
({
url
:
'
/risk/riskUserPatrol/list
'
,
method
:
'
get
'
,
params
:
query
})
}
\ No newline at end of file
src/router/index.js
View file @
b01edaf0
...
...
@@ -181,6 +181,20 @@ export const dynamicRoutes = [
},
],
},
{
path
:
"
/riskLedger/detail
"
,
component
:
Layout
,
hidden
:
true
,
permissions
:
[
"
system:dict:list
"
],
children
:
[
{
path
:
"
riskDetail
"
,
component
:
()
=>
import
(
"
@/views/riskLedger/detail
"
),
name
:
"
riskDetail
"
,
meta
:
{
title
:
"
风险台账
"
,
activeMenu
:
"
/riskLedger/detail
"
},
},
],
},
{
path
:
"
/risk/plan/inherentdata
"
,
component
:
Layout
,
...
...
src/views/risk/currentProject/projectPost.vue
View file @
b01edaf0
...
...
@@ -77,14 +77,14 @@
<p>
暂无数据请通过添加方式创建巡查岗位
</p>
</div>
<!-- 添加或修改现状风险岗位对话框 -->
<el-dialog
:title=
"title"
:visible.sync=
"open"
width=
"
5
0%"
append-to-body
>
<el-dialog
:title=
"title"
:visible.sync=
"open"
width=
"
6
0%"
append-to-body
>
<el-tabs
v-model=
"activeName"
>
<el-tab-pane
label=
"基础信息"
name=
"first"
>
<el-form
ref=
"form"
:model=
"form"
:rules=
"rules"
label-width=
"84px"
>
<el-form-item
label=
"岗位名称"
prop=
"riskPostName"
>
<el-input
v-model=
"form.riskPostName"
placeholder=
"请输入岗位名称"
/>
</el-form-item>
<el-form-item
label=
"岗位类型"
prop=
"patrolType"
>
<
!--
<
el-form-item
label=
"岗位类型"
prop=
"patrolType"
>
<el-select
v-model=
"form.patrolType"
placeholder=
"请选择岗位类型"
style=
"width:100%"
>
<el-option
v-for=
"dict in patrolTypeList"
...
...
@@ -93,7 +93,7 @@
:value=
"dict.value"
></el-option>
</el-select>
</el-form-item>
</el-form-item>
-->
<el-form-item
label=
"岗位描述"
prop=
"riskPostDesc"
>
<el-input
type=
"textarea"
v-model=
"form.riskPostDesc"
placeholder=
"请输入岗位描述"
/>
</el-form-item>
...
...
@@ -109,7 +109,40 @@
</el-form-item>
</el-form>
</el-tab-pane>
<el-tab-pane
label=
"清单匹配"
name=
"second"
></el-tab-pane>
<el-tab-pane
label=
"清单匹配"
name=
"second"
>
<el-form
ref=
"listForm"
:model=
"listForm"
:rules=
"listRules"
label-width=
"120px"
label-position=
"top"
>
<el-form-item
label=
"匹配模式"
prop=
"postState"
>
<el-radio-group
v-model=
"listForm.postState"
@
change=
"radioChange"
>
<el-radio
label=
"1"
>
一岗一人巡查模式
</el-radio>
<el-radio
label=
"0"
>
一岗多人巡查模式
</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item
label=
"岗位清单配置"
prop=
"hdType"
v-if=
"listForm.postState == '1'"
>
<el-input
v-model=
"listForm.hdType"
style=
"width:80%;margin-right:20px"
></el-input>
<el-button
type=
"primary"
>
隐患清单库
</el-button>
</el-form-item>
<el-form-item
label=
"岗位清单配置"
prop=
"hdType"
v-if=
"listForm.postState == '0'"
>
<el-table
:data=
"listUserTabel"
>
<el-table-column
type=
"index"
label=
"序号"
width=
"50"
/>
<el-table-column
label=
"姓名"
align=
"center"
prop=
"userName"
width=
"140"
:show-overflow-tooltip=
"true"
/>
<el-table-column
label=
"工号"
align=
"center"
prop=
"nickName"
width=
"140"
:show-overflow-tooltip=
"true"
/>
<el-table-column
label=
"状态"
align=
"center"
prop=
"postName"
width=
"140"
:show-overflow-tooltip=
"true"
/>
<el-table-column
label=
"巡查清单"
align=
"center"
prop=
"postName"
:show-overflow-tooltip=
"true"
/>
<el-table-column
label=
"操作"
align=
"center"
width=
"140"
>
<template
slot-scope=
"scope"
>
<el-button
size=
"mini"
type=
"text"
icon=
"el-icon-edit"
@
click=
"selectList(scope.row)"
>
清单库选择
</el-button>
</
template
>
</el-table-column>
</el-table>
</el-form-item>
<p>
<span
style=
"color: red;"
>
系统提示:可根据工程进度调整巡查类型及内容。
</span></p>
</el-form>
</el-tab-pane>
</el-tabs>
<div
slot=
"footer"
class=
"dialog-footer"
>
...
...
@@ -157,7 +190,14 @@ export default {
rules
:{
riskPostName
:[{
required
:
true
,
message
:
'
请输入岗位名称
'
,
trigger
:
'
blur
'
}]
},
activeName
:
'
first
'
activeName
:
'
first
'
,
listRules
:{
postState
:[{
required
:
true
,
message
:
'
请选择匹配模式
'
,
trigger
:
'
change
'
}]
},
listForm
:{
//清单匹配
postState
:
'
1
'
}
,
listUserTabel
:[]
};
},
created
()
{
...
...
@@ -356,4 +396,7 @@ export default {
margin-left
:
10px
;
cursor
:
pointer
;
}
::v-deep
.el-form-item--medium
.el-form-item__content
{
margin-left
:
20px
;
}
</
style
>
src/views/risk/riskUserPatrol/index.vue
0 → 100644
View file @
b01edaf0
<
template
>
<div
class=
"app-container"
>
<el-row>
<el-col
:span=
"5"
>
<h3>
巡查日历
</h3>
<el-calendar
v-model=
"calendarDate"
></el-calendar>
</el-col>
<el-col
:span=
"19"
style=
"padding: 0 40px;"
>
<h3>
今日巡查信息
</h3>
<div
class=
"projectName"
>
<div>
<el-select
v-model=
"queryParams.projectId"
placeholder=
"请选择项目"
style=
"width:250px;"
@
change=
"projectChange"
>
<el-option
v-for=
"item in projectList"
:key=
"item.projectId"
:label=
"item.projectName"
:value=
"item.projectId"
>
</el-option>
</el-select>
<el-select
v-model=
"queryParams.userId"
placeholder=
"请选择人员"
style=
"width:150px;margin: 0 20px"
>
<el-option
v-for=
"item in projectUserList"
:key=
"item.userId"
:label=
"item.nickName"
:value=
"item.userId"
>
</el-option>
</el-select>
<el-button
type=
"primary"
icon=
"el-icon-search"
size=
"mini"
@
click=
"handleQuery"
>
搜索
</el-button>
<el-button
icon=
"el-icon-refresh"
size=
"mini"
@
click=
"resetQuery"
>
重置
</el-button>
</div>
<div
class=
"projectData"
>
<span
class=
"shuxian"
></span>
<span
class=
"dataWrap"
>
<span>
已巡查人数
</span>
<span>
3
</span>
</span>
<span
class=
"shuxian"
></span>
<span
class=
"dataWrap"
>
<span>
未巡查人数
</span>
<span>
3
</span>
</span>
<span
class=
"shuxian"
></span>
<span
class=
"dataWrap"
>
<span>
上报异常
</span>
<span>
3
</span>
</span>
<span
class=
"shuxian"
></span>
</div>
</div>
<div>
<el-tabs
v-model=
"activeName"
@
tab-click=
"tabChange"
>
<el-tab-pane
label=
"全部"
name=
"0"
>
</el-tab-pane>
<el-tab-pane
label=
"已完成"
name=
"1"
>
</el-tab-pane>
<el-tab-pane
label=
"未完成"
name=
"2"
>
</el-tab-pane>
</el-tabs>
<el-table
:data=
"patrolInfo"
v-loading=
"loading"
:span-method=
"objectSpanMethod"
>
<el-table-column
label=
"人员信息"
align=
"center"
prop=
"nickName"
width=
"350"
>
<template
slot-scope=
"scope"
>
<span>
{{
scope
.
row
.
nickName
}}
</span>
<span
style=
"margin:0 20px;"
>
{{
scope
.
row
.
riskPostName
}}
</span>
</
template
>
</el-table-column>
<el-table-column
label=
"巡查信息"
align=
"center"
prop=
""
>
<
template
slot-scope=
"scope"
>
<span
class=
"infoWrap"
>
<span>
{{
scope
.
row
.
patrolType
}}
</span>
<span
style=
"margin:0 60px;"
>
{{
scope
.
row
.
status
}}
</span>
<span
v-if=
"scope.row.status == '已巡查'"
>
上报异常:
{{
scope
.
row
.
delFlag
}}
条
</span>
<span
v-if=
"scope.row.status == '未巡查'"
>
截止时间:
{{
scope
.
row
.
validityTime
}}
</span>
</span>
</
template
>
</el-table-column>
<el-table-column
label=
"操作"
align=
"center"
width=
"200"
>
<
template
slot-scope=
"scope"
>
<el-button
size=
"mini"
type=
"text"
icon=
"el-icon-edit"
@
click=
"getDetail(scope.row)"
>
查看
</el-button>
</
template
>
</el-table-column>
</el-table>
<pagination
v-show=
"total > 0"
:total=
"total"
:page.sync=
"queryParams.pageNum"
:limit.sync=
"queryParams.pageSize"
@
pagination=
"getList"
/>
</div>
</el-col>
</el-row>
</div>
</template>
<
script
type=
"text/ecmascript-6"
>
import
{
riskUserPatrolList
}
from
'
@/api/risk/riskUserPatrol
'
import
{
listCurrentProject
}
from
'
@/api/risk/currentProject
'
import
{
userCurrentRiskPost
}
from
"
@/api/system/currentRiskPost
"
;
let
moment
=
require
(
"
moment
"
);
export
default
{
name
:
''
,
data
()
{
return
{
calendarDate
:
new
Date
(),
projectList
:[],
projectUserList
:[],
patrolInfo
:[],
activeName
:
'
0
'
,
loading
:
true
,
total
:
0
,
queryParams
:{
pageNum
:
1
,
pageSize
:
10
,
startTime
:
''
,
status
:
''
,
projectId
:
''
,
userId
:
''
},
spanArr
:[],
pos
:
''
,
}
},
watch
:{
calendarDate
(
val
,
oldVal
)
{
if
(
val
&&
moment
(
val
).
format
(
"
YYYY-MM-DD
"
)
==
moment
().
format
(
"
YYYY-MM-DD
"
))
{
console
.
log
(
"
点击了‘今天’按钮
"
);
}
else
if
(
val
&&
moment
(
val
).
toDate
()
<
moment
(
oldVal
).
startOf
(
"
month
"
).
toDate
())
{
console
.
log
(
"
点击了‘上个月’按钮
"
);
}
else
if
(
val
&&
moment
(
val
).
toDate
()
>
moment
(
oldVal
).
endOf
(
"
month
"
).
toDate
())
{
console
.
log
(
"
点击了‘下个月’按钮
"
);
}
else
{
console
.
log
(
"
点击了
"
+
moment
(
val
).
format
(
"
YYYY-MM
"
)
+
"
-
"
+
this
.
calendarDate
.
getDate
());
this
.
queryParams
.
startTime
=
`
${
moment
(
val
).
format
(
"
YYYY-MM
"
)}
-
${
this
.
calendarDate
.
getDate
()}
`
}
},
},
created
(){
this
.
getProjectList
()
},
mounted
()
{
this
.
getList
();
},
methods
:
{
/** 查询基础数据-项目列表 */
getList
()
{
this
.
loading
=
true
;
riskUserPatrolList
(
this
.
queryParams
).
then
((
response
)
=>
{
this
.
patrolInfo
=
response
.
rows
;
this
.
patrolInfo
.
forEach
((
item
)
=>
{
if
(
item
.
status
==
'
0
'
)
{
item
.
status
=
'
未巡查
'
}
else
if
(
item
.
status
==
'
1
'
)
{
item
.
status
=
'
已巡查
'
}
else
if
(
item
.
status
==
'
2
'
)
{
item
.
status
=
'
已请假
'
}
else
if
(
item
.
status
==
'
3
'
)
{
item
.
status
=
'
已过期
'
}
if
(
item
.
patrolType
==
'
0
'
)
{
item
.
patrolType
=
'
日查
'
}
else
if
(
item
.
patrolType
==
'
1
'
)
{
item
.
patrolType
=
'
周查
'
}
else
if
(
item
.
patrolType
==
'
2
'
)
{
item
.
patrolType
=
'
月查
'
}
else
if
(
item
.
patrolType
==
'
3
'
)
{
item
.
patrolType
=
'
季查
'
}
else
if
(
item
.
patrolType
==
'
4
'
)
{
item
.
patrolType
=
'
年查
'
}
})
this
.
spanArr
=
[],
this
.
pos
=
''
this
.
patrolInfo
=
this
.
groupArr
(
this
.
patrolInfo
,
'
nickName
'
)
this
.
getSpanArrData
(
this
.
patrolInfo
,
'
nickName
'
)
this
.
total
=
response
.
total
;
this
.
loading
=
false
;
});
},
// 项目列表
getProjectList
()
{
let
params
=
{
pageNum
:
1
,
pageSize
:
999
,
userId
:
this
.
$store
.
getters
.
userId
}
listCurrentProject
(
params
).
then
((
response
)
=>
{
this
.
projectList
=
response
.
rows
;
});
},
/** 查询人员列表 */
getUserList
()
{
let
params
=
{
pageNum
:
1
,
pageSize
:
999
,
projectId
:
this
.
queryParams
.
projectId
}
userCurrentRiskPost
(
params
).
then
(
response
=>
{
this
.
projectUserList
=
response
.
rows
;
});
},
/** 搜索按钮操作 */
handleQuery
()
{
this
.
queryParams
.
pageNum
=
1
;
this
.
getList
();
},
/** 重置按钮操作 */
resetQuery
()
{
this
.
queryParams
=
{
pageNum
:
1
,
pageSize
:
10
,
startTime
:
''
,
status
:
''
,
projectId
:
''
,
userId
:
''
}
this
.
activeName
=
'
0
'
this
.
handleQuery
();
},
tabChange
(
e
){
if
(
e
.
name
==
'
2
'
)
{
this
.
queryParams
.
status
=
'
0
'
}
else
if
(
e
.
name
==
'
1
'
)
{
this
.
queryParams
.
status
=
'
1
'
}
else
{
this
.
queryParams
.
status
=
''
}
this
.
getList
();
},
// 选择项目是查询成员
projectChange
(
e
){
this
.
getUserList
()
},
// 详情
getDetail
(){
},
//把相同项目名称排序到一起
groupArr
(
list
,
field
){
let
fieldList
=
[];
let
groupList
=
[];
// 获取数组指定字段值,并去重
list
.
map
((
element
)
=>
{
if
(
fieldList
.
indexOf
(
element
[
field
])
===-
1
){
fieldList
.
push
(
element
[
field
])
}
})
for
(
let
i
=
0
;
i
<
fieldList
.
length
;
i
++
){
//过滤出匹配到的数据
let
arr
=
list
.
filter
((
element
)
=>
{
return
element
[
field
]
===
fieldList
[
i
];
})
groupList
.
push
(
arr
)
}
let
data
=
[]
groupList
.
forEach
((
item
,
index
)
=>
{
data
=
[...
data
,
...
item
]
});
return
data
;
},
//获取合并行数据
getSpanArrData
(
data
,
name
)
{
for
(
let
i
=
0
;
i
<
data
.
length
;
i
++
)
{
//如果是第一条记录(索引为0),向数组中加入1,并设置索引位置
if
(
i
===
0
)
{
this
.
spanArr
.
push
(
1
);
this
.
pos
=
0
;
//spanArr的索引
}
else
{
//如果不是第一条记录,则判断它与前一条记录是否相等
//根据相同 扣分类别名称 进行合并,根据需要可进行修改
if
(
data
[
i
][
name
]
===
data
[
i
-
1
][
name
])
{
//如果相等,则向spanArr中添入元素0,并将前一位元素+1,表示合并行数+1
this
.
spanArr
[
this
.
pos
]
+=
1
;
this
.
spanArr
.
push
(
0
);
}
else
{
this
.
spanArr
.
push
(
1
);
this
.
pos
=
i
;
}
}
}
},
// 合并行
objectSpanMethod
({
row
,
column
,
rowIndex
,
columnIndex
}){
if
(
columnIndex
===
0
)
{
const
_row
=
this
.
spanArr
[
rowIndex
];
const
_col
=
_row
>
0
?
1
:
0
;
return
{
// [0,0] 表示这一行不显示, [2,1]表示行的合并数
rowspan
:
_row
,
colspan
:
_col
,
};
}
},
}
}
</
script
>
<
style
scoped
lang=
'scss'
>
.app-container
{
padding-top
:
0
!
important
;
}
::v-deep
.el-calendar-table
.el-calendar-day
{
height
:
50px
;
}
.projectName
{
display
:
flex
;
align-items
:
center
;
justify-content
:
space-between
;
padding-right
:
0px
;
}
.projectData
{
display
:
flex
;
align-items
:
center
;
justify-content
:
space-evenly
;
.dataWrap
{
height
:
100px
;
font-size
:
14px
;
display
:
flex
;
flex-direction
:
column
;
align-items
:
center
;
justify-content
:
space-evenly
;
padding
:
0
40px
;
color
:
#7c7c7c
;
:last-child
{
color
:
#278CFB
;
font-size
:
28px
;
}
}
.shuxian
{
display
:
inline-block
;
width
:
2px
;
height
:
40px
;
background-color
:
#e7e5e5
;
}
}
.infoWrap
{
display
:
flex
;
align-items
:
center
;
justify-content
:
start
;
padding
:
0
50px
0
80px
;
}
</
style
>
src/views/riskLedger/detail.vue
0 → 100644
View file @
b01edaf0
<
template
>
<div
class=
"app-container"
>
<el-form
:model=
"queryParams"
ref=
"queryForm"
size=
"small"
:inline=
"true"
v-show=
"showSearch"
label-width=
"90px"
>
<el-form-item
label=
"区域公司"
prop=
"deptName"
>
<el-input
v-model=
"queryParams.deptName"
placeholder=
"请输入区域公司"
clearable
@
keyup.enter.native=
"handleQuery"
/>
</el-form-item>
<el-form-item
label=
"项目名称"
prop=
"projectName"
>
<el-input
v-model=
"queryParams.projectName"
placeholder=
"请输入项目名称"
clearable
@
keyup.enter.native=
"handleQuery"
/>
</el-form-item>
<el-form-item
label=
"所属城市"
prop=
"city"
>
<el-input
v-model=
"queryParams.city"
placeholder=
"请输入所属城市"
clearable
@
keyup.enter.native=
"handleQuery"
/>
</el-form-item>
<el-form-item
label=
"项目业态"
prop=
"businessFormat"
>
<el-input
v-model=
"queryParams.businessFormat"
placeholder=
"请输入项目业态"
clearable
@
keyup.enter.native=
"handleQuery"
/>
</el-form-item>
<el-form-item
label=
"固有风险危险源名称"
prop=
"inherentName"
>
<el-input
v-model=
"queryParams.inherentName"
placeholder=
"请输入固有风险危险源名称"
clearable
@
keyup.enter.native=
"handleQuery"
/>
</el-form-item>
<el-form-item
label=
"固有风险风险等级"
prop=
"inherentLevel"
>
<el-select
v-model=
"queryParams.inherentLevel"
placeholder=
"请选择固有风险风险等级"
clearable
>
<el-option
v-for=
"dict in dict.type.risk_plan_level"
:key=
"dict.value"
:label=
"dict.label"
:value=
"dict.value"
/>
</el-select>
</el-form-item>
<el-form-item
label=
"现有风险危险源名称"
prop=
"existingName"
>
<el-input
v-model=
"queryParams.existingName"
placeholder=
"请输入现有风险危险源名称"
clearable
@
keyup.enter.native=
"handleQuery"
/>
</el-form-item>
<el-form-item
label=
"现有风险风险等级"
prop=
"existingLevel"
>
<el-select
v-model=
"queryParams.existingLevel"
placeholder=
"请选择现有风险风险等级"
clearable
>
<el-option
v-for=
"dict in dict.type.risk_plan_level"
:key=
"dict.value"
:label=
"dict.label"
:value=
"dict.value"
/>
</el-select>
</el-form-item>
<el-form-item
label=
"风险点位置"
prop=
"presenceLocation"
>
<el-input
v-model=
"queryParams.presenceLocation"
placeholder=
"请输入风险点位置"
clearable
@
keyup.enter.native=
"handleQuery"
/>
</el-form-item>
<el-form-item
label=
"可能导致的事故后果"
prop=
"listType"
>
<el-input
v-model=
"queryParams.listType"
placeholder=
"请输入可能导致的事故后果"
clearable
@
keyup.enter.native=
"handleQuery"
/>
</el-form-item>
<el-form-item>
<el-button
type=
"primary"
icon=
"el-icon-search"
size=
"mini"
@
click=
"handleQuery"
>
搜索
</el-button
>
<el-button
icon=
"el-icon-refresh"
size=
"mini"
@
click=
"resetQuery"
>
重置
</el-button
>
</el-form-item>
</el-form>
<el-row
class=
"mb8"
>
<el-col
:span=
"1.5"
>
<el-button
type=
"warning"
plain
icon=
"el-icon-download"
size=
"mini"
@
click=
"handleExport"
>
导出
</el-button
>
</el-col>
<right-toolbar
:showSearch.sync=
"showSearch"
@
queryTable=
"getList"
>
</right-toolbar>
</el-row>
<el-table
v-loading=
"loading"
:data=
"inherentList"
@
selection-change=
"handleSelectionChange"
>
<el-table-column
label=
"项目信息"
align=
"center"
fixed
width=
"500"
>
<el-table-column
label=
"区域公司"
align=
"center"
prop=
"deptName"
width=
"100"
/>
<el-table-column
label=
"项目名称"
align=
"center"
prop=
"projectName"
width=
"100"
>
<template
slot-scope=
"scope"
>
<el-popover
placement=
"top-start"
title=
"项目名称"
width=
"200"
trigger=
"hover"
:content=
"scope.row.projectName"
>
<span
slot=
"reference"
>
{{
scope
.
row
.
projectName
.
length
>
10
?
scope
.
row
.
projectName
.
substring
(
0
,
10
)
+
"
...
"
:
scope
.
row
.
projectName
}}
</span>
</el-popover>
</
template
>
</el-table-column>
<el-table-column
label=
"所属城市"
align=
"center"
prop=
"city"
width=
"100"
/>
<el-table-column
label=
"项目业态"
align=
"center"
prop=
"businessFormat"
width=
"100"
/>
<el-table-column
label=
"项目类型"
align=
"center"
prop=
"type"
width=
"100"
/>
</el-table-column>
<el-table-column
label=
"项目风险清单"
align=
"center"
>
<el-table-column
label=
"固有风险"
align=
"center"
>
<el-table-column
label=
"危险源名称"
align=
"center"
prop=
"inherentName"
width=
"100"
/>
<el-table-column
label=
"风险等级"
align=
"center"
prop=
"inherentLevel"
width=
"100"
/>
</el-table-column>
<el-table-column
label=
"现有风险"
align=
"center"
>
<el-table-column
label=
"危险源名称"
align=
"center"
prop=
"existingName"
width=
"100"
/>
<el-table-column
label=
"风险等级"
align=
"center"
prop=
"existingLevel"
width=
"100"
/>
</el-table-column>
<el-table-column
label=
"风险点位置"
align=
"center"
prop=
"presenceLocation"
width=
"100"
/>
<el-table-column
label=
"可能导致的事故后果"
align=
"center"
prop=
"listType"
width=
"100"
>
<
template
slot-scope=
"scope"
>
<el-popover
placement=
"top-start"
title=
"项目名称"
width=
"200"
trigger=
"hover"
:content=
"scope.row.listType"
>
<span
slot=
"reference"
>
{{
scope
.
row
.
listType
.
length
>
10
?
scope
.
row
.
listType
.
substring
(
0
,
10
)
+
"
...
"
:
scope
.
row
.
listType
}}
</span>
</el-popover>
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
label=
"项目整体风险等级"
align=
"center"
>
<el-table-column
label=
"固有风险"
align=
"center"
prop=
"inherentProjectLevel"
width=
"100"
/>
<el-table-column
label=
"现状风险"
align=
"center"
prop=
"existingProjectLevel"
width=
"100"
/>
</el-table-column>
<el-table-column
label=
"风险管控"
align=
"center"
>
<el-table-column
label=
"应采取的管控措施"
align=
"center"
prop=
"inherentMeasuresAdministration"
width=
"100"
>
<
template
slot-scope=
"scope"
>
<el-popover
placement=
"top-start"
title=
"应采取的管控措施"
width=
"200"
trigger=
"hover"
:content=
"scope.row.inherentMeasuresAdministration"
>
<span
slot=
"reference"
>
{{
scope
.
row
.
inherentMeasuresAdministration
&&
scope
.
row
.
inherentMeasuresAdministration
.
length
>
10
?
scope
.
row
.
inherentMeasuresAdministration
.
substring
(
0
,
10
)
+
"
...
"
:
scope
.
row
.
inherentMeasuresAdministration
}}
</span>
</el-popover>
</
template
>
</el-table-column>
<el-table-column
label=
"已采取的管控措施"
align=
"center"
prop=
"existingMeasuresAdministration"
width=
"100"
>
<
template
slot-scope=
"scope"
>
<el-popover
placement=
"top-start"
title=
"已采取的管控措施"
width=
"200"
trigger=
"hover"
:content=
"scope.row.existingMeasuresAdministration"
>
<span
slot=
"reference"
>
{{
scope
.
row
.
existingMeasuresAdministration
&&
scope
.
row
.
existingMeasuresAdministration
.
length
>
10
?
scope
.
row
.
existingMeasuresAdministration
.
substring
(
0
,
10
)
+
"
...
"
:
scope
.
row
.
existingMeasuresAdministration
}}
</span>
</el-popover>
</
template
>
</el-table-column>
<el-table-column
label=
"分级管控"
align=
"center"
>
<el-table-column
label=
"管控责任单位"
align=
"center"
prop=
"measuresDeptName"
width=
"100"
/>
<el-table-column
label=
"管控责任人"
align=
"center"
prop=
"measuresUserName"
width=
"100"
/>
<el-table-column
label=
"人员联系方式"
align=
"center"
prop=
"measuresUserPhone"
width=
"100"
/>
</el-table-column>
</el-table-column>
<el-table-column
label=
"重大危险源管理"
align=
"center"
>
<el-table-column
label=
"是否存在重大危险源"
align=
"center"
prop=
"majorHazardSource"
width=
"100"
/>
<el-table-column
label=
"重大危险源名称"
align=
"center"
prop=
"hazardSourceName"
width=
"100"
/>
<el-table-column
label=
"重大危险源描述"
align=
"center"
prop=
"majorHazardDescription"
width=
"100"
/>
</el-table-column>
<el-table-column
label=
"判定依据"
align=
"center"
prop=
"referenceBasis"
width=
"100"
/>
<el-table-column
label=
"操作"
align=
"center"
prop=
"describe"
>
<
template
slot-scope=
"scope"
>
<div>
<router-link
:to=
"'/risk/plan/inherentdata/index/' + scope.row.id"
class=
"link-type"
>
<el-button
size=
"mini"
type=
"text"
icon=
"el-icon-view"
>
详情
</el-button
>
</router-link>
</div>
</
template
>
</el-table-column>
</el-table>
<pagination
v-show=
"total > 0"
:total=
"total"
:page.sync=
"queryParams.pageNum"
:limit.sync=
"queryParams.pageSize"
@
pagination=
"getList"
/>
</div>
</template>
<
script
>
import
{
inherentListList
}
from
"
@/api/risk/existing
"
;
export
default
{
name
:
"
inherent
"
,
dicts
:
[
"
risk_plan_level
"
],
data
()
{
return
{
// 遮罩层
loading
:
true
,
// 选中数组
ids
:
[],
// 非单个禁用
single
:
true
,
// 非多个禁用
multiple
:
true
,
// 显示搜索条件
showSearch
:
true
,
// 总条数
total
:
0
,
// 固有风险清单库表格数据
inherentList
:
[],
// 弹出层标题
title
:
""
,
// 是否显示弹出层
open
:
false
,
// 查询参数
queryParams
:
{
pageNum
:
1
,
pageSize
:
10
,
name
:
null
,
buildingName
:
null
,
floorName
:
null
,
roomName
:
null
,
level
:
null
,
factor
:
null
,
type
:
null
,
presenceLocation
:
null
,
},
// 表单参数
form
:
{},
// 表单校验
rules
:
{},
};
},
created
()
{
this
.
getList
();
},
methods
:
{
/** 查询固有风险清单库列表 */
getList
()
{
this
.
loading
=
true
;
inherentListList
(
this
.
queryParams
).
then
((
response
)
=>
{
this
.
inherentList
=
response
.
rows
;
this
.
total
=
response
.
total
;
this
.
loading
=
false
;
});
},
// 取消按钮
cancel
()
{
this
.
open
=
false
;
this
.
reset
();
},
// 表单重置
reset
()
{
this
.
form
=
{
name
:
null
,
buildingName
:
null
,
floorName
:
null
,
roomName
:
null
,
level
:
null
,
factor
:
null
,
type
:
null
,
level
:
null
,
riskLikelihood
:
null
,
riskSeverity
:
null
,
presenceLocation
:
null
,
pictureFileIds
:
null
,
measuresProject
:
null
,
measuresProjectFileIds
:
null
,
measuresAdministration
:
null
,
measuresDeptName
:
null
,
measuresUserName
:
null
,
measuresUserPhone
:
null
,
measuresAdministrationFileIds
:
null
,
hazardSourceName
:
null
,
majorHazardSource
:
null
,
majorHazardSourceDescription
:
null
,
measuresEmergency
:
null
,
measuresEmergencyFileIds
:
null
,
referenceBasis
:
null
,
delFlag
:
null
,
createBy
:
null
,
createTime
:
null
,
updateBy
:
null
,
updateTime
:
null
,
remark
:
null
,
};
this
.
resetForm
(
"
form
"
);
},
/** 搜索按钮操作 */
handleQuery
()
{
this
.
queryParams
.
pageNum
=
1
;
this
.
getList
();
},
/** 重置按钮操作 */
resetQuery
()
{
this
.
resetForm
(
"
queryForm
"
);
this
.
handleQuery
();
},
// 多选框选中数据
handleSelectionChange
(
selection
)
{
this
.
ids
=
selection
.
map
((
item
)
=>
item
.
id
);
this
.
single
=
selection
.
length
!==
1
;
this
.
multiple
=
!
selection
.
length
;
},
exportList
(
id
)
{
this
.
download
(
"
system/risk/plan/exportWord/riskNotification/
"
+
id
,
{});
},
showDrawCanvas
(
floorId
)
{
this
.
$router
.
push
({
name
:
"
drawCanvas
"
,
params
:
{
floorId
:
floorId
,
},
});
},
/** 导出按钮操作 */
handleExport
()
{
this
.
download
(
"
/system/risk/plan/exportExcel/InherentList
"
,
{
...
this
.
queryParams
,
},
`固有风险台账_
${
new
Date
().
getTime
()}
.xls`
);
},
},
};
</
script
>
src/views/riskLedger/list.vue
0 → 100644
View file @
b01edaf0
<
template
>
<div
class=
"app-container"
>
<el-form
:model=
"queryParams"
ref=
"queryForm"
size=
"small"
:inline=
"true"
v-show=
"showSearch"
label-width=
"68px"
>
<el-form-item
label=
"项目名称"
prop=
"name"
>
<el-input
v-model=
"queryParams.name"
placeholder=
"请输入项目名称"
clearable
@
keyup.enter.native=
"handleQuery"
/>
</el-form-item>
<el-form-item
label=
"经营状态"
prop=
"businessStatus"
>
<el-input
v-model=
"queryParams.businessStatus"
placeholder=
"请输入经营状态"
clearable
@
keyup.enter.native=
"handleQuery"
/>
</el-form-item>
<el-form-item
label=
"项目业态"
prop=
"business"
>
<el-select
v-model=
"queryParams.business"
placeholder=
"请选择项目业态"
clearable
>
<el-option
v-for=
"dict in dict.type.risk_project_business"
:key=
"dict.value"
:label=
"dict.label"
:value=
"dict.value"
/>
</el-select>
</el-form-item>
<el-form-item
label=
"所属区域"
prop=
"deptId"
>
<treeselect
v-model=
"queryParams.deptId"
:options=
"deptOptions"
:show-count=
"true"
placeholder=
"请选择所属区域"
style=
"width: 250px"
/>
</el-form-item>
<el-form-item
label=
"所在城市"
prop=
"city"
>
<el-input
v-model=
"queryParams.city"
placeholder=
"请输入所在城市"
clearable
@
keyup.enter.native=
"handleQuery"
/>
</el-form-item>
<el-form-item
label=
"详细地址"
prop=
"address"
>
<el-input
v-model=
"queryParams.address"
placeholder=
"请输入详细地址"
clearable
@
keyup.enter.native=
"handleQuery"
/>
</el-form-item>
<el-form-item
label=
"物业"
prop=
"propertyManagement"
>
<el-select
v-model=
"queryParams.propertyManagement"
placeholder=
"请选择是否为物业"
clearable
>
<el-option
key=
"1"
label=
"是"
value=
"true"
/>
<el-option
key=
"0"
label=
"否"
value=
"false"
/>
</el-select>
</el-form-item>
<el-form-item
label=
"状态"
prop=
"status"
>
<el-select
v-model=
"queryParams.status"
placeholder=
"请选择状态"
clearable
>
<el-option
v-for=
"dict in dict.type.sys_normal_disable"
:key=
"dict.value"
:label=
"dict.label"
:value=
"dict.value"
/>
</el-select>
</el-form-item>
<el-form-item>
<el-button
type=
"primary"
icon=
"el-icon-search"
size=
"mini"
@
click=
"handleQuery"
>
搜索
</el-button
>
<el-button
icon=
"el-icon-refresh"
size=
"mini"
@
click=
"resetQuery"
>
重置
</el-button
>
</el-form-item>
</el-form>
<el-row>
<right-toolbar
:showSearch.sync=
"showSearch"
@
queryTable=
"getList"
></right-toolbar>
</el-row>
<el-table
v-loading=
"loading"
:data=
"projectList"
@
selection-change=
"handleSelectionChange"
>
<el-table-column
type=
"selection"
width=
"55"
align=
"center"
/>
<el-table-column
label=
"序号"
align=
"center"
>
<template
slot-scope=
"scope"
>
<span>
{{
scope
.
$index
+
1
}}
</span>
</
template
>
</el-table-column>
<el-table-column
label=
"项目名称"
align=
"center"
prop=
"name"
/>
<el-table-column
label=
"项目类型"
align=
"center"
prop=
"type"
/>
<el-table-column
label=
"项目业态"
align=
"center"
prop=
"business"
/>
<el-table-column
label=
"所属区域"
align=
"center"
prop=
"deptName"
/>
<el-table-column
label=
"所在城市"
align=
"center"
prop=
"city"
/>
<el-table-column
label=
"详细地址"
align=
"center"
prop=
"address"
/>
<el-table-column
label=
"状态"
align=
"center"
prop=
"status"
>
<
template
slot-scope=
"scope"
>
<dict-tag
:options=
"dict.type.sys_normal_disable"
:value=
"scope.row.status"
/>
</
template
>
</el-table-column>
<el-table-column
label=
"操作"
align=
"center"
class-name=
"small-padding fixed-width"
>
<
template
slot-scope=
"scope"
>
<el-button
size=
"mini"
type=
"text"
icon=
"el-icon-edit"
@
click=
"showDetail(scope.row)"
>
查看风险台账
</el-button
>
</
template
>
</el-table-column>
</el-table>
<pagination
v-show=
"total > 0"
:total=
"total"
:page.sync=
"queryParams.pageNum"
:limit.sync=
"queryParams.pageSize"
@
pagination=
"getList"
/>
</div>
</template>
<
script
>
import
{
listProject
}
from
"
@/api/ledger/project/
"
;
import
"
@riophae/vue-treeselect/dist/vue-treeselect.css
"
;
export
default
{
name
:
"
Project
"
,
dicts
:
[
"
sys_normal_disable
"
,
"
data_source
"
,
"
risk_project_business
"
],
data
()
{
return
{
// 遮罩层
loading
:
true
,
// 选中数组
ids
:
[],
// 非单个禁用
single
:
true
,
// 非多个禁用
multiple
:
true
,
// 显示搜索条件
showSearch
:
true
,
// 总条数
total
:
0
,
userTotal
:
0
,
// 基础数据-项目表格数据
projectList
:
[],
// 部门树选项
deptOptions
:
undefined
,
// 弹出层标题
title
:
""
,
// 用户表格数据
userList
:
null
,
// 是否显示弹出层
open
:
false
,
powerOpen
:
false
,
// 查询参数
queryParams
:
{
pageNum
:
1
,
pageSize
:
10
,
name
:
null
,
type
:
null
,
deptId
:
null
,
city
:
null
,
address
:
null
,
source
:
null
,
status
:
null
,
},
queryUserParams
:
{
pageNum
:
1
,
pageSize
:
10
,
projectId
:
undefined
,
userName
:
undefined
,
},
// 表单参数
form
:
{
businessStatus
:
""
,
},
// 表单校验
rules
:
{},
projectId
:
""
,
userPost
:
null
,
postList
:
[],
userInfoData
:
{},
};
},
watch
:
{
// 根据名称筛选部门树
deptName
(
val
)
{
this
.
$refs
.
tree
.
filter
(
val
);
},
},
created
()
{
this
.
getList
();
},
methods
:
{
/** 查询基础数据-项目列表 */
getList
()
{
this
.
loading
=
true
;
listProject
(
this
.
queryParams
).
then
((
response
)
=>
{
this
.
projectList
=
response
.
rows
;
this
.
total
=
response
.
total
;
this
.
loading
=
false
;
});
},
// 取消按钮
cancel
()
{
this
.
open
=
false
;
this
.
reset
();
},
// 表单重置
reset
()
{
this
.
form
=
{
id
:
null
,
name
:
null
,
type
:
null
,
deptId
:
null
,
city
:
null
,
address
:
null
,
source
:
null
,
status
:
null
,
delFlag
:
null
,
createBy
:
null
,
createTime
:
null
,
updateBy
:
null
,
updateTime
:
null
,
};
this
.
resetForm
(
"
form
"
);
},
/** 搜索按钮操作 */
handleQuery
()
{
this
.
queryParams
.
pageNum
=
1
;
this
.
getList
();
},
/** 重置按钮操作 */
resetQuery
()
{
this
.
resetForm
(
"
queryForm
"
);
this
.
handleQuery
();
},
showDetail
(
obj
)
{
this
.
$router
.
push
({
name
:
"
/riskLe
"
,
params
:
{
projectId
:
obj
.
id
,
},
});
},
},
};
</
script
>
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment