diff --git a/web_src/src/components/UiHeader.vue b/web_src/src/components/UiHeader.vue index b2e9bbbd..6391fe8c 100644 --- a/web_src/src/components/UiHeader.vue +++ b/web_src/src/components/UiHeader.vue @@ -15,7 +15,7 @@ - + @@ -35,11 +35,23 @@ export default { 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(){ this.$axios({ @@ -65,6 +77,10 @@ export default { beforeunloadHandler() { this.sseSource.close(); }, + alarmNotifyChannge(){ + this.setAlarmSwitchStatus() + this.sseControl() + }, sseControl() { let that = this; if (this.alarmNotify) { @@ -90,31 +106,35 @@ export default { } }, 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); } }, - 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.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(); + } }, + }