From 49d380cf99f3ce6e144b6b0626b32ec8bd2f476b Mon Sep 17 00:00:00 2001 From: 梁灏 Date: Tue, 17 Jan 2017 11:26:02 +0800 Subject: [PATCH] init Rate component --- src/components/rate/index.js | 2 ++ src/components/rate/rate.vue | 99 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/index.js | 2 ++ src/styles/components/index.less | 3 ++- src/styles/components/rate.less | 66 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/styles/themes/default/custom.less | 1 + test/app.vue | 1 + test/main.js | 5 +++++ test/routers/rate.vue | 15 +++++++++++++++ 9 files changed, 193 insertions(+), 1 deletion(-) create mode 100644 src/components/rate/index.js create mode 100644 src/components/rate/rate.vue create mode 100644 src/styles/components/rate.less create mode 100644 test/routers/rate.vue 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