screenFront/src/views/PaintShopView/View1/chart/verticalNum.vue

174 lines
3.6 KiB
Vue
Raw Normal View History

2023-05-12 08:41:33 +00:00
<!--
* @FilePath: \wwwd:\code\screenFront\src\views\PaintShopView\View1\chart\verticalNum.vue
* @Author: 王路平
* @文件版本: V1.0.0
* @Date: 2023-02-13 08:22:35
* @Description:
*
* 版权信息 : 2023 by ${再登软件}, All Rights Reserved.
-->
<template>
<div ref="numBox1" :key="keynum" :style="{height:boxSize.height,width:boxSize.width}">
<border3 ref="refborder3">
<template v-slot>
<div class="box" ref="classBox1">
<!-- <div class="contentbox"> -->
<h5 v-if="title=='TVOC'||title=='甲醛监测'||title=='噪音检测'">{{ `${t('messages.NormalValue')}0-${value.quota}${value.unit}` }}</h5>
<h2>{{ title }}</h2>
<i
:class="
value.data > value.quota
? 'iconfont ' + value.iconname + ' icon-red'
: 'iconfont ' + value.iconname + ' icon-blue'
"
></i>
<p class="unit"><p v-show="value.data&&value.unit" :class="'num'">{{value.data}}</p><span>{{value.unit}}</span></p>
<!-- </div> -->
</div>
</template>
</border3>
</div>
</template>
<script setup lang="ts">
import { onMounted, reactive, ref, watch } from "vue";
import border3 from "@/components/borderBox/border3.vue";
import { verticalNumPerson } from "@/type/realtimeSecurity";
import { warningNot } from "@/utils/notification";
import { useI18n } from 'vue-i18n'
let {t} = useI18n();
let props = defineProps<{
title: string;
}>();
let keynum = ref(0);
const value = reactive<verticalNumPerson>({
data: null,
unit: "",
quota: null,
iconname: "",
});
let refborder3 = ref();
let numBox1 = ref();
const classBox1=ref()
onMounted(() => {});
const boxSize=reactive({
height:'',
width:''
})
function setchartWH(width: any, height: any) {
boxSize.height=height+'px'
boxSize.width=width+'px'
refborder3.value.resetWH();
}
const setData = (
data?: number | null,
iconname?: string,
quota?: number | null,
unit?: string
) => {
value.data = data;
value.iconname = iconname;
value.quota = quota;
value.unit = unit;
// if (data > quota) {
// //使用定时器解决通知重叠问题
// let navdebug = setTimeout(() => {
// warningNot(props.title, "出现异常,异常值为:"+value.data+",请排查!");
// clearTimeout(navdebug);
// }, 0);
// }
keynum.value++;
};
defineExpose({
setchartWH,
setData,
});
</script>
<style scoped>
@import "@/assets/css/iconfont.css";
.box {
height: 50%;
width: 100%;
display: flex;
flex-direction: column;
justify-content: space-around;
align-items: center;
}
/* .contentbox{
height: 100%;
width: 100%;
display: flex;
flex-direction: column;
justify-content: space-around;
align-items: center;
} */
h2 {
color: #fff;
}
p {
color: #fff;
}
.icon-red {
font-size: 70px;
color: #E43961;
animation: redstart 2s infinite;
/* position: relative; */
/* top: -15px; */
}.box>h2{
font-size: 20px;
}
.box>h5{
font-size: 15px;
margin-bottom: 20px;
margin-top: -50px;
}
.box>h5{
font-size: 15px;
margin-bottom: 20px;
margin-top: -50px;
}
.icon-blue {
font-size: 100px;
color: #20AEC5;
/* position: relative; */
/* top: -15px; */
}
.icon-red,
.icon-blue {
/* margin-bottom: 20%; */
}
.num{
font-size: 16px;
}
.unit{
display: flex;
justify-content: center;
align-items: center;
vertical-align: top;
font-size: 16px;
height: 0;
width: 100px;
}
@keyframes redstart {
0% {
}
50% {
text-shadow: #fff 1px 0 10px;
}
100% {
}
}
</style>