From 3bf2e6eee58f78be92e857bb18d2d11f7e1412b8 Mon Sep 17 00:00:00 2001
From: 648540858 <648540858@qq.com>
Date: 星期五, 26 十一月 2021 15:15:55 +0800
Subject: [PATCH] 优化录像推送开关

---
 web_src/src/components/UiHeader.vue |   62 ++++++++++++++++++++----------
 1 files changed, 41 insertions(+), 21 deletions(-)

diff --git a/web_src/src/components/UiHeader.vue b/web_src/src/components/UiHeader.vue
index b2e9bbb..6391fe8 100644
--- a/web_src/src/components/UiHeader.vue
+++ b/web_src/src/components/UiHeader.vue
@@ -15,7 +15,7 @@
 <!--              <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="sseControl"></el-switch>
+            <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>
@@ -35,10 +35,22 @@
     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(){
@@ -65,6 +77,10 @@
         beforeunloadHandler() {
             this.sseSource.close();
         },
+        alarmNotifyChannge(){
+          this.setAlarmSwitchStatus()
+          this.sseControl()
+        },
         sseControl() {
             let that = this;
             if (this.alarmNotify) {
@@ -90,31 +106,35 @@
         	        }
 	            }, 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();
+        }
     },
+
  }
 
 </script>

--
Gitblit v1.8.0