吉安感知网项目-前端
shuishen
2026-02-03 89380e6260a75d1d3b94de687ebcc2f50d50659d
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
<template>
    <div class="avue-top">
        <div class="top-bar__left">
            <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-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> -->
            <div class="top-user">
                <img class="top-bar__img" :src="userInfo.avatar" />
                <el-dropdown>
                    <span class="el-dropdown-link">
                        {{ userInfo.user_name }}
                        <el-icon class="el-icon--right">
                            <arrow-down />
                        </el-icon>
                    </span>
                    <template #dropdown>
                        <el-dropdown-menu>
                            <el-dropdown-item>
                                <router-link to="/">{{ $t('navbar.dashboard') }}</router-link>
                            </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>
            </div>
        </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'
 
export default {
    components: {
        topLock,
        topMenu,
        topSearch,
        topTheme,
        topLogs,
        topColor,
        topLang,
        topFull,
        topSetting,
    },
    name: 'top',
    data() {
        return {}
    },
    filters: {},
    created() {},
    computed: {
        ...mapGetters([
            'setting',
            'userInfo',
            'tagWel',
            'tagList',
            'isCollapse',
            'tag',
            'logsLen',
            'logsFlag',
            'isHorizontal',
        ]),
    },
    methods: {
        setCollapse() {
            this.$store.commit('SET_COLLAPSE')
        },
        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' })
                })
            })
        },
    },
}
</script>
 
<style lang="scss" scoped></style>