heli-mes/mes-ui/mes-echarts/src/views/largescreen.vue
2026-03-29 18:21:06 +08:00

165 lines
3.8 KiB
Vue

<template>
<div id="index" ref="appRef">
<div class="bg">
<dv-loading v-if="loading">Loading...</dv-loading>
<div v-else class="host-body">
<div class="frame">
<!--头标-->
<div class="d-flex jc-center bg-title nav-box">
<div class="nav">
<span class="timersty">{{ dateDay }}</span>
<div class="navkk1">
<span>{{ dateWeek }}</span>
<span class="navktext">{{ dateYear }}</span>
</div>
</div>
<div class="d-flex jc-center">
<div class="title">
</div>
</div>
<div class="nav">
<span><img src="../assets/image/u1623.png" alt="" class="nav-img"></span>
<div class="F11" @click="F11" :class="isFullscreen ? 'screen' : 'full'"></div>
</div>
</div>
<!-- 主体部分 -->
<div class="body-box">
<div class="mainTop">
<!-- 第一行 数据展示 -->
<topbox :countObj="countObj" />
</div>
<div class="mainCenter">
<centerbox :countObj="countObj" />
</div>
<div class="mainBtm">
<bottombox />
</div>
</div>
</div>
</div>
</div>
</div>
</template>
<script>
import drawMixin from "../utils/drawMixin";
import { formatTime } from "../utils/index.js";
import topbox from "./largebox/topbox.vue";
import centerbox from "./largebox/centerbox.vue";
import bottombox from "./largebox/bottombox.vue";
import { request } from "@/utils/request.js";
export default {
components: {
topbox,
centerbox,
bottombox,
},
mixins: [drawMixin],
data() {
return {
isFullscreen: false,
timing: null,
loading: true,
dateDay: null,
dateYear: null,
dateWeek: null,
weekday: [
"星期日",
"星期一",
"星期二",
"星期三",
"星期四",
"星期五",
"星期六",
],
countObj: {},
intervalId: null,
};
},
mounted() {
this.timeFn();
this.cancelLoading();
this.setData();
this.startInterval(); // 开启定时器(取消注释)
},
beforeDestroy() {
clearInterval(this.timing);
if (this.intervalId) {
clearInterval(this.intervalId);
this.intervalId = null;
}
},
methods: {
F11() {
this.isFullscreen = !this.isFullscreen;
if (!document.fullscreenElement) {
document.documentElement.requestFullscreen();
} else {
if (document.exitFullscreen) {
document.exitFullscreen();
}
}
},
timeFn() {
this.timing = setInterval(() => {
this.dateDay = formatTime(new Date(), "HH: mm: ss");
this.dateYear = formatTime(new Date(), "yyyy年MM月dd日");
this.dateWeek = this.weekday[new Date().getDay()];
}, 1000);
},
cancelLoading() {
setTimeout(() => {
this.loading = false;
}, 500);
},
startInterval() {
const _this = this;
const time = 5 * 60 * 1000;
if (this.intervalId) {
clearInterval(this.intervalId);
}
this.intervalId = setInterval(() => {
_this.setData();
}, time);
},
// 根据自己的业务情况修改
setData() {
const _this = this;
request({
url: "/admin-api/heli/screen/searchUnfinished",
method: "get",
headers: {
"tenant-id": 2
}
}).then((res) => {
_this.countObj = res.data
});
},
},
};
</script>
<style lang="scss" scoped>
@import "../assets/scss/largcss/largindex.scss";
.bototm-box {
width: 100%;
text-align: center;
margin-top: 10px;
}
.F11 {
cursor: pointer;
font-weight: 700;
font-size: 18px;
}
</style>