Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in / Register
Toggle navigation
G
gassafety
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
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
耿迪迪
gassafety
Commits
9df4e83e
Commit
9df4e83e
authored
Dec 15, 2021
by
yaqizhang
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
松原燃气地图首页流量计、压力表添加实时数据
parent
b40cfd04
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
447 additions
and
208 deletions
+447
-208
markerInfoWindow.vue
...fety-web/src/components/PopWindowGis/markerInfoWindow.vue
+108
-1
markerInfoWindowWarn.vue
...-web/src/components/PopWindowGis/markerInfoWindowWarn.vue
+336
-207
index.vue
gassafety-web/src/views/enterprise/mapView/index.vue
+3
-0
No files found.
gassafety-web/src/components/PopWindowGis/markerInfoWindow.vue
View file @
9df4e83e
...
...
@@ -63,6 +63,72 @@
<div>
报警状态:
<span>
报警
</span></div>
<div>
详细信息:
<span>
管线两端设备压差较大,管线可能泄漏
</span></div>
</div>
-->
<template
v-if=
"data.deviceType ==3 || data.deviceType==4"
>
<div
v-if=
"data.deviceType==3"
class=
"windowwarn-content"
style=
"
border-bottom: 1px solid #e2e2e2;
padding: 10px 0 2px 22px;
height: 150px;padding-bottom: 2px;
"
>
<el-col
:span=
"11"
>
<div
class=
"windowwarn"
>
标况累积量:
<span
class=
"standardConditionAccumulation"
></span>
</div>
</el-col>
<el-col
:span=
"11"
>
<div
class=
"windowwarn"
>
工况累积量:
<span
class=
"workingConditionAccumulation"
></span>
</div>
</el-col>
<el-col
:span=
"11"
>
<div
class=
"windowwarn"
>
剩余量:
<span
class=
"residualQuantity"
></span>
</div>
</el-col>
<el-col
:span=
"11"
>
<div
class=
"windowwarn"
>
标况流量:
<span
class=
"standardConditionFlow"
></span>
</div>
</el-col>
<el-col
:span=
"11"
>
<div
class=
"windowwarn"
>
工况流量:
<span
class=
"workingConditionFlow"
></span>
</div>
</el-col>
<el-col
:span=
"11"
>
<div
class=
"windowwarn"
>
温度:
<span
class=
"temperature"
></span>
</div>
</el-col>
<el-col
:span=
"11"
>
<div
class=
"windowwarn"
>
压力:
<span
class=
"pressure"
></span>
</div>
</el-col>
<el-col
:span=
"15"
>
<div
class=
"windowwarn"
>
上报时间:
<span
class=
"reportTime"
></span>
</div>
</el-col>
</div>
<div
v-if=
"data.deviceType==4"
class=
"windowwarn-content"
style=
"
border-bottom: 1px solid #e2e2e2;
padding: 10px 0 2px 22px;
height: 45px;padding-bottom: 2px;
"
>
<el-col
:span=
"11"
>
<div
class=
"windowwarn"
>
压力:
<span
class=
"pressure"
></span>
</div>
</el-col>
<el-col
:span=
"11"
>
<div
class=
"windowwarn"
>
上报时间:
<span
class=
"reportTime"
></span>
</div>
</el-col>
</div>
</
template
>
<div
class=
"btn"
>
<span
@
mousedown
.
stop=
"deviceMore"
>
<el-button
class=
"elbtn"
type=
"primary"
>
设备详情
</el-button>
...
...
@@ -74,6 +140,7 @@
</template>
<
script
>
import
{
realtimeData
,
getData
}
from
"@/api/dataMonitoring/reportData"
;
import
moment
from
"moment"
;
//line移入时的的infowindow
export
default
{
...
...
@@ -83,6 +150,22 @@ export default {
data
:
{},
map
:
null
,
},
data
(){
return
{
deviceId
:
""
,
alarm
:{},
}
},
mounted
()
{
clearInterval
(
this
.
data
.
class
.
view
.
deviceTimer
);
if
(
this
.
data
.
deviceType
==
3
||
this
.
data
.
deviceType
==
4
)
{
this
.
getDataid
();
this
.
data
.
class
.
view
.
deviceTimer
=
setInterval
(
this
.
getDataid
,
5000
);
}
},
methods
:
{
moment
,
deviceMore
()
{
...
...
@@ -95,6 +178,21 @@ export default {
},
});
},
getDataid
()
{
getData
(
this
.
data
.
deviceId
).
then
(
response
=>
{
this
.
changeValue
(
response
.
data
)
})
},
changeValue
(
data
)
{
const
keyArr
=
Object
.
keys
(
data
);
keyArr
.
forEach
((
item
)
=>
{
const
dom
=
document
.
getElementsByClassName
(
item
)[
0
];
if
(
dom
)
{
s
dom
.
innerHTML
=
data
[
item
];
}
})
},
close
()
{
this
.
map
.
clearInfoWindow
();
this
.
data
.
class
.
view
.
domAllShow
()
...
...
@@ -104,9 +202,18 @@ export default {
</
script
>
<
style
lang=
"scss"
scoped
>
.windowwarn-content
{
div
{
font-size
:
14px
;
font-wwight
:
400
;
.windowwarn
{
margin-bottom
:
7px
;
}
}
}
.wrapper
{
width
:
406px
;
max-height
:
43
0px
;
max-height
:
60
0px
;
// background: #fff;
border-radius
:
4px
;
background
:
rgba
(
7
,
29
,
51
,
0
.9
);
...
...
gassafety-web/src/components/PopWindowGis/markerInfoWindowWarn.vue
View file @
9df4e83e
...
...
@@ -72,253 +72,382 @@
工单编号:
<span>
{{
data
.
orderId
}}
</span>
</div>
</div>
<template
v-if=
"data.deviceType ==3 || data.deviceType==4"
>
<div
v-if=
"data.deviceType==3"
class=
"windowwarn-content"
style=
"
border-bottom: 1px solid #e2e2e2;
padding: 10px 0 2px 22px;
height: 150px;padding-bottom: 2px;
"
>
<el-col
:span=
"11"
>
<div
class=
"windowwarn"
>
标况累积量:
<span
class=
"standardConditionAccumulation"
></span>
</div>
</el-col>
<el-col
:span=
"11"
>
<div
class=
"windowwarn"
>
工况累积量:
<span
class=
"workingConditionAccumulation"
></span>
</div>
</el-col>
<el-col
:span=
"11"
>
<div
class=
"windowwarn"
>
剩余量:
<span
class=
"residualQuantity"
></span>
</div>
</el-col>
<el-col
:span=
"11"
>
<div
class=
"windowwarn"
>
标况流量:
<span
class=
"standardConditionFlow"
></span>
</div>
</el-col>
<el-col
:span=
"11"
>
<div
class=
"windowwarn"
>
工况流量:
<span
class=
"workingConditionFlow"
></span>
</div>
</el-col>
<el-col
:span=
"11"
>
<div
class=
"windowwarn"
>
温度:
<span
class=
"temperature"
></span>
</div>
</el-col>
<el-col
:span=
"11"
>
<div
class=
"windowwarn"
>
压力:
<span
class=
"pressure"
></span>
</div>
</el-col>
<el-col
:span=
"15"
>
<div
class=
"windowwarn"
>
上报时间:
<span
class=
"reportTime"
></span>
</div>
</el-col>
</div>
<div
v-if=
"data.deviceType==4"
class=
"windowwarn-content"
style=
"
border-bottom: 1px solid #e2e2e2;
padding: 10px 0 2px 22px;
height: 45px;padding-bottom: 2px;
"
>
<el-col
:span=
"11"
>
<div
class=
"windowwarn"
>
压力:
<span
class=
"pressure"
></span>
</div>
</el-col>
<el-col
:span=
"11"
>
<div
class=
"windowwarn"
>
上报时间:
<span
class=
"reportTime"
></span>
</div>
</el-col>
</div>
</
template
>
<div
class=
"btn"
>
<span
@
mousedown
.
stop=
"deviceMore"
>
<el-button
class=
"elbtn"
type=
"primary"
>
设备详情
</el-button>
</span>
<span
v-if=
"orderId"
@
mousedown
.
stop=
"createWork"
>
<el-button
v-if=
"title == '压力表' || title == '流量计'"
class=
"elbtn"
type=
"primary"
>
生成工单
</el-button
>
<el-button
v-if=
"title == '压力表' || title == '流量计'"
class=
"elbtn"
type=
"primary"
>
生成工单
</el-button>
</span>
<span
v-else
@
mousedown
.
stop=
"checkWork"
>
<el-button
class=
"elbtn"
type=
"primary"
>
查看工单
</el-button>
</span>
</div>
</div>
</div>
</template>
<
script
>
import
moment
from
"moment"
;
//line移入时的的infowindow
export
default
{
props
:
{
obj
:
{
typs
:
Object
},
title
:
""
,
data
:
{},
map
:
null
,
},
data
()
{
return
{
deviceType
:
{
1
:
"调压箱"
,
2
:
"阀门井"
,
3
:
"流量计"
,
4
:
"智能燃气表"
,
},
};
},
computed
:
{
orderId
()
{
// 如果已经生成过工单,就不能再次生成了
// return this.data.orderId ? false : true;
return
this
.
data
.
orderId
?
false
:
true
;
import
{
realtimeData
,
getData
}
from
"@/api/dataMonitoring/reportData"
;
import
moment
from
"moment"
;
//line移入时的的infowindow
export
default
{
props
:
{
obj
:
{
typs
:
Object
},
title
:
""
,
data
:
{},
// realtime:{},
map
:
null
,
},
data
()
{
return
{
deviceType
:
{
1
:
"调压箱"
,
2
:
"阀门井"
,
3
:
"流量计"
,
4
:
"智能燃气表"
,
},
};
},
},
methods
:
{
moment
,
createWork
()
{
// 控制外层弹框
// console.log(this.data.view.$refs.CreateWork);
this
.
data
.
view
.
$refs
.
CreateWork
.
alarmId
=
this
.
data
.
alarmId
;
this
.
data
.
view
.
$refs
.
CreateWork
.
open
=
true
;
this
.
data
.
view
.
$refs
.
CreateWork
.
gaoMap
=
this
.
data
.
view
.
gaoMap
;
// 改变外层回调
// this.data.view.CreateWorkCallBack = this.CreateWorkCallBack;
this
.
data
.
view
.
alarmObjChange
({
alarmId
:
this
.
data
.
alarmId
,
type
:
"device"
,
});
mounted
()
{
clearInterval
(
this
.
data
.
view
.
deviceTimer
);
if
(
this
.
data
.
deviceType
==
3
||
this
.
data
.
deviceType
==
4
)
{
this
.
getDataid
();
this
.
data
.
view
.
deviceTimer
=
setInterval
(
this
.
getDataid
,
5000
);
}
},
close
()
{
this
.
map
.
clearInfoWindow
();
this
.
data
.
class
.
view
.
domAllShow
();
computed
:
{
orderId
()
{
// 如果已经生成过工单,就不能再次生成了
// return this.data.orderId ? false : true;
return
this
.
data
.
orderId
?
false
:
true
;
},
},
// CreateWorkCallBack(e) {
// // console.log("生成工单后传过来的参数", e);
// // console.log("markerCallBack");
// const marker = this.data.view.gaoMap.markers.filter((item) => {
// return item.getExtData().alarmId == this.data.alarmId;
// })[0];
// console.log("marer.getExtData()", marker.getExtData());
// let options = marker.getExtData();
// // 暂时传值,到时候回重新刷新
// options.orderId = e;
// marker.setExtData(options);
// },
deviceMore
()
{
this
.
data
.
view
.
$router
.
push
({
path
:
"/dataMonitoring/alarmdetail"
,
query
:
{
methods
:
{
moment
,
getDataid
()
{
getData
(
this
.
data
.
deviceId
).
then
(
response
=>
{
this
.
changeValue
(
response
.
data
)
})
},
changeValue
(
data
)
{
const
keyArr
=
Object
.
keys
(
data
);
keyArr
.
forEach
((
item
)
=>
{
const
dom
=
document
.
getElementsByClassName
(
item
)[
0
];
if
(
dom
)
{
dom
.
innerHTML
=
data
[
item
];
}
})
},
createWork
()
{
// 控制外层弹框
// console.log(this.data.view.$refs.CreateWork);
this
.
data
.
view
.
$refs
.
CreateWork
.
alarmId
=
this
.
data
.
alarmId
;
this
.
data
.
view
.
$refs
.
CreateWork
.
open
=
true
;
this
.
data
.
view
.
$refs
.
CreateWork
.
gaoMap
=
this
.
data
.
view
.
gaoMap
;
// 改变外层回调
// this.data.view.CreateWorkCallBack = this.CreateWorkCallBack;
this
.
data
.
view
.
alarmObjChange
({
alarmId
:
this
.
data
.
alarmId
,
dcviceType
:
this
.
deviceType
[
this
.
data
.
deviceType
],
},
});
type
:
"device"
,
});
},
close
()
{
this
.
map
.
clearInfoWindow
();
this
.
data
.
class
.
view
.
domAllShow
();
},
// CreateWorkCallBack(e) {
// // console.log("生成工单后传过来的参数", e);
// // console.log("markerCallBack");
// const marker = this.data.view.gaoMap.markers.filter((item) => {
// return item.getExtData().alarmId == this.data.alarmId;
// })[0];
// console.log("marer.getExtData()", marker.getExtData());
// let options = marker.getExtData();
// // 暂时传值,到时候回重新刷新
// options.orderId = e;
// marker.setExtData(options);
// },
deviceMore
()
{
this
.
data
.
view
.
$router
.
push
({
path
:
"/dataMonitoring/alarmdetail"
,
query
:
{
alarmId
:
this
.
data
.
alarmId
,
dcviceType
:
this
.
deviceType
[
this
.
data
.
deviceType
],
},
});
},
// 查看工单
checkWork
()
{
this
.
data
.
view
.
$router
.
push
({
path
:
"/workOrder/detail"
,
query
:
{
orderId
:
this
.
data
.
orderId
,
},
});
},
changeA
()
{
}
},
// 查看工单
checkWork
()
{
this
.
data
.
view
.
$router
.
push
({
path
:
"/workOrder/detail"
,
query
:
{
orderId
:
this
.
data
.
orderId
,
},
});
beforeDestroy
()
{
// this.data.view.createWorkOpen = false;
console
.
log
(
"清空卸载"
)
},
},
beforeDestroy
()
{
// this.data.view.createWorkOpen = false;
},
};
};
</
script
>
<
style
lang=
"scss"
scoped
>
.wrapper
{
width
:
406px
;
max-height
:
500px
;
// background: #fff;
background
:
rgba
(
7
,
29
,
51
,
0
.9
);
color
:
#fff
;
border-radius
:
4px
;
box-shadow
:
0px
3px
6px
rgba
(
0
,
0
,
0
,
0
.16
);
// overflow: hidden;
.top
{
width
:
100%
;
height
:
51px
;
// background-color: #ff5a67;
background-image
:
url(../../assets/images/redTopBg.png)
;
background-size
:
100%
100%
;
background-position
:
center
;
&
:before
{
content
:
""
;
position
:
absolute
;
left
:
-20px
;
top
:
5px
;
z-index
:
-1
;
width
:
33px
;
height
:
33px
;
background-image
:
url(../../assets/images/redLeftTriangle.png)
;
}
.text
{
font-weight
:
600
;
font-size
:
16px
;
color
:
#ffffff
;
line-height
:
51px
;
}
.left
{
padding-left
:
22px
;
}
.right
{
padding-right
:
22px
;
img
{
cursor
:
pointer
;
.windowwarn-content
{
div
{
font-size
:
14px
;
font-wwight
:
400
;
.windowwarn
{
margin-bottom
:
7px
;
}
}
}
.content
{
position
:
relative
;
max-height
:
300px
;
overflow
:
hidden
;
overflow-y
:
auto
;
padding-bottom
:
2px
;
border-bottom
:
1px
solid
#eeeeee
;
.eq-content
{
// min-height: 156px;
box-sizing
:
border-box
;
padding
:
13px
22px
0px
22px
;
// border-bottom: 1px solid #e2e2e2;
.text-wrapper
{
padding-top
:
1px
;
&
>
div
{
margin-bottom
:
6px
;
}
.eq-text
{
font-size
:
14px
;
font-weight
:
400
;
color
:
#fff
;
opacity
:
1
;
&
>
span
{
vertical-align
:
top
;
display
:
inline-block
;
// white-space: nowrap;
// text-overflow: ellipsis;
// overflow: hidden;
word-break
:
break-all
;
max-width
:
100px
;
}
}
.wrapper
{
width
:
406px
;
max-height
:
600px
;
// background: #fff;
background
:
rgba
(
7
,
29
,
51
,
0
.9
);
color
:
#fff
;
border-radius
:
4px
;
box-shadow
:
0px
3px
6px
rgba
(
0
,
0
,
0
,
0
.16
);
// overflow: hidden;
.top
{
width
:
100%
;
height
:
51px
;
// background-color: #ff5a67;
background-image
:
url(../../assets/images/redTopBg.png)
;
background-size
:
100%
100%
;
background-position
:
center
;
&
:before
{
content
:
""
;
position
:
absolute
;
left
:
-20px
;
top
:
5px
;
z-index
:
-1
;
width
:
33px
;
height
:
33px
;
background-image
:
url(../../assets/images/redLeftTriangle.png)
;
}
.text
{
font-weight
:
600
;
font-size
:
16px
;
color
:
#ffffff
;
line-height
:
51px
;
}
.pic
{
width
:
180px
;
height
:
103px
;
// background-color: black;
.left
{
padding-left
:
22px
;
}
.right
{
padding-right
:
22px
;
img
{
width
:
100%
;
height
:
100%
;
// cursor: pointer;
cursor
:
pointer
;
}
}
}
}
.maintain-content
{
width
:
100%
;
max-height
:
119px
;
padding-left
:
22px
;
// padding-right: 22px;
// padding-bottom: 10px;
// padding-top: 16px;
box-sizing
:
border-box
;
// border-bottom: 1px solid #e2e2e2;
&
>
div
{
margin-bottom
:
8px
;
font-size
:
14px
;
font-weight
:
400
;
span
{
vertical-align
:
top
;
display
:
inline-block
;
word-break
:
break-all
;
max-width
:
280px
;
.content
{
position
:
relative
;
max-height
:
300px
;
overflow
:
hidden
;
overflow-y
:
auto
;
padding-bottom
:
2px
;
border-bottom
:
1px
solid
#eeeeee
;
.eq-content
{
// min-height: 156px;
box-sizing
:
border-box
;
padding
:
13px
22px
0px
22px
;
// border-bottom: 1px solid #e2e2e2;
.text-wrapper
{
padding-top
:
1px
;
&
>
div
{
margin-bottom
:
6px
;
}
.eq-text
{
font-size
:
14px
;
font-weight
:
400
;
color
:
#fff
;
opacity
:
1
;
&
>
span
{
vertical-align
:
top
;
display
:
inline-block
;
// white-space: nowrap;
// text-overflow: ellipsis;
// overflow: hidden;
word-break
:
break-all
;
max-width
:
100px
;
}
}
}
.pic
{
width
:
180px
;
height
:
103px
;
// background-color: black;
img
{
width
:
100%
;
height
:
100%
;
// cursor: pointer;
}
}
}
}
}
.warn-wrapper
{
.warn-content
{
.maintain-content
{
width
:
100%
;
max-height
:
119px
;
padding-left
:
22px
;
// padding-right: 22px;
// padding-bottom: 10px;
// padding-top: 16px;
box-sizing
:
border-box
;
padding
:
10px
0
2px
22px
;
border-bottom
:
1px
solid
#e2e2e2
;
color
:
#fe5966
;
&
>
div
{
//
border-bottom: 1px solid #e2e2e2;
&
>
div
{
margin-bottom
:
8px
;
font-size
:
14px
;
font-weight
:
400
;
margin-bottom
:
8px
;
span
{
vertical-align
:
top
;
display
:
inline-block
;
word-break
:
break-all
;
max-width
:
280px
;
}
}
}
.btn
{
padding
:
16px
0
;
text-align
:
center
;
span
{
display
:
inline-block
;
padding
:
0
10px
;
.elbtn
{
background-color
:
#053b6a
;
box-shadow
:
0px
3px
6px
rgba
(
0
,
0
,
0
,
0
.16
);
width
:
95px
;
height
:
33px
;
// border: none;
.warn-wrapper
{
.warn-content
{
box-sizing
:
border-box
;
padding
:
10px
0
2px
22px
;
border-bottom
:
1px
solid
#e2e2e2
;
color
:
#fe5966
;
&
>
div
{
font-size
:
14px
;
font-weight
:
400
;
margin-bottom
:
8px
;
}
}
.btn
{
padding
:
16px
0
;
text-align
:
center
;
span
{
display
:
inline-block
;
padding
:
0
10px
;
.elbtn
{
background-color
:
#053b6a
;
box-shadow
:
0px
3px
6px
rgba
(
0
,
0
,
0
,
0
.16
);
width
:
95px
;
height
:
33px
;
// border: none;
}
}
}
}
}
}
.wrapperEditorPage
{
}
.display-default
{
display
:
flex
;
justify-content
:
space-between
;
}
</
style
>
.wrapperEditorPage
{}
.display-default
{
display
:
flex
;
justify-content
:
space-between
;
}
</
style
>
\ No newline at end of file
gassafety-web/src/views/enterprise/mapView/index.vue
View file @
9df4e83e
...
...
@@ -469,6 +469,9 @@ export default {
//抽屉是否收回
backFlag
:
true
,
mapStyle
:
true
,
// 设备轮询用的定时器
deviceTimer
:
null
,
};
},
created
()
{
...
...
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