2025-03-31 18:24:37 +08:00
|
|
|
<template>
|
|
|
|
<el-row :gutter="20" class="monitoring-top">
|
|
|
|
<el-col :span="8" v-for="item in funcList">
|
|
|
|
<div class="item">
|
|
|
|
<div class="item-left">
|
|
|
|
<div class="item-left-head">
|
|
|
|
<div class="title">{{ item.title }}</div>
|
|
|
|
<div class="en">{{ item.en }}</div>
|
|
|
|
</div>
|
|
|
|
<div class="item-left-bottom">
|
2025-04-10 13:33:38 +08:00
|
|
|
<div class="num" :style="{ color: item.color }">{{ item.num || "--" }}</div>
|
2025-03-31 18:24:37 +08:00
|
|
|
<div class="unit" :style="{ color: item.color }">{{ item.unit }}</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<div class="item-img">
|
|
|
|
<img :src="item.icon" />
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</el-col>
|
|
|
|
</el-row>
|
|
|
|
</template>
|
2025-04-10 13:33:38 +08:00
|
|
|
<script setup lang="ts">
|
|
|
|
interface TFuncList {
|
|
|
|
title: string;
|
|
|
|
en: string;
|
|
|
|
icon: string;
|
|
|
|
unit: string;
|
|
|
|
num: number;
|
|
|
|
color: string;
|
|
|
|
}
|
|
|
|
defineProps({
|
|
|
|
funcList: {
|
|
|
|
type: Array<TFuncList>,
|
|
|
|
default: () => [],
|
|
|
|
},
|
|
|
|
});
|
2025-03-31 18:24:37 +08:00
|
|
|
</script>
|
|
|
|
<style scoped lang="less">
|
|
|
|
.monitoring-top {
|
|
|
|
display: flex;
|
|
|
|
justify-content: space-between;
|
|
|
|
.item {
|
|
|
|
height: 160px;
|
|
|
|
padding: 25px 33px 16px 36px;
|
|
|
|
box-sizing: border-box;
|
|
|
|
background: #ffffff;
|
|
|
|
display: flex;
|
|
|
|
align-items: center;
|
|
|
|
justify-content: space-between;
|
2025-04-01 13:52:57 +08:00
|
|
|
position: relative;
|
2025-03-31 18:24:37 +08:00
|
|
|
.item-left {
|
|
|
|
display: flex;
|
|
|
|
flex-direction: column;
|
|
|
|
justify-content: space-between;
|
|
|
|
.item-left-head {
|
|
|
|
.title {
|
|
|
|
font-size: 18px;
|
|
|
|
color: #061550;
|
|
|
|
}
|
|
|
|
.en {
|
|
|
|
color: #787878;
|
|
|
|
font-size: 8px;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
.item-left-bottom {
|
|
|
|
display: flex;
|
|
|
|
align-items: baseline;
|
|
|
|
.num {
|
|
|
|
color: #ff0303;
|
|
|
|
font-size: 60px;
|
|
|
|
}
|
|
|
|
.unit {
|
|
|
|
color: #ff0303;
|
|
|
|
font-size: 20px;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
.item-img {
|
2025-04-01 13:52:57 +08:00
|
|
|
position: absolute;
|
|
|
|
right: 20px;
|
|
|
|
top: 20px;
|
|
|
|
width: 60px;
|
|
|
|
height: 60px;
|
2025-03-31 18:24:37 +08:00
|
|
|
flex-shrink: 0;
|
|
|
|
img {
|
|
|
|
width: 100%;
|
|
|
|
height: 100%;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
</style>
|