|  |  | 
 |  |  | <template> | 
 |  |  |    <div id="UiHeader"> | 
 |  |  |       <el-menu router :default-active="this.$route.path" menu-trigger="click" background-color="#545c64" text-color="#fff" active-text-color="#ffd04b" mode="horizontal"> | 
 |  |  |       <el-menu router :default-active="activeIndex" menu-trigger="click" background-color="#545c64" text-color="#fff" active-text-color="#ffd04b" mode="horizontal"> | 
 |  |  |             <el-menu-item index="/">控制台</el-menu-item> | 
 |  |  |             <el-menu-item index="/deviceList">设备列表</el-menu-item> | 
 |  |  |             <el-menu-item index="/pushVideoList">推流列表</el-menu-item> | 
 |  |  |             <el-menu-item index="/streamProxyList">拉流代理</el-menu-item> | 
 |  |  |             <el-menu-item index="/cloudRecord">云端录像</el-menu-item> | 
 |  |  |             <el-menu-item index="/mediaServerManger">节点管理</el-menu-item> | 
 |  |  |             <el-menu-item index="/parentPlatformList/15/1">国标级联</el-menu-item> | 
 |  |  |             <el-menu-item @click="openDoc">在线文档</el-menu-item> | 
 |  |  |             <el-switch v-model="alarmNotify"  active-text="报警信息推送" style="display: block float: right" @change="sseControl"></el-switch> | 
 |  |  | <!--            <el-submenu index="/setting">--> | 
 |  |  | <!--              <template slot="title">系统设置</template>--> | 
 |  |  | <!--              <el-menu-item index="/setting/web">WEB服务</el-menu-item>--> | 
 |  |  | <!--              <el-menu-item index="/setting/sip">国标服务</el-menu-item>--> | 
 |  |  | <!--              <el-menu-item index="/setting/media">媒体服务</el-menu-item>--> | 
 |  |  | <!--            </el-submenu>--> | 
 |  |  |             <el-switch v-model="alarmNotify"  active-text="报警信息推送" style="display: block float: right" @change="alarmNotifyChannge"></el-switch> | 
 |  |  | <!--            <el-menu-item style="float: right;" @click="loginout">退出</el-menu-item>--> | 
 |  |  |             <el-submenu index="" style="float: right;" > | 
 |  |  |               <template slot="title">欢迎,{{this.$cookies.get("session").username}}</template> | 
 |  |  | 
 |  |  |     components: { Notification, changePasswordDialog }, | 
 |  |  |     data() { | 
 |  |  |         return { | 
 |  |  |             alarmNotify: true, | 
 |  |  |             alarmNotify: false, | 
 |  |  |             sseSource: null, | 
 |  |  |             activeIndex: this.$route.path, | 
 |  |  |         }; | 
 |  |  |     }, | 
 |  |  |     created(){ | 
 |  |  |       if (this.$route.path.startsWith("/channelList")){ | 
 |  |  |         this.activeIndex = "/deviceList" | 
 |  |  |       } | 
 |  |  |  | 
 |  |  |     }, | 
 |  |  |     mounted() { | 
 |  |  |       window.addEventListener('beforeunload', e => this.beforeunloadHandler(e)) | 
 |  |  |       // window.addEventListener('unload', e => this.unloadHandler(e)) | 
 |  |  |       this.alarmNotify = this.getAlarmSwitchStatus() === "true"; | 
 |  |  |       this.sseControl(); | 
 |  |  |     }, | 
 |  |  |     methods:{ | 
 |  |  |          loginout(){ | 
 |  |  | 
 |  |  |         beforeunloadHandler() { | 
 |  |  |             this.sseSource.close(); | 
 |  |  |         }, | 
 |  |  |         alarmNotifyChannge(){ | 
 |  |  |           this.setAlarmSwitchStatus() | 
 |  |  |           this.sseControl() | 
 |  |  |         }, | 
 |  |  |         sseControl() { | 
 |  |  |             let that = this; | 
 |  |  |             if (this.alarmNotify) { | 
 |  |  | 
 |  |  |                    } | 
 |  |  |                }, false); | 
 |  |  |             } else { | 
 |  |  |                 this.sseSource.removeEventListener('open', null); | 
 |  |  |                 this.sseSource.removeEventListener('message', null); | 
 |  |  |                 this.sseSource.removeEventListener('error', null); | 
 |  |  |                 this.sseSource.close(); | 
 |  |  |                 if (this.sseSource != null) { | 
 |  |  |                   this.sseSource.removeEventListener('open', null); | 
 |  |  |                   this.sseSource.removeEventListener('message', null); | 
 |  |  |                   this.sseSource.removeEventListener('error', null); | 
 |  |  |                   this.sseSource.close(); | 
 |  |  |                 } | 
 |  |  |  | 
 |  |  |             } | 
 |  |  |         }, | 
 |  |  |         getAlarmSwitchStatus(){ | 
 |  |  |           if (localStorage.getItem("alarmSwitchStatus") == null) { | 
 |  |  |             localStorage.setItem("alarmSwitchStatus", false); | 
 |  |  |           } | 
 |  |  |           return localStorage.getItem("alarmSwitchStatus"); | 
 |  |  |         }, | 
 |  |  |         setAlarmSwitchStatus(){ | 
 |  |  |           localStorage.setItem("alarmSwitchStatus", this.alarmNotify); | 
 |  |  |         } | 
 |  |  |     }, | 
 |  |  |     mounted() { | 
 |  |  |         window.addEventListener('beforeunload', e => this.beforeunloadHandler(e)) | 
 |  |  |         // window.addEventListener('unload', e => this.unloadHandler(e)) | 
 |  |  |         this.sseControl(); | 
 |  |  |     }, | 
 |  |  |     destroyed() { | 
 |  |  |         window.removeEventListener('beforeunload', e => this.beforeunloadHandler(e)) | 
 |  |  |         this.sseSource.removeEventListener('open', null); | 
 |  |  |         this.sseSource.removeEventListener('message', null); | 
 |  |  |         this.sseSource.removeEventListener('error', null); | 
 |  |  |         this.sseSource.close(); | 
 |  |  |         // window.removeEventListener('unload', e => this.unloadHandler(e)) | 
 |  |  |         if (this.sseSource != null) { | 
 |  |  |           this.sseSource.removeEventListener('open', null); | 
 |  |  |           this.sseSource.removeEventListener('message', null); | 
 |  |  |           this.sseSource.removeEventListener('error', null); | 
 |  |  |           this.sseSource.close(); | 
 |  |  |         } | 
 |  |  |     }, | 
 |  |  |  | 
 |  |  |  } | 
 |  |  |  | 
 |  |  | </script> |