# InputNumber 数字输入框组件

数字输入框组件，支持金额、比率、纯数字三种类型，提供千分位格式化、小数位控制等功能。

## 基础用法

```vue
<template>
  <!-- 金额类型（默认） -->
  <InputNumber v-model="money" type="money" />
  
  <!-- 比率类型 -->
  <InputNumber v-model="rate" type="rate" />
  
  <!-- 纯数字类型 -->
  <InputNumber v-model="num" type="number" />
</template>
```

## 属性说明

| 属性名          | 类型            | 默认值               | 说明                                |
| ------------ | ------------- | ----------------- | --------------------------------- |
| value        | Number/String | undefined         | 绑定值                               |
| type         | String        | 'money'           | 输入框类型，可选值：'money'、'rate'、'number' |
| maxlength    | Number        | 16                | 最大输入长度                            |
| min          | Number        | -9999999999999.99 | 最小值限制                             |
| max          | Number        | 9999999999999.99  | 最大值限制                             |
| step         | Number        | 1                 | 步进值，按上下箭头时的增减幅度                   |
| stepStrictly | Boolean       | false             | 是否严格按步进值递增/递减                     |
| disabled     | Boolean       | undefined         | 是否禁用                              |
| isClearable  | Boolean       | false             | 是否可清空                             |
| placeholder  | String        | '请输入'             | 占位提示文本                            |
| dNum         | Number        | undefined         | 小数位数，优先级低于format                  |
| format       | String        | undefined         | 格式化字符串，如'0.00'表示保留2位小数            |
| suffix       | String        | '%'               | 后缀文本，仅在type='rate'时有效             |
| rangeAuto    | Boolean       | false             | 是否自动处理范围值                         |

## 类型说明

### money（金额类型）

- **默认值**：保留2位小数
- **千分位格式化**：启用（如：1,234.56）
- **适用场景**：金额、价格等需要千分位展示的数值

### rate（比率类型）

- **默认值**：保留4位小数
- **千分位格式化**：启用
- **后缀**：默认显示%符号
- **适用场景**：利率、比率等百分比数值

### number（纯数字类型）

- **默认值**：保留2位小数（可通过dNum或format属性自定义）
- **千分位格式化**：禁用
- **适用场景**：普通数值输入，如数量、计数等不需要千分位格式化的场景
- **特点**：与money类型相比，唯一的区别是不显示千分位逗号分隔符

## 事件

| 事件名    | 说明          | 回调参数 |
| ------ | ----------- | ---- |
| input  | 值改变时触发      | 当前值  |
| change | 值改变且失去焦点时触发 | 当前值  |
| blur   | 失去焦点时触发     | -    |
| clear  | 清空时触发       | -    |

## 方法

| 方法名   | 说明       |
| ----- | -------- |
| focus | 使输入框获得焦点 |

## 使用示例

### 金额输入

```vue
<InputNumber v-model="amount" type="money" :min="0" :max="1000000" />
```

### 比率输入

```vue
<InputNumber v-model="interestRate" type="rate" suffix="%" />
```

### 纯数字输入（无千分位）

```vue
<InputNumber v-model="quantity" type="number" :step="1" :min="0" />
```

### 自定义小数位

```vue
<!-- 使用dNum属性 -->
<InputNumber v-model="value" type="money" :dNum="4" />

<!-- 使用format属性（优先级更高） -->
<InputNumber v-model="value" type="money" format="0.0000" />
```

### 步进控制

```vue
<!-- 启用步进严格模式 -->
<InputNumber v-model="value" type="number" :step="0.5" :stepStrictly="true" />
```

