@@ -7,103 +7,204 @@ Avatars can be used to represent people or objects. It supports images, Icons, o
7
7
use ` shape ` and ` size ` prop to set avatar's shape and size
8
8
9
9
::: demo
10
+
10
11
``` html
11
12
<template >
12
13
<el-row class =" demo-avatar demo-basic" >
13
14
<el-col :span =" 12" >
14
15
<div class =" sub-title" >circle</div >
15
16
<div class =" demo-basic--circle" >
16
- <div class =" block" ><el-avatar :size =" 50" :src =" circleUrl" ></el-avatar ></div >
17
+ <div class =" block" >
18
+ <el-avatar :size =" 50" :src =" circleUrl" ></el-avatar >
19
+ </div >
17
20
<div class =" block" v-for =" size in sizeList" :key =" size" >
18
21
<el-avatar :size =" size" :src =" circleUrl" ></el-avatar >
19
22
</div >
20
23
</div >
21
- </el-col >
24
+ </el-col >
22
25
<el-col :span =" 12" >
23
26
<div class =" sub-title" >square</div >
24
27
<div class =" demo-basic--circle" >
25
- <div class =" block" ><el-avatar shape =" square" :size =" 50" :src =" squareUrl" ></el-avatar ></div >
28
+ <div class =" block" >
29
+ <el-avatar shape =" square" :size =" 50" :src =" squareUrl" ></el-avatar >
30
+ </div >
26
31
<div class =" block" v-for =" size in sizeList" :key =" size" >
27
32
<el-avatar shape =" square" :size =" size" :src =" squareUrl" ></el-avatar >
28
33
</div >
29
34
</div >
30
- </el-col >
35
+ </el-col >
31
36
</el-row >
32
37
</template >
33
38
<script >
34
39
export default {
35
- data () {
40
+ data () {
36
41
return {
37
- circleUrl: " https://cube.elemecdn.com/3/7c/3ea6beec64369c2642b92c6726f1epng.png" ,
38
- squareUrl: " https://cube.elemecdn.com/9/c2/f0ee8a3c7c9638a54940382568c9dpng.png" ,
39
- sizeList: [" large" , " medium" , " small" ]
42
+ circleUrl:
43
+ ' https://cube.elemecdn.com/3/7c/3ea6beec64369c2642b92c6726f1epng.png' ,
44
+ squareUrl:
45
+ ' https://cube.elemecdn.com/9/c2/f0ee8a3c7c9638a54940382568c9dpng.png' ,
46
+ sizeList: [' large' , ' medium' , ' small' ],
40
47
}
41
- }
48
+ },
42
49
}
43
50
</script >
44
-
45
51
```
52
+
46
53
:::
47
54
48
55
### Types
49
56
50
57
It supports images, Icons, or characters
51
58
52
59
::: demo
60
+
53
61
``` html
54
62
<template >
55
63
<div class =" demo-type" >
56
64
<div >
57
65
<el-avatar icon =" el-icon-user-solid" ></el-avatar >
58
66
</div >
59
67
<div >
60
- <el-avatar src =" https://cube.elemecdn.com/0/88/03b0d39583f48206768a7534e55bcpng.png" ></el-avatar >
68
+ <el-avatar
69
+ src =" https://cube.elemecdn.com/0/88/03b0d39583f48206768a7534e55bcpng.png"
70
+ ></el-avatar >
61
71
</div >
62
72
<div >
63
73
<el-avatar > user </el-avatar >
64
74
</div >
65
75
</div >
66
76
</template >
67
77
```
78
+
79
+ :::
80
+
81
+ ### Tooltip
82
+
83
+ If ` text ` or ` tooltip ` exist, The tooltips can be displayed when the mouse hovers
84
+
85
+ ::: demo
86
+
87
+ ``` html
88
+ <template >
89
+ <div class =" demo-type" >
90
+ <div >
91
+ <el-avatar
92
+ tooltip =" This is a custom tooltip content"
93
+ icon =" el-icon-user-solid"
94
+ ></el-avatar >
95
+ </div >
96
+ <div >
97
+ <el-avatar
98
+ text =" element"
99
+ src =" https://cube.elemecdn.com/0/88/03b0d39583f48206768a7534e55bcpng.png"
100
+ ></el-avatar >
101
+ </div >
102
+ <div >
103
+ <el-avatar text =" James Gosling" bgColor =" #409eff" ></el-avatar >
104
+ </div >
105
+ </div >
106
+ </template >
107
+ <script >
108
+ export default {
109
+ methods: {
110
+ errorHandler () {
111
+ return true
112
+ },
113
+ },
114
+ }
115
+ </script >
116
+ ```
117
+
68
118
:::
69
119
70
120
### Fallback when image load error
71
121
72
- fallback when image load error
122
+ fallback when image load error or src is empty
123
+
124
+ customize the display via the default slot, or by using ` text ` as a placeholder.
73
125
74
126
::: demo
127
+
75
128
``` html
76
129
<template >
77
130
<div class =" demo-type" >
78
- <el-avatar :size =" 60" src =" https://empty" @error =" errorHandler" >
79
- <img src =" https://cube.elemecdn.com/e/fd/0fc7d20532fdaf769a25683617711png.png" />
131
+ <div >
132
+ <el-avatar src =" https://empty" @error =" errorHandler" >
133
+ <img
134
+ src =" https://cube.elemecdn.com/e/fd/0fc7d20532fdaf769a25683617711png.png"
135
+ />
80
136
</el-avatar >
137
+ </div >
138
+ <div >
139
+ <el-avatar
140
+ src =" https://empty"
141
+ @error =" errorHandler"
142
+ text =" James Gosling"
143
+ bgColor =" #409eff"
144
+ ></el-avatar >
145
+ </div >
81
146
</div >
82
147
</template >
83
148
<script >
84
149
export default {
85
150
methods: {
86
151
errorHandler () {
87
152
return true
88
- }
89
- }
153
+ },
154
+ },
90
155
}
91
156
</script >
157
+ ```
158
+
159
+ :::
160
+
161
+ ### Custom Text Formatter
162
+
163
+ When using text as a placeholder, the last two characters are displayed by default, and hover displayed the full text.
164
+
165
+ You can also customize how to abbreviate it via the ` textFormatter ` method.
166
+
167
+ ::: demo
92
168
169
+ ``` html
170
+ <template >
171
+ <div class =" demo-type" >
172
+ <div >
173
+ <el-avatar text =" James Gosling" bgColor =" #409eff" ></el-avatar >
174
+ </div >
175
+ <div >
176
+ <el-avatar
177
+ text =" Unassigned"
178
+ bgColor =" #409eff"
179
+ :text-formatter =" (s) => s.slice(0, 1)"
180
+ :font-size =" 15"
181
+ ></el-avatar >
182
+ </div >
183
+ <div >
184
+ <el-avatar
185
+ text =" Linus Torvalds"
186
+ bgColor =" #409eff"
187
+ :text-formatter =" (s) => s.split(' ').map(s=>s[0]).join('')"
188
+ ></el-avatar >
189
+ </div >
190
+ </div >
191
+ </template >
93
192
```
193
+
94
194
:::
95
195
96
196
### How the image fit its container
97
197
98
198
Set how the image fit its container for an image avatar, same as [ object-fit] ( https://developer.mozilla.org/en-US/docs/Web/CSS/object-fit ) .
99
199
100
200
::: demo
201
+
101
202
``` html
102
203
<template >
103
204
<div class =" demo-fit" >
104
205
<div class =" block" v-for =" fit in fits" :key =" fit" >
105
- <span class =" title" >{{ fit }}</span >
106
- <el-avatar shape =" square" :size =" 100" :fit =" fit" :src =" url" ></el-avatar >
206
+ <span class =" title" >{{ fit }}</span >
207
+ <el-avatar shape =" square" :size =" 100" :fit =" fit" :src =" url" ></el-avatar >
107
208
</div >
108
209
</div >
109
210
</template >
@@ -112,34 +213,41 @@ Set how the image fit its container for an image avatar, same as [object-fit](ht
112
213
data () {
113
214
return {
114
215
fits: [' fill' , ' contain' , ' cover' , ' none' , ' scale-down' ],
115
- url: ' https://fuss10.elemecdn.com/e/5d/4a731a90594a4af544c0c25941171jpeg.jpeg'
216
+ url:
217
+ ' https://fuss10.elemecdn.com/e/5d/4a731a90594a4af544c0c25941171jpeg.jpeg' ,
116
218
}
117
- }
219
+ },
118
220
}
119
221
</script >
120
-
121
222
```
223
+
122
224
:::
123
225
124
226
### Attributes
125
227
126
- | Attribute | Description | Type | Accepted Values | Default |
127
- | ----------------- | -------------------------------- | --------------- | ------ | ------ |
128
- | icon | set representation type to Icon, more info on Icon Component | string | | |
129
- | size | set avatar size | number/string | number / large / medium / small | large |
130
- | shape | set avatar shape | string | circle / square | circle |
131
- | src | the address of the image for an image avatar | string | | |
132
- | srcSet | A list of one or more strings separated by commas indicating a set of possible image sources for the user agent to use | string | | |
133
- | alt | This attribute defines an alternative text description of the image | string | | |
134
- | fit | set how the image fit its container for an image avatar | string | fill / contain / cover / none / scale-down | cover |
228
+ | Attribute | Description | Type | Accepted Values | Default |
229
+ | ------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------- | ------------------------------------------ | ---------------------- |
230
+ | icon | set representation type to Icon, more info on Icon Component | string | | |
231
+ | size | set avatar size | number/string | number / large / medium / small | large |
232
+ | shape | set avatar shape | string | circle / square | circle |
233
+ | src | the address of the image for an image avatar | string | | |
234
+ | srcSet | A list of one or more strings separated by commas indicating a set of possible image sources for the user agent to use | string | | |
235
+ | alt | This attribute defines an alternative text description of the image | string | | |
236
+ | fit | set how the image fit its container for an image avatar | string | fill / contain / cover / none / scale-down | cover |
237
+ | text | When images cannot be loaded and no default slot is not used, will take the result of the textFormatter and use it as a text placeholder. will also be used for the default content of the tooltip | string | | |
238
+ | fontSize | set text placeholders size | number | | 12 |
239
+ | bgColor | set background color | string | | #c0c4cc |
240
+ | textFormatter | format ` text ` to show the abbreviation in the avatar placeholder, last two characters by default | function | | (str) => str.slice(-2) |
241
+ | tooltip | set tooltip content, if empty, take ` text ` as the tooltip content. | string | | |
135
242
136
243
### Events
137
244
138
- | Event Name | Description | Parameters |
139
- | ------ | ------------------ | -------- |
140
- | error | handler when img load error, return false to prevent default fallback behavior | (e: Event) |
245
+ | Event Name | Description | Parameters |
246
+ | ---------- | ------------------------------------------------------------------------------ | -- -------- |
247
+ | error | handler when img load error, return false to prevent default fallback behavior | (e: Event) |
141
248
142
249
### Slot
143
250
144
- | Slot Name | Description |
145
- | default | customize avatar content |
251
+ | Slot Name | Description |
252
+ | --------- | ------------------------ |
253
+ | default | customize avatar content |
0 commit comments