648540858
2022-01-14 ac1a4a027a7bd88efb32e9da666bdba4b5fa166f
web_src/src/components/UiHeader.vue
@@ -5,9 +5,17 @@
            <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>
@@ -27,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(){
@@ -57,6 +77,10 @@
        beforeunloadHandler() {
            this.sseSource.close();
        },
        alarmNotifyChannge(){
          this.setAlarmSwitchStatus()
          this.sseControl()
        },
        sseControl() {
            let that = this;
            if (this.alarmNotify) {
@@ -82,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>