From 2c47c8c86b0a685e92b0a605ae6f96901cf10555 Mon Sep 17 00:00:00 2001 From: 648540858 <648540858@qq.com> Date: 星期四, 21 一月 2021 09:24:32 +0800 Subject: [PATCH] Merge pull request #42 from lawrencehj/wvp-28181-2.0 --- web_src/src/components/UiHeader.vue | 58 ++++++++++++++++++++++++++++++++++++++++++++++++++++++---- 1 files changed, 54 insertions(+), 4 deletions(-) diff --git a/web_src/src/components/UiHeader.vue b/web_src/src/components/UiHeader.vue index fa57b26..17a6880 100644 --- a/web_src/src/components/UiHeader.vue +++ b/web_src/src/components/UiHeader.vue @@ -3,7 +3,8 @@ <el-menu router :default-active="this.$route.path" background-color="#545c64" text-color="#fff" active-text-color="#ffd04b" mode="horizontal"> <el-menu-item index="/">鎺у埗鍙�</el-menu-item> <el-menu-item index="/videoList">璁惧鍒楄〃</el-menu-item> - <el-menu-item index="/parentPlatformList/15/1">鍥芥爣绾ц仈</el-menu-item> + <el-menu-item index="/parentPlatformList/15/1">鍥芥爣绾ц仈</el-menu-item> + <el-switch v-model="alarmNotify" active-text="鎶ヨ淇℃伅鎺ㄩ��" style="display: block float: right" @change="sseControl"></el-switch> <el-menu-item style="float: right;" @click="loginout">閫�鍑�</el-menu-item> </el-menu> </div> @@ -12,14 +13,63 @@ <script> export default { name: "UiHeader", + components: { Notification }, + data() { + return { + alarmNotify: true, + sseSource: null, + }; + }, methods:{ - loginout(){ // 鍒犻櫎cookie锛屽洖鍒扮櫥褰曢〉闈� this.$cookies.remove("session"); this.$router.push('/login'); + this.sseSource.close(); }, - } -} + beforeunloadHandler() { + this.sseSource.close(); + }, + sseControl() { + let that = this; + if (this.alarmNotify) { + this.sseSource = new EventSource('/api/emit'); + this.sseSource.addEventListener('message', function(evt) { + that.$notify({ + title: '鏀跺埌鎶ヨ淇℃伅', + dangerouslyUseHTMLString: true, + message: evt.data, + type: 'warning' + }); + console.log("鏀跺埌淇℃伅锛�" + evt.data); + }); + this.sseSource.addEventListener('open', function(e) { + console.log("SSE杩炴帴鎵撳紑."); + }, false); + this.sseSource.addEventListener('error', function(e) { + if (e.target.readyState == EventSource.CLOSED) { + console.log("SSE杩炴帴鍏抽棴"); + } else { + console.log(e.target.readyState); + } + }, false); + } else { + this.sseSource.removeEventListener('open', null); + this.sseSource.removeEventListener('message', null); + this.sseSource.removeEventListener('error', null); + this.sseSource.close(); + } + } + }, + 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)) + // window.removeEventListener('unload', e => this.unloadHandler(e)) + }, + } </script> -- Gitblit v1.8.0