From ac1a4a027a7bd88efb32e9da666bdba4b5fa166f Mon Sep 17 00:00:00 2001
From: 648540858 <648540858@qq.com>
Date: 星期五, 14 一月 2022 17:04:26 +0800
Subject: [PATCH] 支持国标级联的目录订阅功能

---
 web_src/src/components/UiHeader.vue |   96 +++++++++++++++++++++++++++++++++++++++--------
 1 files changed, 79 insertions(+), 17 deletions(-)

diff --git a/web_src/src/components/UiHeader.vue b/web_src/src/components/UiHeader.vue
index ae0780b..6391fe8 100644
--- a/web_src/src/components/UiHeader.vue
+++ b/web_src/src/components/UiHeader.vue
@@ -1,42 +1,91 @@
 <template>
 	<div id="UiHeader">
-		<el-menu router :default-active="this.$route.path" 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">鎷夋祦浠g悊</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-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-item @click="openDoc">鍦ㄧ嚎鏂囨。</el-menu-item>
+<!--            <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>
+              <el-menu-item @click="changePassword">淇敼瀵嗙爜</el-menu-item>
+              <el-menu-item @click="loginout">娉ㄩ攢</el-menu-item>
+            </el-submenu>
         </el-menu>
+    <changePasswordDialog ref="changePasswordDialog"></changePasswordDialog>
 	</div>
 </template>
 
 <script>
+
+import changePasswordDialog from './dialog/changePassword.vue'
 export default {
     name: "UiHeader",
-    components: { Notification },
+    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({
+            method: 'get',
+            url:"/api/user/logout"
+          }).then((res)=> {
             // 鍒犻櫎cookie锛屽洖鍒扮櫥褰曢〉闈�
             this.$cookies.remove("session");
             this.$router.push('/login');
             this.sseSource.close();
+          }).catch((error)=> {
+            console.error("鐧诲嚭澶辫触")
+            console.error(error)
+          });
+        },
+        changePassword(){
+          this.$refs.changePasswordDialog.openDialog()
+        },
+        openDoc(){
+  	      console.log(process.env.BASE_API)
+          window.open( !!process.env.BASE_API? process.env.BASE_API + "/doc.html": "/doc.html")
         },
         beforeunloadHandler() {
             this.sseSource.close();
         },
+        alarmNotifyChannge(){
+          this.setAlarmSwitchStatus()
+          this.sseControl()
+        },
         sseControl() {
             let that = this;
             if (this.alarmNotify) {
-                console.log("鐢宠SSE鎺ㄩ�丄PI璋冪敤锛屾祻瑙堝櫒ID: " + this.$browserId);
-                this.sseSource = new EventSource('/api/emit?browserId=' + this.$browserId);
+              console.log("鐢宠SSE鎺ㄩ�丄PI璋冪敤锛屾祻瑙堝櫒ID: " + this.$browserId);
+              this.sseSource = new EventSource('/api/emit?browserId=' + this.$browserId);
         	    this.sseSource.addEventListener('message', function(evt) {
                     that.$notify({
                         title: '鏀跺埌鎶ヨ淇℃伅',
@@ -57,22 +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);
         }
-    },
-    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))
+        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