UserArea.vue 838 B

1234567891011121314151617181920212223242526272829303132
  1. <script setup lang="ts">
  2. import { ChevronDownIcon } from 'tdesign-icons-vue-next'
  3. import type { DropdownOption } from 'tdesign-vue-next'
  4. import { useAppStore } from '@/stores/app'
  5. import type { User } from '@/models/user'
  6. const appStore = useAppStore()
  7. const currentUser: User = appStore.currentUser
  8. const options: DropdownOption[] = [
  9. {
  10. content: '退出登录',
  11. onClick() {
  12. appStore.logout()
  13. }
  14. }
  15. ]
  16. </script>
  17. <template>
  18. <div>
  19. <TDropdown :options="options" :minColumnWidth="100">
  20. <TButton variant="text">
  21. <div class="flex gap-2 items-center">
  22. <TAvatar size="24px" image="https://tdesign.gtimg.com/site/avatar.jpg"></TAvatar>
  23. {{ currentUser.username }}
  24. <ChevronDownIcon />
  25. </div>
  26. </TButton>
  27. </TDropdown>
  28. </div>
  29. </template>
  30. <style scoped></style>