Commit 77950c307b4b03c6039f11db84f37b9a46e4b965

Authored by 梁灏
1 parent 1f61a559

update ColorPicker

examples/routers/color-picker.vue
@@ -4,7 +4,7 @@ @@ -4,7 +4,7 @@
4 <!--<Input placeholder="请输入..." size="large" style="width: 50px;"></Input>--> 4 <!--<Input placeholder="请输入..." size="large" style="width: 50px;"></Input>-->
5 <!--<color-picker placement="bottom-start" size="large"></color-picker>--> 5 <!--<color-picker placement="bottom-start" size="large"></color-picker>-->
6 <!--<Date-picker type="date" placeholder="选择日期" size="large" style="width: 200px"></Date-picker>--> 6 <!--<Date-picker type="date" placeholder="选择日期" size="large" style="width: 200px"></Date-picker>-->
7 - <color-picker ref="xxx" v-model="color" :recommend="true"></color-picker> 7 + <color-picker ref="xxx" v-model="color" format="rgb" alpha :recommend="true"></color-picker>
8 <color-picker v-model="color2" :alpha="false" :recommend="false"></color-picker> 8 <color-picker v-model="color2" :alpha="false" :recommend="false"></color-picker>
9 <!--<Date-picker type="date" placeholder="选择日期" style="width: 200px"></Date-picker>--> 9 <!--<Date-picker type="date" placeholder="选择日期" style="width: 200px"></Date-picker>-->
10 <!--<color-picker placement="bottom-start" size="small"></color-picker>--> 10 <!--<color-picker placement="bottom-start" size="small"></color-picker>-->
@@ -17,7 +17,7 @@ @@ -17,7 +17,7 @@
17 props: {}, 17 props: {},
18 data () { 18 data () {
19 return { 19 return {
20 - color: '', 20 + color: 'rgba(255,255,255,.85)',
21 color2: '' 21 color2: ''
22 }; 22 };
23 }, 23 },
src/components/color-picker/color-picker.vue
1 <template> 1 <template>
2 - <Dropdown ref="picker" trigger="click" :transfer="transfer" :placement="placement" @on-visible-change="handleToggleVisible"> 2 + <Dropdown :class="[prefixCls]" ref="picker" trigger="click" :transfer="transfer" :placement="placement" @on-visible-change="handleToggleVisible">
3 <div :class="wrapClasses"> 3 <div :class="wrapClasses">
4 <i class="ivu-icon ivu-icon-arrow-down-b ivu-input-icon ivu-input-icon-normal"></i> 4 <i class="ivu-icon ivu-icon-arrow-down-b ivu-input-icon ivu-input-icon-normal"></i>
5 <div :class="inputClasses"> 5 <div :class="inputClasses">
@@ -13,25 +13,27 @@ @@ -13,25 +13,27 @@
13 </div> 13 </div>
14 <Dropdown-menu slot="list"> 14 <Dropdown-menu slot="list">
15 <div :class="[prefixCls + '-picker']"> 15 <div :class="[prefixCls + '-picker']">
16 - <div :class="[prefixCls + '-picker-panel']">  
17 - <Saturation v-model="saturationColors" @change="childChange"></Saturation>  
18 - </div>  
19 - <div :class="[prefixCls + '-picker-hue-slider']">  
20 - <Hue v-model="saturationColors" @change="childChange"></Hue>  
21 - </div>  
22 - <div v-if="alpha" :class="[prefixCls + '-picker-alpha-slider']">  
23 - <Alpha v-model="saturationColors" @change="childChange"></Alpha> 16 + <div :class="[prefixCls + '-picker-wrapper']">
  17 + <div :class="[prefixCls + '-picker-panel']">
  18 + <Saturation v-model="saturationColors" @change="childChange"></Saturation>
  19 + </div>
  20 + <div :class="[prefixCls + '-picker-hue-slider']">
  21 + <Hue v-model="saturationColors" @change="childChange"></Hue>
  22 + </div>
  23 + <div v-if="alpha" :class="[prefixCls + '-picker-alpha-slider']">
  24 + <Alpha v-model="saturationColors" @change="childChange"></Alpha>
  25 + </div>
  26 + <recommend-colors
  27 + v-if="colors.length"
  28 + :list="colors"
  29 + :class="[prefixCls + '-picker-colors']"
  30 + @picker-color="handleSelectColor"></recommend-colors>
  31 + <recommend-colors
  32 + v-if="!colors.length && recommend"
  33 + :list="recommendedColor"
  34 + :class="[prefixCls + '-picker-colors']"
  35 + @picker-color="handleSelectColor"></recommend-colors>
24 </div> 36 </div>
25 - <recommend-colors  
26 - v-if="colors.length"  
27 - :list="colors"  
28 - :class="[prefixCls + '-picker-colors']"  
29 - @picker-color="handleSelectColor"></recommend-colors>  
30 - <recommend-colors  
31 - v-if="!colors.length && recommend"  
32 - :list="recommendedColor"  
33 - :class="[prefixCls + '-picker-colors']"  
34 - @picker-color="handleSelectColor"></recommend-colors>  
35 <Confirm @on-pick-success="handleSuccess" @on-pick-clear="handleClear"></Confirm> 37 <Confirm @on-pick-success="handleSuccess" @on-pick-clear="handleClear"></Confirm>
36 </div> 38 </div>
37 </Dropdown-menu> 39 </Dropdown-menu>
@@ -265,15 +267,22 @@ @@ -265,15 +267,22 @@
265 }, 267 },
266 getFormatColor () { 268 getFormatColor () {
267 const value = this.saturationColors; 269 const value = this.saturationColors;
  270 + const format = this.format;
268 let color; 271 let color;
269 - if (this.format) {  
270 - if (this.format === 'hsl') { 272 +
  273 + const rgba = `rgba(${value.rgba.r}, ${value.rgba.g}, ${value.rgba.b}, ${value.rgba.a})`;
  274 + if (format) {
  275 + if (format === 'hsl') {
271 color = tinycolor(value.hsl).toHslString(); 276 color = tinycolor(value.hsl).toHslString();
272 - } else if (this.format === 'hsv') { 277 + } else if (format === 'hsv') {
273 color = tinycolor(value.hsv).toHsvString(); 278 color = tinycolor(value.hsv).toHsvString();
  279 + } else if (format === 'hex') {
  280 + color = value.hex;
  281 + } else if (format === 'rgb') {
  282 + color = rgba;
274 } 283 }
275 } else if (this.alpha) { 284 } else if (this.alpha) {
276 - color = `rgba(${value.rgba.r}, ${value.rgba.g}, ${value.rgba.b}, ${value.rgba.a})`; 285 + color = rgba;
277 } else { 286 } else {
278 color = value.hex; 287 color = value.hex;
279 } 288 }
src/styles/components/color-picker.less
1 @color-picker-prefix-cls: ~"@{css-prefix}color-picker"; 1 @color-picker-prefix-cls: ~"@{css-prefix}color-picker";
2 2
3 .@{color-picker-prefix-cls} { 3 .@{color-picker-prefix-cls} {
  4 + & .@{select-dropdown-prefix-cls} {
  5 + padding: 0;
  6 + }
4 &-rel{ 7 &-rel{
5 line-height: 0; 8 line-height: 0;
6 } 9 }
@@ -38,7 +41,9 @@ @@ -38,7 +41,9 @@
38 } 41 }
39 42
40 &-picker{ 43 &-picker{
41 - padding: 4px 8px 0; 44 + &-wrapper{
  45 + padding: 8px 8px 0;
  46 + }
42 &-panel{ 47 &-panel{
43 width: 200px; 48 width: 200px;
44 margin: 0 auto; 49 margin: 0 auto;