From 02409bfbe15f22fc3b5dccadabfd860a660a49d9 Mon Sep 17 00:00:00 2001
From: 罗广辉 <guanghui.luo@foxmail.com>
Date: Sat, 11 Oct 2025 10:37:14 +0800
Subject: [PATCH] feat: 名称修改
---
src/page/index/top/index.vue | 161 +++++++++++++++++++++++++++++++++++++----------------
1 files changed, 111 insertions(+), 50 deletions(-)
diff --git a/src/page/index/top/index.vue b/src/page/index/top/index.vue
index 03c2901..990496e 100644
--- a/src/page/index/top/index.vue
+++ b/src/page/index/top/index.vue
@@ -1,39 +1,25 @@
<template>
<div class="avue-top">
<div class="top-bar__left">
- <div
- class="avue-breadcrumb"
- :class="[{ 'avue-breadcrumb--active': isCollapse }]"
- v-if="setting.collapse && !isHorizontal"
- >
+ <div class="avue-breadcrumb" :class="[{ 'avue-breadcrumb--active': isCollapse }]"
+ v-if="setting.collapse && !isHorizontal">
<i class="icon-navicon" @click="setCollapse"></i>
</div>
</div>
<div class="top-bar__title">
- <top-menu ref="topMenu" v-if="setting.menu"></top-menu>
+<!--<top-menu ref="topMenu" v-if="setting.menu"></top-menu>-->
<top-search class="top-bar__item" v-if="setting.search"></top-search>
</div>
<div class="top-bar__right">
- <div v-if="setting.color" class="top-bar__item">
- <top-color></top-color>
- </div>
- <div v-if="setting.theme" class="top-bar__item">
- <top-theme></top-theme>
- </div>
- <div v-if="setting.lock" class="top-bar__item">
- <top-lock></top-lock>
- </div>
- <div class="top-bar__item">
- <top-lang></top-lang>
- </div>
- <div class="top-bar__item" v-if="setting.fullscreen">
- <top-full></top-full>
- </div>
- <div class="top-bar__item" v-if="setting.debug">
- <top-logs></top-logs>
+ <div class="icon-box">
+ <top-lock v-if="setting.lock"/>
+ <top-qna />
+ <top-full v-if="setting.fullscreen" title="全屏"/>
+ <img class="gateway" @click="jumpMH" src="@/assets/images/mh.png" alt="进入门户" title="进入门户" width="20" height="20">
</div>
<div class="top-user">
- <img class="top-bar__img" :src="userInfo.avatar" />
+ <img class="top-bar__img" :src="userInfo.avatar " alt=""/>
+
<el-dropdown>
<span class="el-dropdown-link">
{{ userInfo.real_name }}
@@ -43,14 +29,13 @@
</span>
<template #dropdown>
<el-dropdown-menu>
- <el-dropdown-item>
+<!-- <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 @click="logout" divided>{{ $t('navbar.logOut') }}
</el-dropdown-item>
</el-dropdown-menu>
</template>
@@ -60,17 +45,19 @@
</div>
</div>
</template>
+
<script>
-import { mapGetters } from 'vuex';
-import topLock from './top-lock.vue';
-import topMenu from './top-menu.vue';
-import topSearch from './top-search.vue';
-import topTheme from './top-theme.vue';
-import topLogs from './top-logs.vue';
-import topColor from './top-color.vue';
-import topLang from './top-lang.vue';
-import topFull from './top-full.vue';
-import topSetting from '../setting.vue';
+import { mapGetters } from 'vuex'
+import topLock from './top-lock.vue'
+import topMenu from './top-menu.vue'
+import topSearch from './top-search.vue'
+import topTheme from './top-theme.vue'
+import topLogs from './top-logs.vue'
+import topColor from './top-color.vue'
+import topLang from './top-lang.vue'
+import topFull from './top-full.vue'
+import topQna from './top-qna.vue'
+import topSetting from '../setting.vue'
export default {
components: {
@@ -82,20 +69,21 @@
topColor,
topLang,
topFull,
+ topQna,
topSetting,
},
name: 'top',
- data() {
- return {};
+ data () {
+ return {}
},
filters: {},
- created() {},
+ created () { },
computed: {
...mapGetters([
'setting',
'userInfo',
'tagWel',
- 'tagList',
+ 'bsTagList',
'isCollapse',
'tag',
'logsLen',
@@ -104,22 +92,95 @@
]),
},
methods: {
- setCollapse() {
- this.$store.commit('SET_COLLAPSE');
+ setCollapse () {
+ this.$store.commit('SET_COLLAPSE')
},
- logout() {
+ logout () {
this.$confirm(this.$t('logoutTip'), this.$t('tip'), {
confirmButtonText: this.$t('submitText'),
cancelButtonText: this.$t('cancelText'),
type: 'warning',
}).then(() => {
this.$store.dispatch('LogOut').then(() => {
- this.$router.push({ path: '/login' });
- });
- });
+ const env = import.meta.env.VITE_APP_ENV
+ const adminUrl = import.meta.env.VITE_APP_DASHBOARD_URL
+ env === 'development' ? this.$router.push({ path: '/login' }):window.location.replace(`${adminUrl}#/login`)
+ })
+ })
+ },
+ jumpMH () {
+ const adminUrl = import.meta.env.VITE_APP_DASHBOARD_URL
+ window.location.href = `${adminUrl}#/gatewayPage`
},
},
-};
+}
</script>
-<style lang="scss" scoped></style>
+<style lang="scss" scoped>
+.avue-top {
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ padding: 0 15px;
+ height: 50px;
+ background-color: #fff;
+ box-shadow: 0 1px 4px rgba(0, 21, 41, 0.08);
+}
+
+.top-bar__left {
+ flex: 0 0 auto;
+}
+
+.top-bar__title {
+ flex: 1;
+ display: flex;
+ align-items: center;
+ height: pxToVh(80);
+}
+
+.top-bar__right {
+ flex: 0 0 auto;
+ display: flex !important;
+ align-items: center;
+ height: 100%;
+
+ .icon-box{
+ display: flex;
+ align-items: center;
+ gap: 0 20px;
+ .gateway{
+ width: 25px;
+ height: 25px;
+ }
+ >*{
+ cursor: pointer;
+ }
+ }
+}
+
+.top-bar__item {
+ margin-right: 15px;
+ display: inline-block !important;
+}
+
+.top-user {
+ display: flex;
+ align-items: center;
+}
+
+.top-bar__img {
+ width: 32px;
+ height: 32px;
+ border-radius: 50%;
+ margin-right: 10px;
+}
+
+.el-dropdown-link {
+ cursor: pointer;
+ color: #606266;
+}
+
+.el-dropdown-link:hover {
+ color: #409EFF;
+}
+</style>
--
Gitblit v1.9.3