diff --git a/packages/image/demo/index.vue b/packages/image/demo/index.vue
index 42492e73e..518a31dab 100644
--- a/packages/image/demo/index.vue
+++ b/packages/image/demo/index.vue
@@ -54,6 +54,32 @@
+
+
+
+
+
+ {{ $t('defaultTip') }}
+
+
+
+
+
+ {{ $t('loadFail') }}
+
+
+ {{ $t('customTip') }}
+
+
+
@@ -65,14 +91,16 @@ export default {
loading: '加载中提示',
error: '加载失败提示',
defaultTip: '默认提示',
- customTip: '自定义提示'
+ customTip: '自定义提示',
+ loadFail: '加载失败'
},
'en-US': {
fitMode: 'Fit Mode',
loading: 'Loading',
error: 'Error',
defaultTip: 'Default Tip',
- customTip: 'Custom Tip'
+ customTip: 'Custom Tip',
+ loadFail: 'Load failed'
}
},
diff --git a/packages/image/en-US.md b/packages/image/en-US.md
index eda5beea2..682ff1049 100644
--- a/packages/image/en-US.md
+++ b/packages/image/en-US.md
@@ -84,3 +84,4 @@ Vue.use(Lazyload);
| Name | Description |
|------|------|
| loading | Custom loading placeholder |
+| error | Custom error placeholder |
diff --git a/packages/image/index.js b/packages/image/index.js
index a1b4b5ba9..27166dc25 100644
--- a/packages/image/index.js
+++ b/packages/image/index.js
@@ -51,6 +51,7 @@ export default sfc({
onError(event) {
this.error = true;
+ this.loading = false;
this.$emit('error', event);
},
@@ -58,11 +59,19 @@ export default sfc({
this.$emit('click', event);
},
- renderContent() {
+ renderPlaceholder() {
if (this.loading) {
return (
- {this.slots('loading') || }
+ {this.slots('loading') || }
+
+ );
+ }
+
+ if (this.error) {
+ return (
+
+ {this.slots('error') || }
);
}
@@ -83,6 +92,10 @@ export default sfc({
}
};
+ if (this.error) {
+ return;
+ }
+
if (this.lazyLoad) {
return
;
}
@@ -95,7 +108,7 @@ export default sfc({
return (
{this.renderImage()}
- {this.renderContent()}
+ {this.renderPlaceholder()}
);
}
diff --git a/packages/image/index.less b/packages/image/index.less
index bee220fef..3f21f8232 100644
--- a/packages/image/index.less
+++ b/packages/image/index.less
@@ -21,6 +21,7 @@
align-items: center;
justify-content: center;
color: @gray-dark;
+ font-size: 14px;
background-color: @background-color;
}
}
diff --git a/packages/image/test/__snapshots__/demo.spec.js.snap b/packages/image/test/__snapshots__/demo.spec.js.snap
index 6feaadfc1..c28bb70d0 100644
--- a/packages/image/test/__snapshots__/demo.spec.js.snap
+++ b/packages/image/test/__snapshots__/demo.spec.js.snap
@@ -5,7 +5,7 @@ exports[`renders demo correctly 1`] = `

-
@@ -14,35 +14,35 @@ exports[`renders demo correctly 1`] = `

-
contain

-
cover

-
fill

-
none

-
scale-down
@@ -53,7 +53,7 @@ exports[`renders demo correctly 1`] = `
![]()
-
默认提示
@@ -68,5 +68,23 @@ exports[`renders demo correctly 1`] = `
+
+
+
+

+
+
+
+
默认提示
+
+
+

+
+
+
+
自定义提示
+
+
+
`;
diff --git a/packages/image/test/__snapshots__/index.spec.js.snap b/packages/image/test/__snapshots__/index.spec.js.snap
index 90525a802..c6603965a 100644
--- a/packages/image/test/__snapshots__/index.spec.js.snap
+++ b/packages/image/test/__snapshots__/index.spec.js.snap
@@ -2,7 +2,7 @@
exports[`lazy load 1`] = `
![]()
-
`;
@@ -11,7 +11,7 @@ exports[`load event 1`] = `

![]()
-
`;
diff --git a/packages/image/zh-CN.md b/packages/image/zh-CN.md
index 68087e9da..08d1cadc5 100644
--- a/packages/image/zh-CN.md
+++ b/packages/image/zh-CN.md
@@ -50,7 +50,7 @@ Vue.use(Lazyload);
### 加载中提示
-`Image`组件默认提供了图片加载中的提示,可以通过插槽自定义加载中提示
+`Image`组件提供了默认的加载中提示,可以通过`loading`插槽自定义加载中提示
```html
@@ -60,6 +60,18 @@ Vue.use(Lazyload);
```
+### 加载失败提示
+
+`Image`组件提供了默认的加载失败提示,可以通过`error`插槽自定义加载失败提示
+
+```html
+
+
+
+
+
+```
+
## API
### Props
@@ -95,4 +107,5 @@ Vue.use(Lazyload);
| 名称 | 说明 |
|------|------|
-| loading | 自定义加载状态显示内容 |
+| loading | 自定义加载中的提示内容 |
+| error | 自定义加载失败时的提示内容 |