diff --git a/packages/card/en-US.md b/packages/card/en-US.md
index 3a219fa42..39b36b453 100644
--- a/packages/card/en-US.md
+++ b/packages/card/en-US.md
@@ -58,6 +58,12 @@ Use slot to custom content.
| thumb-link | Thumb link URL | `String` | - |
| lazy-load | Whether to enable thumb lazy load,should register [Lazyload](#/en-US/lazyload) component | `Boolean` | `false` |
+### Event
+
+| Event | Description | Arguments |
+|------|------|------|
+| click | Triggered when clicked | - |
+
### Slot
| name | Description |
diff --git a/packages/card/index.js b/packages/card/index.js
index 05d16705e..e208e532f 100644
--- a/packages/card/index.js
+++ b/packages/card/index.js
@@ -3,89 +3,105 @@ import Tag from '../tag';
const [sfc, bem] = use('card');
-export default sfc({
- props: {
- tag: String,
- desc: String,
- thumb: String,
- title: String,
- centered: Boolean,
- lazyLoad: Boolean,
- thumbLink: String,
- num: [Number, String],
- price: [Number, String],
- originPrice: [Number, String],
- currency: {
- type: String,
- default: '¥'
- }
- },
+function Card(h, props, slots, ctx) {
+ const { thumb } = props;
- render(h) {
- const { thumb, slots } = this;
+ const showThumb = slots.thumb || thumb;
+ const showTag = slots.tag || props.tag;
+ const showNum = slots.num || isDef(props.num);
+ const showPrice = slots.price || isDef(props.price);
+ const showOriginPrice = slots['origin-price'] || isDef(props.originPrice);
- const showThumb = slots('thumb') || thumb;
- const showTag = slots('tag') || this.tag;
- const showNum = slots('num') || isDef(this.num);
- const showPrice = slots('price') || isDef(this.price);
- const showOriginPrice = slots('origin-price') || isDef(this.originPrice);
-
- const Thumb = showThumb && (
-
- {slots('thumb') ||
- (this.lazyLoad ? (
-
+ const Thumb = showThumb && (
+
+ {slots.thumb ? (
+ slots.thumb()
+ ) : props.lazyLoad ? (
+
+ ) : (
+
+ )}
+ {showTag && (
+
- ))}
- {showTag && (
-