UserAvatarTag.vue 618 B

123456789101112131415161718192021222324252627
  1. <template>
  2. <image :src="avatar" class="cu-avatar radius lg"></image>
  3. </template>
  4. <script setup lang="ts">
  5. import {ref} from "vue";
  6. import {useUserStore} from "@/store/userStore";
  7. import UserApi from "@/api/UserApi";
  8. const avatar = ref("");
  9. const props = defineProps({
  10. id: {
  11. type: String,
  12. default: "",
  13. },
  14. });
  15. const userStore = useUserStore();
  16. const user = userStore.getCacheUser(props.id);
  17. user
  18. ? (avatar.value = user.name)
  19. : UserApi.getUser(props.id).then((res) => {
  20. avatar.value = res?.data?.avatar;
  21. userStore.storeUser(res.data.id,res.data);
  22. });
  23. </script>
  24. <style scoped></style>