feat(Navbar): 顶部导航栏setup语法糖改造和优化退出图标的大小

This commit is contained in:
郝先瑞
2022-01-01 16:07:36 +08:00
parent 31c5669955
commit 28d1d37b23

View File

@@ -10,7 +10,7 @@
<!-- <search id="header-search" class="right-menu-item" /> <!-- <search id="header-search" class="right-menu-item" />
<error-log class="errLog-container right-menu-item hover-effect" />--> <error-log class="errLog-container right-menu-item hover-effect" />-->
<screenfull id="screenfull" class="right-menu-item hover-effect"/> <screenfull id="screenfull" class="right-menu-item hover-effect"/>
<!-- <el-tooltip content="Global Size" effect="dark" placement="bottom"> <!--<el-tooltip content="Global Size" effect="dark" placement="bottom">
<size-select id="size-select" class="right-menu-item hover-effect" /> <size-select id="size-select" class="right-menu-item hover-effect" />
</el-tooltip>--> </el-tooltip>-->
</template> </template>
@@ -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: {
Breadcrumb,
Hamburger,
Screenfull
},
setup() {
const route = useRoute()
const router = useRouter()
const sidebar = computed(() => { import SvgIcon from '@/components/SvgIcon/index.vue'
return useAppStoreHook().sidebar
})
const device = computed(() => {
return useAppStoreHook().device
})
const avatar = computed(() => {
return useUserStoreHook().avatar
})
const state = reactive({ const route = useRoute()
toggleSideBar: () => { const router = useRouter()
useAppStoreHook().toggleSidebar(false)
}, const sidebar = computed(() => useAppStoreHook().sidebar)
logout: () => { const device = computed(() => useAppStoreHook().device)
useUserStoreHook().logout().then(()=>{ const avatar = computed(() => useUserStoreHook().avatar)
router.push(`/login?redirect=${route.fullPath}`)
}) function toggleSideBar() {
} useAppStoreHook().toggleSidebar()
}
function logout() {
ElMessageBox.confirm('确定注销并退出系统吗?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
useUserStoreHook().logout().then(() => {
router.push(`/login?redirect=${route.fullPath}`)
}) })
return { })
sidebar,
device,
avatar,
...toRefs(state)
}
}
} }
</script> </script>