| | |
| | | <template> |
| | | <Dropdown placement="bottomLeft" :overlayClassName="`${prefixCls}-dropdown-overlay`"> |
| | | <span :class="[prefixCls, `${prefixCls}--${theme}`]"> |
| | | <span :class="[prefixCls, `${prefixCls}--${theme}`]" class="flex"> |
| | | <img :class="`${prefixCls}__header`" :src="headerImg" /> |
| | | <span :class="`${prefixCls}__info`"> |
| | | <span :class="`${prefixCls}__name anticon`">{{ getUserInfo.realName }}</span> |
| | | <span :class="`${prefixCls}__info hidden md:block`"> |
| | | <span :class="`${prefixCls}__name `" class="truncate"> |
| | | {{ getUserInfo.realName }} |
| | | </span> |
| | | </span> |
| | | </span> |
| | | |
| | |
| | | icon="ion:document-text-outline" |
| | | v-if="getShowDoc" |
| | | /> |
| | | <MenuDivider /> |
| | | <MenuDivider v-if="getShowDoc" /> |
| | | <MenuItem |
| | | key="lock" |
| | | :text="t('layout.header.tooltipLock')" |
| | | icon="ion:lock-closed-outline" |
| | | /> |
| | | <MenuItem |
| | | key="loginOut" |
| | | key="logout" |
| | | :text="t('layout.header.dropdownItemLoginOut')" |
| | | icon="ion:power-outline" |
| | | /> |
| | |
| | | |
| | | import { createAsyncComponent } from '/@/utils/factory/createAsyncComponent'; |
| | | |
| | | type MenuEvent = 'loginOut' | 'doc' | 'lock'; |
| | | type MenuEvent = 'logout' | 'doc' | 'lock'; |
| | | |
| | | export default defineComponent({ |
| | | name: 'UserDropdown', |
| | |
| | | |
| | | function handleMenuClick(e: { key: MenuEvent }) { |
| | | switch (e.key) { |
| | | case 'loginOut': |
| | | case 'logout': |
| | | handleLoginOut(); |
| | | break; |
| | | case 'doc': |
| | |
| | | @prefix-cls: ~'@{namespace}-header-user-dropdown'; |
| | | |
| | | .@{prefix-cls} { |
| | | display: flex; |
| | | height: @header-height; |
| | | min-width: 100px; |
| | | padding: 0 0 0 10px; |
| | | padding-right: 10px; |
| | | overflow: hidden; |
| | |
| | | } |
| | | |
| | | img { |
| | | width: 26px; |
| | | height: 26px; |
| | | width: 24px; |
| | | height: 24px; |
| | | margin-right: 12px; |
| | | } |
| | | |