weex-flymeui
Version:
A Flyme Style UI library based on Weex for Creator.
123 lines (109 loc) • 4.07 kB
Markdown
# fm-checkbox
> Flyme 风格列表多选
### 规则
- 可单独使用也可成组使用,建议使用 `fm-checkbox-list`
- 成组使用支持单选模式
- 可限制选中的数量
## 使用方法
```html
<template>
<div>
<!-- 单独使用 -->
<fm-checkbox
:model="{ title: '单行信息' }"
@fmCheckboxChecked="check"></fm-checkbox>
<fm-checkbox
:model="{ title: '烧花鸭', imgSrc: 'https://ss0.bdstatic.com/70cFuHSh_Q1YnxGkpoWK1HF6hhy/it/u=995362387,2344079991&fm=27&gp=0.jpg' }"
@fmCheckboxChecked="check"></fm-checkbox>
<fm-checkbox
:model="{ title: '烧雏鸡', summary: '挺好吃的,帮你先选了', imgSrc: 'https://ss0.bdstatic.com/70cFuHSh_Q1YnxGkpoWK1HF6hhy/it/u=995362387,2344079991&fm=27&gp=0.jpg' }"
checked
@fmCheckboxChecked="check"></fm-checkbox>
<fm-checkbox
:model="{ title: '松花小肚儿', summary: '一定要吃这个,不能不选', description: '肯定比上面的好吃', imgSrc: 'https://ss0.bdstatic.com/70cFuHSh_Q1YnxGkpoWK1HF6hhy/it/u=995362387,2344079991&fm=27&gp=0.jpg' }"
checked
disabled
@fmCheckboxChecked="check"></fm-checkbox>
<!-- 组合使用 -->
<fm-checkbox-list
:list="list"
@fmCheckBoxListChecked="onChecked1"></fm-checkbox-list>
<text class="checked-text">选中项 {{(checkedList1.map(item => item.model.title)).toString()}}</text>
</div>
</template>
<script>
import { FmCheckbox, FmCheckboxList } from 'weex-flymeui';
export default {
components: { FmCheckbox, FmCheckboxList },
data: () => ({
list: [{
model: { title: '蒸熊掌' },
value: 1,
checked: true
}, {
model: { title: '蒸鹿尾儿' },
value: 2
}, {
model: { title: '烧花鸭' },
value: 3
}, {
model: { title: '烧雏鸡' },
value: 3
}],
checkedList1: []
}),
methods: {
onChecked1 (e) {
this.checkedList1 = e.checkedList;
},
overLimit (e) {
modal.toast({ message: '超过' + e + '个了' });
}
}
}
</script>
```
更多详细代码例子可以参考 [demo](https://github.com/FlymeApps/weex-flymeui/blob/master/example/component/checkbox/index.vue)
### 可配置参数
#### Checkbox
| Prop | Type | Required | Default | Description |
|-------------|------------|--------|-----|-----|
| `额外参数` | `Object` | `Y` | `{}` | 选项的数据,,依赖于 `fm-item`,请参照 [fm-item 文档](https://flymeapps.github.io/weex-flymeui/#/packages/fm-item/) |
| value | `[String、Number、Object]` | `Y` | `-` | checkbox 的 value |
| checked | `Boolean` | `N` | `false` | checkbox 是否选中 |
| disabled | `Boolean` | `N` | `false` | checkbox 是否不可选 |
| checkedIcon | `String` | `N` | `-` | 选中的 icon |
| disabledIcon | `String` | `N` | `-` | 不可选的 icon |
| border | `Boolean` | `N` | `false` | 显示底部分割线 |
- 事件回调
- `fmCheckBoxItemChecked`: 被点击时触发,将返回 `e.value`(checkbox 的值) 和 `e.checked`(是否选中)
#### CheckboxList
| Prop | Type | Required | Default | Description |
|-------------|------------|--------|-----|-----|
| list | `Array` | `Y` | `[]` | 列表数组 (*1) |
| single | `Boolean` | `N` | `false` | 是否启用单选模式 |
| limit | `Number` | `N` | `0` | 限制选中的数量,0 为不限制 |
| last-border-hidden | `Boolean` | `N` | `false` | 最后一行是否隐藏分割线 |
- 注1:list
```javascript
const list = [{
title: '蒸羊羔',
value: 0,
checked: true
}, {
title: '蒸熊掌',
value: 1
}, {
title: '蒸鹿尾儿',
value: 2
}, {
title: '烧花鸭',
value: 3
}];
```
- 事件回调
- `fmCheckBoxListChecked`: 选中内容发生变化时触发,事件对象中有如下参数
- `checkedList`: 选中的列表
- `selectIndex`: 当前被点击项的 index
- `checked`: 当前被点击项是否被选中
- `overLimit`: 选中的数量超过限制时触发