## Number Input 数字输入框
-------------------

<script>
  export default {
    data() {
      return {
        num1: 1,
        num2: 1,
        num3: 5,
        num4: 1,
        num5: 1,
        num6: 1,
        num7: 1,
        num8: 1,
        num9: 1
      }
    },
    methods: {
      handleChange(value) {
        console.log(value);
      }
    }
  };
</script>
<style>
  
  .demo-box.demo-input-number {
    .kc-input-number + .kc-input-number {
      margin-left: 10px;
    }
  }
</style>



仅允许输入标准的数字值，可定义范围

### 基础用法
要使用它，只需要在`kc-input-number`元素中使用`v-model`绑定变量即可，变量的初始值即为默认值
:::demo 。
```html
  <kc-input-number v-model="num1" @change="handleChange" :min="1" :max="10" label="描述文字"></kc-input-number>

  <script>
    export default {
      data() {
        return {
          num1: 1
        };
      },
      methods: {
        handleChange(value) {
          console.log(value);
        }
      }
    };
  </script>
```
:::

### 禁用状态
`disabled`属性接受一个`Boolean`，设置为`true`即可禁用整个组件，如果你只需要控制数值在某一范围内，可以设置`min`属性和`max`属性，不设置`min`和`max`时，最小值为 0。
:::demo 

```html
  <kc-input-number v-model="num2" :disabled="true"></kc-input-number>

  <script>
    export default {
      data() {
        return {
          num2: 1
        }
      }
    };
  </script>
```
:::

### 步数

允许定义递增递减的步数控制。设置`step`属性可以控制步长，接受一个`Number`。

:::demo 

```html
  <kc-input-number v-model="num3" :step="2"></kc-input-number>

  <script>
    export default {
      data() {
        return {
          num3: 5
        }
      }
    };
  </script>
```
:::

### 精度
设置 `precision` 属性可以控制数值精度，接收一个 `Number`。
:::demo 

```html
  <kc-input-number v-model="num9" :precision="2" :step="0.1" :max="10"></kc-input-number>

  <script>
    export default {
      data() {
        return {
          num9: 1
        }
      }
    };
  </script>
```

:::


>`precision` 的值必须是一个正整数，并且不能小于 `step` 的小数位数。


### 尺寸

额外提供了 `medium`、`small`、`mini` 三种尺寸的数字输入框

:::demo

```html
  <kc-input-number v-model="num4"></kc-input-number>
  <kc-input-number size="medium" v-model="num5"></kc-input-number>
  <kc-input-number size="small" v-model="num6"></kc-input-number>
  <kc-input-number size="mini" v-model="num7"></kc-input-number>

  <script>
    export default {
      data() {
        return {
          num4: 1,
          num5: 1,
          num6: 1,
          num7: 1
        }
      }
    };
  </script>
```
:::

### 按钮位置
设置 `controls-position` 属性可以控制按钮位置。
:::demo 
```html
  <kc-input-number 
    v-model="num8" 
    controls-position="right" 
    @change="handleChange" 
    :min="1" 
    :max="10">
  </kc-input-number>
  <script>
    export default {
      data() {
        return {
          num8: 1
        };
      },
      methods: {
        handleChange(value) {
          console.log(value);
        }
      }
    };
  </script>
```
:::

### Attributes
| 参数      | 说明          | 类型      | 可选值                           | 默认值  |
|----------|-------------- |----------|--------------------------------  |-------- |
| value    | 绑定值         | number | — | — |
| min      | 设置计数器允许的最小值 | number | — | -Infinity |
| max      | 设置计数器允许的最大值 | number | — | Infinity |
| step     | 计数器步长           | number   | — | 1 |
| precision| 数值精度             | number   | — | — |
| size     | 计数器尺寸           | string   | large, small | — |
| disabled | 是否禁用计数器        | boolean | — | false |
| controls | 是否使用控制按钮        | boolean | — | true |
| controls-position | 控制按钮位置 | string | right | - |
| name | 原生属性 | string | — | — |
| label | 输入框关联的label文字 | string | — | — |
### Events
| 事件名称 | 说明 | 回调参数 |
|---------|--------|---------|
| change | 绑定值被改变时触发 | 最后变更的值 |
| blur | 在组件 Input 失去焦点时触发 | (event: Event) |
| focus | 在组件 Input 获得焦点时触发 | (event: Event) |

### Methods
| 方法名 | 说明 | 参数 |
| ---- | ---- | ---- |
| focus | 使 input 获取焦点 | - |

