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.
|
|
<template> <div class="warehouse"> <div class="warehouse-tab"> <ul class="warehouse-nav"> <li :class="{ 'active-nav': activeIndex == 0 }" @click="changeActiveTab(0)"> <span /> <p>全景图</p> </li> <li :class="{ 'active-nav': activeIndex == 1 }" @click="changeActiveTab(1)"> <span /> <p>档案库</p> </li> <li :class="{ 'active-nav': activeIndex == 2 }" @click="changeActiveTab(2)"> <span /> <p>整理室</p> </li> <li :class="{ 'active-nav': activeIndex == 3 }" @click="changeActiveTab(3)"> <span /> <p>阅览室</p> </li> </ul> <component :is="comName" /> </div> <!-- 摄像头视频 --> <Video ref="camera" /> </div> </template>
<script> import fullView from './fullView/index.vue' import archivesStorage from './archivesStorage/index.vue' import collateRoom from './collateRoom/index.vue' import readRoom from './readRoom/index.vue' import Video from './module/video'
export default { name: 'Warehouse3D', components: { fullView, archivesStorage, readRoom, collateRoom, Video }, data() { return { activeIndex: 0 } }, computed: { comName: function() { if (this.activeIndex === 0) { return 'fullView' } else if (this.activeIndex === 1) { return 'archivesStorage' } else if (this.activeIndex === 2) { return 'collateRoom' } else if (this.activeIndex === 3) { return 'readRoom' } return 'fullView' } }, mounted() { // 监听 iframe 传来的值
window.addEventListener('message', this.handleMessageEvent) if (localStorage.getItem('isDeseCabinetPage')) { this.activeIndex = 1 localStorage.removeItem('isDeseCabinetPage') } }, created() { // console.log(1111)
// this.initWebSocket()
if (this.$route.params.roomId) { this.activeIndex = this.$route.params.roomId } }, methods: { handleMessageEvent(event) { const _this = this if (event.data && event.data.data) { const data = event.data.data if (data === 'A区') { _this.activeIndex = 1 } else if (data === 'B区') { _this.activeIndex = 2 } else if (data === 'C区') { _this.activeIndex = 3 } // 摄像头
if (data.includes('CAM')) { _this.$nextTick(() => { // ToDo....
this.$refs.camera.openVideoVisible = true // 后期看接口调试变化
this.$refs.camera.videoSrc = 'https://qiniu.aiyxlib.com/1606275873000.mp4' this.$refs.camera.videoTitle = data }) } } }, changeActiveTab(data) { this.activeIndex = data }, destroyed() { window.removeEventListener('message', this.handleMessageEvent) } // ,
// initWebSocket() {
// // 初始化weosocket
// const url = 'ws://192.168.99.65:7071/webSocket'
// const wsuri = url // ws地址
// this.websocket = new WebSocket(wsuri)
// this.websocket.onopen = this.websocketonopen
// this.websocket.onerror = this.websocketonerror
// this.websocket.onmessage = this.websocketonmessage
// this.websocket.onclose = this.websocketclose
// },
// websocketonopen() {
// console.log('WebSocket连接成功')
// // co data = {
// // type: 'user_init',
// // userid: 'xxx'
// // }
// // this.websocket.send(
// // // 发送数据
// // JSON.stringify(data)
// // )
// },
// websocketonerror(e) {
// // 错误
// // this.initWebSocket()
// console.log('WebSocket连接发生错误')
// },
// websocketonmessage(e) {
// // 数据接收
// console.log(e.data)
// var data = JSON.parse(e.data)
// this.$store.commit('SET_ws', data)
// console.log('接收数据')
// // 操作处理...
// },
// websocketsend(agentData) {
// // 数据发送
// this.websocket.send(agentData)
// },
// websocketclose(e) {
// // 关闭
// console.log('WebSocket关闭')
// console.log(JSON.stringify(e))
// }
} } </script>
<style lang="scss" scoped> .warehouse-tab { color: #3298fa; .warehouse-nav { display: flex; position: absolute; bottom: 20px; left: 20px; z-index: 11; // width: calc(100vw - 545px);
width: calc(100vw - 800px); height: 90px; min-height: 90px; padding: 0; li { display: flex; flex-wrap: nowrap; align-items: center; align-content: center; justify-content: center; width: 25%; height: 90px; line-height: 90px; text-align: right; // padding-right: 20px;
margin-right: 20px; font-size: 18px; position: relative; cursor: default; background: url("~@/assets/images/warehouse_tab_bg.png") no-repeat; background-size: 100% 100%; span { width: 72px; height: 52px; // position: absolute;
// left: 60px;
// top: 20px;
} p { // flex: 1;
text-align: left; } &:first-child span { background: url("~@/assets/images/tab_fullview_logo.png") no-repeat; } &:nth-child(2) span { background: url("~@/assets/images/tab_archives_logo.png") no-repeat; } &:nth-child(3) span { background: url("~@/assets/images/tab_collate_logo.png") no-repeat; } &:nth-child(4) span { background: url("~@/assets/images/tab_read_logo.png") no-repeat; } } .active-nav { color: #fff; background: url("~@/assets/images/warehouse_tab_active.png") no-repeat; background-size: 100% 100%; } } } </style>
|