From 6ed563e4b4e8387fc397d53c0533009d5a8866a2 Mon Sep 17 00:00:00 2001
From: 648540858 <648540858@qq.com>
Date: 星期三, 24 十一月 2021 15:04:03 +0800
Subject: [PATCH] Merge pull request #243 from chenparty/wvp-28181-2.0
---
web_src/src/components/UiHeader.vue | 110 +++++++++++++++++++++++++++++++++++++++++++++++++++----
1 files changed, 102 insertions(+), 8 deletions(-)
diff --git a/web_src/src/components/UiHeader.vue b/web_src/src/components/UiHeader.vue
index 832d69e..b2e9bbb 100644
--- a/web_src/src/components/UiHeader.vue
+++ b/web_src/src/components/UiHeader.vue
@@ -1,26 +1,120 @@
<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="/videoList">璁惧鍒楄〃</el-menu-item>
- <!-- <el-menu-item index="/videoReplay">褰曞儚鍥炵湅</el-menu-item> -->
- <!-- <el-menu-item index="4">绾ц仈璁剧疆</el-menu-item> -->
- <el-menu-item style="float: right;" @click="loginout">閫�鍑�</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-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="sseControl"></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, changePasswordDialog },
+ data() {
+ return {
+ alarmNotify: true,
+ sseSource: null,
+ activeIndex: this.$route.path,
+ };
+ },
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();
+ },
+ sseControl() {
+ let that = this;
+ if (this.alarmNotify) {
+ 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: '鏀跺埌鎶ヨ淇℃伅',
+ 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();
+ }
+ }
+ },
+ 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))
+ },
+ }
</script>
--
Gitblit v1.8.0