Commit c0fa72ca6df0de8a772b45d30084f608c4421528

Authored by 梁灏
1 parent 93a5f34f

update ColorPicker

examples/routers/color-picker.vue
1 1 <template>
2 2 <div style="margin: 100px;">
3   - {{ color.rgba }}
  3 + {{ color }}
4 4 <!--<Input placeholder="请输入..." size="large" style="width: 50px;"></Input>-->
5 5 <!--<color-picker placement="bottom-start" size="large"></color-picker>-->
6 6 <!--<Date-picker type="date" placeholder="选择日期" size="large" style="width: 200px"></Date-picker>-->
7 7 <color-picker ref="xxx" v-model="color" alpha :recommend="true"></color-picker>
8   - <color-picker v-model="color" :alpha="false" :recommend="false"></color-picker>
  8 + <color-picker v-model="color2" :alpha="false" :recommend="false"></color-picker>
9 9 <!--<Date-picker type="date" placeholder="选择日期" style="width: 200px"></Date-picker>-->
10 10 <!--<color-picker placement="bottom-start" size="small"></color-picker>-->
11 11 <!--<Date-picker type="date" placeholder="选择日期" size="small" style="width: 200px"></Date-picker>-->
... ... @@ -17,7 +17,8 @@
17 17 props: {},
18 18 data () {
19 19 return {
20   - color: 'rgba(245,5,78,.8)'
  20 + color: 'rgba(124,24,24,.5)',
  21 + color2: ''
21 22 };
22 23 },
23 24 computed: {},
... ...
src/components/color-picker/color-picker.vue
... ... @@ -4,7 +4,10 @@
4 4 <i class="ivu-icon ivu-icon-arrow-down-b ivu-input-icon ivu-input-icon-normal"></i>
5 5 <div :class="inputClasses">
6 6 <div :class="[prefixCls + '-color']">
7   - <div :style="{backgroundColor: displayedColor}"></div>
  7 + <div :class="[prefixCls + '-color-empty']" v-if="value === '' && !visible">
  8 + <Icon type="ios-close-empty"></Icon>
  9 + </div>
  10 + <div v-else :style="{backgroundColor: displayedColor}"></div>
8 11 </div>
9 12 </div>
10 13 </div>
... ... @@ -29,6 +32,7 @@
29 32 <script>
30 33 import tinycolor from 'tinycolor2';
31 34  
  35 + import Icon from '../icon/icon.vue';
32 36 import Dropdown from '../dropdown/dropdown.vue';
33 37 import DropdownMenu from '../dropdown/dropdown-menu.vue';
34 38 import RecommendColors from './recommend-colors.vue';
... ... @@ -44,6 +48,7 @@
44 48 const inputPrefixCls = 'ivu-input';
45 49  
46 50 function _colorChange (data, oldHue) {
  51 + data = data === '' ? '#ff0000' : data;
47 52 const alpha = data && data.a;
48 53 let color;
49 54  
... ... @@ -93,7 +98,7 @@
93 98  
94 99 export default {
95 100 name: 'ColorPicker',
96   - components: { Dropdown, DropdownMenu, Confirm, RecommendColors, Saturation, Hue, Alpha },
  101 + components: { Icon, Dropdown, DropdownMenu, Confirm, RecommendColors, Saturation, Hue, Alpha },
97 102 props: {
98 103 value: {
99 104 type: String
... ... @@ -218,44 +223,6 @@
218 223 }
219 224 },
220 225 methods: {
221   - formatColor () {
222   - const defaultColor = {
223   - hex: '#ff0000',
224   - hsl: {
225   - h: 0,
226   - s: 1,
227   - l: 0.5,
228   - a: 1
229   - },
230   - hsv: {
231   - h: 0,
232   - s: 1,
233   - v: 1,
234   - a: 1
235   - },
236   - rgba: {
237   - r: 255,
238   - g: 0,
239   - b: 0,
240   - a: 1
241   - },
242   - a: 1
243   - };
244   - if (this.value) {
245   - const color = tinycolor(this.value);
246   - const hex = color.toHex();
247   - const hsl = color.toHsl();
248   - const hsv = color.toHsv();
249   - const rgba = color.toRgb();
250   -
251   - defaultColor.hex = hex;
252   - defaultColor.hsl = hsl;
253   - defaultColor.hsv = hsv;
254   - defaultColor.rgba = rgba;
255   - defaultColor.a = rgba.a;
256   - }
257   - return defaultColor;
258   - },
259 226 childChange (data) {
260 227 this.colorChange(data);
261 228 },
... ...
src/styles/components/color-picker.less
... ... @@ -17,6 +17,14 @@
17 17 box-shadow: inset 0 0 0 1px rgba(0,0,0,.15);
18 18 border-radius: 2px;
19 19 }
  20 + &-empty{
  21 + background: #fff;
  22 + overflow: hidden;
  23 + text-align: center;
  24 + i{
  25 + font-size: 20px;
  26 + }
  27 + }
20 28 }
21 29 &-large &-color{
22 30 width: 20px;
... ...