From b6bda1dcb5654a238e5222276603505447655074 Mon Sep 17 00:00:00 2001
From: 梁灏 <admin@aresn.com>
Date: Wed, 16 Aug 2017 13:52:50 +0800
Subject: [PATCH] update ColorPicker

---
 examples/routers/color-picker.vue            | 10 +++++++++-
 src/components/color-picker/color-picker.vue | 87 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-----
 src/components/input/input.vue               |  2 +-
 src/styles/components/color-picker.less      |  9 ++++++++-
 4 files changed, 100 insertions(+), 8 deletions(-)

diff --git a/examples/routers/color-picker.vue b/examples/routers/color-picker.vue
index 5bc4676..f0091b0 100644
--- a/examples/routers/color-picker.vue
+++ b/examples/routers/color-picker.vue
@@ -1,5 +1,13 @@
 <template>
-
+    <div style="margin: 100px;">
+        <!--<Input placeholder="请输入..." size="large" style="width: 50px;"></Input>-->
+        <color-picker placement="bottom-start" size="large"></color-picker>
+        <!--<Date-picker type="date" placeholder="选择日期" size="large" style="width: 200px"></Date-picker>-->
+        <color-picker placement="bottom-start" size="default"></color-picker>
+        <!--<Date-picker type="date" placeholder="选择日期" style="width: 200px"></Date-picker>-->
+        <color-picker placement="bottom-start" size="small"></color-picker>
+        <!--<Date-picker type="date" placeholder="选择日期" size="small" style="width: 200px"></Date-picker>-->
+    </div>
 </template>
 <script>
     export default {
diff --git a/src/components/color-picker/color-picker.vue b/src/components/color-picker/color-picker.vue
index 5bc4676..7a62808 100644
--- a/src/components/color-picker/color-picker.vue
+++ b/src/components/color-picker/color-picker.vue
@@ -1,13 +1,90 @@
 <template>
-
+    <Dropdown trigger="click" :transfer="transfer" :placement="placement">
+        <div :class="wrapClasses">
+            <i class="ivu-icon ivu-icon-arrow-down-b ivu-input-icon ivu-input-icon-normal"></i>
+            <div :class="inputClasses">
+                <div :class="[prefixCls + '-color']" style="background-color: rgb(32, 160, 255);"></div>
+            </div>
+        </div>
+        <Dropdown-menu slot="list">
+            <p>常用于各种自定义下拉内容的场景。</p>
+            <div style="text-align: right;margin:10px;">
+                <Button type="primary">关闭</Button>
+            </div>
+        </Dropdown-menu>
+    </Dropdown>
 </template>
 <script>
+    import Dropdown from '../dropdown/dropdown.vue';
+    import DropdownMenu from '../dropdown/dropdown-menu.vue';
+    import { oneOf } from '../../utils/assist';
+
+    const prefixCls = 'ivu-color-picker';
+    const inputPrefixCls = 'ivu-input';
+
     export default {
-        props: {},
+        name: 'ColorPicker',
+        components: { Dropdown, DropdownMenu },
+        props: {
+            value: {
+                type: String
+            },
+            alpha: {
+                type: Boolean,
+                default: false
+            },
+            format: {
+                validator (value) {
+                    return oneOf(value, ['hsl', 'hsv', 'hex', 'rgb']);
+                }
+            },
+            disabled: {
+                type: Boolean,
+                default: false
+            },
+            size: {
+                validator (value) {
+                    return oneOf(value, ['small', 'large', 'default']);
+                }
+            },
+            placement: {
+                validator (value) {
+                    return oneOf(value, ['top', 'top-start', 'top-end', 'bottom', 'bottom-start', 'bottom-end', 'left', 'left-start', 'left-end', 'right', 'right-start', 'right-end']);
+                },
+                default: 'bottom'
+            },
+            transfer: {
+                type: Boolean,
+                default: false
+            }
+        },
         data () {
-            return {};
+            return {
+                prefixCls: prefixCls,
+                currentValue: this.value
+            };
+        },
+        computed: {
+            wrapClasses () {
+                return [
+                    `${prefixCls}-rel`,
+                    `${inputPrefixCls}-wrapper`,
+                    `${inputPrefixCls}-wrapper-${this.size}`
+                ];
+            },
+            inputClasses () {
+                return [
+                    `${prefixCls}-input`,
+                    `${inputPrefixCls}`,
+                    `${inputPrefixCls}-${this.size}`,
+                    {
+                        [`${inputPrefixCls}-disabled`]: this.disabled
+                    }
+                ];
+            }
         },
-        computed: {},
-        methods: {}
+        methods: {
+
+        }
     };
 </script>
\ No newline at end of file
diff --git a/src/components/input/input.vue b/src/components/input/input.vue
index c05f739..f13d072 100644
--- a/src/components/input/input.vue
+++ b/src/components/input/input.vue
@@ -74,7 +74,7 @@
             },
             size: {
                 validator (value) {
-                    return oneOf(value, ['small', 'large']);
+                    return oneOf(value, ['small', 'large', 'default']);
                 }
             },
             placeholder: {
diff --git a/src/styles/components/color-picker.less b/src/styles/components/color-picker.less
index 72cfa9a..8c0991f 100644
--- a/src/styles/components/color-picker.less
+++ b/src/styles/components/color-picker.less
@@ -1,5 +1,12 @@
 @color-picker-prefix-cls: ~"@{css-prefix}color-picker";
 
 .@{color-picker-prefix-cls} {
-
+    &-rel{
+        line-height: 0;
+    }
+    &-color{
+        width: 20px;
+        height: 100%;
+        border: 1px solid @text-color;
+    }
 }
\ No newline at end of file
--
libgit2 0.21.4