mt-yj-wms-ui/src/views/main.vue
2021-10-28 15:32:09 +08:00

129 lines
3.5 KiB
Vue

<template>
<div
class="site-wrapper"
:class="{ 'site-sidebar--fold': sidebarFold }"
v-loading.fullscreen.lock="loading"
element-loading-text="拼命加载中">
<template v-if="!loading">
<main-navbar />
<main-sidebar />
<div class="site-content__wrapper" :style="{ 'min-height': documentClientHeight + 'px' }">
<main-content />
</div>
</template>
</div>
</template>
<script>
import MainNavbar from './main-navbar'
import MainSidebar from './main-sidebar'
import MainContent from './main-content'
export default {
data () {
return {
loading: true,
websock: ''
}
},
components: {
MainNavbar,
MainSidebar,
MainContent
},
computed: {
documentClientHeight: {
get () { return this.$store.state.common.documentClientHeight },
set (val) { this.$store.commit('common/updateDocumentClientHeight', val) }
},
sidebarFold: {
get () { return this.$store.state.common.sidebarFold }
},
userId: {
get () { return this.$store.state.user.id },
set (val) { this.$store.commit('user/updateId', val) }
},
userName: {
get () { return this.$store.state.user.name },
set (val) { this.$store.commit('user/updateName', val) }
}
},
created () {
this.getUserInfo()
this.initWebSocket()
},
mounted () {
this.resetDocumentClientHeight()
setInterval(this.websocketsend, 30000)
},
methods: {
// 重置窗口可视高度
resetDocumentClientHeight () {
this.documentClientHeight = document.documentElement['clientHeight']
window.onresize = () => {
this.documentClientHeight = document.documentElement['clientHeight']
}
},
// 获取当前管理员信息
getUserInfo () {
this.$http({
url: this.$http.adornUrl('/sys/user/info'),
method: 'get',
params: this.$http.adornParams()
}).then(({data}) => {
if (data && data.code === 0) {
this.loading = false
this.userId = data.user.userId
this.userName = data.user.username
}
})
},
initWebSocket () { // 初始化weosocket
var gFloor = localStorage.getItem('Floor')
let id = 0
switch (gFloor) {
case 'A1':
id = 1
break
case 'A2':
id = 2
break
case 'A3':
id = 3
break
case 'A4':
id = 4
break
case 'B1':
id = 5
break
}
const path = `ws://192.168.0.147:8083/benyi/websocket/${id}`
this.websock = new WebSocket(path)
this.websock.onmessage = this.websocketonmessage
this.websock.onopen = this.websocketonopen
this.websock.onerror = this.websocketonerror
this.websock.onclose = this.websocketclose
},
websocketonopen () { // 连接建立之后执行send方法发送数据
this.websocketsend(JSON.stringify())
},
websocketonerror () { // 连接建立失败重连
this.initWebSocket()
},
websocketonmessage (e) { // 数据接收
this.$notify.error({
title: '报警提示',
message: e.data,
duration: 15000
})
},
websocketsend () { // 数据发送
this.websock.send()
},
websocketclose (e) { // 关闭
console.log('断开连接', e)
}
}
}
</script>