edu/admin/src/layout/components/layout-header.vue

77 lines
2.4 KiB
Vue
Raw Normal View History

2022-04-08 02:42:44 +00:00
<template>
<div class="layout-header">
<!-- <input class="search-input" placeholder="请输入搜索内容…" type="text" /> -->
<div class="admin-info flex flex-center m-l-40">
<el-avatar :size="40" :src="userInfo.avatar"></el-avatar>
2022-04-19 08:54:54 +00:00
2022-04-08 02:42:44 +00:00
<div class="m-l-10">
<el-dropdown trigger="hover" @command="handleCommand">
<div class="flex flex-center">
2022-04-19 08:54:54 +00:00
{{ userInfo.username }}
2022-04-08 02:42:44 +00:00
<el-icon class="el-icon--right"><arrow-down /></el-icon>
</div>
<template #dropdown>
2022-04-15 07:32:37 +00:00
<el-dropdown-menu>
2022-04-25 04:15:05 +00:00
<router-link to="/setting/personal_data">
2022-04-15 07:32:37 +00:00
<el-dropdown-item>个人设置</el-dropdown-item>
</router-link>
</el-dropdown-menu>
2022-04-15 11:16:14 +00:00
2022-04-08 02:42:44 +00:00
<el-dropdown-menu>
<el-dropdown-item command="logout">退出登录</el-dropdown-item>
</el-dropdown-menu>
</template>
</el-dropdown>
</div>
</div>
</div>
</template>
<script lang="ts">
import { computed, defineComponent } from 'vue'
import { useAdmin } from '@/core/hooks/app'
export default defineComponent({
setup() {
const { store, router } = useAdmin()
const userInfo = computed(() => store.getters.userInfo)
2022-04-25 09:27:45 +00:00
console.log(userInfo, 'userInfo____')
2022-04-19 08:54:54 +00:00
2022-04-08 02:42:44 +00:00
const handleCommand = (command: string) => {
switch (command) {
case 'logout':
store.dispatch('user/logout').then(() => {
router.push('/login')
store.commit('permission/setPermission', {
auth: null,
root: 0
})
})
}
}
return {
userInfo,
handleCommand
}
}
})
</script>
<style lang="scss" scoped>
.layout-header {
display: flex;
align-items: center;
justify-content: flex-end;
flex: none;
height: $layout-header-height;
background: #fff;
padding: 0 24px;
.search-input {
width: 460px;
height: 40px;
border-radius: 20px;
background: #f6f6f6;
padding: 0 20px;
}
}
</style>