From ba8633e99a27b90c55b47e8f7d6225f1f0efc6bb Mon Sep 17 00:00:00 2001 From: 648540858 <456panlinlin> Date: 星期五, 08 四月 2022 18:09:23 +0800 Subject: [PATCH] 优化地图-添加地图页面以及设备树 --- web_src/src/components/UiHeader.vue | 131 +++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 124 insertions(+), 7 deletions(-) diff --git a/web_src/src/components/UiHeader.vue b/web_src/src/components/UiHeader.vue index fa57b26..3341428 100644 --- a/web_src/src/components/UiHeader.vue +++ b/web_src/src/components/UiHeader.vue @@ -1,25 +1,142 @@ <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="/parentPlatformList/15/1">鍥芥爣绾ц仈</el-menu-item> - <el-menu-item style="float: right;" @click="loginout">閫�鍑�</el-menu-item> + <el-menu-item index="/live">瀹炴椂鐩戞帶</el-menu-item> + <el-menu-item index="/deviceList">鍥芥爣璁惧</el-menu-item> + <el-menu-item index="/devicePosition">鐢靛瓙鍦板浘</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="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", - methods:{ + components: { Notification, changePasswordDialog }, + data() { + return { + 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); + 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 { + 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); + } + }, + destroyed() { + window.removeEventListener('beforeunload', e => this.beforeunloadHandler(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