### Easyinput 增强输入框
> 代码块: `uEasyinput`


easyinput 组件是对原生input组件的增强 ,是专门为配合表单组件[uni-forms](https://ext.dcloud.net.cn/plugin?id=2773)而设计的,easyinput 内置了边框,图标等,同时包含 input 所有功能


> 为了避免错误使用,给大家带来不好的开发体验,请在使用组件前仔细阅读下面的注意事项,可以帮你避免一些错误。
> - 组件需要依赖 `sass` 插件 ,请自行手动安装
> - 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839


### 平台差异说明

暂不支持在nvue页面中使用

### 安装方式

本组件符合[easycom](https://uniapp.dcloud.io/collocation/pages?id=easycom)规范,`HBuilderX 2.5.5`起,只需将本组件导入项目,在页面`template`中即可直接使用,无需在页面中`import`和注册`components`。

如需通过`npm`方式使用`uni-ui`组件,另见文档:[https://ext.dcloud.net.cn/plugin?id=55](https://ext.dcloud.net.cn/plugin?id=55)

### 基本用法

输入内容后,输入框尾部会显示清除按钮,点击可清除内容,如不需要展示图标,`clearable` 属性设置为 `false` 即可

`clearable` 属性设置为 `true` ,输入框聚焦且内容不为空时,才会显示内容

```html
<uni-easyinput v-model="value" placeholder="请输入内容"></uni-easyinput>
```


### 输入框带左右图标

设置 `prefixIcon` 属性来显示输入框的头部图标

设置 `suffixIcon` 属性来显示输入框的尾部图标 

注意图标当前只支持 `uni-icons` 内置的图标,当配置 `suffixIcon` 属性后,会覆盖 `:clearable="true"` 和 `type="password"` 时的原有图标

绑定 `@iconClick` 事件可以触发图标的点击 ,返回 `prefix` 表示点击左侧图标,返回 `suffix` 表示点击右侧图标

```html

<!-- 输入框头部图标 -->
<uni-easyinput prefixIcon="search" v-model="value" placeholder="请输入内容" @iconClick="onClick"></uni-easyinput>
<!-- 展示输入框尾部图标 -->
<uni-easyinput suffixIcon="search"  v-model="value" placeholder="请输入内容" @iconClick="onClick"></uni-easyinput>
```

### 输入框禁用

设置 `disable` 属性可以禁用输入框,此时输入框不可编辑

```html
<uni-easyinput disabled  v-model="value" placeholder="请输入内容"></uni-easyinput>
```

### 密码框

设置 `type="password"` 时,输入框内容将会不可见,由实心点代替,同时输入框尾部会显示眼睛图标,点击可切换内容显示状态

```html
<uni-easyinput type="password" v-model="password" placeholder="请输入密码"></uni-easyinput>
```

### 输入框聚焦

设置 `focus` 属性可以使输入框聚焦

如果页面存在多个设置 `focus` 属性的输入框,只有最后一个输入框的 `focus` 属性会生效

```html
<uni-easyinput focus v-model="password" placeholder="请输入内容"></uni-easyinput>
```


### 多行文本

设置 `type="textarea"` 时可输入多行文本

```html
<uni-easyinput type="textarea" v-model="value" placeholder="请输入内容"></uni-easyinput>
```

### 多行文本自动高度

设置 `type="textarea"` 时且设置 `autoHeight` 属性,可使用多行文本的自动高度,会跟随内容调整输入框的显示高度

```html
<uni-easyinput type="textarea" autoHeight v-model="value" placeholder="请输入内容"></uni-easyinput>
```

### 取消边框

设置 `:inputBorder="false"` 时可取消输入框的边框显示,同时搭配 `uni-forms` 的 `:border="true"` 有较好的效果

```html
<uni-forms border>
	<uni-forms-item label="姓名">
		<uni-easyinput :inputBorder="false" placeholder="请输入姓名"></uni-easyinput>
	</uni-forms-item>
	<uni-forms-item label="年龄">
		<uni-easyinput :inputBorder="false" placeholder="请输入年龄"></uni-easyinput>
	</uni-forms-item>
</uni-forms>
```


## API

### Easyinput Props

|属性名							| 类型						|	可选值 		| 		默认值					| 说明|
|:-:								| :-:						|:-:				| :-:								| :-:	|	
|value 							|String/ Number	| -				 	|	-									|输入内容|
|type	   						|String 				| 见 type Options |text| 				输入框的类型(默认text) |
|clearable	   			|Boolean				| -	|true| 是否显示右侧清空内容的图标控件(输入框有内容,且获得焦点时才显示),点击可清空输入框内容|
|autoHeight	   			|Boolean				| -	|false|	是否自动增高输入区域,type为textarea时有效|
|placeholder	   		|String 				| -	| - |	输入框的提示文字|
|placeholderStyle 	|String 				| -	| - |	placeholder的样式(内联样式,字符串),如"color: #ddd"|
|focus	   					|Boolean				| -	|false|	是否自动获得焦点|
|disabled	   				|Boolean				| -	|false|	是否不可输入|
|maxlength	   			|Number 				| -	|140|	最大输入长度,设置为 -1 的时候不限制最大长度|
|confirmType	   		|String 				| -	|done|	设置键盘右下角按钮的文字,仅在type="text"时生效|
|clearSize	   			|Number 				| -	|15|	清除图标的大小,单位px|
|prefixIcon	   			|String					| -	| - |输入框头部图标	|
|suffixIcon	   			|String					| -	| - |输入框尾部图标|
|trim	   						|Boolean/String	| 见 trim Options	| false |	是否自动去除空格,传入类型为 Boolean 时,自动去除前后空格|
|inputBorder	   		|Boolean				| -	|false|	是否显示input输入框的边框|
|styles				   		|Object					| -	| - |	样式自定义|


#### Type Options

|属性名		| 说明																								|
|:-:			| :-:																								|
|text			|文本输入键盘																					|
|textarea	|多行文本输入键盘																			|
|password	|密码输入键盘																					|
|number		|数字输入键盘,注意iOS上app-vue弹出的数字键盘并非9宫格方式	|
|idcard		|身份证输入键盘,仅支持微信、支付宝、百度、QQ小程序					|
|digit		|带小数点的数字键盘,仅支持微信、支付宝、百度、头条、QQ小程序	|

#### ConfirmType Options

平台差异与 [input](https://uniapp.dcloud.io/component/input) 相同

|属性名	| 说明							|
|:-:		| :-:							|
|send		|右下角按钮为“发送”	|
|search	|右下角按钮为“搜索”	|
|next		|右下角按钮为“下一个”|
|go			|右下角按钮为“前往”	|											
|done		|右下角按钮为“完成”	|
	

#### Styles Options 
	
|属性名				| 默认值 	|说明																			|
|:-:					| :-:		 	| :-:																		|
|color				| #333   	|	输入文字颜色														|
|disableColor	|#eee			|	输入框禁用背景色													|
|borderColor	|#e5e5e5	|	边框颜色												|

#### Trim Options

传入类型为 `Boolean` 时,自动去除前后空格,传入类型为 `String` 时,可以单独控制,下面是可选值

|属性名				 	|说明																			|
|:-:		| :-:																		|
|both		|	去除两端空格														|
|left		|	去除左侧空格													|
|right	|	去除右侧空格												|
|all	 |	去除所有空格												|
|none	 |	不去除空格												|


### Easyinput Events

|事件称名		| 说明										|返回值					|
|:-:				| :-:											|:-:						|
|@input			|输入框内容发生变化时触发	| -							|
|@focus			|输入框获得焦点时触发			| -							|
|@blur			|输入框失去焦点时触发			| -							|
|@confirm		|点击完成按钮时触发				| -							|
|@iconClick	|点击图标时触发						| prefix/suffix	|