93 lines
2.0 KiB
Vue
Raw Normal View History

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>