CheckboxGroup 复选框组

示例

尺寸

可选的 ui 属性值:s / m

Normal size

Checked: -

Small size

Checked: -

在 GitHub 上编辑此页编辑
<template>
<article>
  <section>
    <h4>Normal size</h4>
    <veui-checkbox-group
      v-model="selected"
      :items="licenses"
    />
    <p>Checked: {{ readable }}</p>
  </section>
  <section>
    <h4>Small size</h4>
    <veui-checkbox-group
      v-model="selected"
      ui="s"
      :items="licenses"
    />
    <p>Checked: {{ readable }}</p>
  </section>
</article>
</template>

<script>
import { CheckboxGroup } from 'veui'

export default {
  components: {
    'veui-checkbox-group': CheckboxGroup
  },
  data () {
    return {
      selected: null,
      licenses: [
        {
          label: 'MIT License',
          value: 'mit'
        },
        {
          label: 'BSD License',
          value: 'bsd'
        },
        {
          label: 'Apache License 2.0',
          value: 'apache2'
        }
      ]
    }
  },
  computed: {
    readable () {
      return (this.selected || []).join(', ') || '-'
    }
  }
}
</script>

<style lang="less" scoped>
section {
  margin-bottom: 20px;
}

h4 {
  margin-top: 0;
}
</style>

单复选共存

可以使用 exclusive 选项与 empty-value 实现一些单复选共存的场景。

Select size

Checked: any

在 GitHub 上编辑此页编辑
<template>
<article>
  <section>
    <h4>Select size</h4>
    <veui-checkbox-group
      v-model="selected"
      :items="licenses"
      empty-value="any"
    />
    <p>Checked: {{ readable }}</p>
  </section>
</article>
</template>

<script>
import { CheckboxGroup } from 'veui'

export default {
  components: {
    'veui-checkbox-group': CheckboxGroup
  },
  data () {
    return {
      selected: ['any'],
      licenses: [
        {
          label: 'Any',
          value: 'any',
          exclusive: true
        },
        {
          label: 'Small',
          value: 'sm'
        },
        {
          label: 'Medium',
          value: 'md'
        },
        {
          label: 'Large',
          value: 'lg'
        }
      ]
    }
  },
  computed: {
    readable () {
      return (this.selected || []).join(', ') || '-'
    }
  }
}
</script>

<style lang="less" scoped>
section {
  margin-bottom: 20px;
}

h4 {
  margin-top: 0;
}
</style>

额外描述

在数据源的项目中设置 desc 字段或者通过 desc 插槽来指定额外描述。额外描述会在悬浮时显示。

在 GitHub 上编辑此页编辑
<template>
<article>
  <section>
    <veui-checkbox-group
      v-model="flavor"
      :items="flavors"
    />
  </section>
  <section>
    <veui-checkbox-group
      v-model="flavor"
      :items="flavors"
    >
      <template #desc="{ desc, label }">
        {{ desc || `a description for ${label}` }}
      </template>
    </veui-checkbox-group>
  </section>
</article>
</template>

<script>
import { CheckboxGroup } from 'veui'

export default {
  components: {
    'veui-checkbox-group': CheckboxGroup
  },
  data () {
    return {
      flavor: null,
      flavors: [
        { value: 'LATTE', label: 'Latte', desc: 'a description for latte.' },
        { value: 'MOCHA', label: 'Mocha', desc: 'a description for mocha.' },
        { value: 'AMERICANO', label: 'Americano' }
      ]
    }
  }
}
</script>

<style lang="less" scoped>
section {
  margin-bottom: 20px;
}

h4 {
  margin-top: 0;
}
</style>

API

属性

名称类型默认值描述
uistring=-

预设样式。

描述
s小尺寸样式。
m中尺寸样式。
itemsArray<Object>[]

复选框组数据源,项目类型为 { label, value, disabled, exclusive, desc, ... }

名称类型描述
labelstring选项的文字说明。
value*选项对应的值。
disabledboolean=选项是否为禁用。
exclusiveboolean=选项是否为排它项。
descstring选项的额外描述信息。
valueArray[]

v-model

items 中已选项的 value 列表。

disabledboolean=false是否为禁用状态。
readonlyboolean=false是否为只读状态。
empty-value*-当取消所有选择时组件需要默认选中的值,通常用于存在 exclusive 选项的场景。

插槽

名称描述
item

选项描述文本区域。

默认内容:label 属性值。

名称类型描述
labelstring选项文本。
value*选项值。
indexnumber选项在 items 中的序号。
disabledboolean=选项是否禁用。

另外,items 内数据项中除了上面描述的字段之外的其它字段也会自动通过 v-bind 进行绑定到作用域参数上。

desc按钮的额外描述信息,作用域参数同 item 插槽。

事件

名称描述
change

v-model

选中状态变化后触发,回调参数为 (value: Array)value 为当前复选框组已选项内 value 字段组成的数组。

在 GitHub 上编辑此页编辑