UserAvatar.vue 737 B

12345678910111213141516171819202122232425262728293031323334353637383940
  1. <script setup>
  2. import { useUserStore } from '@/store/user'
  3. const props = defineProps({
  4. size: {
  5. type: Number,
  6. default: 40
  7. },
  8. bgColor: {
  9. type: String,
  10. default: '#96CCF6'
  11. }
  12. })
  13. const emit = defineEmits(['tap'])
  14. const userStore = useUserStore()
  15. const { getUserInfo } = storeToRefs(userStore)
  16. const userInfo = computed(() => getUserInfo.value)
  17. // 取昵称的第一个字
  18. const nickName = computed(() => {
  19. if (userInfo.value.nickName) {
  20. return userInfo.value.nickName[0]
  21. }
  22. return ''
  23. })
  24. const handle = () => {
  25. emit('tap')
  26. }
  27. </script>
  28. <template>
  29. <up-avatar
  30. :src="userInfo.avatar"
  31. :text="userInfo.avatar ? '' : nickName"
  32. :size="size"
  33. :bg-color="bgColor"
  34. @tap="handle"
  35. />
  36. </template>