feat(Navbar): 顶部导航栏setup语法糖改造和优化退出图标的大小
This commit is contained in:
@@ -18,9 +18,7 @@
|
|||||||
<el-dropdown class="avatar-container right-menu-item hover-effect" trigger="click">
|
<el-dropdown class="avatar-container right-menu-item hover-effect" trigger="click">
|
||||||
<div class="avatar-wrapper">
|
<div class="avatar-wrapper">
|
||||||
<img :src="avatar+'?imageView2/1/w/80/h/80'" class="user-avatar">
|
<img :src="avatar+'?imageView2/1/w/80/h/80'" class="user-avatar">
|
||||||
<el-icon>
|
<CaretBottom style="width: .6em; height: .6em;" />
|
||||||
<caret-bottom/>
|
|
||||||
</el-icon>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<template #dropdown>
|
<template #dropdown>
|
||||||
@@ -37,7 +35,7 @@
|
|||||||
<a target="_blank" href="https://www.cnblogs.com/haoxianrui/">
|
<a target="_blank" href="https://www.cnblogs.com/haoxianrui/">
|
||||||
<el-dropdown-item>项目文档</el-dropdown-item>
|
<el-dropdown-item>项目文档</el-dropdown-item>
|
||||||
</a>
|
</a>
|
||||||
<el-dropdown-item divided @click.native="logout">
|
<el-dropdown-item divided @click="logout">
|
||||||
退出
|
退出
|
||||||
</el-dropdown-item>
|
</el-dropdown-item>
|
||||||
</el-dropdown-menu>
|
</el-dropdown-menu>
|
||||||
@@ -46,8 +44,9 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<script>
|
<script setup lang="ts">
|
||||||
import {reactive, computed, toRefs} from "vue";
|
import { computed} from "vue"
|
||||||
|
import {ElMessageBox} from 'element-plus'
|
||||||
import {useRoute, useRouter} from "vue-router"
|
import {useRoute, useRouter} from "vue-router"
|
||||||
import Breadcrumb from '@/components/Breadcrumb/index.vue'
|
import Breadcrumb from '@/components/Breadcrumb/index.vue'
|
||||||
import Hamburger from '@/components/Hamburger/index.vue'
|
import Hamburger from '@/components/Hamburger/index.vue'
|
||||||
@@ -55,43 +54,30 @@ import Screenfull from '@/components/screenfull/index.vue'
|
|||||||
import {tagsViewStoreHook} from '@/store/modules/tagsView'
|
import {tagsViewStoreHook} from '@/store/modules/tagsView'
|
||||||
import {useAppStoreHook} from '@/store/modules/app'
|
import {useAppStoreHook} from '@/store/modules/app'
|
||||||
import {useUserStoreHook} from '@/store/modules/user'
|
import {useUserStoreHook} from '@/store/modules/user'
|
||||||
export default {
|
|
||||||
components: {
|
import SvgIcon from '@/components/SvgIcon/index.vue'
|
||||||
Breadcrumb,
|
|
||||||
Hamburger,
|
|
||||||
Screenfull
|
|
||||||
},
|
|
||||||
setup() {
|
|
||||||
const route = useRoute()
|
const route = useRoute()
|
||||||
const router = useRouter()
|
const router = useRouter()
|
||||||
|
|
||||||
const sidebar = computed(() => {
|
const sidebar = computed(() => useAppStoreHook().sidebar)
|
||||||
return useAppStoreHook().sidebar
|
const device = computed(() => useAppStoreHook().device)
|
||||||
})
|
const avatar = computed(() => useUserStoreHook().avatar)
|
||||||
const device = computed(() => {
|
|
||||||
return useAppStoreHook().device
|
|
||||||
})
|
|
||||||
const avatar = computed(() => {
|
|
||||||
return useUserStoreHook().avatar
|
|
||||||
})
|
|
||||||
|
|
||||||
const state = reactive({
|
function toggleSideBar() {
|
||||||
toggleSideBar: () => {
|
useAppStoreHook().toggleSidebar()
|
||||||
useAppStoreHook().toggleSidebar(false)
|
}
|
||||||
},
|
|
||||||
logout: () => {
|
function logout() {
|
||||||
|
ElMessageBox.confirm('确定注销并退出系统吗?', '提示', {
|
||||||
|
confirmButtonText: '确定',
|
||||||
|
cancelButtonText: '取消',
|
||||||
|
type: 'warning'
|
||||||
|
}).then(() => {
|
||||||
useUserStoreHook().logout().then(() => {
|
useUserStoreHook().logout().then(() => {
|
||||||
router.push(`/login?redirect=${route.fullPath}`)
|
router.push(`/login?redirect=${route.fullPath}`)
|
||||||
})
|
})
|
||||||
}
|
|
||||||
})
|
})
|
||||||
return {
|
|
||||||
sidebar,
|
|
||||||
device,
|
|
||||||
avatar,
|
|
||||||
...toRefs(state)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user