ebc

index.vue 2.2KB

    <template> <div :class="classObj" class="app-wrapper"> <div class="fixed-header"> <navbar /> </div> <sidebar class="sidebar-container" /> <div class="main-container"> <breadcrumb /> <app-main /> </div> </div> </template> <script> import { AppMain, Navbar, Settings, Sidebar } from './components' // import ResizeMixin from './mixin/ResizeHandler' import Breadcrumb from '@/components/Breadcrumb' import { mapState } from 'vuex' import StompClient from '../stomp/ipu-stomp.js' import EventBus from '../bus' export default { name: 'Layout', components: { AppMain, Navbar, Settings, Sidebar, Breadcrumb }, // mixins: [ResizeMixin], computed: { ...mapState({ sidebar: state => state.app.sidebar, showSettings: state => state.settings.showSettings, fixedHeader: state => state.settings.fixedHeader }), classObj() { return { hideSidebar: !this.sidebar.opened, openSidebar: this.sidebar.opened, withoutAnimation: this.sidebar.withoutAnimation, mobile: this.device === 'mobile' } } }, mounted() { // 镜屏调用 this.connect() }, methods: { connect() { if (this.stompClient == null || !this.stompClient.connected()) { this.stompClient = new StompClient('ws://10.1.252.196:7200/stomp') this.stompClient.connect('zhangsan', '123456', () => { this.connectCallback() }, () => { this.errorCallback() }) } else { console.log('当前处于连接状态') } }, connectCallback() { console.log('connectCallback') this.stompClient.subscribe('sendAiData', (msg) => { console.log(msg) EventBus.$emit('sendAiData', msg.body) }) // this.stompClient.subscribe('personnel', (msg) => { // console.log(msg) // EventBus.$emit('person', msg.body) // }) EventBus.$emit('connected', true) }, errorCallback() { console.log('errorCallback') EventBus.$emit('connected', false) this.connect() } } } </script> <style lang="scss"> .fixed-header { position: fixed; top: 0; right: 0; z-index: 9; width: 100%; transition: width 0.28s; } </style>