forked from integrated_whb/integrated_whb_vue
人员报警增加动画
parent
0f14838296
commit
0167dfcd75
|
@ -22,7 +22,7 @@
|
|||
<div
|
||||
v-for="(item, index) in data.block2OptionsList"
|
||||
:key="index"
|
||||
class="list"
|
||||
:class="['list', { alarm: item.total > 0 }]"
|
||||
@click="fnAlarmTypeClick(item)"
|
||||
>
|
||||
<div class="name">{{ item.label }}</div>
|
||||
|
@ -55,6 +55,17 @@
|
|||
v-model:pd="data.form"
|
||||
:ele-type-num="+data.eleType"
|
||||
/>
|
||||
<template v-if="data.block2OptionsList.some((item) => item.total > 0)">
|
||||
<teleport to="body">
|
||||
<div class="alarm_full_screen">
|
||||
<div
|
||||
v-for="item in 4"
|
||||
:key="item"
|
||||
:class="['alarm_full_screen_item', 'alarm_full_screen_item' + item]"
|
||||
/>
|
||||
</div>
|
||||
</teleport>
|
||||
</template>
|
||||
</div>
|
||||
</template>
|
||||
<script setup>
|
||||
|
@ -67,6 +78,7 @@ import {
|
|||
getAlarmTypeCount,
|
||||
getPersonnelPositioningCount,
|
||||
} from "@/request/bi/mapApi.js";
|
||||
|
||||
const data = reactive({
|
||||
block1OptionsList: [
|
||||
{
|
||||
|
@ -254,6 +266,24 @@ getPositionData();
|
|||
justify-content: space-between;
|
||||
padding: 10px;
|
||||
cursor: pointer;
|
||||
|
||||
&.alarm {
|
||||
background: rgba(139, 65, 65, 0.5);
|
||||
border: 1px solid red;
|
||||
animation: scale 2s infinite;
|
||||
}
|
||||
|
||||
@keyframes scale {
|
||||
0% {
|
||||
transform: scale(0.95);
|
||||
}
|
||||
50% {
|
||||
transform: scale(1.05);
|
||||
}
|
||||
100% {
|
||||
transform: scale(0.95);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -305,26 +335,32 @@ getPositionData();
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
.table {
|
||||
margin-top: 5px;
|
||||
|
||||
.tr {
|
||||
display: flex;
|
||||
|
||||
&:nth-child(odd) {
|
||||
background-color: rgba(42, 86, 158, 0.53);
|
||||
}
|
||||
|
||||
.td {
|
||||
flex: 1;
|
||||
text-align: left;
|
||||
font-size: 12px;
|
||||
color: #fff;
|
||||
padding: 6px 10px;
|
||||
|
||||
&:nth-child(1) {
|
||||
flex-basis: 30%;
|
||||
}
|
||||
|
||||
&:nth-child(2) {
|
||||
flex-basis: 50%;
|
||||
}
|
||||
|
||||
&:nth-child(3) {
|
||||
flex-basis: 20%;
|
||||
}
|
||||
|
@ -354,4 +390,56 @@ getPositionData();
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
.alarm_full_screen {
|
||||
.alarm_full_screen_item {
|
||||
position: absolute;
|
||||
box-shadow: 0 0 20px 10px red;
|
||||
animation: opacity 2s infinite;
|
||||
|
||||
&1 {
|
||||
top: 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
width: 100vw;
|
||||
height: 0;
|
||||
}
|
||||
|
||||
&2 {
|
||||
top: 0;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
width: 0;
|
||||
height: 100vh;
|
||||
}
|
||||
|
||||
&3 {
|
||||
left: 0;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
width: 100vw;
|
||||
height: 0;
|
||||
}
|
||||
|
||||
&4 {
|
||||
top: 0;
|
||||
left: 0;
|
||||
bottom: 0;
|
||||
width: 0;
|
||||
height: 100vh;
|
||||
}
|
||||
|
||||
@keyframes opacity {
|
||||
0% {
|
||||
opacity: 1;
|
||||
}
|
||||
50% {
|
||||
opacity: 0;
|
||||
}
|
||||
100% {
|
||||
opacity: 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
|
Loading…
Reference in New Issue