<template>
|
<div class="home">
|
<div class="home-bg"></div>
|
<div class="home-c">
|
<div class="point" v-for="(item, index) in pointList" :key="index" :style="{left: item.left, top: item.top}">
|
<div class="point-address" @click="handleShow(index)"></div>
|
<div class="point-message" v-show="item.showMsg">
|
<div class="msg-box">
|
<div class="msg-t">{{ item.name }}</div>
|
<div class="num">
|
<div class="item">
|
<div class="item-t">水温:</div>
|
<div class="item-num"><span>{{item.temputer}}</span>°C</div>
|
</div>
|
<div class="item">
|
<div class="item-t">水位:</div>
|
<div class="item-num"><span>{{ item.shuiwei }}</span>m</div>
|
</div>
|
</div>
|
<div class="shebei">
|
监测设备:
|
<span v-if="item.device === 1" style="color: #1ab394">监测设备运行正常(点击跳转)</span>
|
<span v-else style="color: #ff0a0a">设备异常</span>
|
</div>
|
</div>
|
</div>
|
</div>
|
</div>
|
</div>
|
</template>
|
|
|
<script setup>
|
|
const pointList = reactive([
|
{ name: '电站尾水出口水温监测点', temputer: 22, shuiwei: 1000, device: 1, left: '15%', top: '53%', showMsg: false },
|
{ name: '电站尾水出口水温监测点', temputer: 22, shuiwei: 1000, device: 2, left: '12%', top: '68%', showMsg: false },
|
])
|
|
const handleShow = (index) => {
|
pointList[index].showMsg = !pointList[index].showMsg;
|
}
|
|
</script>
|
|
|
<style scoped lang="scss">
|
.home{
|
height: 100%;
|
.home-bg{
|
position: absolute;
|
left: 0;
|
top: 0;
|
width: 100%;
|
height: 100%;
|
background: url("@/assets/images/tempture-bg.png") no-repeat;
|
background-size: 100% 100%;
|
z-index: 11;
|
}
|
.home-c{
|
width: 100%;
|
height: 100%;
|
position: relative;
|
z-index: 20;
|
.point{
|
position: absolute;
|
.point-address{
|
width: 35px;
|
height: 40px;
|
background: url("@/assets/images/point.png") no-repeat;
|
background-size: 100% 100%;
|
}
|
.point-message{
|
width: 500px;
|
height: 180px;
|
background: url("@/assets/images/messageInfo-right.png") no-repeat;
|
background-size: 100% 100%;
|
position: absolute;
|
left: 30px;
|
top: -60px;
|
padding: 30px 50px;
|
color: #fff;
|
.msg-box{
|
width: 100%;
|
height: 100%;
|
display: flex;
|
flex-direction: column;
|
justify-content: space-between;
|
}
|
.msg-t{
|
font-size: 26px;
|
font-weight: bold;
|
}
|
.num{
|
display: flex;
|
align-items: center;
|
gap: 50px;
|
.item{
|
display: flex;
|
align-items: center;
|
span{
|
display: inline-block;
|
padding: 0 30px;
|
font-size: 22px;
|
font-weight: bold;
|
}
|
}
|
}
|
}
|
}
|
}
|
}
|
</style>
|