// components import { Dropdown, Menu, Divider } from 'ant-design-vue'; import { defineComponent, computed, unref } from 'vue'; // res import headerImg from '/@/assets/images/header.jpg'; import Icon from '/@/components/Icon/index'; import { userStore } from '/@/store/modules/user'; import { DOC_URL } from '/@/settings/siteSetting'; import { appStore } from '/@/store/modules/app'; const prefixCls = 'user-dropdown'; export default defineComponent({ name: 'UserDropdown', setup() { const getProjectConfigRef = computed(() => { return appStore.getProjectConfig; }); const getUserInfo = computed(() => { const { realName = '', desc } = userStore.getUserInfoState || {}; return { realName, desc }; }); // login out function handleLoginOut() { userStore.confirmLoginOut(); } // open doc function openDoc() { window.open(DOC_URL, '__blank'); } function handleMenuClick(e: any) { if (e.key === 'loginOut') { handleLoginOut(); } if (e.key === 'doc') { openDoc(); } } function renderItem({ icon, text, key }: { icon: string; text: string; key: string }) { return ( {() => ( {text} )} ); } return () => { const { realName } = unref(getUserInfo); const { headerSetting: { showDoc }, } = unref(getProjectConfigRef); return ( {{ default: () => (
{realName}
), overlay: () => ( {() => ( <> {showDoc && renderItem({ key: 'doc', text: '文档', icon: 'gg:loadbar-doc' })} {showDoc && } {renderItem({ key: 'loginOut', text: '退出系统', icon: 'ant-design:poweroff-outlined', })} )} ), }}
); }; }, });