Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
B
BCDH-APP
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
首开风险隐患双控平台
BCDH-APP
Commits
1ea5a41b
Commit
1ea5a41b
authored
Apr 26, 2022
by
王李辉
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
巡查模块
parent
706d2fc4
Pipeline
#8209
passed with stage
in 5 minutes and 6 seconds
Changes
10
Pipelines
1
Show whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
934 additions
and
435 deletions
+934
-435
package.json
package.json
+1
-1
src/views/danger/dangerPatrol/cancelPatrol/index.vue
src/views/danger/dangerPatrol/cancelPatrol/index.vue
+176
-0
src/views/danger/dangerPatrol/implement/index.vue
src/views/danger/dangerPatrol/implement/index.vue
+213
-0
src/views/danger/dangerPatrol/index.vue
src/views/danger/dangerPatrol/index.vue
+105
-0
src/views/danger/dangerPatrol/recordPatrol/detail.vue
src/views/danger/dangerPatrol/recordPatrol/detail.vue
+111
-0
src/views/danger/dangerPatrol/recordPatrol/index.vue
src/views/danger/dangerPatrol/recordPatrol/index.vue
+194
-0
src/views/danger/dangerPatrol/statistics/index.vue
src/views/danger/dangerPatrol/statistics/index.vue
+120
-0
src/views/danger/delayApproval/index.vue
src/views/danger/delayApproval/index.vue
+0
-272
src/views/danger/delayApproval/ratifyInfo.vue
src/views/danger/delayApproval/ratifyInfo.vue
+0
-162
vue.config.js
vue.config.js
+14
-0
No files found.
package.json
View file @
1ea5a41b
...
...
@@ -11,7 +11,7 @@
"
axios
"
:
"
^0.19.2
"
,
"
better-scroll
"
:
"
^1.15.2
"
,
"
core-js
"
:
"
^3.4.3
"
,
"
echarts
"
:
"
^5.3.2
"
,
"
js-cookie
"
:
"
^2.2.1
"
,
"
js-md5
"
:
"
^0.7.3
"
,
"
lib-flexible
"
:
"
^0.3.2
"
,
...
...
src/views/danger/dangerPatrol/cancelPatrol/index.vue
0 → 100644
View file @
1ea5a41b
<
template
>
<div>
<LHeader
:text=
"text"
></LHeader>
<!-- 内容列表 -->
<div
class=
"con-list"
>
<!-- v-for="(item, index) in messageList" :key="index" -->
<van-cell-group
inset
>
<van-row
gutter
class=
"cont-operation"
>
<van-col
span=
"24"
>
申请原因
</van-col>
</van-row>
<van-row
gutter
class=
"cont-operation"
style=
"margin-top: 10px;"
>
<van-col
span=
"24"
>
<van-radio-group
v-model=
"radio"
direction=
"horizontal"
@
change=
"operation"
>
<van-radio
name=
"1"
shape=
"square"
>
快捷申请
</van-radio>
<van-radio
name=
"2"
shape=
"square"
>
自定义
</van-radio>
</van-radio-group>
</van-col>
</van-row>
</van-cell-group>
</div>
<van-form
style=
"margin: 0 10px"
@
submit=
"onSubmit"
:scroll-to-error=
"true"
:show-error=
"false"
validate-trigger=
"onSubmit"
>
<van-field
v-if=
"isShow"
readonly
clickable
required
label=
"申请原因"
name=
"applyReason"
:value=
"applyReason"
placeholder=
"请选择"
@
click=
"showReason = true"
/>
<van-popup
v-model=
"showReason"
position=
"bottom"
>
<van-picker
show-toolbar
:columns=
"columnsReason"
@
confirm=
"onConSetReason"
@
cancel=
"showReason = false"
/>
</van-popup>
<van-field
v-if=
"!isShow"
v-model=
"measures"
name=
"measures"
label=
"应急措施"
type=
"textarea"
rows=
"3"
autosize
placeholder=
"请输入"
/>
</van-form>
<div
class=
"operation-btn"
>
<van-button
block
type=
"info"
plain
native-type=
"button"
style=
"border-radius: 5px; background-color: #f0f1f5; margin-bottom: 10px;"
@
click=
"cancel"
>
取消
</van-button>
<van-button
block
type=
"info"
native-type=
"submit"
style=
"border-radius: 5px;"
@
click=
"save"
>
提交
</van-button>
</div>
</div>
</
template
>
<
script
>
import
LHeader
from
"
@/components/header.vue
"
;
import
{
getFun
,
postFun
}
from
"
@/service/table.js
"
;
export
default
{
name
:
"
cancel-patrol
"
,
components
:
{
LHeader
},
data
()
{
return
{
text
:
"
取消申请
"
,
radio
:
"
1
"
,
applyReason
:
""
,
setRank
:
""
,
//风险定级
showReason
:
false
,
columnsReason
:
[
"
今日请假
"
,
"
今日外出、离岗
"
,
"
今日调休
"
],
measures
:
""
,
isShow
:
true
};
},
methods
:
{
operation
()
{
if
(
this
.
radio
==
"
1
"
)
{
this
.
isShow
=
true
;
}
else
{
this
.
isShow
=
false
;
}
},
onConSetReason
(
value
)
{
this
.
showReason
=
false
;
this
.
applyReason
=
value
;
},
onSubmit
(
values
)
{
// 放图片路径 因为formdat存数组会自动变成字符串所以次用这种追加字段的方式
console
.
log
(
values
);
// this.$toast.loading({
// message: "提交中...",
// forbidClick: true,
// loadingType: "spinner",
// duration: 0,
// });
// postReAdd(url, formdata)
// .then((res) => {
// this.$toast.clear();
// this.$toast.success({
// message: "提交成功",
// duration: 2000,
// });
// history.go(-1);
// })
// .catch(() => {
// this.$toast.clear();
// this.$toast.fail("提交失败,请稍后再试");
// });
// this.$toast.clear();
},
save
(){},
cancel
()
{
this
.
$router
.
go
(
-
1
);
}
}
};
</
script
>
<
style
lang=
"less"
scoped
>
/* @import url(); 引入css类 */
.con-list {
padding: 0;
background-color: #f0f1f5;
.van-cell-group--inset {
margin: 0;
margin-bottom: 0.26667rem;
padding: 0.25rem;
font-size: 0.4rem;
position: relative;
border-radius: 4%;
box-shadow: 0px 0px 10px 2px #f3f3f3;
width: 90%;
margin: 0.4rem auto;
.van-row {
font-size: 0.4rem;
line-height: 0.8rem;
margin-bottom: 0;
}
}
}
.operation-btn {
width: 95%;
margin: 20px 10px 10px;
position: fixed;
bottom: 50px;
right: 0;
left: 0;
}
</
style
>
src/views/danger/dangerPatrol/implement/index.vue
0 → 100644
View file @
1ea5a41b
<
template
>
<div>
<van-sticky>
<LHeader
:text=
"text"
></LHeader>
</van-sticky>
<!-- tab标签 -->
<van-tabs
v-model=
"active"
@
change=
"postList"
color=
"#2980f7"
animated
:sticky=
"true"
offset-top=
"1.5rem"
>
<van-tab
v-for=
"(item, key) in tabs"
:key=
"key"
:title=
"item.title"
>
<!-- 内容列表 -->
<div
class=
"con-list"
>
<!-- v-for="(item, index) in messageList" :key="index" -->
<van-cell-group
inset
>
<van-row
gutter
>
<van-col
span=
"18"
>
<span
class=
"con_title"
>
日查
</span>
<span>
制度、规程、方案
</span>
</van-col>
<van-col
span=
"6"
class=
"con_type con_right"
>
危险隐患
</van-col>
</van-row>
<van-row
gutter
>
<van-col
span=
"24"
>
应建立地下有限空间作业安全生产责任制、安全生产规章制度和操作规程。
</van-col>
</van-row>
<van-row
gutter
class=
"cont-operation"
>
<van-col
span=
"10"
class=
"con_type"
>
法律依据/出处
</van-col>
<van-col
span=
"14"
class=
"con_right"
>
<van-radio-group
v-model=
"radio"
direction=
"horizontal"
@
change=
"operation"
>
<van-radio
name=
"1"
shape=
"square"
>
合格
</van-radio>
<van-radio
name=
"2"
shape=
"square"
>
不合格
</van-radio>
</van-radio-group>
</van-col>
</van-row>
</van-cell-group>
</div>
<!-- 暂无数据 -->
<!--
<div
style=
"
width: 100%;
text-align: center;
font-size: 0.48rem;
position: fixed;
top: 30%;
"
v-if=
"messageList.length == 0"
>
暂无数据
</div>
-->
</van-tab>
</van-tabs>
<div
class=
"operation-btn"
>
<van-button
block
type=
"info"
plain
native-type=
"button"
style=
"border-radius: 5px; background-color: #f0f1f5; margin-bottom: 10px;"
@
click=
"save"
>
保存
</van-button>
<van-button
block
type=
"info"
native-type=
"submit"
style=
"border-radius: 5px;"
@
click=
"finish"
>
结束巡查
</van-button>
</div>
</div>
</
template
>
<
script
>
import
LHeader
from
"
@/components/header.vue
"
;
import
{
getFun
,
postFun
}
from
"
@/service/table.js
"
;
export
default
{
name
:
"
implement
"
,
components
:
{
LHeader
},
data
()
{
return
{
text
:
"
执行巡查
"
,
messageList
:
[],
active
:
0
,
radio
:
"
1
"
,
tabs
:
[
{
title
:
"
安全管理类
"
,
api
:
"
/rectification/list1
"
},
{
title
:
"
文明施工类
"
,
api
:
"
/rectification/list2
"
},
{
title
:
"
临时用电类
"
,
api
:
"
/rectification/finishList
"
}
]
};
},
created
()
{
// this.postList();
},
methods
:
{
postList
(
val
)
{
console
.
log
(
this
.
active
);
// this.$toast.loading({
// message: "加载中...",
// forbidClick: true,
// loadingType: "spinner",
// duration: 0
// });
// let formdata = new FormData();
// postFun(this.tabs[this.active]["api"], formdata)
// .then(res => {
// console.log(res);
// this.$toast.clear();
// this.messageList = res.rows || res.data;
// })
// .catch(err => {
// console.log(err);
// this.$toast.clear();
// this.$toast.fail("加载失败,请稍后再试");
// });
},
operation
()
{
// 如果不合格跳转到隐患上报页面
if
(
this
.
radio
==
"
2
"
)
{
this
.
$router
.
push
({
name
:
"
add-danger
"
});
}
},
save
()
{},
finish
()
{}
}
};
</
script
>
<
style
lang=
"less"
scoped
>
/* @import url(); 引入css类 */
#app {
font-family: "";
color: #2c3e50;
}
.con-list {
padding: 0;
background-color: #f0f1f5;
.van-cell-group--inset {
margin: 0;
margin-bottom: 0.26667rem;
padding: 0.25rem;
font-size: 0.4rem;
position: relative;
border-radius: 4%;
box-shadow: 0px 0px 10px 2px #f3f3f3;
width: 90%;
margin: 0.4rem auto;
.van-row {
font-size: 0.4rem;
line-height: 0.8rem;
margin-bottom: 0;
.con_title {
color: #05a7f0;
font-weight: 600;
}
.con_type {
color: #05a7f0;
padding-right: 10px;
}
}
.con_right {
display: flex;
justify-content: flex-end;
}
.cont-operation {
display: flex;
align-items: center;
margin-top: 10px;
}
.van-overlay {
position: absolute;
.wrapper {
display: flex;
align-items: center;
justify-content: space-evenly;
height: 100%;
}
}
}
}
/deep/.van-tab__pane-wrapper {
min-height: 8rem;
}
.van-tabs__track {
min-height: 3rem;
}
.operation-btn {
width: 95%;
margin: 20px 10px 10px;
position: fixed;
bottom: 50px;
right: 0;
left: 0;
}
</
style
>
src/views/danger/dangerPatrol/index.vue
0 → 100644
View file @
1ea5a41b
<
template
>
<div>
<LHeader
:text=
"text"
></LHeader>
<!-- 内容列表 -->
<div
class=
"con-list"
>
<van-cell-group
inset
v-for=
"(item, index) in contentList"
:key=
"index"
@
click=
"onClick(item.content)"
>
<div
class=
"icon-wrap"
>
<span
class=
"icon-img"
>
<van-image
width=
"35"
height=
"35"
style=
"margin: 0 10px;overflow: hidden; border-radius: 5px;"
:src=
"item.imgUrl"
/>
</span>
{{
item
.
content
}}
</div>
</van-cell-group>
</div>
</div>
</
template
>
<
script
>
import
LHeader
from
"
@/components/header.vue
"
;
export
default
{
name
:
"
danger-patrol
"
,
components
:
{
LHeader
},
data
()
{
return
{
text
:
"
危险作业申请
"
,
contentList
:
[
{
title
:
"
A1
"
,
imgUrl
:
require
(
"
@/assets/dangerPatrol/patrol-icon.png
"
),
content
:
"
执行巡查
"
},
{
title
:
"
A2
"
,
imgUrl
:
require
(
"
@/assets/dangerPatrol/patrol-icon.png
"
),
content
:
"
取消巡查
"
},
{
title
:
"
A1
"
,
imgUrl
:
require
(
"
@/assets/dangerPatrol/patrol-icon.png
"
),
content
:
"
巡查记录
"
},
{
title
:
"
A2
"
,
imgUrl
:
require
(
"
@/assets/dangerPatrol/patrol-icon.png
"
),
content
:
"
巡查统计
"
}
]
};
},
mounted
()
{},
methods
:
{
onClick
(
val
)
{
if
(
val
==
"
执行巡查
"
)
{
this
.
$router
.
push
({
name
:
"
implement
"
});
}
else
if
(
val
==
"
取消巡查
"
)
{
this
.
$router
.
push
({
name
:
"
cancel-patrol
"
});
}
else
if
(
val
==
"
巡查记录
"
)
{
this
.
$router
.
push
({
name
:
"
record-patrol
"
});
}
else
if
(
val
==
"
巡查统计
"
)
{
this
.
$router
.
push
({
name
:
"
statistics
"
});
}
}
}
};
</
script
>
<
style
lang=
"less"
scoped
>
/* @import url(); 引入css类 */
.van-cell-group--inset {
height: 2.266667rem;
line-height: 2.266667rem;
font-size: 0.4rem;
font-weight: bolder;
margin: 0.266667rem;
padding-left: 0.666667rem;
color: #3499ff;
.icon-wrap {
display: flex;
align-items: center;
.icon-img {
margin-right: 0.533333rem;
display: inherit;
}
}
}
</
style
>
src/views/danger/dangerPatrol/recordPatrol/detail.vue
0 → 100644
View file @
1ea5a41b
<
template
>
<div>
<LHeader
:text=
"text"
></LHeader>
<!-- 内容列表 -->
<!-- 接口对接4 START -->
<div
class=
"con-list"
>
<van-cell-group
inset
>
<van-row
gutte
>
<van-col
span=
"24"
>
项目名称: XXX回迁房新建工程
</van-col>
</van-row>
<van-row
gutte
>
<van-col
span=
"24"
>
项目名称: 专职安全员
</van-col>
</van-row>
<van-row
gutte
>
<van-col
span=
"12"
>
开始巡查时间: 09:30
</van-col>
<van-col
span=
"12"
class=
"cont-end"
>
结束巡查时间: 11:25
</van-col>
</van-row>
<van-row
gutter
>
<van-col
span=
"24"
>
巡查时长: 2小时13分
</van-col>
</van-row>
<van-row
gutter
>
<van-col
span=
"24"
>
上报隐患: 8
</van-col>
</van-row>
<van-row
gutter
>
<van-col
span=
"24"
>
确认隐患: 5
</van-col>
</van-row>
</van-cell-group>
<van-cell-group
inset
>
<van-row
gutte
>
<van-col
span=
"12"
>
制度、规程、方案
</van-col>
<van-col
span=
"12"
class=
"cont-end affirm-status"
>
已认定
</van-col>
</van-row>
<van-row
gutter
>
<van-col
span=
"24"
>
应建立地下有限空间作业安全生产责任制、安全生产规章制度和操作规程。
</van-col>
</van-row>
</van-cell-group>
<van-cell-group
inset
>
<van-row
gutte
>
<van-col
span=
"12"
>
制度、规程、方案
</van-col>
<van-col
span=
"12"
class=
"cont-end back-status"
>
已退回
</van-col>
</van-row>
<van-row
gutter
>
<van-col
span=
"24"
>
应建立地下有限空间作业安全生产责任制、安全生产规章制度和操作规程。
</van-col>
</van-row>
</van-cell-group>
</div>
<tab-bar
:index=
"1"
></tab-bar>
</div>
</
template
>
<
script
>
import
tabBar
from
"
@/components/TabBar
"
;
import
LHeader
from
"
@/components/header.vue
"
;
import
{
getFun
,
postFun
}
from
"
@/service/table.js
"
;
export
default
{
name
:
"
record-detail
"
,
components
:
{
LHeader
,
tabBar
},
data
()
{
return
{
text
:
"
记录详情
"
,
messageList
:
[],
isHaveNews
:
false
};
},
created
()
{},
methods
:
{}
};
</
script
>
<
style
lang=
"less"
scoped
>
/* @import url(); 引入css类 */
#app {
font-family: "";
color: #2c3e50;
}
.con-list {
padding: 0;
background-color: #f0f1f5;
.van-cell-group--inset {
margin: 0;
margin-bottom: 0.26667rem;
padding: 0.25rem;
font-size: 0.4rem;
position: relative;
border-radius: 4%;
box-shadow: 0px 0px 10px 2px #f3f3f3;
width: 90%;
margin: 0.4rem auto;
.van-row {
font-size: 0.4rem;
line-height: 0.8rem;
margin-bottom: 0;
.cont-end{
display: flex;
justify-content: flex-end;
}
.affirm-status{
color: #008080;
}
.back-status{
color: #f59a83;
}
}
}
}
</
style
>
src/views/danger/dangerPatrol/recordPatrol/index.vue
0 → 100644
View file @
1ea5a41b
<
template
>
<div>
<LHeader
:text=
"text"
></LHeader>
<van-sticky
offset-top=
"1.5rem"
>
<van-search
v-model=
"searchValue"
show-action
placeholder=
"请输入搜索内容"
@
search=
"onSearch"
>
<template
#action
>
<div
@
click=
"onSearch"
>
搜索
</div>
</
template
>
</van-search>
</van-sticky>
<!-- 内容列表 -->
<!-- 接口对接4 START -->
<div
class=
"con-list"
@
touchmove=
"showIndex = null"
>
<!-- v-for="(item, index) in messageList"
:key="index"
@click="touchstart(index, item)"-->
<van-cell-group
inset
>
<van-row
gutte
>
<van-col
span=
"12"
>
<span
class=
"record-time"
>
2022年4月8日
</span>
</van-col>
<van-col
span=
"12"
class=
"cont-end record-status"
>
已执行
</van-col>
</van-row>
<van-row
gutte
>
<van-col
span=
"12"
>
开始时间: 09:30
</van-col>
<van-col
span=
"12"
class=
"cont-end"
>
结束巡查时间: 11:25
</van-col>
</van-row>
<van-row
gutter
>
<van-col
span=
"24"
>
巡查时长: 2小时13分
</van-col>
</van-row>
<van-row
gutter
>
<van-col
span=
"24"
>
上报隐患: 8
</van-col>
</van-row>
<van-row
gutter
>
<van-col
span=
"24"
>
确认隐患: 5
</van-col>
</van-row>
<!-- 长按显示遮罩层 -->
<!-- :show="showIndex == index" -->
<van-overlay
:show=
"true"
>
<div
class=
"wrapper"
@
click.stop=
"showIndex = null"
>
<van-button
round
type=
"primary"
@
click=
"goDetail(item)"
>
详情
</van-button>
</div>
</van-overlay>
</van-cell-group>
</div>
<!-- 暂无数据 -->
<!-- v-if="isHaveNews" -->
<div
style=
"width: 100%;text-align: center; font-size: .48rem;position: fixed; top: 30%;"
v-if=
"false"
>
暂无数据
</div>
<tab-bar
:index=
"1"
></tab-bar>
</div>
</template>
<
script
>
import
tabBar
from
"
@/components/TabBar
"
;
import
LHeader
from
"
@/components/header.vue
"
;
import
{
getFun
,
postFun
}
from
"
@/service/table.js
"
;
import
{
superviseSABlist
}
from
"
@/service/danger
"
;
/*接口对接2 START*/
// 例子:
// import {
// getFormList,
// postHdTyp,
// postHdName,
// postHdInventories,
// postHdRiskSource,
// postHdShowPeople,
// postHdReportAdd,
// dangerReturnEcho,
// } from "@/service/danger";
/*接口对接2 END*/
export
default
{
name
:
"
record-patrol
"
,
components
:
{
LHeader
,
tabBar
},
data
()
{
return
{
text
:
"
企业级督办
"
,
searchValue
:
""
,
messageList
:
[],
isHaveNews
:
false
,
showIndex
:
null
// 是否显示遮罩层
};
},
created
()
{
this
.
getList
();
},
methods
:
{
getList
(
select
=
""
)
{
this
.
$toast
.
loading
({
message
:
"
加载中...
"
,
forbidClick
:
true
,
loadingType
:
"
spinner
"
,
duration
:
0
});
let
formdata
=
new
FormData
();
formdata
.
append
(
"
select
"
,
select
);
superviseSABlist
(
"
/supervise/SABlist
"
,
formdata
)
.
then
(
res
=>
{
this
.
$toast
.
clear
();
this
.
messageList
=
res
.
data
;
// 判断有无数据返回
if
(
this
.
messageList
.
length
==
0
)
{
this
.
isHaveNews
=
true
;
}
})
.
catch
(()
=>
{
this
.
$toast
.
clear
();
this
.
$toast
.
fail
(
"
加载失败,请稍后再试
"
);
});
},
onSearch
(
val
)
{
this
.
getList
(
this
.
searchValue
);
},
touchstart
(
index
,
item
)
{
if
(
this
.
showIndex
!=
null
)
{
this
.
showIndex
=
null
;
return
;
}
this
.
showIndex
=
index
;
},
// 详情
goDetail
(
data
)
{
this
.
$router
.
push
({
name
:
"
record-detail
"
});
// 先跳转到详情页
// this.$router.push({
// name: "normal-detail",
// params: {
// id: data.pid
// }
// });
// this.showIndex = null;
}
}
};
</
script
>
<
style
lang=
"less"
scoped
>
/* @import url(); 引入css类 */
#app {
font-family: "";
color: #2c3e50;
}
.con-list {
padding: 0;
background-color: #f0f1f5;
.van-cell-group--inset {
margin: 0;
margin-bottom: 0.26667rem;
padding: 0.25rem;
font-size: 0.4rem;
position: relative;
border-radius: 4%;
box-shadow: 0px 0px 10px 2px #f3f3f3;
width: 90%;
margin: 0.4rem auto;
.van-row {
font-size: 0.4rem;
line-height: 0.8rem;
margin-bottom: 0;
.record-time {
color: #f59a83;
}
.record-status {
color: #008080;
}
.cont-end {
display: flex;
justify-content: flex-end;
}
}
.van-overlay {
position: absolute;
.wrapper {
display: flex;
align-items: center;
justify-content: space-evenly;
height: 100%;
}
}
}
}
</
style
>
src/views/danger/dangerPatrol/statistics/index.vue
0 → 100644
View file @
1ea5a41b
<
template
>
<div>
<LHeader
:text=
"text"
></LHeader>
<!-- 内容列表 -->
<!-- 接口对接4 START -->
<div
class=
"con-list"
>
<van-cell-group
inset
>
<van-row
gutte
>
<van-col
span=
"24"
>
总巡查次数:85次
</van-col>
</van-row>
<van-row
gutte
>
<van-col
span=
"24"
>
认定隐患数量: 25个
</van-col>
</van-row>
<van-tabs
@
click=
"onClick"
color=
"#2980f7"
>
<van-tab
title=
"隐患上报统计"
>
<van-row
gutte
>
<van-col
span=
"24"
class=
"excel-title"
>
<span>
月巡查
</span>
<span>
周巡查
</span>
</van-col>
</van-row>
<!-- echarts图 -->
<van-row
gutte
>
<van-col
span=
"24"
class=
"excel-title"
>
<div
id=
"box"
style=
"width: 100%;height: 300px;"
></div>
</van-col>
</van-row>
</van-tab>
<van-tab
title=
"巡查时长统计"
>
2
</van-tab>
</van-tabs>
</van-cell-group>
</div>
<tab-bar
:index=
"1"
></tab-bar>
</div>
</
template
>
<
script
>
import
tabBar
from
"
@/components/TabBar
"
;
import
LHeader
from
"
@/components/header.vue
"
;
import
{
getFun
,
postFun
}
from
"
@/service/table.js
"
;
import
*
as
echarts
from
"
echarts
"
;
export
default
{
name
:
"
statistics
"
,
components
:
{
LHeader
,
tabBar
},
data
()
{
return
{
text
:
"
巡查统计
"
,
messageList
:
[],
isHaveNews
:
false
};
},
mounted
()
{
this
.
$nextTick
(()
=>
{
this
.
myEcharts
();
});
},
methods
:
{
onClick
(
name
,
title
)
{
console
.
log
(
title
);
},
myEcharts
()
{
console
.
log
(
echarts
);
var
myChart
=
echarts
.
init
(
document
.
getElementById
(
"
box
"
));
//配置图表
var
option
=
{
xAxis
:
{
type
:
"
category
"
,
data
:
[
"
Mon
"
,
"
Tue
"
,
"
Wed
"
,
"
Thu
"
,
"
Fri
"
,
"
Sat
"
,
"
Sun
"
]
},
yAxis
:
{
type
:
"
value
"
},
series
:
[
{
data
:
[
120
,
200
,
150
,
80
,
70
,
110
,
130
],
type
:
"
bar
"
}
]
};
myChart
.
setOption
(
option
);
}
}
};
</
script
>
<
style
lang=
"less"
scoped
>
/* @import url(); 引入css类 */
#app {
font-family: "";
color: #2c3e50;
}
.con-list {
padding: 0;
background-color: #f0f1f5;
.van-cell-group--inset {
margin: 0;
margin-bottom: 0.26667rem;
padding: 0.25rem;
font-size: 0.4rem;
position: relative;
border-radius: 4%;
box-shadow: 0px 0px 10px 2px #f3f3f3;
width: 90%;
margin: 0.4rem auto;
.van-row {
font-size: 0.4rem;
line-height: 0.8rem;
margin-bottom: 0;
.excel-title {
display: flex;
justify-content: space-evenly;
margin-top: 15px;
}
}
}
}
</
style
>
src/views/danger/delayApproval/index.vue
deleted
100644 → 0
View file @
706d2fc4
<
template
>
<div>
<van-sticky
offset-top=
"0"
>
<LHeader
:text=
"text"
></LHeader>
</van-sticky>
<van-sticky
offset-top=
"1.5rem"
>
<van-search
v-model=
"searchValue"
show-action
placeholder=
"请输入搜索内容"
@
search=
"onSearch"
>
<template
#action
>
<div
@
click=
"onSearch"
>
搜索
</div>
</
template
>
</van-search>
</van-sticky>
<!-- 内容列表 -->
<!-- 接口对接4 START -->
<van-tabs
v-model=
"active"
@
change=
"
getList(searchValue);
showIndex = null;
"
color=
"#2980f7"
animated
:sticky=
"true"
offset-top=
"2.93rem"
>
<van-tab
v-for=
"(item, key) in tabs"
:key=
"key"
:title=
"item.title"
>
<div
class=
"con-list"
@
touchmove=
"showIndex = null"
v-if=
"key == active"
>
<van-cell-group
inset
v-for=
"(item, index) in messageList"
:key=
"index"
@
click=
"touchstart(index, item)"
>
<van-row
gutter=
""
>
<van-col
span=
"7"
>
隐患单编号:
</van-col>
<van-col
span=
"17"
>
{{
item.businessId || item.pid
}}
</van-col>
</van-row>
<van-row
gutter=
""
>
<van-col
span=
"7"
>
所属项目:
</van-col>
<van-col
span=
"17"
>
{{ item.proId }}
</van-col>
</van-row>
<van-row
gutter=
""
>
<van-col
span=
"7"
v-if=
"item.hdLev"
>
隐患级别:
</van-col
>
<van-col
span=
"17"
>
{{
item.hdLev | dangerText
}}
</van-col>
</van-row>
<van-row
gutter=
""
v-show=
"item.examineResult"
>
<van-col
span=
"7"
>
是否通过:
</van-col>
<van-col
span=
"17"
>
{{
item.examineResult == 1 ? "是" : "否"
}}
</van-col>
</van-row>
<van-row
gutter=
""
v-show=
"item.examineReason"
>
<van-col
span=
"7"
>
意见:
</van-col>
<van-col
span=
"17"
>
{{
item.examineReason
}}
</van-col>
</van-row>
<van-row
gutter=
""
v-if=
"item.taskName"
>
<van-col
span=
"7"
>
工单状态:
</van-col>
<van-col
span=
"17"
>
{{ item.taskName }}
</van-col>
</van-row>
<!-- 长按显示遮罩层 -->
<
template
>
<van-overlay
:show=
"showIndex == index"
>
<div
class=
"wrapper"
@
click.stop=
"showIndex = null"
>
<van-button
round
type=
"primary"
@
click=
"goDetail(item, 'normal-detail')"
>
隐患详情
</van-button
>
<van-button
round
type=
"info"
@
click=
"goConfirm(item)"
v-if=
"active == 0"
>
审批
</van-button>
<van-button
round
type=
"info"
@
click=
"
goDetail(
item,
'finish-delay-detail'
)
"
v-if=
"active == 1"
>
延期查看
</van-button
>
</div>
</van-overlay>
</
template
>
</van-cell-group>
</div>
<!-- 暂无数据 -->
<div
style=
"
width: 100%;
text-align: center;
font-size: 0.48rem;
position: fixed;
top: 30%;
"
v-if=
"messageList.length == 0"
>
暂无数据
</div>
</van-tab>
</van-tabs>
</div>
</template>
<
script
>
import
LHeader
from
"
@/components/header.vue
"
;
import
{
getFun
,
postFun
}
from
"
@/service/table.js
"
;
import
{
delayList
}
from
"
@/service/danger
"
;
export
default
{
name
:
'
delay-approval
'
,
components
:
{
LHeader
,
},
data
()
{
return
{
text
:
"
延期审批
"
,
searchValue
:
""
,
isHaveNews
:
false
,
messageList
:
[],
Loop
:
""
,
// 定时器
showIndex
:
null
,
// 是否显示遮罩层
active
:
0
,
tabs
:
[
{
title
:
"
待审批
"
,
api
:
"
/delayApply/list
"
,
},
{
title
:
"
已审批
"
,
api
:
"
/delayApply/finishList
"
,
},
],
};
},
created
()
{
this
.
getList
();
},
methods
:
{
getList
(
select
=
""
)
{
/*接口对接3 START*/
// 例子:
this
.
$toast
.
loading
({
message
:
"
加载中...
"
,
forbidClick
:
true
,
loadingType
:
"
spinner
"
,
duration
:
0
,
});
let
formdata
=
new
FormData
();
formdata
.
append
(
"
select
"
,
select
);
postFun
(
this
.
tabs
[
this
.
active
][
"
api
"
],
formdata
)
.
then
((
res
)
=>
{
this
.
$toast
.
clear
();
this
.
messageList
=
res
.
rows
||
res
.
data
;
// 判断有无数据返回
if
(
this
.
messageList
.
length
==
0
)
{
this
.
isHaveNews
=
true
;
}
})
.
catch
((
err
)
=>
{
console
.
log
(
err
);
this
.
$toast
.
clear
();
this
.
$toast
.
fail
(
"
加载失败,请稍后再试
"
);
});
/*接口对接3 END*/
},
onSearch
()
{
this
.
getList
(
this
.
searchValue
);
},
touchstart
(
index
,
item
)
{
if
(
this
.
showIndex
!=
null
)
{
this
.
showIndex
=
null
;
return
;
}
this
.
showIndex
=
index
;
},
// 详情
goDetail
(
data
,
name
=
"
normal-detail
"
)
{
let
id
=
name
==
"
normal-detail
"
?
data
.
businessId
||
data
.
pid
:
data
.
id
;
this
.
$router
.
push
({
name
,
params
:
{
id
,
},
});
this
.
showIndex
=
null
;
},
// 审批
goConfirm
(
data
)
{
this
.
$router
.
push
({
name
:
"
ratify-info
"
,
params
:
{
taskId
:
data
.
taskId
,
},
});
this
.
showIndex
=
null
;
},
},
};
</
script
>
<
style
lang=
"less"
scoped
>
/* @import url(); 引入css类 */
#app {
font-family: "";
color: #2c3e50;
}
.con-list {
padding: 0;
background-color: #f0f1f5;
.van-cell-group--inset {
margin: 0;
margin-bottom: 0.26667rem;
padding: 0.25rem;
font-size: 0.4rem;
position: relative;
border-radius: 4%;
box-shadow: 0px 0px 10px 2px #f3f3f3;
width: 90%;
margin: 0.4rem auto;
.van-row {
font-size: 0.4rem;
line-height: 0.8rem;
margin-bottom: 0;
}
.van-overlay {
position: absolute;
.wrapper {
display: flex;
align-items: center;
justify-content: space-evenly;
height: 100%;
}
}
}
}
/deep/.van-tab__pane-wrapper {
min-height: 8rem;
}
.van-tabs__track {
min-height: 3rem;
}
</
style
>
src/views/danger/delayApproval/ratifyInfo.vue
deleted
100644 → 0
View file @
706d2fc4
<
template
>
<div>
<LHeader
:text=
"text"
></LHeader>
<van-form
@
submit=
"onSubmit"
:show-error=
"false"
:scroll-to-error=
"true"
validate-trigger=
"onSubmit"
>
<van-field
v-model=
"applyDate"
readonly
name=
"applyDate"
label=
"延期时间"
placeholder=
"空"
/>
<van-field
v-model=
"applyReason"
readonly
label=
"延期理由"
name=
"applyReason"
rows=
"1"
autosize
type=
"textarea"
placeholder=
"空"
/>
<van-field
name=
"isAgree"
label=
"延期是否通过"
>
<template
#input
>
<van-radio-group
v-model=
"isAgree"
direction=
"horizontal"
@
change=
"selectResult"
>
<van-radio
name=
"1"
>
通过
</van-radio>
<van-radio
name=
"0"
>
退回
</van-radio>
</van-radio-group>
</
template
>
</van-field>
<van-field
v-model=
"opinion"
label=
'审批意见'
name=
"examineReason"
rows=
"3"
type=
"textarea"
placeholder=
"请输入"
required
:rules=
"[{ required: true, message: '理由或者意见不能为空' }]"
/>
<div
style=
"margin: 16px"
>
<van-button
round
block
type=
"info"
native-type=
"submit"
>
保存
</van-button
>
</div>
</van-form>
<div
style=
"margin: 10px 16px 0px; padding-bottom: 16px"
>
<van-button
round
block
type=
"warning"
@
click.native=
"cancel"
>
取消
</van-button
>
</div>
</div>
</template>
<
script
>
import
LHeader
from
"
@/components/header.vue
"
;
import
{
getFun
,
postFun
}
from
"
@/service/table.js
"
;
import
{
delayReturn
}
from
"
@/service/danger
"
;
import
{
delayEdit
}
from
"
@/service/danger
"
;
export
default
{
components
:
{
LHeader
,
},
data
()
{
return
{
pid
:
''
,
id
:
''
,
text
:
"
延期审批
"
,
taskId
:
""
,
delayTime
:
""
,
// 延迟时间
showDelayTime
:
false
,
delayApply
:
""
,
// 延迟理由
isAgree
:
'
1
'
,
// 延期是否通过
opinion
:
""
,
//理由或者意见
applyDate
:
""
,
//延期时间
applyReason
:
""
,
//延期理由
};
},
created
()
{
this
.
taskId
=
this
.
$route
.
params
.
taskId
;
this
.
getReturnEcho
();
},
methods
:
{
onSubmit
(
values
)
{
this
.
$toast
.
loading
({
message
:
"
提交中...
"
,
forbidClick
:
true
,
loadingType
:
"
spinner
"
,
duration
:
0
,
});
// console.log(this.isAgree)
let
formdata
=
new
FormData
();
formdata
.
append
(
"
examineResult
"
,
this
.
isAgree
*
1
);
formdata
.
append
(
"
examineReason
"
,
values
.
examineReason
);
formdata
.
append
(
"
taskId
"
,
this
.
taskId
);
formdata
.
append
(
"
pid
"
,
this
.
pid
);
formdata
.
append
(
'
applyDate
'
,
this
.
applyDate
);
formdata
.
append
(
'
id
'
,
this
.
id
);
delayEdit
(
`/delayApply/edit`
,
formdata
)
.
then
((
res
)
=>
{
this
.
$toast
.
clear
();
this
.
$toast
.
success
({
message
:
"
提交成功
"
,
duration
:
2000
,
});
history
.
go
(
-
1
);
})
.
catch
(()
=>
{
this
.
$toast
.
clear
();
this
.
$toast
.
fail
(
"
提交失败,请稍后再试
"
);
});
},
// 请求已退回详情数据
getReturnEcho
()
{
this
.
$toast
.
loading
({
message
:
"
加载中...
"
,
forbidClick
:
true
,
loadingType
:
"
spinner
"
,
duration
:
0
,
});
delayReturn
(
`/delayApply/edit/
${
this
.
taskId
}
`
)
.
then
((
res
)
=>
{
this
.
$toast
.
clear
();
// 对数据进行赋值
this
.
applyDate
=
res
.
data
.
delayApply
.
applyDate
;
this
.
applyReason
=
res
.
data
.
delayApply
.
applyReason
;
this
.
pid
=
res
.
data
.
delayApply
.
pid
;
this
.
id
=
res
.
data
.
delayApply
.
id
;
})
.
catch
(()
=>
{
this
.
$toast
.
clear
();
this
.
$toast
.
fail
(
"
加载失败,请稍后再试
"
);
});
},
selectResult
(
val
)
{
this
.
isAgree
=
val
;
},
cancel
()
{
this
.
$router
.
go
(
-
1
);
},
},
};
</
script
>
<
style
lang=
"less"
scoped
>
/* @import url(); 引入css类 */
</
style
>
vue.config.js
View file @
1ea5a41b
module
.
exports
=
{
devServer
:
{
open
:
false
,
// 跨域
proxy
:
{
'
/app-api
'
:
{
target
:
'
http://192.168.124.7:8096
'
,
// changeOrigin: true,
// logLevel:'debug',
}
},
https
:
true
}
}
\ No newline at end of file
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