diff --git a/docs/markdown/changelog.zh-CN.md b/docs/markdown/changelog.zh-CN.md
index dbb992a08..a9c1a36c8 100644
--- a/docs/markdown/changelog.zh-CN.md
+++ b/docs/markdown/changelog.zh-CN.md
@@ -5,6 +5,7 @@
##### Rate
- 新增`guter`属性
+- 支持`String`类型的`size`属性
### [v2.0.0-beta.2](https://github.com/youzan/vant/tree/v2.0.0-beta.2)
diff --git a/packages/rate/en-US.md b/packages/rate/en-US.md
index 135b78ef5..b37d585a6 100644
--- a/packages/rate/en-US.md
+++ b/packages/rate/en-US.md
@@ -95,7 +95,7 @@ export default {
|------|------|------|------|
| v-model | Current rate | `Number` | - |
| count | Count | `Number` | `5` |
-| size | Icon size (px) | `Number` | `20` |
+| size | Icon size| `String | Number` | `20px` |
| gutter | Icon gutter | `String | Number` | `4px` |
| color | Selected color | `String` | `#ffd21e` |
| void-color | Void color | `String` | `#c7c7c7` |
diff --git a/packages/rate/index.less b/packages/rate/index.less
index bd0f389fe..726868208 100644
--- a/packages/rate/index.less
+++ b/packages/rate/index.less
@@ -15,6 +15,7 @@
&__icon {
display: block;
width: 1em;
+ font-size: @rate-icon-size;
&--half {
position: absolute;
diff --git a/packages/rate/index.tsx b/packages/rate/index.tsx
index 3df23f936..1fda2b62a 100644
--- a/packages/rate/index.tsx
+++ b/packages/rate/index.tsx
@@ -50,7 +50,6 @@ function Rate(
) {
const {
icon,
- size,
color,
count,
voidIcon,
@@ -97,6 +96,7 @@ function Rate(
const isFull = status === 'full';
const isVoid = status === 'void';
const score = index + 1;
+ const size = suffixPx(props.size);
let style;
if (gutter && score !== count) {
@@ -115,8 +115,8 @@ function Rate(
class={bem('item')}
>
{props.allowHalf && (
-
+
-
+
-
+
-
-
+
-
+
-
+
-
@@ -65,45 +65,45 @@ exports[`renders demo correctly 1`] = `
-
+
-
+
-
+
-
+
-
-
+
-
+
-
+
-
-
+
-
+
-
+
-
diff --git a/packages/rate/test/__snapshots__/index.spec.js.snap b/packages/rate/test/__snapshots__/index.spec.js.snap
index 5cbbc3291..827c726f0 100644
--- a/packages/rate/test/__snapshots__/index.spec.js.snap
+++ b/packages/rate/test/__snapshots__/index.spec.js.snap
@@ -2,15 +2,30 @@
exports[`gutter prop 1`] = `
-
+
-
+
-
+
-
+
-
+`;
+
+exports[`size prop 1`] = `
+
`;
diff --git a/packages/rate/test/index.spec.js b/packages/rate/test/index.spec.js
index 66402b4ae..5cc8229ce 100644
--- a/packages/rate/test/index.spec.js
+++ b/packages/rate/test/index.spec.js
@@ -98,3 +98,13 @@ test('gutter prop', () => {
expect(wrapper).toMatchSnapshot();
});
+
+test('size prop', () => {
+ const wrapper = mount(Rate, {
+ propsData: {
+ size: '2rem'
+ }
+ });
+
+ expect(wrapper).toMatchSnapshot();
+});
diff --git a/packages/rate/zh-CN.md b/packages/rate/zh-CN.md
index 4a8055f0f..d2a7f28a8 100644
--- a/packages/rate/zh-CN.md
+++ b/packages/rate/zh-CN.md
@@ -94,7 +94,7 @@ export default {
|------|------|------|------|------|
| v-model | 当前分值 | `Number` | - | - |
| count | 图标总数 | `Number` | `5` | - |
-| size | 图标大小 (px) | `Number` | `20` | - |
+| size | 图标大小,默认单位为`px` | `String | Number` | `20px` | - |
| gutter | 图标间距,默认单位为`px` | `String | Number` | `4px` | 2.0.0 |
| color | 选中时的颜色 | `String` | `#ffd21e` | - |
| void-color | 未选中时的颜色 | `String` | `#c7c7c7` | - |
diff --git a/packages/style/var.less b/packages/style/var.less
index 74b03aeaa..ac8dc3893 100644
--- a/packages/style/var.less
+++ b/packages/style/var.less
@@ -394,6 +394,7 @@
@radio-disabled-background-color: @border-color;
// Rate
+@rate-icon-size: 20px;
@rate-icon-gutter: 4px;
// Search