|
|
@ -1,24 +1,19 @@
|
|
|
|
<script lang="ts" setup>
|
|
|
|
<script setup>
|
|
|
|
import { computed } from 'vue'
|
|
|
|
import {ref} from 'vue'
|
|
|
|
import { NAvatar } from 'naive-ui'
|
|
|
|
import { NAvatar } from 'naive-ui'
|
|
|
|
import { useUserStore } from '@/store'
|
|
|
|
|
|
|
|
import { isString } from '@/utils/is'
|
|
|
|
|
|
|
|
import defaultAvatar from '@/assets/avatar.jpg'
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
interface Props {
|
|
|
|
|
|
|
|
image?: boolean
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
defineProps<Props>()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
const userStore = useUserStore()
|
|
|
|
const defaultAvatar=ref(JSON.parse(localStorage.getItem('userInfo')).Avatar)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
defineProps({
|
|
|
|
|
|
|
|
image: Boolean
|
|
|
|
|
|
|
|
})
|
|
|
|
|
|
|
|
|
|
|
|
const avatar = computed(() => userStore.userInfo.avatar)
|
|
|
|
|
|
|
|
</script>
|
|
|
|
</script>
|
|
|
|
|
|
|
|
|
|
|
|
<template>
|
|
|
|
<template>
|
|
|
|
<template v-if="image">
|
|
|
|
<template v-if="image">
|
|
|
|
<NAvatar v-if="isString(avatar) && avatar.length > 0" :src="avatar" :fallback-src="defaultAvatar" />
|
|
|
|
<NAvatar :src="defaultAvatar" :fallback-src="defaultAvatar" />
|
|
|
|
<NAvatar v-else round :src="defaultAvatar" />
|
|
|
|
|
|
|
|
</template>
|
|
|
|
</template>
|
|
|
|
<span v-else class="text-[28px] dark:text-white">
|
|
|
|
<span v-else class="text-[28px] dark:text-white">
|
|
|
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32" aria-hidden="true" width="1em" height="1em">
|
|
|
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32" aria-hidden="true" width="1em" height="1em">
|
|
|
|