VEUI

VEUI on GitHub
English

CheckButtonGroup 复选按钮组

示例

尺寸

可选的 ui 属性值:s / m

Normal size

Checked: -

Small size

Checked: -

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

<script>
import { CheckButtonGroup } from 'veui'

export default {
  components: {
    'veui-check-button-group': CheckButtonGroup
  },
  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>

简单样式

设置 ui 属性值:simple 来指定简单样式。

Checked: any

在 GitHub 上编辑此示例编辑
<template>
<article>
  <section>
    <veui-check-button-group
      v-model="selected"
      ui="simple"
      :items="sizes"
    />
    <p>Checked: {{ readable }}</p>
  </section>
</article>
</template>

<script>
import { CheckButtonGroup } from 'veui'

export default {
  components: {
    'veui-check-button-group': CheckButtonGroup
  },
  data () {
    return {
      selected: ['any'],
      sizes: [
        {
          label: 'Any',
          value: 'any'
        },
        {
          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>

单复选共存

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

Select size

Checked: any

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

<script>
import { CheckButtonGroup } from 'veui'

export default {
  components: {
    'veui-check-button-group': CheckButtonGroup
  },
  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-check-button-group
      v-model="flavor"
      :items="flavors"
    />
  </section>
  <section>
    <veui-check-button-group
      v-model="flavor"
      :items="flavors"
    >
      <template #desc="{ desc, label }">
        {{ desc || `a description for ${label}` }}
      </template>
    </veui-check-button-group>
  </section>
</article>
</template>

<script>
import { CheckButtonGroup } from 'veui'

export default {
  components: {
    'veui-check-button-group': CheckButtonGroup
  },
  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>

最小宽度

设置 ui 属性值:stable 来为选项启用最小宽度,使多行场景下布局更为稳定。

在 GitHub 上编辑此示例编辑
<template>
<article>
  <section>
    <veui-checkbox v-model="isStable">
      Stable layout
    </veui-checkbox>
  </section>
  <veui-check-button-group
    v-model="flavor"
    :items="flavors"
    :ui="isStable ? 'stable' : ''"
  />
</article>
</template>

<script>
import { CheckButtonGroup, Checkbox } from 'veui'

export default {
  components: {
    'veui-check-button-group': CheckButtonGroup,
    'veui-checkbox': Checkbox
  },
  data () {
    return {
      isStable: true,
      flavor: null,
      flavors: [
        { value: 'LATTE', label: 'Latte' },
        { value: 'MOCHA', label: 'Mocha' },
        { value: 'AMERICANO', label: 'Americano' }
      ]
    }
  }
}
</script>

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

API

属性

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

预设样式。

描述
s小尺寸样式。
m中尺寸样式。
simple简单样式。
stable稳定样式。会给所有按钮添加一个最小宽度以使布局更加稳定,多行之间更容易对齐。
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 字段组成的数组。

图标

名称描述
check已选标志。
在 GitHub 上编辑此页面编辑
© Baidu, Inc. 2023