ruoyi-plus-soybean/src/layouts/common/GlobalHeader/components/UserAvatar.vue

51 lines
1.1 KiB
Vue
Raw Normal View History

2022-01-11 08:22:31 +08:00
<template>
<n-dropdown :options="options" @select="handleDropdown">
<hover-container class="px-12px" content-class="hover:text-primary">
<icon-custom-avatar class="text-32px" />
2022-01-11 08:22:31 +08:00
<span class="pl-8px text-16px font-medium">{{ auth.userInfo.userName }}</span>
</hover-container>
</n-dropdown>
</template>
<script lang="ts" setup>
import { useAuthStore } from '@/store';
import { iconifyRender } from '@/utils';
type DropdownKey = 'user-center' | 'logout';
const auth = useAuthStore();
const options = [
{
label: '用户中心',
key: 'user-center',
icon: iconifyRender('carbon:user-avatar')
2022-01-11 08:22:31 +08:00
},
{
type: 'divider',
key: 'divider'
2022-01-11 08:22:31 +08:00
},
{
label: '退出登录',
key: 'logout',
icon: iconifyRender('carbon:logout')
}
2022-01-11 08:22:31 +08:00
];
function handleDropdown(optionKey: string) {
const key = optionKey as DropdownKey;
if (key === 'logout') {
window.$dialog?.info({
2022-01-11 08:22:31 +08:00
title: '提示',
content: '您确定要退出登录吗?',
positiveText: '确定',
negativeText: '取消',
onPositiveClick: () => {
auth.resetAuthStore();
}
2022-01-11 08:22:31 +08:00
});
}
}
</script>
<style scoped></style>