feat(CheckboxGroup): add toggleAll method (#4640)

This commit is contained in:
neverland
2019-09-30 14:47:35 +08:00
committed by GitHub
parent 9a79de0456
commit 1c5463150c
7 changed files with 240 additions and 114 deletions
+62 -25
View File
@@ -31,12 +31,16 @@ export default {
### 禁用状态
通过设置`disabled`属性可以禁用复选框
```html
<van-checkbox v-model="checked" disabled>复选框</van-checkbox>
```
### 自定义颜色
通过`checked-color`属性可以自定义选中状态下的图标颜色
```html
<van-checkbox v-model="checked" checked-color="#07c160">复选框</van-checkbox>
```
@@ -51,7 +55,7 @@ export default {
<img
slot="icon"
slot-scope="props"
:src="props.checked ? icon.active : icon.inactive"
:src="props.checked ? activeIcon : inactiveIcon"
>
</van-checkbox>
```
@@ -60,27 +64,21 @@ export default {
export default {
data() {
checked: true,
icon: {
active: 'https://img.yzcdn.cn/vant/user-active.png',
inactive: 'https://img.yzcdn.cn/vant/user-inactive.png'
}
activeIcon: 'https://img.yzcdn.cn/vant/user-active.png',
inactiveIcon: 'https://img.yzcdn.cn/vant/user-inactive.png'
}
}
```
### 复选框组
与`van-checkbox-group`一起使用,选中值是一个数组,通过`v-model`绑定在`van-checkbox-group`上,数组中的项即为选中的`Checkbox`的`name`属性设置的值
复选框可以与复选框组一起使用,选中值是一个数组,通过`v-model`绑定在`CheckboxGroup`上,数组中的为选中的复选框的`name`
```html
<van-checkbox-group v-model="result">
<van-checkbox
v-for="(item, index) in list"
:key="item"
:name="item"
>
复选框 {{ item }}
</van-checkbox>
<van-checkbox name="a">复选框 a</van-checkbox>
<van-checkbox name="b">复选框 b</van-checkbox>
<van-checkbox name="c">复选框 c</van-checkbox>
</van-checkbox-group>
```
@@ -88,7 +86,6 @@ export default {
export default {
data() {
return {
list: ['a', 'b', 'c'],
result: ['a', 'b']
};
}
@@ -97,21 +94,53 @@ export default {
### 设置最大可选数
通过`max`属性可以限制最大可选数
```html
<van-checkbox-group v-model="result" :max="2">
<van-checkbox
v-for="(item, index) in list"
:key="item"
:name="item"
>
复选框 {{ item }}
</van-checkbox>
<van-checkbox name="a">复选框 a</van-checkbox>
<van-checkbox name="b">复选框 b</van-checkbox>
<van-checkbox name="c">复选框 c</van-checkbox>
</van-checkbox-group>
```
### 全选与反选
通过`CheckboxGroup`实例上的`toggleAll`方法可以实现全选与反选
```html
<van-checkbox-group v-model="result" ref="checkboxGroup">
<van-checkbox name="a">复选框 a</van-checkbox>
<van-checkbox name="b">复选框 b</van-checkbox>
<van-checkbox name="c">复选框 c</van-checkbox>
</van-checkbox-group>
<van-button type="primary" @click="checkAll">全选</van-button>
<van-button type="info" @click="toggleAll">反选</van-button>
```
```js
export default {
data() {
return {
result: []
}
},
methods: {
checkAll() {
this.$refs.checkboxGroup.toggleAll(true);
},
toggleAll() {
this.$refs.checkboxGroup.toggleAll();
}
}
}
```
### 搭配单元格组件使用
此时你需要再引入`Cell`和`CellGroup`组件,并通过 checkbox 的 toggle 方法手动触发切换
此时你需要再引入`Cell`和`CellGroup`组件,并通过`Checkbox`实例上的 toggle 方法触发切换
```html
<van-checkbox-group v-model="result">
@@ -189,10 +218,18 @@ export default {
| default | 自定义文本 | - |
| icon | 自定义图标 | checked: 是否为选中状态 |
### Checkbox 方法
### CheckboxGroup 方法
通过 ref 可以获取到 checkbox 实例并调用实例方法
通过 ref 可以获取到 CheckboxGroup 实例并调用实例方法
| 方法名 | 说明 | 参数 | 返回值 |
|------|------|------|------|
| toggle | 切换选中状态 | - | - |
| toggleAll | 切换所有复选框的选中状态 | checked?: boolean | - |
### Checkbox 方法
通过 ref 可以获取到 Checkbox 实例并调用实例方法
| 方法名 | 说明 | 参数 | 返回值 |
|------|------|------|------|
| toggle | 切换选中状态 | checked?: boolean | - |