Skip to content

Checkbox 多选框

一组备选项中进行多选。

基础用法

可以使用 label 或者 <slot/> 两种方式定义其中内容。

查看代码

可以多个单选框绑定一个值,或者单个绑定。

vue
<template>
	<demo-container>
		<!-- 多个绑定 -->
		<gov-checkbox v-model="group" :value="1" label="选项1" />
		<gov-checkbox v-model="group" :value="2">选项2</gov-checkbox>
		<!-- 单个绑定 -->
		<gov-checkbox v-model="value" label="选项3" />
	</demo-container>
</template>

<script setup>
import { ref } from "vue";
const group = ref([1, 2]);
const value = ref(true);
</script>

边框模式

设置 border 后可设置 size 显示不同尺寸。

查看代码
vue
<template>
	<demo-container>
		<gov-checkbox v-model="value1" border size="large"> 选项 </gov-checkbox>
		<gov-checkbox v-model="value2" border> 选项 </gov-checkbox>
		<gov-checkbox v-model="value3" border size="small"> 选项 </gov-checkbox>
		<br /><br />
		<gov-checkbox-group border size="large" v-model="group">
			<gov-checkbox label="选项1" :value="1" />
			<gov-checkbox label="选项2" :value="2" />
			<gov-checkbox label="选项3" :value="3" />
		</gov-checkbox-group>
	</demo-container>
</template>

<script setup>
import { ref } from "vue";
const value1 = ref(false);
const value2 = ref(false);
const value3 = ref(false);
const group = ref([1, 2]);
</script>

禁用状态

设置禁用状态。

查看代码
vue
<template>
	<demo-container>
		<gov-checkbox v-model="value1" disabled>选项1</gov-checkbox>
		<gov-checkbox v-model="value2" disabled>选项2</gov-checkbox>
		<gov-checkbox indeterminate disabled>选项3</gov-checkbox>
		<br /><br />
		<gov-checkbox v-model="value1" disabled border>选项1</gov-checkbox>
		<gov-checkbox v-model="value2" disabled border>选项2</gov-checkbox>
		<gov-checkbox indeterminate disabled border>选项3</gov-checkbox>
	</demo-container>
</template>

<script setup>
import { ref } from "vue";
const value1 = ref(true);
const value2 = ref(false);
</script>

设置 TrueValue 和 FalseValue

自定义选中后的值和取消勾选的值。

控制台
 value:选中啦
查看代码
vue
<template>
	<demo-container>
		<gov-checkbox v-model="value" true-value="选中啦" false-value="没选中">
			点我切换:{{ value }}
		</gov-checkbox>
		<template #console> value:{{ value }} </template>
	</demo-container>
</template>

<script setup>
import { ref } from "vue";
const value = ref("选中啦");
</script>

多选框组

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

你可以设置 indeterminate 半选中状态,这通常使用在全选场景,当设置 indeterminate 时,它仅仅是一个展示。

查看代码
vue
<template>
	<demo-container>
		<gov-checkbox
			label="全选"
			:indeterminate="indeterminate"
			v-model="checkedAll"
		/>
		<br />
		<gov-checkbox-group v-model="group">
			<gov-checkbox :value="1" label="选项1" />
			<gov-checkbox :value="2" label="选项2" />
			<gov-checkbox :value="3" label="选项3" />
		</gov-checkbox-group>
	</demo-container>
</template>

<script setup>
import { ref, computed } from "vue";

const group = ref([1, 2]);

const indeterminate = computed(() => {
	return ![0, 3].includes(group.value.length);
});

const checkedAll = computed({
	get() {
		return group.value.length === 3;
	},
	set(val) {
		group.value = val ? [1, 2, 3] : [];
	},
});
</script>

多选框组 Button

当多选组设置按钮样式时。

查看代码
vue
<template>
	<demo-container>
		<gov-checkbox-group v-model="group" button size="large">
			<gov-checkbox :value="1" label="选项1" />
			<gov-checkbox :value="2" label="选项2" />
			<gov-checkbox :value="3" label="选项3" />
			<gov-checkbox :value="4" label="选项4" />
		</gov-checkbox-group>
		<br />
		<gov-checkbox-group v-model="group" button>
			<gov-checkbox :value="1" label="选项1" />
			<gov-checkbox :value="2" label="选项2" />
			<gov-checkbox :value="3" label="选项3" />
			<gov-checkbox :value="4" label="选项4" />
		</gov-checkbox-group>
		<br />
		<gov-checkbox-group v-model="group" button size="small" disabled>
			<gov-checkbox :value="1" label="选项1" />
			<gov-checkbox :value="2" label="选项2" />
			<gov-checkbox :value="3" label="选项3" />
			<gov-checkbox :value="4" label="选项4" />
		</gov-checkbox-group>
	</demo-container>
</template>

<script setup>
import { ref } from "vue";
const group = ref([1, 2]);
</script>

Checkbox Attributes

属性名说明类型可选值默认值
modelValue绑定的值Boolean / Arrayundefined
size尺寸String
label标签文本String
border是否有边框Booleantrue, falsefalse
disabled是否禁用Booleantrue, falsefalse
indeterminate是否为不确定状态Booleantrue, falsefalse
triggerForm是否触发表单验证Booleantrue, falsetrue

Checkbox Events

事件名说明回调参数
change值改变时触发新的值
blur失去焦点时触发事件对象
focus获得焦点时触发事件对象

Checkbox Slots

插槽名说明
default自定义标签内容,可以放置任何自定义的内容,例如文本或 HTML 结构。

Checkbox-group Attributes

属性名说明类型可选值默认值
modelValue绑定的值,用于控制选中的复选框Array[]
border是否显示复选框的边框Booleantrue, falsefalse
size复选框组的尺寸String
button是否将复选框渲染为按钮样式Booleantrue, falsefalse
disabled是否禁用复选框组Booleantrue, falsefalse
triggerForm是否触发表单验证Booleantrue, falsetrue

Checkbox-group Events

事件名说明回调参数
change值改变时触发新的值数组
blur失去焦点时触发
focus获得焦点时触发

Checkbox-group Slots

插槽名说明
default用于放置复选框 GovCheckbox 组件实例。

Released under the MIT License.