邓洁: 首屏面板的loading

This commit is contained in:
邓洁
2024-01-03 15:24:34 +08:00
parent 2d1d42f83a
commit 317ceacf23
6 changed files with 69 additions and 26 deletions

View File

@@ -675,9 +675,11 @@ input[type="number"] {
font-size:35px; font-size:35px;
min-height: 350px; min-height: 350px;
display: flex; display: flex;
flex-direction: column;
justify-content: center; justify-content: center;
align-items: center; align-items: center;
color: #2fb0df; color: #2fb0df;
letter-spacing: 3px;
} }
//loading //loading
.loading-block{ .loading-block{
@@ -689,18 +691,16 @@ input[type="number"] {
font-size: 55px; font-size: 55px;
color: #38CAFB; color: #38CAFB;
letter-spacing: 3px; letter-spacing: 3px;
.loading {
margin-bottom: 20px;
width: 100px;
height: 100px;
border: 2px solid #38CAFB;
border-top-color: transparent;
border-radius: 100%;
animation: circle infinite 0.75s linear;
}
} }
.loading {
margin-bottom: 20px;
width: 100px;
height: 100px;
border: 2px solid #38CAFB;
border-top-color: transparent;
border-radius: 100%;
animation: circle infinite 0.75s linear;
}
// 转转转动画 // 转转转动画
@keyframes circle { @keyframes circle {
0% { 0% {

View File

@@ -192,8 +192,10 @@ const getAirInfo = (now) => {
windSpeed.value = item.value windSpeed.value = item.value
} }
}) })
airArr.push(airArr.shift()) if(airArr.length!==0){
airList.value = airArr airArr.push(airArr.shift())
airList.value = airArr
}
} }
const initChart = (type, values) => { const initChart = (type, values) => {
//3.初始化container容器 //3.初始化container容器

View File

@@ -4,7 +4,8 @@
:style="{ backgroundImage: 'url(' + getImageUrl(bgImage) + ')' }"> :style="{ backgroundImage: 'url(' + getImageUrl(bgImage) + ')' }">
<div class="title">有害气体</div> <div class="title">有害气体</div>
<div v-if="badGasList==null||badGasList.length===0" class="showNull"> <div v-if="badGasList==null||badGasList.length===0" class="showNull">
暂无数据~ <div class="loading" v-if="loading===0"></div>
{{loading===0?'加载中...':'暂无数据~'}}
</div> </div>
<div v-else class="info-list"> <div v-else class="info-list">
<gas-info-item <gas-info-item
@@ -55,7 +56,8 @@ import {getBadGasEchartsInfo} from "@/api/largeScreen";
const props = defineProps({ const props = defineProps({
list: Array, list: Array,
badGasData: Array, badGasData: Array,
tunnelId: Number tunnelId: Number,
loading: Number,
}); });
const timeList = ref(["年", "月", "日"]); const timeList = ref(["年", "月", "日"]);
const selectTimeButton = ref(2); const selectTimeButton = ref(2);

View File

@@ -1,8 +1,9 @@
<template> <template>
<div id="fan_info"> <div id="fan_info">
<div class="title">风机</div> <div class="title">风机</div>
<div v-if="socketData==null||socketData.length===0" class="showNull"> <div v-if="socketData==null||socketData.length===0" class="showNull ">
暂无数据~ <div class="loading" v-if="loading===0"></div>
{{loading===0?'加载中...':'暂无数据~'}}
</div> </div>
<div v-else class="fans"> <div v-else class="fans">
<div class="fan-item" v-for="(item,index) in socketData" :key="item.equipmentId"> <div class="fan-item" v-for="(item,index) in socketData" :key="item.equipmentId">
@@ -72,6 +73,7 @@
</div> </div>
</div> </div>
</div> </div>
<div class="digital-tunnel"> <div class="digital-tunnel">
<el-dialog :close-on-click-modal="false" v-model="isVisited" :title="changeNum(fanIndex)+'号风机电流监控数据'" width="2175px" <el-dialog :close-on-click-modal="false" v-model="isVisited" :title="changeNum(fanIndex)+'号风机电流监控数据'" width="2175px"
:modal="false"> :modal="false">
@@ -107,7 +109,8 @@ import {getFanEchartsInfo} from "../../../api/largeScreen";
const props = defineProps({ const props = defineProps({
list: Array, list: Array,
fanData: Array, fanData: Array,
transducerData: Array transducerData: Array,
loading: Number,
}); });
const socketData = ref() const socketData = ref()
let Echarts_info1 = null; let Echarts_info1 = null;
@@ -121,7 +124,9 @@ const isVisited = ref(false)
const showLoading = ref(false) const showLoading = ref(false)
const fanIndex = ref(0) const fanIndex = ref(0)
let myEcharts = reactive({}); let myEcharts = reactive({});
watch(() => props.loading, (now) => {
props.loading=now
}, {deep: true});
watch(() => props.transducerData, (now) => { watch(() => props.transducerData, (now) => {
getTransData(now.frequencyChangerList) getTransData(now.frequencyChangerList)
}, {deep: true}); }, {deep: true});

View File

@@ -2,7 +2,8 @@
<div id="wind-pressure"> <div id="wind-pressure">
<div class="name">风压</div> <div class="name">风压</div>
<div v-if="wpList==null||wpList.length===0" class="showNull"> <div v-if="wpList==null||wpList.length===0" class="showNull">
暂无数据~ <div class="loading" v-if="loading===0"></div>
{{loading===0?'加载中...':'暂无数据~'}}
</div> </div>
<div v-else class="list"> <div v-else class="list">
<wind-pressure-item v-for="(item,index) in wpList" :key="item.equipmentId" :wp="item" <wind-pressure-item v-for="(item,index) in wpList" :key="item.equipmentId" :wp="item"
@@ -43,7 +44,8 @@ import {getEchartsInfo} from "@/api/largeScreen";
const props = defineProps({ const props = defineProps({
list: Array, list: Array,
winData: Array winData: Array,
loading: Number,
}); });
const windSort = ref(1) const windSort = ref(1)
const timeList = ref(["年", "月", "日"]); const timeList = ref(["年", "月", "日"]);

View File

@@ -38,8 +38,7 @@
<el-drawer v-model="drawerLeft" direction="ltr" modal-class="modal-box" :modal="false" :show-close="false" <el-drawer v-model="drawerLeft" direction="ltr" modal-class="modal-box" :modal="false" :show-close="false"
:close-on-click-modal="false" :close-on-press-escape="false"> :close-on-click-modal="false" :close-on-press-escape="false">
<fan-info v-if="showFan" :list="socketData.leftData" :fan-data="largeScreenData" <fan-info v-if="showFan" :list="socketData.leftData" :fan-data="largeScreenData"
:transducer-data="largeScreenData"/> :transducer-data="largeScreenData" :loading="showFanLoading"/>
<!-- <transducer-list v-if="showFan" :list="socketData.leftData" :transducer-data="largeScreenData" />-->
<used-ele v-if="showFan" :list="socketData.leftData" :ele-data="largeScreenData"/> <used-ele v-if="showFan" :list="socketData.leftData" :ele-data="largeScreenData"/>
</el-drawer> </el-drawer>
<div v-if="drawerLeft" class="left-arrow" @click="closeLeft"></div> <div v-if="drawerLeft" class="left-arrow" @click="closeLeft"></div>
@@ -48,9 +47,9 @@
<div class="right"> <div class="right">
<el-drawer v-model="drawerRight" direction="rtl" modal-class="modal-box" :modal="false" :show-close="false" <el-drawer v-model="drawerRight" direction="rtl" modal-class="modal-box" :modal="false" :show-close="false"
:close-on-click-modal="false" :close-on-press-escape="false"> :close-on-click-modal="false" :close-on-press-escape="false">
<wind-pressure-list v-if="showFan" :list="socketData.windPressure" :win-data="largeScreenData"/> <wind-pressure-list v-if="showFan" :list="socketData.windPressure" :win-data="largeScreenData" :loading="showWindLoading"/>
<air-info v-if="showFan" :list="socketData.sensor" :air-data="largeScreenData"/> <air-info v-if="showFan" :list="socketData.sensor" :air-data="largeScreenData" />
<bad-gas-info v-if="showFan" :list="socketData.sensor" :bad-gas-data="largeScreenData" :tunnelId="tunnelId"/> <bad-gas-info v-if="showFan" :list="socketData.sensor" :bad-gas-data="largeScreenData" :tunnelId="tunnelId" :loading="showBadLoading"/>
</el-drawer> </el-drawer>
<div v-if="drawerRight" class="right-arrow" @click="closeRight"></div> <div v-if="drawerRight" class="right-arrow" @click="closeRight"></div>
<div v-else class="shrink-right" @click="closeRight"></div> <div v-else class="shrink-right" @click="closeRight"></div>
@@ -89,6 +88,9 @@ const router = useRouter();
const selectIndex = ref(-1); const selectIndex = ref(-1);
const showFan = ref(false); const showFan = ref(false);
const drawerLeft = ref(true); const drawerLeft = ref(true);
const showFanLoading = ref(0)
const showWindLoading = ref(0)
const showBadLoading = ref(0)
const drawerRight = ref(true); const drawerRight = ref(true);
const showMenu = ref(false); const showMenu = ref(false);
const currentSiteId = ref(0); const currentSiteId = ref(0);
@@ -196,6 +198,36 @@ const getScreenInfo = (id) => {
tunnelId.value = id tunnelId.value = id
getLargeScreen(id).then((res) => { getLargeScreen(id).then((res) => {
if (res?.code === 1000) { if (res?.code === 1000) {
console.log('res',res.data)
if(res.data.frequencyChangerList.length!==0){
showFanLoading.value=0
}else {
showFanLoading.value=1
}
if(res.data.windPressureSensorList.length!==0){
showWindLoading.value=0
}else {
showWindLoading.value=1
}
if(res.data.sensorList.length!==0){
res.data.sensorList.forEach((item,index)=>{
if (
item.equipmentType === "carbonDioxide" ||
item.equipmentType === "carbonMonoxide" ||
item.equipmentType === "hydrogenSulfide" ||
item.equipmentType === "sulfurDioxide" ||
item.equipmentType === "sulfurMonoxide" ||
item.equipmentType === "nitrogenDioxide"
) {
showBadLoading.value=0
}else {
showBadLoading.value=1
}
})
}else {
showBadLoading.value=1
}
largeScreenData.value = res.data; largeScreenData.value = res.data;
} else { } else {
ElMessage.warning(res.msg) ElMessage.warning(res.msg)