diff --git a/src/components/rate/index.js b/src/components/rate/index.js
new file mode 100644
index 0000000..24e5406
--- /dev/null
+++ b/src/components/rate/index.js
@@ -0,0 +1,2 @@
+import Rate from './rate.vue';
+export default Rate;
\ No newline at end of file
diff --git a/src/components/rate/rate.vue b/src/components/rate/rate.vue
new file mode 100644
index 0000000..e2c64c9
--- /dev/null
+++ b/src/components/rate/rate.vue
@@ -0,0 +1,99 @@
+
+
+
+
\ No newline at end of file
diff --git a/src/index.js b/src/index.js
index 6756a5b..944a164 100644
--- a/src/index.js
+++ b/src/index.js
@@ -27,6 +27,7 @@ import Page from './components/page';
import Poptip from './components/poptip';
import Progress from './components/progress';
import Radio from './components/radio';
+import Rate from './components/rate';
import Slider from './components/slider';
import Spin from './components/spin';
import Steps from './components/steps';
@@ -83,6 +84,7 @@ const iview = {
Progress,
Radio,
RadioGroup: Radio.Group,
+ Rate,
Row,
iSelect: Select,
Slider,
diff --git a/src/styles/components/index.less b/src/styles/components/index.less
index 07baccd..10f8174 100644
--- a/src/styles/components/index.less
+++ b/src/styles/components/index.less
@@ -34,4 +34,5 @@
@import "menu";
@import "date-picker";
@import "time-picker";
-@import "form";
\ No newline at end of file
+@import "form";
+@import "rate";
\ No newline at end of file
diff --git a/src/styles/components/rate.less b/src/styles/components/rate.less
new file mode 100644
index 0000000..82002ff
--- /dev/null
+++ b/src/styles/components/rate.less
@@ -0,0 +1,66 @@
+@rate-prefix-cls: ~"@{css-prefix}rate";
+
+.@{rate-prefix-cls} {
+ display: inline-block;
+ margin: 0;
+ padding: 0;
+ font-size: 20px;
+ vertical-align: middle;
+ font-weight: normal;
+ font-style: normal;
+ font-family: 'Ionicons';
+
+ &-disabled &-star {
+ &:before,
+ &-content:before {
+ cursor: default;
+ }
+ &:hover {
+ transform: scale(1);
+ }
+ }
+
+ &-star {
+ display: inline-block;
+ margin: 0;
+ padding: 0;
+ margin-right: 8px;
+ position: relative;
+ transition: all 0.3s ease;
+
+ &:hover {
+ transform: scale(1.1);
+ }
+
+ &:before,
+ &-content:before {
+ color: #e9e9e9;
+ cursor: pointer;
+ content: "\F4B3";
+ transition: all @transition-time @ease-in-out;
+ display: block;
+ }
+
+ &-content {
+ position: absolute;
+ left: 0;
+ top: 0;
+ width: 50%;
+ height: 100%;
+ overflow: hidden;
+ &:before {
+ color: transparent;
+ }
+ }
+
+ &-half &-content:before,
+ &-full:before {
+ color: @rate-star-color;
+ }
+
+ &-half:hover &-content:before,
+ &-full:hover:before {
+ color: tint(@rate-star-color, 20%);
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/styles/themes/default/custom.less b/src/styles/themes/default/custom.less
index ba7236e..fb3367f 100644
--- a/src/styles/themes/default/custom.less
+++ b/src/styles/themes/default/custom.less
@@ -14,6 +14,7 @@
@selected-color : fade(@primary-color, 90%);
@tooltip-color : #fff;
@subsidiary-color : #9ea7b4;
+@rate-star-color : #f5a623;
// Base
@body-background : #fff;
diff --git a/test/app.vue b/test/app.vue
index 3dfec76..0a1e3cf 100644
--- a/test/app.vue
+++ b/test/app.vue
@@ -47,6 +47,7 @@ li + li {
Menu
Date
Form
+ Rate
diff --git a/test/main.js b/test/main.js
index 363135f..6805f1c 100644
--- a/test/main.js
+++ b/test/main.js
@@ -134,6 +134,11 @@ router.map({
require(['./routers/form.vue'], resolve);
}
},
+ '/rate': {
+ component: function (resolve) {
+ require(['./routers/rate.vue'], resolve);
+ }
+ },
});
router.beforeEach(function () {
diff --git a/test/routers/rate.vue b/test/routers/rate.vue
new file mode 100644
index 0000000..5a7d769
--- /dev/null
+++ b/test/routers/rate.vue
@@ -0,0 +1,15 @@
+
+
+
+
+
+
\ No newline at end of file
--
libgit2 0.21.4