Commit 1d5d6ef6097f1fb101751034d982764a4ca317cd
1 parent
4c534a77
fixed #5136
Showing
2 changed files
with
11 additions
and
2 deletions
Show diff stats
examples/routers/avatar.vue
... | ... | @@ -32,6 +32,8 @@ |
32 | 32 | </div> |
33 | 33 | <br><br><br> |
34 | 34 | <Avatar custom-icon="ivu-icon-ios-person" /> |
35 | + | |
36 | + <Avatar :src="src" size="large" @on-error="handleError" /> | |
35 | 37 | </div> |
36 | 38 | </template> |
37 | 39 | <script> |
... | ... | @@ -42,7 +44,8 @@ |
42 | 44 | data () { |
43 | 45 | return { |
44 | 46 | user: UserList[0], |
45 | - color: ColorList[0] | |
47 | + color: ColorList[0], | |
48 | + src: 'https://dev-file.iviewui.com/userinfoPDvn9gKWYihR24SpgC319vXY8qniCqj41/avatar' | |
46 | 49 | } |
47 | 50 | }, |
48 | 51 | methods: { |
... | ... | @@ -50,6 +53,9 @@ |
50 | 53 | const index = UserList.indexOf(this.user); |
51 | 54 | this.user = index < UserList.length - 1 ? UserList[index + 1] : UserList[0]; |
52 | 55 | this.color = index < ColorList.length - 1 ? ColorList[index + 1] : ColorList[0]; |
56 | + }, | |
57 | + handleError () { | |
58 | + this.src = 'https://dev-file.iviewui.com/userinfoPDvn9gKWYihR24SpgC319vXY8qniCqj4/avatar'; | |
53 | 59 | } |
54 | 60 | } |
55 | 61 | } | ... | ... |
src/components/avatar/avatar.vue
1 | 1 | <template> |
2 | 2 | <span :class="classes"> |
3 | - <img :src="src" v-if="src"> | |
3 | + <img :src="src" v-if="src" @error="handleError"> | |
4 | 4 | <Icon :type="icon" :custom="customIcon" v-else-if="icon || customIcon"></Icon> |
5 | 5 | <span ref="children" :class="[prefixCls + '-string']" :style="childrenStyle" v-else><slot></slot></span> |
6 | 6 | </span> |
... | ... | @@ -89,6 +89,9 @@ |
89 | 89 | this.scale = 1; |
90 | 90 | } |
91 | 91 | } |
92 | + }, | |
93 | + handleError (e) { | |
94 | + this.$emit('on-error', e); | |
92 | 95 | } |
93 | 96 | }, |
94 | 97 | mounted () { | ... | ... |