1.0.5 • Published 1 month ago

@tanzhenxing/zx-checkbox-group v1.0.5

Weekly downloads
-
License
ISC
Repository
-
Last release
1 month ago

zx-checkbox-group 多选框组

多选框组组件用于管理一组多选框,使它们成为一个整体,通常用于可选项较多的场景。

基础用法

使用 v-model 绑定一个数组类型的变量,数组的值为当前选中的多选框的 value 值。

<zx-checkbox-group v-model="checkList">
  <zx-checkbox label="选项 A" value="A" />
  <zx-checkbox label="选项 B" value="B" />
  <zx-checkbox label="选项 C" value="C" />
</zx-checkbox-group>

<script setup>
import { ref } from 'vue';

const checkList = ref(['A', 'B']);
</script>

禁用状态

通过设置 disabled 属性可以禁用整个多选框组。

<zx-checkbox-group v-model="checkList" disabled>
  <zx-checkbox label="选项 A" value="A" />
  <zx-checkbox label="选项 B" value="B" />
  <zx-checkbox label="选项 C" value="C" />
</zx-checkbox-group>

布局方式

默认为横向布局,可以通过 placement 属性设置为纵向布局。

<!-- 横向布局 -->
<zx-checkbox-group v-model="checkList" placement="row">
  <zx-checkbox label="选项 A" value="A" />
  <zx-checkbox label="选项 B" value="B" />
  <zx-checkbox label="选项 C" value="C" />
</zx-checkbox-group>

<!-- 纵向布局 -->
<zx-checkbox-group v-model="checkList" placement="column">
  <zx-checkbox label="选项 A" value="A" />
  <zx-checkbox label="选项 B" value="B" />
  <zx-checkbox label="选项 C" value="C" />
</zx-checkbox-group>

限制可选数量

通过设置 minmax 属性可以限制可以选择的选项数量。

<zx-checkbox-group v-model="checkList" :min="1" :max="2">
  <zx-checkbox label="选项 A" value="A" />
  <zx-checkbox label="选项 B" value="B" />
  <zx-checkbox label="选项 C" value="C" />
  <zx-checkbox label="选项 D" value="D" />
</zx-checkbox-group>

自定义样式

可以通过设置 activeColorsizelabelSize 等属性来自定义多选框组的样式。

<zx-checkbox-group 
  v-model="checkList" 
  active-color="#ff5500" 
  size="40rpx"
  label-size="30rpx"
>
  <zx-checkbox label="选项 A" value="A" />
  <zx-checkbox label="选项 B" value="B" />
  <zx-checkbox label="选项 C" value="C" />
</zx-checkbox-group>

纵向排列并显示下边框

在纵向排列模式下,可以通过 border-bottom 属性显示下边框,增强视觉分隔效果。

<zx-checkbox-group v-model="checkList" placement="column" border-bottom>
  <zx-checkbox label="选项 A" value="A" />
  <zx-checkbox label="选项 B" value="B" />
  <zx-checkbox label="选项 C" value="C" />
</zx-checkbox-group>

图标位置设置

通过 icon-placement 属性可以设置图标的位置,默认为左侧。

<zx-checkbox-group v-model="checkList" icon-placement="right">
  <zx-checkbox label="选项 A" value="A" />
  <zx-checkbox label="选项 B" value="B" />
  <zx-checkbox label="选项 C" value="C" />
</zx-checkbox-group>

实现全选/反选功能

结合 checkbox 的 indeterminate 属性,可以实现全选/反选功能。

<template>
  <zx-checkbox 
    v-model="checkAll" 
    :indeterminate="isIndeterminate"
    @change="handleCheckAllChange"
    label="全选"
  />
  <zx-checkbox-group v-model="checkList" @change="handleCheckedChange">
    <zx-checkbox v-for="item in options" :key="item" :label="item" :value="item" />
  </zx-checkbox-group>
</template>

<script setup>
import { ref } from 'vue';

const options = ['选项1', '选项2', '选项3', '选项4'];
const checkList = ref(['选项1', '选项2']);
const checkAll = ref(false);
const isIndeterminate = ref(true);

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

const handleCheckedChange = (value) => {
  const checkedCount = value.length;
  checkAll.value = checkedCount === options.length;
  isIndeterminate.value = checkedCount > 0 && checkedCount < options.length;
};
</script>

属性

参数名说明类型默认值
v-model / modelValue绑定值Array[]
name标识符String''
shape形状,可选值为 square、circleString'square'
disabled是否禁用所有多选框Booleanfalse
active-color选中状态下的颜色String'#2979ff'
inactive-color未选中的颜色String'#c8c9cc'
size整个组件的尺寸,默认单位为rpxString / Number'36rpx'
placement布局方式,可选值为 row、columnString'row'
label-sizelabel的字体大小,单位为rpxString / Number'28rpx'
label-colorlabel的字体颜色String'#303133'
label-disabled是否禁止点击文本操作Booleanfalse
icon-color图标颜色String'#ffffff'
icon-size图标的大小,单位为rpxString / Number'24rpx'
icon-placement图标对齐方式,可选值为 left、rightString'left'
border-bottom纵向排列时,是否显示下边框Booleanfalse
min可被勾选的多选框的最小数量Number0
max可被勾选的多选框的最大数量NumberInfinity
validate-event是否触发表单校验Booleantrue
tag复选框组元素标签String'view'
text-color当按钮为活跃状态时的字体颜色String'#ffffff'
fill当按钮为活跃状态时的边框和背景颜色String'#2979ff'

事件

事件名说明回调参数
change当绑定值变化时触发当前选中的值数组
update:modelValue更新v-model绑定的值时触发当前选中的值数组

插槽

名称说明
default默认插槽,用于放置 zx-checkbox 组件
1.0.2

2 months ago

1.0.5

1 month ago

1.0.4

2 months ago

1.0.3

2 months ago

1.0.1

5 months ago

1.0.0

11 months ago