|
|
@@ -1,81 +1,114 @@
|
|
|
# Checkbox 复选按钮
|
|
|
|
|
|
+### 介绍
|
|
|
+
|
|
|
+多选按钮用于选择。
|
|
|
+
|
|
|
+### 安装
|
|
|
+
|
|
|
+``` javascript
|
|
|
+import { createApp } from 'vue';
|
|
|
+import { Checkbox } from '@nutui/nutui';
|
|
|
+
|
|
|
+const app = createApp();
|
|
|
+app.use(Checkbox);
|
|
|
+```
|
|
|
+
|
|
|
## 基本用法
|
|
|
|
|
|
```html
|
|
|
-<nut-checkbox v-model="checkbox1">
|
|
|
- 选项
|
|
|
-</nut-checkbox>
|
|
|
+<nut-checkbox v-model="checkbox">选项</nut-checkbox>
|
|
|
+```
|
|
|
+```javascript
|
|
|
+setup() {
|
|
|
+ return {
|
|
|
+ checkbox: false,
|
|
|
+ };
|
|
|
+}
|
|
|
```
|
|
|
|
|
|
+## CheckboxGroup基本用法
|
|
|
+```html
|
|
|
+<nut-checkboxgroup v-model="checkboxGroup">
|
|
|
+ <nut-checkbox label="选项一"></nut-checkbox>
|
|
|
+ <nut-checkbox label="选项二"></nut-checkbox>
|
|
|
+</nut-checkboxgroup>
|
|
|
+```
|
|
|
```javascript
|
|
|
-data() {
|
|
|
- return {
|
|
|
- checkbox1: false,
|
|
|
- };
|
|
|
+setup() {
|
|
|
+ return {
|
|
|
+ checkboxGroup: ['选项一'],
|
|
|
+ };
|
|
|
}
|
|
|
```
|
|
|
## 禁用状态
|
|
|
|
|
|
-非选中时的禁用状态
|
|
|
-
|
|
|
```html
|
|
|
-<nut-checkbox v-model="checkbox1" disabled>
|
|
|
- 未选时禁用状态
|
|
|
-</nut-checkbox>
|
|
|
+<nut-checkbox v-model="checkbox1" disabled>未选时禁用状态</nut-checkbox>
|
|
|
+<nut-checkbox v-model="checkbox2" disabled>已选时禁用状态</nut-checkbox>
|
|
|
```
|
|
|
|
|
|
```javascript
|
|
|
-data() {
|
|
|
- return {
|
|
|
- checkbox1: false,
|
|
|
- };
|
|
|
+setup() {
|
|
|
+ return {
|
|
|
+ checkbox1: false,
|
|
|
+ checkbox2: true,
|
|
|
+ };
|
|
|
}
|
|
|
```
|
|
|
|
|
|
-选中时的禁用状态
|
|
|
+## CheckboxGroup整体禁用
|
|
|
|
|
|
```html
|
|
|
-<nut-checkbox v-model="checkbox1" disabled>
|
|
|
- 已选时禁用状态
|
|
|
-</nut-checkbox>
|
|
|
+<nut-checkboxgroup v-model="checkboxGroup" disabled>
|
|
|
+ <nut-checkbox label="选项一"></nut-checkbox>
|
|
|
+ <nut-checkbox label="选项二"></nut-checkbox>
|
|
|
+</nut-checkboxgroup>
|
|
|
```
|
|
|
|
|
|
```javascript
|
|
|
-data() {
|
|
|
- return {
|
|
|
- checkbox1: true,
|
|
|
- };
|
|
|
-},
|
|
|
+setup() {
|
|
|
+ return {
|
|
|
+ checkboxGroup: ['选项一'],
|
|
|
+ };
|
|
|
+}
|
|
|
```
|
|
|
|
|
|
## 自定义尺寸
|
|
|
|
|
|
内置 **small**,**base**,**large** 三种规格供使用。
|
|
|
-
|
|
|
```html
|
|
|
-<nut-checkbox v-model="checkbox1" size="small">
|
|
|
- 小号
|
|
|
-</nut-checkbox>
|
|
|
+<nut-checkbox v-model="checkbox1" size="small">小号1</nut-checkbox>
|
|
|
+<nut-checkbox v-model="checkbox2" size="base">默认</nut-checkbox>
|
|
|
+<nut-checkbox v-model="checkbox3" size="large">大号</nut-checkbox>
|
|
|
+```
|
|
|
|
|
|
-<nut-checkbox v-model="checkbox2" size="base" >
|
|
|
- 默认
|
|
|
-</nut-checkbox>
|
|
|
+```javascript
|
|
|
+setup() {
|
|
|
+ return {
|
|
|
+ checkbox1: true,
|
|
|
+ checkbox2: true,
|
|
|
+ checkbox3: true,
|
|
|
+ };
|
|
|
+}
|
|
|
|
|
|
-<nut-checkbox v-model="checkbox3" size="large">
|
|
|
- 大号
|
|
|
-</nut-checkbox>
|
|
|
+```
|
|
|
+
|
|
|
+## CheckboxGroup整体尺寸
|
|
|
+
|
|
|
+```html
|
|
|
+<nut-checkboxgroup v-model="checkboxGroup" size="small">
|
|
|
+ <nut-checkbox label="选项一"></nut-checkbox>
|
|
|
+ <nut-checkbox label="选项二"></nut-checkbox>
|
|
|
+</nut-checkboxgroup>
|
|
|
```
|
|
|
|
|
|
```javascript
|
|
|
-data() {
|
|
|
- return {
|
|
|
- checkbox1: true,
|
|
|
- checkbox2: true,
|
|
|
- checkbox3: true,
|
|
|
- };
|
|
|
+setup() {
|
|
|
+ return {
|
|
|
+ checkboxGroup: [],
|
|
|
+ };
|
|
|
}
|
|
|
-
|
|
|
```
|
|
|
|
|
|
## 禁用动效
|
|
|
@@ -83,16 +116,31 @@ data() {
|
|
|
animation属性值为false时,禁用自带动效
|
|
|
|
|
|
```html
|
|
|
-<nut-checkbox v-model="checkbox1" :animation="false">
|
|
|
- 没有动效
|
|
|
-</nut-checkbox>
|
|
|
+<nut-checkbox v-model="checkbox" :animation="false">没有动效</nut-checkbox>
|
|
|
```
|
|
|
|
|
|
```javascript
|
|
|
-data() {
|
|
|
- return {
|
|
|
- checkbox1: false,
|
|
|
- };
|
|
|
+setup() {
|
|
|
+ return {
|
|
|
+ checkbox: false,
|
|
|
+ };
|
|
|
+}
|
|
|
+```
|
|
|
+
|
|
|
+## CheckboxGroup整体禁用动效
|
|
|
+
|
|
|
+```html
|
|
|
+<nut-checkboxgroup v-model="checkboxGroup" :animation="false">
|
|
|
+ <nut-checkbox label="没有动效1"></nut-checkbox>
|
|
|
+ <nut-checkbox label="没有动效2"></nut-checkbox>
|
|
|
+</nut-checkboxgroup>
|
|
|
+```
|
|
|
+
|
|
|
+```javascript
|
|
|
+setup() {
|
|
|
+ return {
|
|
|
+ checkboxGroup: ['没有动效1'],
|
|
|
+ };
|
|
|
}
|
|
|
```
|
|
|
|
|
|
@@ -101,44 +149,115 @@ data() {
|
|
|
值发生变化时,将触发change事件
|
|
|
|
|
|
```html
|
|
|
-<nut-checkbox v-model="checkbox1" @change="checkboxChange">
|
|
|
+<nut-checkbox v-model="checkbox" @change="checkboxChange">
|
|
|
change事件
|
|
|
</nut-checkbox>
|
|
|
```
|
|
|
|
|
|
```javascript
|
|
|
-methods: {
|
|
|
- checkboxChange(checked) {
|
|
|
- alert('change事件触发' + checked);
|
|
|
+setup() {
|
|
|
+ const checkbox = ref(false);
|
|
|
+ const checkboxChange= (checked) => {
|
|
|
+ console.log('change事件触发' + checked);
|
|
|
}
|
|
|
+ return {
|
|
|
+ checkbox,
|
|
|
+ checkboxChange
|
|
|
+ };
|
|
|
}
|
|
|
```
|
|
|
|
|
|
-设置label属性,获取选项状态和选项label值的方法:
|
|
|
+## CheckboxGroup整体事件
|
|
|
|
|
|
```html
|
|
|
-<nut-checkbox v-model="checkbox1" :label="'选项值'" @change="getChange">
|
|
|
- 备选项
|
|
|
-</nut-checkbox>
|
|
|
+<nut-checkboxgroup v-model="checkboxGroup" @change="getChange">
|
|
|
+ <nut-checkbox label="选项一"></nut-checkbox>
|
|
|
+ <nut-checkbox label="选项二"></nut-checkbox>
|
|
|
+</nut-checkboxgroup>
|
|
|
```
|
|
|
|
|
|
```javascript
|
|
|
-methods: {
|
|
|
- getChange(checked,val){
|
|
|
- console.log('选中状态:' + checked +',选中选项:' + val)
|
|
|
- }
|
|
|
-
|
|
|
+setup() {
|
|
|
+ const checkboxGroup = reactive(['选项一']);
|
|
|
+ const getChange= (val) => {
|
|
|
+ console.log('选中状态选项:' + val);
|
|
|
+ }
|
|
|
+ return {
|
|
|
+ checkboxGroup,
|
|
|
+ getChange
|
|
|
+ };
|
|
|
+}
|
|
|
+```
|
|
|
+## 自定义class
|
|
|
+```html
|
|
|
+<nut-checkbox class="my-checkbox" v-model="checkbox">自定义Class:"my-checkbox"</nut-checkbox>
|
|
|
+```
|
|
|
+```javascript
|
|
|
+setup() {
|
|
|
+ const checkbox = ref(false);
|
|
|
+ return {
|
|
|
+ checkbox,
|
|
|
+ };
|
|
|
}
|
|
|
```
|
|
|
|
|
|
-**注意**:当设置了label属性时,第二个参数label才有值,否则默认为空。(label设置后替换插值内容)
|
|
|
+## 全选与反选
|
|
|
+```html
|
|
|
+<nut-checkboxgroup
|
|
|
+ ref="checkboxGroupDemo"
|
|
|
+ v-model="checkboxGroup"
|
|
|
+ @change="getChange"
|
|
|
+>
|
|
|
+ <nut-checkbox label="选项一"></nut-checkbox>
|
|
|
+ <nut-checkbox label="选项二"></nut-checkbox>
|
|
|
+ <nut-checkbox label="选项三"></nut-checkbox>
|
|
|
+</nut-checkboxgroup>
|
|
|
+<nut-button size="small" type="primary" @click="chooseAll(true)">全选</nut-button>
|
|
|
+<nut-button size="small" type="primary" @click="chooseAll()">反选</nut-button>
|
|
|
+<nut-button size="small" type="primary" @click="chooseAll(false)">取消</nut-button>
|
|
|
+```
|
|
|
+```javascript
|
|
|
+setup() {
|
|
|
+ const checkboxGroup = ref([]);
|
|
|
+ const getChange = (val: string) => {
|
|
|
+ console.log('选中状态选项:' + val);
|
|
|
+ };
|
|
|
+ const checkboxGroupDemo = ref(null);
|
|
|
+ const chooseAll = (val: boolean | string) => {
|
|
|
+ (checkboxGroupDemo.value as any).toggleAll(val);
|
|
|
+ };
|
|
|
+ return {
|
|
|
+ checkboxGroup,
|
|
|
+ getChange,
|
|
|
+ chooseAll
|
|
|
+ };
|
|
|
+}
|
|
|
+```
|
|
|
|
|
|
+## CheckboxGroup排列方向
|
|
|
|
|
|
-## 新增自定义class
|
|
|
```html
|
|
|
-<nut-checkbox v-model="checkbox1" class="my-checkbox">
|
|
|
- 自定义了Class:"my-checkbox"
|
|
|
-</nut-checkbox>
|
|
|
+<nut-checkboxgroup
|
|
|
+ v-model="checkboxGroup"
|
|
|
+ direction="vertical"
|
|
|
+ @change="getChange"
|
|
|
+>
|
|
|
+ <nut-checkbox label="选项一"></nut-checkbox>
|
|
|
+ <nut-checkbox label="选项二"></nut-checkbox>
|
|
|
+ <nut-checkbox label="选项三"></nut-checkbox>
|
|
|
+</nut-checkboxgroup>
|
|
|
+```
|
|
|
+```javascript
|
|
|
+setup() {
|
|
|
+ const checkboxGroup = ref([]);
|
|
|
+ const getChange = (val: string) => {
|
|
|
+ console.log('选中状态选项:' + val);
|
|
|
+ };
|
|
|
+ return {
|
|
|
+ checkboxGroup,
|
|
|
+ getChange,
|
|
|
+ };
|
|
|
+}
|
|
|
```
|
|
|
|
|
|
## Prop
|
|
|
@@ -153,6 +272,15 @@ methods: {
|
|
|
| disabled | 是否禁用 | Boolean | false
|
|
|
| animation | 是否需要动效 | Boolean | true
|
|
|
|
|
|
+### CheckGroup
|
|
|
+
|
|
|
+| 字段 | 说明 | 类型 | 默认值
|
|
|
+|----- | ----- | ----- | -----
|
|
|
+| v-model | 必填项,当前选中项的选中状态,同步value | Boolean | false
|
|
|
+| size | 尺寸,可选值small/base/large | String | base
|
|
|
+| disabled | 是否禁用 | Boolean | false
|
|
|
+| animation | 是否需要动效 | Boolean | true
|
|
|
+
|
|
|
|
|
|
## Event
|
|
|
|