weex-flymeui
Version:
A Flyme Style UI library based on Weex for Creator.
118 lines (102 loc) • 4.93 kB
Markdown
# fm-searchbar
> Flyme 顶部导航栏搜索组件
!> fm-searchbar 中的搜索组件与 [Weex 内置 input 组件](https://weex.incubator.apache.org/cn/references/components/input.html#yue-shu) 具有相同的特性约束。
<img src="http://image.res.meizu.com/image/flyme-icon/273747b369d64efb851cae68dea58b55z" width=400 style="box-shadow: 0 5px 10px 0 #d9dce3; border-radius: 4px;" />
## 使用方法
```vue
<template>
<div class="container">
<text class="text">顶部导航栏搜索组件</text>
<fm-searchbar
background-color="#FFFFFF"
search-text="搜索"
:value="searchText"
@fmSearchbarSubmit="fmSearchbarSubmit" />
</div>
</template>
<script>
import { FmSearchbar } from 'weex-flymeui';
const modal = weex.requireModule('modal');
export default {
components: { FmSearchbar },
data: ()=> ({
searchText: '请输入搜索内容'
}),
methods: {
fmSearchbarSubmit(e) {
modal.toast({ message: '输入的内容是' + e.value })
}
}
};
</script>
```
更多详细代码例子可以参考 [demo](https://github.com/FlymeApps/weex-flymeui/blob/master/example/component/searchbar/index.vue)
## 可配置参数
| Prop | Type | Required | Default | Description |
|-------------|------------|--------|-----|-----|
| input-value | `String` `Number` |`N`| `''` | 搜索框的输入内容 |
| placeholder | `String` |`N`| `-` | 输入提示文案 |
| placeholder-color | `String` |`N`| `rgba(0, 0, 0, 0.4)` | 输入提示文案的颜色 |
| left-color | `String` |`N`| `rgba(0, 0, 0, 0.6)` | 返回按钮颜色 |
| input-background | `String` |`N`| `rgba(0, 0, 0, 0.05)` | 输入框的背景颜色 |
| icon-color | `String` |`N`| `rgba(0, 0, 0, 0.4)` | 搜索 icon 的颜色 |
| search-text | `String` |`N`| `搜索` | 搜索按钮文案 |
| search-color | `String` |`N`| `rgba(0, 0, 0, 0.4)` | 搜索按钮颜色 |
| search-highlight-color | `String` |`N`| `#198DED` | 搜索按钮高亮颜色 |
| search-text-style | `Object` |`N`| `-` | 搜索按钮样式 |
| background-color | `String` |`N`| `#FFFFFF` | 背景颜色 |
| statusbar | `Boolean` |`N`| `false` | 是否预留状态栏位置 |
| use-default-return | `Boolean` |`N`| `true` | 是否使用默认的返回 |
| hasPrev | `Boolean` | `N` |`true`| 是否存在上一页,此项参数决定左边按钮是否显示 |
| border-style | `Object` | `N` | `-` | 底部边框的样式,允许值:`borderBottomStyle`, `borderBottomWidth`, `borderBottomColor` |
| input-color | `String` | `N` | `#616161` | 输入字体颜色 |
| autofocus | `Boolean` | `N` | `false` | 输入框自动获得焦点 |
| disabled | `Boolean` | `N` | `false` | 禁用输入框 |
| input-type | `String` | `N` | `text` | 输入框类型, 更多类型请参照 [input 内置组件](https://weex.incubator.apache.org/cn/references/components/input.html#te-xing) |
| return-key-type | `String` | `N` | `search` | 输入键盘回车键类型, 更多类型请参照 [input 内置组件](https://weex.incubator.apache.org/cn/references/components/input.html#te-xing) |
| show | `Boolean` | `N` | `true` | 是否显示 |
## Slot
如果配置项都不满足你的使用要求,`fm-searchbar` 提供了三个不同的 slot 来提供给用户充分自定义。
1. `<slot name"left"></slot>` : 左边按钮插槽
2. `<slot name"input-right"></slot>` : 输入框右侧插槽
3. `<slot name"right"></slot>` : 右边搜索按钮插槽
```vue
<category title="插槽"></category>
<fm-searchbar
@fmSearchbarSubmit="submit">
<fm-icon slot="input-right" iconStyle='66' name="yuyin" color='rgba(0, 0, 0, 0.6)' />
</fm-searchbar>
<fm-searchbar
@fmSearchbarSubmit="submit">
<fm-icon slot="left" iconStyle='66' name="yuyin" color='rgba(0, 0, 0, 0.6)' />
</fm-searchbar>
<fm-searchbar
@fmSearchbarSubmit="submit">
<fm-icon slot="right" iconStyle='66' name="yuyin" color='rgba(0, 0, 0, 0.6)' />
</fm-searchbar>
```
## 事件回调
```
// 键盘回车键被按下或点击搜索按钮时触发
@fmSearchbarSubmit="fmSearchbarSubmit"
// 左边按钮被点击时触发
@fmSearchbarLeftBtnClicked="fmSearchbarLeftBtnClick"
// input 内置组件事件
@input="onInput"
// focus 内置组件事件
@focus="onFocus"
// blur 内置组件事件
@blur="onBlur"
```
## 可供外部使用的方法
- `setValue(val)` 设置输入框的内容
- `focus()`
`focus()` 方法用于将内置 `input` 组件聚焦。
- `blur()`
`blur()` 方法用于从内置 `input` 组件中移除焦点并关闭软键盘(如果它具有焦点)。
- `setSelectionRange(selectionStart,selectionEnd)` 设置文本选区
- `selectionStart {number}`: 设置文本选区的起始点
- `selectionEnd {number}`: 设置文本选区的起终点
- `getEditSelectionRange(callback[selectionStart,selectionEnd])` 设置文本选区
- `selectionStart {number}`: 获取文本选区的起始点
- `selectionEnd {number}`: 获取文本选区的起终点