智慧物流-晋恒通-横屏
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

368 lines
7.6 KiB

<template>
<!-- 顶栏 -->
<top-bar />
<container>
<template v-slot:left>
<side-item title="大事记">
<memorabilia />
</side-item>
<side-item title="饱和量仪表盘">
<div class="flex justify-between" style="width: 100%; height: 100%">
<parking-space />
<usable-area />
</div>
</side-item>
<side-item title="仓库吞吐量对比图">
<warehouse />
</side-item>
</template>
<template v-slot:center>
<iframe
class="block frame"
frameborder="0"
src="https://www.tall.wiki/wl/1"
></iframe>
</template>
<template v-slot:right>
<side-item title="货物吞吐量曲线">
<curve />
</side-item>
<side-item title="进出车次统计">
<amount />
</side-item>
<side-item title="人员数据统计表">
<finance />
</side-item>
</template>
</container>
<!-- 长时间不操作屏幕跳出视频 -->
<div
id="thvideo"
class="out-img flex justify-center align-center"
v-if="timeOut"
>
<video
id="myAudio"
class="video"
:src="vList[curr]"
controls
autoplay
></video>
</div>
<!-- 音频 -->
<audio
v-if="!timeOut"
:src="src"
controls
autoplay
loop="loop"
id="audioBtn"
ref="audio"
></audio>
<!-- 底部区域 -->
<footer-bar :showIndex="showIndex"></footer-bar>
<!-- 监控1 -->
<img
@click="getWarehouses('show1')"
class="monitor—btn"
src="../assets/img/monitor.png"
style
/>
<div class="vedio" v-show="show">
<div class="head">
<div class="camera">摄像头监控视频</div>
<img @click="show = false" class="close" src="../assets/img/close.png" />
</div>
<div class="monitor">
<div class="monitor1">
<iframe
:src="iframeSrc1"
frameborder="0"
height="100%"
scrolling="no"
width="100%"
></iframe>
<div class="screen">
<img
@click="showScreen = true"
class="monitor2"
src="../assets/img/fullScreen.png"
/>
</div>
</div>
</div>
</div>
<!-- 全屏监控 -->
<video-screen
:iframeSrc="iframeSrc1"
@closeScreen="closeScreen"
v-if="showScreen"
/>
<!-- 监控2 -->
<img
@click="getWarehouses('show2')"
class="monitor—btn monitor—btn1"
src="../assets/img/monitor-left.png"
style
/>
<div class="vedio" v-show="show2">
<div class="head">
<div class="camera">摄像头监控视频</div>
<img @click="show2 = false" class="close" src="../assets/img/close.png" />
</div>
<div class="monitor">
<div class="monitor1">
<iframe
:src="iframeSrc2"
frameborder="0"
height="100%"
scrolling="no"
width="100%"
></iframe>
<div class="screen">
<img
@click="showScreen = true"
class="monitor2"
src="../assets/img/fullScreen.png"
/>
</div>
</div>
</div>
</div>
<!-- 全屏监控 -->
<video-screen
:iframeSrc="iframeSrc2"
@closeScreen="closeScreen"
v-if="showScreen"
/>
</template>
<script lang="ts">
import senaudio from "../assets/sedaudio.wav";
import thvideo from "../assets/thvideo.mp4";
import forvideo from "../assets/forvideo.mp4";
import fifivideo from "../assets/fifvideo.mp4";
import sixvideo from "../assets/sixvideo.mp4";
import sevenvideo from "../assets/sevenvideo.mp4";
import { defineComponent } from "vue";
import TopBar from "comp/top-bar.vue";
import Container from "comp/content.vue";
import SideItem from "comp/side-item.vue";
import FooterBar from "comp/footer-bar.vue";
import Curve from "comp/curve.vue";
import Amount from "@/components/amount.vue";
import Finance from "@/components/finance.vue";
import Warehouse from "@/components/warehouse.vue";
import ParkingSpace from "@/components/parkingSpace.vue";
import UsableArea from "@/components/usableArea.vue";
import Memorabilia from "@/components/memorabilia.vue";
import VideoScreen from "@/components/videoScreen.vue";
// import { getWarehouses } from "api/index";
export default defineComponent({
components: {
TopBar,
Container,
SideItem,
FooterBar,
Curve,
Amount,
Finance,
Warehouse,
ParkingSpace,
UsableArea,
Memorabilia,
VideoScreen,
},
data() {
return {
show: false,
show2: false,
showScreen: false,
showIndex: 0,
iframeSrc1: "",
iframeSrc2: "",
timeOut: false, //设置超时的时间1分钟
timer: 0,
src: senaudio,
curr: 0,
vList: [thvideo, forvideo, fifivideo, sixvideo, sevenvideo],
};
},
mounted() {
const that = this;
// window.addEventListener("mousemove", this.move);
window.addEventListener("mousemove", function () {
that.move();
});
},
methods: {
//弹出视频
move() {
this.timeOut = false;
const that = this;
setTimeout(async () => {
that.timeOut = true;
await that.videoEnd();
}, 5 * 60 * 1000);
},
//视频播放结束切换下一个视频
videoEnd() {
var aud = document.getElementById("myAudio");
// console.log(aud);
const that = this;
aud.onended = function () {
// alert("音频播放完成");
if (that.curr === that.vList.length - 1) {
that.curr = 0;
} else {
that.curr++;
}
};
},
// 关闭大屏
closeScreen() {
this.showScreen = false;
},
// 获取仓库信息
async getWarehouses(value) {
try {
if (value === "show1") {
if (this.show2) {
this.show2 = false;
}
this.show = true;
}
if (value === "show2") {
if (this.show) {
this.show = false;
}
this.show2 = true;
}
// const data = await getWarehouses({ parkId: 1 });
// if (data && data.parkEquipment && data.parkEquipment.length) {
// this.iframeSrc1 = data.parkEquipment[0].equipmentLocation;
// this.iframeSrc2 = data.parkEquipment[1].equipmentLocation;
// }
} catch (error) {
console.log("error: ", error);
}
},
},
});
</script>
<style scoped>
.out-img {
position: absolute;
height: 100% !important;
width: 100% !important;
z-index: 100;
/* padding: 30px; */
background-color: white;
}
/* .video {
border-top: 30px solid #fff;
border-bottom: 30px solid #fff;
} */
.monitorbtn {
position: absolute;
right: 0;
top: 20%;
z-index: 99;
width: 48rem;
height: 50rem;
}
.monitorbtn1 {
top: 28%;
}
.frame {
position: fixed;
left: 0;
top: 0;
bottom: 0;
right: 0;
width: 100%;
height: 100%;
z-index: 0;
}
.vedio {
position: absolute;
bottom: 15%;
left: 37%;
z-index: 99;
width: 524rem;
height: 369rem;
background: url(/src/assets/img/vedio.png) center no-repeat;
background-size: 100% 100%;
}
.head {
text-align: center;
font-size: 20rem;
padding-top: 30rem;
padding-bottom: 10rem;
}
.camera {
color: #fff;
font-size: 12rem;
}
.close {
position: absolute;
top: 7%;
right: 8%;
width: 20rem;
height: 20rem;
}
.monitor {
width: 446rem;
height: 287rem;
margin: 0 auto;
}
.monitor1 {
width: 100%;
height: 100%;
position: relative;
}
.screen {
width: 100%;
height: 40rem;
position: absolute;
right: 0;
bottom: -1px;
z-index: 9;
background: rgba(0, 0, 0, 0.5);
}
.monitor2 {
width: 30rem;
height: 30rem;
position: absolute;
right: 15rem;
bottom: 5rem;
}
</style>