| | |
| | | <template> |
| | | <div class="avue-top"> |
| | | <div class="top-bar__title"> |
| | | <img :src="logoUrl" alt=""> |
| | | <span>低空飞行监管子系统</span> |
| | | </div> |
| | | <header class="header-container"> |
| | | <div class="content-wrap"> |
| | | <div class="logo-title-wrap"> |
| | | <img :src="logoUrl" alt="Logo"></img> |
| | | <p class="title">低空飞行监管子系统</p> |
| | | </div> |
| | | |
| | | <div class="top-bar__right"> |
| | | <div class="top-user"> |
| | | <div class="icon-box"> |
| | | <img class="gateway" @click="jumpMH" src="@/assets/images/mh.png" alt="进入门户" title="进入门户"> |
| | | </div> |
| | | <div class="header-right"> |
| | | <nav class="nav-menu"> |
| | | <div v-for="(item, index) in topMenus" :key="index" class="nav-item" |
| | | :class="{ active: item.active }" @click="handleMenuClick(item)"> |
| | | <span>{{ item.label }}</span> |
| | | </div> |
| | | </nav> |
| | | |
| | | <el-dropdown popper-class="command-custom-dropdown"> |
| | | <span class="el-dropdown-link"> |
| | | <img class="top-bar__img" :src="userInfo.avatar" alt="" /> |
| | | </span> |
| | | <div class="icon-group"> |
| | | <div class="top-user"> |
| | | <div class="icon-box"> |
| | | <img class="gateway" @click="jumpMH" src="@/assets/images/mh.png" alt="进入门户" title="进入门户"> |
| | | </div> |
| | | |
| | | <template #dropdown> |
| | | <el-dropdown-menu> |
| | | <!-- <el-dropdown-item> |
| | | <el-dropdown popper-class="command-custom-dropdown"> |
| | | <span class="el-dropdown-link"> |
| | | <img class="top-bar__img" :src="userInfo.avatar" alt="" /> |
| | | </span> |
| | | |
| | | <template #dropdown> |
| | | <el-dropdown-menu> |
| | | <!-- <el-dropdown-item> |
| | | <router-link to="/">{{ $t('navbar.dashboard') }}</router-link> |
| | | </el-dropdown-item>--> |
| | | <!-- <el-dropdown-item> |
| | | <!-- <el-dropdown-item> |
| | | <router-link to="/info/index">{{ $t('navbar.userinfo') }}</router-link> |
| | | </el-dropdown-item> --> |
| | | <el-dropdown-item @click="logout" divided>{{ $t('navbar.logOut') }} |
| | | </el-dropdown-item> |
| | | </el-dropdown-menu> |
| | | </template> |
| | | </el-dropdown> |
| | | <top-setting></top-setting> |
| | | <el-dropdown-item @click="logout" divided>{{ $t('navbar.logOut') }} |
| | | </el-dropdown-item> |
| | | </el-dropdown-menu> |
| | | </template> |
| | | </el-dropdown> |
| | | <top-setting></top-setting> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </header> |
| | | </template> |
| | | |
| | | <script> |
| | |
| | | data () { |
| | | return { |
| | | logoUrl: logo, |
| | | activeMenu: 'drone-control', |
| | | topMenus: [ |
| | | { |
| | | key: 'twin-supervision', |
| | | label: '孪生监管', |
| | | path: '/flight-supervision/#/brain', |
| | | }, |
| | | { |
| | | key: 'airspace-collaboration', |
| | | label: '空域协同', |
| | | path: '/flight-supervision/#/space', |
| | | }, |
| | | { |
| | | key: 'air-traffic', |
| | | label: '空中交通', |
| | | path: '/flight-supervision/#/activity', |
| | | }, |
| | | { |
| | | key: 'information-service', |
| | | label: '信息服务', |
| | | path: '/flight-supervision/#/infoService', |
| | | }, |
| | | { |
| | | key: 'drone-control', |
| | | label: '无人机管控', |
| | | path: '', |
| | | active: true, |
| | | }, |
| | | ], |
| | | } |
| | | }, |
| | | filters: {}, |
| | |
| | | cancelButtonClass: 'command-message-box-cancel', |
| | | }).then(() => { |
| | | this.$store.dispatch('LogOut').then(() => { |
| | | const {VITE_APP_PARENT_SYSTEM,VITE_APP_ENV} = import.meta.env |
| | | const isDev = VITE_APP_ENV === 'development' |
| | | isDev |
| | | ? this.$router.push({ path: '/login' }) |
| | | : window.location.replace(`${VITE_APP_PARENT_SYSTEM}/#/login`) |
| | | const { VITE_APP_PARENT_SYSTEM, VITE_APP_ENV } = import.meta.env |
| | | const isDev = VITE_APP_ENV === 'development' |
| | | isDev |
| | | ? this.$router.push({ path: '/login' }) |
| | | : window.location.replace(`${VITE_APP_PARENT_SYSTEM}/#/login`) |
| | | }) |
| | | }) |
| | | }, |
| | | jumpMH () { |
| | | |
| | | window.open(`${window.location.origin}/droneWeb/#/gateway`, '_blank') |
| | | }, |
| | | handleMenuClick (item) { |
| | | this.activeMenu = item.key |
| | | if (!item.path) return |
| | | window.open(`${window.location.origin}${item.path}`, '_blank') |
| | | }, |
| | | }, |
| | | } |
| | | </script> |
| | | |
| | | <style lang="scss" scoped> |
| | | .avue-top { |
| | | display: flex; |
| | | justify-content: space-between; |
| | | height: 100%; |
| | | .header-container { |
| | | position: relative; |
| | | height: 110px; |
| | | background: url('@/assets/images/topContainer/top-bg.png') center / 100% 100% no-repeat !important; |
| | | background-repeat: no-repeat; |
| | | background-size: cover; |
| | | pointer-events: none; |
| | | } |
| | | z-index: 2; |
| | | |
| | | .top-bar__left { |
| | | flex: 0 0 auto; |
| | | } |
| | | |
| | | .top-bar__title { |
| | | margin-top: 16px; |
| | | margin-left: 30px; |
| | | flex: 1; |
| | | display: flex; |
| | | align-items: center; |
| | | height: pxToVh(48); |
| | | |
| | | img { |
| | | margin-right: 17px; |
| | | width: 50px; |
| | | height: 50px; |
| | | .bg { |
| | | position: absolute; |
| | | top: 0; |
| | | left: 0; |
| | | width: 100%; |
| | | pointer-events: none; |
| | | } |
| | | |
| | | span { |
| | | width: 353px; |
| | | height: 43px; |
| | | font-family: PangMen; |
| | | font-weight: 400; |
| | | font-size: 36px; |
| | | color: #FFFFFF; |
| | | letter-spacing: 3px; |
| | | text-shadow: 3px 3px 0px rgba(0, 13, 42, 0.27); |
| | | text-align: left; |
| | | font-style: normal; |
| | | text-transform: none; |
| | | } |
| | | } |
| | | |
| | | .top-bar__right { |
| | | margin-right: 28px; |
| | | padding-top: 16px; |
| | | flex: 0 0 auto; |
| | | display: flex !important; |
| | | align-items: flex-start; |
| | | height: 100%; |
| | | pointer-events: auto; |
| | | box-sizing: border-box; |
| | | |
| | | .icon-box { |
| | | margin-top: 6px; |
| | | margin-right: 30px; |
| | | .content-wrap { |
| | | position: absolute; |
| | | inset: 0; |
| | | display: flex; |
| | | align-items: center; |
| | | gap: 0 20px; |
| | | z-index: 1; |
| | | padding: 0 40px; |
| | | |
| | | .gateway { |
| | | width: 21px; |
| | | height: 18px; |
| | | .logo-title-wrap { |
| | | display: flex; |
| | | align-items: center; |
| | | transform: translateY(-10px); |
| | | |
| | | img { |
| | | width: 70px; |
| | | height: 63px; |
| | | vertical-align: middle; |
| | | } |
| | | |
| | | .title { |
| | | margin-left: 16px; |
| | | margin-top: 0; |
| | | margin-bottom: 0; |
| | | |
| | | width: 353px; |
| | | height: 43px; |
| | | font-family: PangMen; |
| | | font-weight: 400; |
| | | font-size: 36px; |
| | | color: #FFFFFF; |
| | | letter-spacing: 3px; |
| | | text-shadow: 3px 3px 0px rgba(0, 13, 42, 0.27); |
| | | text-align: left; |
| | | font-style: normal; |
| | | text-transform: none; |
| | | } |
| | | } |
| | | |
| | | >* { |
| | | cursor: pointer; |
| | | .header-right { |
| | | display: flex; |
| | | align-items: center; |
| | | margin-left: auto; |
| | | margin-top: -25px; |
| | | pointer-events: auto; |
| | | |
| | | .nav-menu { |
| | | display: flex; |
| | | margin-right: 30px; |
| | | gap: 0px; |
| | | |
| | | .nav-item { |
| | | width: 136px; |
| | | height: 34px; |
| | | box-sizing: border-box; |
| | | text-align: center; |
| | | color: #afafe0; |
| | | text-decoration: none; |
| | | font-size: 20px; |
| | | transition: color 0.3s; |
| | | padding: 0; |
| | | background: url('@/assets/images/menu-item.png') no-repeat center / 136px 34px; |
| | | cursor: pointer; |
| | | margin: 0 10px; |
| | | |
| | | display: flex; |
| | | align-items: center; |
| | | justify-content: center; |
| | | padding-bottom: 10px; |
| | | line-height: 1; |
| | | |
| | | font-family: YouSheBiaoTiHei; |
| | | |
| | | &:hover { |
| | | color: #fff; |
| | | } |
| | | |
| | | &.active { |
| | | color: #fff; |
| | | background: url('@/assets/images/active-menu-item.png') no-repeat center / 136px 34px; |
| | | |
| | | span { |
| | | background: linear-gradient(180deg, |
| | | #fff 22.11%, |
| | | #ffffff 86.69%); |
| | | background-size: contain; |
| | | background-clip: text; |
| | | -webkit-text-fill-color: transparent; |
| | | text-shadow: 0px 0px 13px 0px #5da6ef73; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | .icon-group { |
| | | display: flex; |
| | | align-items: center; |
| | | margin-right: 20px; |
| | | gap: 15px; |
| | | |
| | | |
| | | .icon-box { |
| | | margin-top: 6px; |
| | | margin-right: 30px; |
| | | display: flex; |
| | | align-items: center; |
| | | gap: 0 20px; |
| | | |
| | | .gateway { |
| | | width: 21px; |
| | | height: 18px; |
| | | } |
| | | |
| | | >* { |
| | | cursor: pointer; |
| | | } |
| | | } |
| | | } |
| | | |
| | | .top-bar__item { |
| | | margin-right: 15px; |
| | | display: inline-block !important; |
| | | } |
| | | |
| | | .top-user { |
| | | display: flex; |
| | | align-items: center; |
| | | } |
| | | |
| | | .top-bar__img { |
| | | margin-top: 5px; |
| | | width: 20px; |
| | | height: 20px; |
| | | border: 2px solid #383874; |
| | | border-radius: 50%; |
| | | } |
| | | |
| | | .el-dropdown-link { |
| | | cursor: pointer; |
| | | color: #606266; |
| | | } |
| | | |
| | | .el-dropdown-link:hover { |
| | | color: #409EFF; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | .top-bar__item { |
| | | margin-right: 15px; |
| | | display: inline-block !important; |
| | | } |
| | | |
| | | .top-user { |
| | | display: flex; |
| | | align-items: center; |
| | | } |
| | | |
| | | .top-bar__img { |
| | | margin-top: 5px; |
| | | width: 20px; |
| | | height: 20px; |
| | | border: 2px solid #383874; |
| | | border-radius: 50%; |
| | | } |
| | | |
| | | .el-dropdown-link { |
| | | cursor: pointer; |
| | | color: #606266; |
| | | } |
| | | |
| | | .el-dropdown-link:hover { |
| | | color: #409EFF; |
| | | } |
| | | </style> |