Skip to content

Checkbox 多选框

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

基础用法

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

显示代码
vue
<template>
	<div class="common-content checkbox-content">
		<div class="checkbox-basic-single">
			<ued-checkbox v-model="checked" label="Option 1" />
			<ued-checkbox v-model="checked1" label="Option 2" />
		</div>
	</div>
</template>

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

const checked = ref(true)
const checked1 = ref(false)
</script>

尺寸大小

设置 size 属性可以控制大小尺寸,可选值: largedefaultsmall

可以单独给 checkbox 设置,也可以给 checkbox-group设置

显示代码
vue
<template>
	<div class="common-content checkbox-content">
		<div class="checkbox-size-single">
			<div>
				<ued-checkbox v-model="checked" label="Option 1" size="large" />
				<ued-checkbox v-model="checked1" label="Option 2" size="large" />
			</div>
			<div>
				<ued-checkbox v-model="checked" label="Option 1" />
				<ued-checkbox v-model="checked1" label="Option 2" />
			</div>
			<div>
				<ued-checkbox v-model="checked" label="Option 1" size="small" />
				<ued-checkbox v-model="checked1" label="Option 2" size="small" />
			</div>
		</div>
		<div class="checkbox-size-group">
			<ued-checkbox-group v-model="checkList" size="large">
				<ued-checkbox value="Value A" label="Option 1" />
				<ued-checkbox value="Value B" label="Option 2" />
				<ued-checkbox value="Value C" label="Option 3" />
				<ued-checkbox value="Value D" label="Option 4" />
			</ued-checkbox-group>
		</div>
	</div>
</template>

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

const checked = ref(true)
const checked1 = ref(false)
const checkList = ref(['Value A', 'Value D'])
</script>

禁用状态

disabled 属性可以用来控制单选框的禁用状态。

你只需要为单选框设置 disabled 属性就能控制其禁用状态。

可以单独给checkbox设置,也可以给checkbox-group设置

显示代码
vue
<template>
	<div class="common-content checkbox-content">
		<div class="checkbox-diabled-single">
			<ued-checkbox v-model="checked" disabled label="Disabled And Selected" />
			<ued-checkbox v-model="checked1" label="Not Disabled" />
			<ued-checkbox v-model="checked2" disabled label="Disabled" />
		</div>

		<div class="checkbox-disabled-group">
			<ued-checkbox-group v-model="checkList" disabled>
				<ued-checkbox value="Value A" label="Option 1" />
				<ued-checkbox value="Value B" label="Option 2" />
				<ued-checkbox value="Value C" label="Option 3" />
				<ued-checkbox value="Value D" label="Option 4" />
			</ued-checkbox-group>
		</div>
	</div>
</template>

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

const checked = ref(true)
const checked1 = ref(false)
const checked2 = ref(false)

const checkList = ref(['Value A', 'Value D'])
</script>

多选框组

checkbox-group元素能把多个 checkbox 管理为一组,只需要在 Group 中使用 v-model 绑定 Array 类型的变量即可。 只有一个选项时的默认值类型为 Boolean,当选中时值为trueued-checkbox 标签中的内容将成为复选框按钮之后的描述。

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

ued-checkbox 元素中定义 v-model 绑定变量,单一的 checkbox 中,默认绑定变量的值会是 Boolean,选中为 true。 在 ued-checkbox 组件中,value 是选择框的值。 如果该组件下没有被传入内容,那么 label 将会作为 checkbox 按钮后的介绍。 value 也与数组中的元素值相对应。 如果指定的值存在于数组中,就处于选择状态,反之亦然。

显示代码
vue
<template>
	<div class="common-content checkbox-content">
		<div class="checkbox-basic-group">
			<ued-checkbox-group v-model="checkList">
				<ued-checkbox value="Value A" label="Option 1" />
				<ued-checkbox value="Value B" label="Option 2" />
				<ued-checkbox value="Value C" label="Option 3" disabled />
				<ued-checkbox value="Value D" label="Option 4" disabled />
			</ued-checkbox-group>
		</div>
	</div>
</template>

<script lang="ts" setup>
import { ref } from 'vue'
const checkList = ref(['Value A', 'Value D'])
</script>

带有边框

设置 border 属性为 true 可以渲染为带有边框的单选框。

可以给checkbox单独设置属性,也可以给checkbox-group设置,此时checkboxborder 属性无效

显示代码
vue
<template>
	<div class="common-content checkbox-content">
		<div class="checkbox-border-group">
			<ued-checkbox-group v-model="checkList" size="large">
				<ued-checkbox border value="Value A" label="Option 1" />
				<ued-checkbox value="Value B" label="Option 2" />
			</ued-checkbox-group>
		</div>
		<div class="checkbox-border-group">
			<ued-checkbox-group v-model="checkList1" border>
				<ued-checkbox value="Value A" label="Option 1" />
				<ued-checkbox value="Value B" label="Option 2" />
			</ued-checkbox-group>
		</div>
		<div class="checkbox-border-group">
			<ued-checkbox-group v-model="checkList2" border disabled size="small">
				<ued-checkbox border value="Value A" label="Option 1" />
				<ued-checkbox value="Value B" label="Option 2" />
			</ued-checkbox-group>
		</div>
	</div>
</template>

<script lang="ts" setup>
import { ref } from 'vue'
const checkList = ref(['Value A'])
const checkList1 = ref(['Value A'])
const checkList2 = ref(['Value A'])
</script>

按钮样式

按钮样式的多选组合。

只需要把 ued-checkbox 元素换成 ued-checkbox-button 元素即可

如果需要改变按钮选中时的背景色和字体颜色,可以在 checkbox-group 分别设置 filltext-color 属性

显示代码
vue
<template>
	<div class="common-content checkbox-content">
		<div class="checkbox-button-basic">
			<ued-checkbox-button v-model="button1" value="button1" />
			<ued-checkbox-button v-model="button2" value="button2" />
			<ued-checkbox-button v-model="button3" value="button3" />
		</div>
		<div class="checkbox-button-group">
			<ued-checkbox-group v-model="buttonGroup">
				<ued-checkbox-button value="button1" />
				<ued-checkbox-button value="button2" />
				<ued-checkbox-button value="button3" />
			</ued-checkbox-group>
		</div>
		<div class="checkbox-button-size-basic">
			<ued-checkbox-group v-model="large" size="large">
				<ued-checkbox-button value="button1" />
				<ued-checkbox-button value="button2" />
				<ued-checkbox-button value="button3" />
			</ued-checkbox-group>
		</div>
		<div class="checkbox-button-size-basic">
			<ued-checkbox-group v-model="small" size="small">
				<ued-checkbox-button value="button1" />
				<ued-checkbox-button value="button2" disabled />
				<ued-checkbox-button value="button3" />
			</ued-checkbox-group>
		</div>
		<div class="checkbox-button-size-basic">
			<ued-checkbox-group
				v-model="style"
				fill="#67c23a"
				text-color="rgba(0, 0, 0, 1)"
			>
				<ued-checkbox-button value="button1" />
				<ued-checkbox-button value="button2" />
				<ued-checkbox-button value="button3" />
			</ued-checkbox-group>
		</div>
	</div>
</template>

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

const button1 = ref(true)
const button2 = ref(false)
const button3 = ref(false)
const buttonGroup = ref(['button1'])
const large = ref(['button1'])
const small = ref(['button1'])
const style = ref(['button1'])
</script>

可选项目数量的限制

使用 minmax 属性能够限制可以被勾选的项目的数量。

显示代码
vue
<template>
	<div class="common-content checkbox-content">
		<div class="checkbox-limit-group">
			<ued-checkbox-group v-model="checkList" :max="2" :min="1">
				<ued-checkbox value="Value A" label="Option 1" />
				<ued-checkbox value="Value B" label="Option 2" />
				<ued-checkbox value="Value C" label="Option 3" />
				<ued-checkbox value="Value D" label="Option 4" />
			</ued-checkbox-group>
		</div>
	</div>
</template>

<script lang="ts" setup>
import { ref } from 'vue'
const checkList = ref(['Value A', 'Value B'])
</script>

中间状态

indeterminate 属性用以表示 checkbox 的不确定状态,一般用于实现全选的效果

显示代码
vue
<template>
	<div class="common-content checkbox-content">
		<div class="checkbox-indeterminate-group">
			<ued-checkbox
				v-model="checkAll"
				:indeterminate="isIndeterminate"
				@change="handleCheckAllChange"
			>
				Check all
			</ued-checkbox>
			<ued-checkbox-group v-model="checkList" @change="handleCheckedListChange">
				<ued-checkbox v-for="l in list" :key="l" :value="l" :label="l" />
			</ued-checkbox-group>
		</div>
	</div>
</template>

<script lang="ts" setup>
import { ref } from 'vue'
const checkAll = ref(false)
const isIndeterminate = ref(true)
const list = ['Value A', 'Value B', 'Value C', 'Value D']
const checkList = ref(['Value A', 'Value B'])

const handleCheckAllChange = (val: boolean) => {
	checkList.value = val ? list : []
	isIndeterminate.value = false
}

const handleCheckedListChange = (value: string[]) => {
	const checkedCount = value.length
	checkAll.value = checkedCount === list.length
	isIndeterminate.value = checkedCount > 0 && checkedCount < list.length
}
</script>

Checkbox API

属性

属性名说明类型默认值
model-value/v-model选中项绑定值string/number/boolean-
value选中状态的值(只有在checkbox-group或者绑定对象类型为array时有效)string/number/boolean / Object-
label选中状态的值,只有在绑定对象类型为 array 时有效string/number/boolean/ Object-
disabled是否禁用多选框booleanfalse
border是否显示边框booleanfalse
size多选框的尺寸large/default/small-
name原始 name 属性string-
indeterminate设置不确定状态,仅负责样式控制booleanfalse

事件

事件名说明类型
change绑定值变化时触发的事件(value: string | number | boolean) => void

插槽

插槽名说明
default自定义默认内容

CheckboxGroup API

属性

属性名说明类型默认值
model-value/v-model选中项绑定值string[]/number[]/-
disabled是否禁用多选框booleanfalse
border是否显示边框booleanfalse
size多选框的尺寸large/default/small-
name原始 name 属性string-
id原始 id 属性string-
text-color按钮形式的 checkbox 激活时的文本颜色string#ffffff
fill按钮形式的 checkbox 激活时的填充色和边框色string#409eff
max可被勾选的 checkbox 的最大数量number-
min可被勾选的 checkbox 的最小数量number-

事件

事件名说明类型
change绑定值变化时触发的事件(value: string[] | number[]) => void

插槽

插槽名说明子标签
default自定义默认内容Checkbox / CheckboxButton

CheckboxButton API

属性

属性名说明类型默认值
model-value/v-model选中项绑定值string/number/boolean-
value选中状态的值(只有在checkbox-group或者绑定对象类型为array时有效)string/number/boolean / Object-
label选中状态的值,只有在绑定对象类型为 array 时有效string/number/boolean/ Object-
disabled是否禁用单选框booleanfalse
size单选框的尺寸large/default/small-
name原始 name 属性string-

事件

事件名说明类型
change绑定值变化时触发的事件(value: string | number | boolean) => void

插槽

插槽名说明
default自定义默认内容