feat: 完成头像组件封装

This commit is contained in:
陈淳
2023-03-14 16:32:47 +08:00
parent cd9e27bcf3
commit 2824e1325d
3 changed files with 31 additions and 8 deletions

View File

@@ -1,10 +1,10 @@
<template > <template >
<div class="avatar"> <div class="avatar">
<div class="avatar-left"> <div class="avatar-left">
<el-avatar :size="props.size" :src="props.src ?? '/src/assets/logo.ico'" /> <el-avatar :size="props.size" :src="userInfo.icon ?? '/src/assets/logo.ico'" />
<div> <div>
<div class="nick" :class="{mt_1: props.time!='undefined'}"> 大白子</div> <div class="nick" :class="{mt_1: props.time!='undefined'}"> {{userInfo.name}}</div>
<div class="remarks" v-if="props.time"> {{props.time}}</div> <div class="remarks" v-if="props.time"> {{props.time}}</div>
<div class="remarks"> <slot name="bottom" /></div> <div class="remarks"> <slot name="bottom" /></div>
</div> </div>
@@ -22,17 +22,39 @@
</template> </template>
<script setup> <script setup>
import useUserStore from '@/stores/user' import useUserStore from '@/stores/user'
import { onMounted } from 'vue'; import { reactive, watch ,onMounted } from 'vue';
//userInfo //userInfo
//{icon,name,role,id},根据判断userInfo是否等于未定义来觉得是当前登录用户信息还是其他人信息 //{icon,name,role,id},根据判断userInfo是否等于未定义来觉得是当前登录用户信息还是其他人信息
const props = defineProps(['size', 'src','showWatching','time','userInfo']) const props = defineProps(['size','showWatching','time','userInfo'])
const userStore=useUserStore(); const userStore=useUserStore();
const userInfo=reactive({ const userInfo=reactive({
icon:"", icon:"",
name:"", name:"",
role:"", role:[],
id:"" id:""
}); });
onMounted(() => {
//使用传入值
if(props.userInfo!= undefined)
{
console.log(props.userInfo,"props.userInfo333");
userInfo.icon=props.userInfo.icon;
userInfo.name=props.userInfo.name;
userInfo.role=props.userInfo.role;
userInfo.id=props.userInfo.id;
}
//使用当前登录用户
else
{
userInfo.icon=userStore.icon;
userInfo.name=userStore.name;
userInfo.role=userStore.role;
userInfo.id=userStore.id;
}
})
</script> </script>
<style scoped> <style scoped>
.mt_1 .mt_1

View File

@@ -2,7 +2,7 @@
<el-card class="box-card" shadow="never"> <el-card class="box-card" shadow="never">
<div class="card-header"> <div class="card-header">
<AvatarInfo /> <AvatarInfo src="asdsadas" :userInfo="{name:'大白子'}" />
</div> </div>

View File

@@ -3,9 +3,10 @@ import { defineStore } from 'pinia'
const useUserStore = defineStore('user', const useUserStore = defineStore('user',
{ {
state: () => ({ state: () => ({
id:'',
token: '', token: '',
name: '', name: '登录用户',
avatar: '', icon: null,
roles: ['admin'], roles: ['admin'],
permissions: ['*:*:*'] permissions: ['*:*:*']
}), }),