Skip to content

Checkbox 多选框

在一组备选项中进行多选。

基础用法

单独使用可以表示两种状态之间的切换,写在标签中的内容为 checkbox 按钮后的介绍。

<script lang="ts" setup>
import { ref } from 'vue'

const value = ref(false)
</script>
<template>
  <ZgCheckbox label="Checkbox0" style="margin-right: 10px" />
  <ZgCheckbox label="Checkbox0" indeterminate style="margin-right: 10px" />
  <ZgCheckbox v-model="value" label="Checkbox" style="margin-right: 10px" />
  <ZgCheckbox v-model="value" label="Checkbox" size="large" style="margin-right: 10px" />
  <ZgCheckbox v-model="value" label="Checkbox" size="small" style="margin-right: 10px" />
</template>
<script lang="ts" setup>
import { ref } from 'vue'

const value = ref(false)
</script>
<template>
  <ZgCheckbox label="Checkbox0" style="margin-right: 10px" />
  <ZgCheckbox label="Checkbox0" indeterminate style="margin-right: 10px" />
  <ZgCheckbox v-model="value" label="Checkbox" style="margin-right: 10px" />
  <ZgCheckbox v-model="value" label="Checkbox" size="large" style="margin-right: 10px" />
  <ZgCheckbox v-model="value" label="Checkbox" size="small" style="margin-right: 10px" />
</template>

禁用状态

多选框不可用状态。

设置 disabled 属性即可。

<script lang="ts" setup>
import { ref } from 'vue'

const value = ref(false)
const value1 = ref(true)
</script>
<template>
  <ZgCheckbox v-model="value" label="Checkbox" disabled style="margin-right: 10px" />
  <ZgCheckbox v-model="value1" label="Checkbox" disabled style="margin-right: 10px" />
  <ZgCheckbox v-model="value1" label="Checkbox" disabled indeterminate style="margin-right: 10px" />
</template>
<script lang="ts" setup>
import { ref } from 'vue'

const value = ref(false)
const value1 = ref(true)
</script>
<template>
  <ZgCheckbox v-model="value" label="Checkbox" disabled style="margin-right: 10px" />
  <ZgCheckbox v-model="value1" label="Checkbox" disabled style="margin-right: 10px" />
  <ZgCheckbox v-model="value1" label="Checkbox" disabled indeterminate style="margin-right: 10px" />
</template>

组合用法

适用于多个勾选框绑定到同一个数组的情景,通过是否勾选来表示这一组选项中选中的项。


<script lang="ts" setup>
import type { ValueTypeBSN } from '@/index'
import { ref } from 'vue'

const arr = ref([])
const len = 10
const handleChange = (value: ValueTypeBSN[]) => {
  console.log('checkbox.group value:', value)
}
</script>
<template>
  <ZgCheckboxGroup v-model="arr" @change="handleChange">
    <ZgCheckbox v-for="i in len" :key="i" :value="i">
      {{ i }}
    </ZgCheckbox>
  </ZgCheckboxGroup>
  <hr />
  <ZgCheckboxGroup vertical v-model="arr" @change="handleChange">
    <ZgCheckbox v-for="i in len" :key="i" :value="i" :label="i"> </ZgCheckbox>
  </ZgCheckboxGroup>
</template>
<script lang="ts" setup>
import type { ValueTypeBSN } from '@/index'
import { ref } from 'vue'

const arr = ref([])
const len = 10
const handleChange = (value: ValueTypeBSN[]) => {
  console.log('checkbox.group value:', value)
}
</script>
<template>
  <ZgCheckboxGroup v-model="arr" @change="handleChange">
    <ZgCheckbox v-for="i in len" :key="i" :value="i">
      {{ i }}
    </ZgCheckbox>
  </ZgCheckboxGroup>
  <hr />
  <ZgCheckboxGroup vertical v-model="arr" @change="handleChange">
    <ZgCheckbox v-for="i in len" :key="i" :value="i" :label="i"> </ZgCheckbox>
  </ZgCheckboxGroup>
</template>

配置方式

通过配置options直接生成选项

<script lang="ts" setup>
import type { ValueTypeBSN, Option } from '@/index'
import { ref } from 'vue'

const len = 10
const options = ref<Option[]>([])
const arr = ref([])

for (let index = 1; index <= len; index++) {
  options.value.push({
    label: index,
    value: index,
  })
}
const handleChange = (value: ValueTypeBSN[]) => {
  console.log('checkbox.group value:', value)
}
</script>
<template>
  <ZgCheckboxGroup v-model="arr" :options="options" @change="handleChange"></ZgCheckboxGroup>
</template>
<script lang="ts" setup>
import type { ValueTypeBSN, Option } from '@/index'
import { ref } from 'vue'

const len = 10
const options = ref<Option[]>([])
const arr = ref([])

for (let index = 1; index <= len; index++) {
  options.value.push({
    label: index,
    value: index,
  })
}
const handleChange = (value: ValueTypeBSN[]) => {
  console.log('checkbox.group value:', value)
}
</script>
<template>
  <ZgCheckboxGroup v-model="arr" :options="options" @change="handleChange"></ZgCheckboxGroup>
</template>

Checkbox Attributes

NameDescriptionTypeDefault
model-value / v-model绑定值,必须等于 true-value 或 false-value,默认为 Boolean 类型boolean | string | numberfalse
disabled是否禁用booleanfalse
true-value选中时的值boolean | string | numbertrue
false-value没有选中时的值boolean | string | numberfalse
indeterminate设置不确定状态,仅负责样式控制booleanfalse
label描述和介绍stringnull
size尺寸'large'| 'small'
value选中状态的值(搭配 CheckboxGroup 使用时有效)string / number / booleannull

Checkbox Events

事件名说明类型
changeCheckbox 状态发生变化时的回调函数(val: boolean | string | number) => void

Checkbox Slots

名称说明
default描述和介绍。相比 label,slot 优先使用

CheckboxGroup Props

属性说明类型默认值
disabled是否禁用booleanfalse
model-value /v-model绑定值array - ValueTypeBSN[] 可直接引入使用 - type ValueTypeBSN = string | number | boolean[]
vertical是否垂直排列(默认水平排列)booleanfalse
options选项配置array<Option>[]
valueField替代 Option 中的 value 字段名stringvalue
labelField替代 Option 中的 label 字段名stringlabel

CheckboxGroup Events

事件名称说明回调参数
change当绑定值变化时触发的事件(val: ValueTypeBSN[]) => void

CheckboxGroup Slots

名称说明
defaultCheckbox 组件

Option Props

属性说明类型默认值
value选项的值,需要唯一string / number / boolean-
label选项的标签string / number-
disabled是否禁用booleanfalse

Released under the MIT License.