<script setup lang="ts">
|
import { reactive, ref } from "vue";
|
import { currentGET } from "@/api";
|
import CountUp from "@/components/count-up";
|
const duration = ref(2);
|
const state = reactive({
|
alarmNum: 759,
|
offlineNum: 44,
|
onlineNum: 654,
|
totalNum: 698,
|
});
|
|
const getData = () => {
|
currentGET("leftTop").then((res) => {
|
console.log(res);
|
if (res.success) {
|
state.alarmNum = res.data.alarmNum;
|
state.offlineNum = res.data.offlineNum;
|
state.onlineNum = res.data.onlineNum;
|
state.totalNum = res.data.totalNum;
|
}
|
});
|
};
|
getData();
|
</script>
|
|
<template>
|
<ul class="user_Overview flex">
|
<li class="user_Overview-item" >
|
<div class="user_Overview_nums allnum">
|
<div class="user_Overview_nums_img" >
|
<img src="@/assets/img/sgjb.png" />
|
</div>
|
<div class="user_Overview_nums_img_p">
|
<p class="user_Overview_nums_img_p_num">{{state.totalNum}}<span class="user_Overview_nums_img_p_num_nan">件</span><span class="user_Overview_nums_img_p_num_ss">↑ 28.1%</span></p>
|
<p>交通事故接报</p>
|
</div>
|
<!-- <CountUp :endVal="state.totalNum" :duration="duration" />-->
|
</div>
|
<!-- <p>总设备数1</p>-->
|
</li>
|
<li class="user_Overview-item" >
|
<div class="user_Overview_nums online">
|
<div class="user_Overview_nums_img" >
|
<img src="@/assets/img/la.png" />
|
</div>
|
<div class="user_Overview_nums_img_p">
|
<p class="user_Overview_nums_img_p_numt">{{state.onlineNum}}<span class="user_Overview_nums_img_p_num_nan">件</span><span class="user_Overview_nums_img_p_num_ss">↑ 28.1%</span></p>
|
<p>立案</p>
|
</div>
|
|
<!-- <CountUp :endVal="state.onlineNum" :duration="duration" />-->
|
</div>
|
<!-- <p>在线数</p>-->
|
</li>
|
<li class="user_Overview-item" >
|
<div class="user_Overview_nums offline">
|
<div class="user_Overview_nums_img" >
|
<img src="@/assets/img/ssrs.png" />
|
</div>
|
<div class="user_Overview_nums_img_p">
|
<p class="user_Overview_nums_img_p_nums">{{state.offlineNum}}<span class="user_Overview_nums_img_p_num_nan">件</span><span class="user_Overview_nums_img_p_num_ss">↑ 28.1%</span></p>
|
<p>受伤人数</p>
|
</div>
|
|
<!-- <CountUp :endVal="state.offlineNum" :duration="duration" />-->
|
</div>
|
<!-- <p>掉线数</p>-->
|
</li>
|
<li class="user_Overview-item" >
|
<div class="user_Overview_nums laramnum">
|
<div class="user_Overview_nums_img" >
|
<img src="@/assets/img/swrs.png" />
|
</div>
|
<div class="user_Overview_nums_img_p">
|
<p class="user_Overview_nums_img_p_numf">{{state.alarmNum}}<span class="user_Overview_nums_img_p_num_nan">件</span><span class="user_Overview_nums_img_p_num_ss">↑ 28.1%</span></p>
|
<p>死亡人数</p>
|
</div>
|
|
<!-- <CountUp :endVal="state.alarmNum" :duration="duration" />-->
|
</div>
|
<!-- <p>告警次数</p>-->
|
</li>
|
</ul>
|
</template>
|
|
<style scoped lang="scss">
|
.user_Overview-item{
|
background-color: #11223A;
|
}
|
.left-top {
|
width: 100%;
|
height: 100%;
|
}
|
|
.user_Overview {
|
li {
|
flex: 1;
|
margin: 0 20px;
|
padding: 15px 0;
|
border: 1px solid #29466A;
|
p {
|
text-align: left;
|
//height: 16px;
|
font-size: 16px;
|
}
|
|
.user_Overview_nums {
|
display: flex;
|
justify-content: center;
|
align-items: center;
|
//width: auto;
|
//height: 100px;
|
text-align: center;
|
//line-height: 100px;
|
font-size: 22px;
|
//margin: 50px auto 30px;
|
//margin-top: 30px;
|
background-size: cover;
|
background-position: center center;
|
position: relative;
|
|
&::before {
|
content: "";
|
position: absolute;
|
width: 100%;
|
height: 100%;
|
top: 0;
|
left: 0;
|
}
|
|
&.bgdonghua::before {
|
animation: rotating 14s linear infinite;
|
}
|
}
|
.user_Overview_nums_img{
|
//background-color: floralwhite;
|
//padding: 6px;
|
border-radius: 8px;
|
width: 72px;
|
}
|
.user_Overview_nums_img_p{
|
//display: flex;
|
flex-direction: column;
|
justify-content: space-around;
|
align-items: flex-start;
|
//height: 90px;
|
//line-height: 40px;
|
margin-left: 10px;
|
.user_Overview_nums_img_p_numt{
|
color: #0071F8;
|
font-size: 25px;
|
font-weight: 400;
|
.user_Overview_nums_img_p_num_nan{
|
font-size: 14px;
|
color: #fff;
|
}
|
.user_Overview_nums_img_p_num_ss{
|
font-size: 14px;
|
color: #D44233;
|
}
|
}
|
.user_Overview_nums_img_p_num{
|
color: #F96FF8;
|
font-size: 25px;
|
font-weight: 400;
|
.user_Overview_nums_img_p_num_nan{
|
font-size: 14px;
|
color: #fff;
|
}
|
.user_Overview_nums_img_p_num_ss{
|
font-size: 14px;
|
color: #D44233;
|
}
|
}
|
.user_Overview_nums_img_p_nums{
|
color: #FE3146;
|
font-size: 25px;
|
font-weight: 400;
|
.user_Overview_nums_img_p_num_nan{
|
font-size: 14px;
|
color: #fff;
|
}
|
.user_Overview_nums_img_p_num_ss{
|
font-size: 14px;
|
color: #D44233;
|
}
|
}
|
.user_Overview_nums_img_p_numf{
|
color: #EA7039;
|
font-size: 25px;
|
font-weight: 400;
|
.user_Overview_nums_img_p_num_nan{
|
font-size: 14px;
|
color: #fff;
|
}
|
.user_Overview_nums_img_p_num_ss{
|
font-size: 14px;
|
color: #D44233;
|
}
|
}
|
}
|
.allnum {
|
//background-image: url("@/assets/img/bbiao.png");
|
//&::before {
|
// background-image: url("@/assets/img/left_top_lan.png");
|
//}
|
}
|
|
.online {
|
//&::before {
|
// background-image: url("@/assets/img/left_top_lv.png");
|
//}
|
}
|
|
.offline {
|
//&::before {
|
// background-image: url("@/assets/img/left_top_huang.png");
|
//}
|
}
|
|
.laramnum {
|
//&::before {
|
// background-image: url("@/assets/img/left_top_hong.png");
|
//}
|
}
|
}
|
}
|
</style>
|