Skip to content

Checkbox 多选框

基础用法

html
<vz-checkbox v-model="checkboxValue" label="复选框"></vz-checkbox>

<vz-checkbox-group v-model="checkboxGroupValue">
  <vz-checkbox value="1" label="复选框一"></vz-checkbox>
  <vz-checkbox value="2" label="复选框二"></vz-checkbox>
  <vz-checkbox value="3" label="复选框三"></vz-checkbox>
</vz-checkbox-group>
typescript
import { ref } from "vue";

const checkboxValue = ref(false);
const checkboxGroupValue = ref([]);

禁用状态

html
<vz-checkbox v-model="checkboxValue" label="复选框" disabled></vz-checkbox>

<vz-checkbox-group v-model="checkboxGroupValue" disabled>
  <vz-checkbox value="1" label="复选框一"></vz-checkbox>
  <vz-checkbox value="2" label="复选框二"></vz-checkbox>
  <vz-checkbox value="3" label="复选框三"></vz-checkbox>
</vz-checkbox-group>
typescript
import { ref } from "vue";

const checkboxValue = ref(false);
const checkboxGroupValue = ref([]);

只读状态

html
<vz-checkbox v-model="checkboxValue" label="复选框" readonly></vz-checkbox>

<vz-checkbox-group v-model="checkboxGroupValue" readonly>
  <vz-checkbox value="1" label="复选框一"></vz-checkbox>
  <vz-checkbox value="2" label="复选框二"></vz-checkbox>
  <vz-checkbox value="3" label="复选框三"></vz-checkbox>
</vz-checkbox-group>
typescript
import { ref } from "vue";

const checkboxValue = ref(false);
const checkboxGroupValue = ref([]);

圆型

html
<vz-checkbox v-model="checkboxValue" label="复选框" circle></vz-checkbox>

<vz-checkbox-group v-model="checkboxGroupValue" circle>
  <vz-checkbox value="1" label="复选框一"></vz-checkbox>
  <vz-checkbox value="2" label="复选框二"></vz-checkbox>
  <vz-checkbox value="3" label="复选框三"></vz-checkbox>
</vz-checkbox-group>
typescript
import { ref } from "vue";

const checkboxValue = ref(false);
const checkboxGroupValue = ref([]);

自定义颜色

html
<vz-checkbox
  v-model="checkboxValue"
  label="复选框"
  color="var(--app-color-success)"
  label-color="var(--app-color-info)"
></vz-checkbox>

<vz-checkbox-group v-model="checkboxGroupValue" color="var(--app-color-success)" label-color="var(--app-color-info)">
  <vz-checkbox value="1" label="复选框一"></vz-checkbox>
  <vz-checkbox value="2" label="复选框二"></vz-checkbox>
  <vz-checkbox value="3" label="复选框三"></vz-checkbox>
</vz-checkbox-group>
typescript
import { ref } from "vue";

const checkboxValue = ref(false);
const checkboxGroupValue = ref([]);

自定义尺寸

html
<vz-checkbox v-model="checkboxValue" label="复选框" size="40rpx" label-size="30rpx"></vz-checkbox>

<vz-checkbox-group v-model="checkboxGroupValue" size="40rpx" label-size="30rpx">
  <vz-checkbox value="1" label="复选框一"></vz-checkbox>
  <vz-checkbox value="2" label="复选框二"></vz-checkbox>
  <vz-checkbox value="3" label="复选框三"></vz-checkbox>
</vz-checkbox-group>
typescript
import { ref } from "vue";

const checkboxValue = ref(false);
const checkboxGroupValue = ref([]);

插槽

html
<vz-checkbox v-model="checkboxValue">
  <text>已阅读并同意</text>
  <text @click.stop>《用户条款》</text>
  <text>与</text>
  <text @click.stop>《隐私协议》</text>
</vz-checkbox>
typescript
import { ref } from "vue";

const checkboxValue = ref(false);

文本不换行

html
<vz-checkbox
  v-model="checkboxValue"
  label="豫章故郡,洪都新府。星分翼轸,地接衡庐。襟三江而带五湖,控蛮荆而引瓯越。"
  nowrap
>
</vz-checkbox>
typescript
import { ref } from "vue";

const checkboxValue = ref(false);

数量限制

html
<vz-checkbox-group v-model="checkboxGroupValue" min="1" max="3" min-height="160rpx">
  <vz-checkbox v-model="checkboxValue" value="1" label="复选框一"></vz-checkbox>
  <vz-checkbox v-model="checkboxValue" value="2" label="复选框二"></vz-checkbox>
  <vz-checkbox v-model="checkboxValue" value="3" label="复选框三"></vz-checkbox>
  <vz-checkbox v-model="checkboxValue" value="4" label="复选框四"></vz-checkbox>
  <vz-checkbox v-model="checkboxValue" value="5" label="复选框五"></vz-checkbox>
  <vz-checkbox v-model="checkboxValue" value="6" label="复选框六"></vz-checkbox>
</vz-checkbox-group>
typescript
import { ref } from "vue";

const checkboxGroupValue = ref([]);

纵向排列

html
<vz-checkbox-group v-model="checkboxGroupValue" vertical>
  <vz-checkbox v-model="checkboxValue" value="1" label="复选框一"></vz-checkbox>
  <vz-checkbox v-model="checkboxValue" value="2" label="复选框二"></vz-checkbox>
  <vz-checkbox v-model="checkboxValue" value="3" label="复选框三"></vz-checkbox>
</vz-checkbox-group>
typescript
import { ref } from "vue";

const checkboxGroupValue = ref([]);

下边框

html
<vz-checkbox-group v-model="checkboxGroupValue" vertical border>
  <vz-checkbox v-model="checkboxValue" value="1" label="复选框一"></vz-checkbox>
  <vz-checkbox v-model="checkboxValue" value="2" label="复选框二"></vz-checkbox>
  <vz-checkbox v-model="checkboxValue" value="3" label="复选框三"></vz-checkbox>
</vz-checkbox-group>
typescript
import { ref } from "vue";

const checkboxGroupValue = ref([]);

右对齐

html
<vz-checkbox-group v-model="checkboxGroupValue" vertical border align="right">
  <vz-checkbox v-model="checkboxValue" value="1" label="复选框一"></vz-checkbox>
  <vz-checkbox v-model="checkboxValue" value="2" label="复选框二"></vz-checkbox>
  <vz-checkbox v-model="checkboxValue" value="3" label="复选框三"></vz-checkbox>
</vz-checkbox-group>
typescript
import { ref } from "vue";

const checkboxGroupValue = ref([]);

复选框在右侧

html
<vz-checkbox-group v-model="checkboxGroupValue" vertical border icon-placement="right">
  <vz-checkbox v-model="checkboxValue" value="1" label="复选框一"></vz-checkbox>
  <vz-checkbox v-model="checkboxValue" value="2" label="复选框二"></vz-checkbox>
  <vz-checkbox v-model="checkboxValue" value="3" label="复选框三"></vz-checkbox>
</vz-checkbox-group>
typescript
import { ref } from "vue";

const checkboxGroupValue = ref([]);

Checkbox Props

属性名说明类型默认值
model-value / v-model绑定的值boolean / string / number-
value选中状态的值,仅在 checkbox-group有效string / number-
true-value选中时的值,在 checkbox-group无效string / number-
false-value没有选中时的值,在 checkbox-group无效string / number-
disabled是否禁用booleanfalse
readonly是否只读booleanfalse
block是否为块级元素booleanfalse
circle是否为圆形选择框booleanfalse
size尺寸string / number1.2em
color颜色(优先级低于 active-colorinactive-colorstring-
active-color选中时的颜色string--vz-color-primary
inactive-color未选中时的颜色string--vz-border-color
label文本内容string-
label-size文本字体大小string / numberinherit
label-color文本字体颜色string / numberinherit
align文本对齐位置left / center / rightleft
nowrap文本不能换行booleanfalse
box-placement选择框相对文本位置left / rightleft
gap选择框与文本的距离string / number--vz-gap-base
validate是否触发表单校验booleantrue
i-class根节点样式类string-
i-style根节点样式Vue.StyleValue-

Checkbox Events

事件名说明参数
change当绑定值变化时触发的事件boolean / string / number

Checkbox Slots

插槽名说明
default文本

Checkbox CSS

变量名说明默认值
--vz-checkbox-mrmargin-right--vz-gap-larger
--vz-checkbox-active-colorprops.activeColor--vz-color-primary
--vz-checkbox-inactive-colorprops.inactiveColor--vz-border-color
--vz-checkbox-sizeprops.size1.2em
--vz-checkbox-label-sizeprops.labelSizeinherit
--vz-checkbox-label-colorprops.labelColorinherit
--vz-checkbox-gapprops.gap--vz-gap-base
--vz-checkbox-min-height最小高度-
--vz-checkbox-border-color纵向排列时下边框颜色--vz-border-color
--vz-checkbox-radius选择框圆角--vz-border-radius-base

Checkbox SCSS

scss
$checkbox: (
  "size": 1.2em,
  "active-color": getCssVar("color", "primary"),
  "inactive-color": getCssVar("border-color"),
  "radius": getCssVar("border-radius", "small"),
  "gap": getCssVar("gap", "base"),
  "box-disabled-bg-color": getCssVar("bg-color", "disabled"),
  "box-disabled-color": getCssVar("text-color", "disabled"),
);

Checkbox Group Props

属性名说明类型默认值
v-model:model-value绑定的值Array<string / number>[]
disabled是否禁用booleanfalse
readonly是否只读booleanfalse
min可被勾选的最小数量number / string-
max可被勾选的最大数量number / string-
vertical是否纵向排列booleanfalse
circle是否为圆形选择框booleanfalse
size尺寸string / number1.2em
color颜色(优先级低于 active-colorinactive-colorstring-
active-color选中时的颜色string--vz-color-primary
inactive-color未选中时的颜色string--vz-border-color
label-size文本字体大小string / numberinherit
label-color文本字体颜色string / numberinherit
align文本对齐位置left / center / rightleft
nowrap文本不能换行booleanfalse
min-height最小高度,纵向时为 checkbox 最小高度boolean--vz-height-base
box-placement选择框相对文本位置left / rightleft
group-gap横向排列时复选框之间的距离boolean--vz-gap-larger
gap选择框与文本的距离string / number--vz-gap-base
border纵向排列时是否显示 checkbox 下边框booleanfalse
validate是否触发表单校验booleantrue
i-class根节点样式类string-
i-style根节点样式Vue.StyleValue-

Checkbox Events

事件名说明参数
change当绑定值变化时触发的事件Array<string / number>

Checkbox Group CSS

变量名说明默认值
--vz-checkbox-group-min-heightprops.minHeight--vz-height-base
--vz-checkbox-group-gapprops.groupGap--vz-gap-larger
--vz-checkbox-group-border-color纵向排列时 checkbox 下边框颜色--vz-border-color

Checkbox Group SCSS

scss
$checkbox-group: (
  "min-height": getCssVar("height", "base"),
  "gap": getCssVar("gap", "larger"),
  "border-color": getCssVar("border-color"),
);