多选框组 Pro
对多选框组进行扩展。
基础用法
size="small"
size="default"
size="large"
示例代码
vue
<script setup>
import { ref, reactive } from 'vue'
import { ProCheckboxGroup } from '../../../../packages/components'
import 'element-plus/dist/index.css'
const state = reactive({
checkboxValue1: [],
checkboxValue2: [],
checkboxValue3: [],
checkboxData: [
{ label: '北京', value: 'beijing' },
{ label: '上海', value: 'shanghai' },
{ label: '广州', value: 'guangzhou' },
{ label: '杭州', value: 'hangzhou' }
]
})
</script>
<template>
<h4>size="small"</h4>
<ProCheckboxGroup :data="state.checkboxData" v-model="state.checkboxValue1" size="small" />
<h4>size="default"</h4>
<ProCheckboxGroup :data="state.checkboxData" v-model="state.checkboxValue2" size="default" />
<h4>size="large"</h4>
<ProCheckboxGroup :data="state.checkboxData" v-model="state.checkboxValue3" size="large" />
</template>
<style lang="scss" scoped>
h4 {
padding: 15px 0;
}
</style>按钮样式
size="small"
size="default"
size="large"
示例代码
vue
<script setup>
import { ref, reactive } from 'vue'
import { ProCheckboxGroup } from '../../../../packages/components'
import 'element-plus/dist/index.css'
const state = reactive({
checkboxValue1: [],
checkboxValue2: [],
checkboxValue3: [],
checkboxData: [
{ label: '北京', value: 'beijing' },
{ label: '上海', value: 'shanghai' },
{ label: '广州', value: 'guangzhou' },
{ label: '杭州', value: 'hangzhou' }
]
})
</script>
<template>
<h4>size="small"</h4>
<ProCheckboxGroup
:data="state.checkboxData"
v-model="state.checkboxValue1"
size="small"
checkbox-type="button"
/>
<h4>size="default"</h4>
<ProCheckboxGroup
:data="state.checkboxData"
v-model="state.checkboxValue2"
size="default"
checkbox-type="button"
/>
<h4>size="large"</h4>
<ProCheckboxGroup
:data="state.checkboxData"
v-model="state.checkboxValue3"
size="large"
checkbox-type="button"
/>
</template>
<style lang="scss" scoped>
h4 {
padding: 15px 0;
}
</style>显示&禁用
基础控制
display: true | false
disabled: true | false
动态控制
display: function (checkbox) { ... return true | false }
disabled: function (checkbox) { ... return true | false }
整体禁用
disabled: true | false
示例代码
vue
<script setup>
import { ref, reactive } from 'vue'
import { ProCheckboxGroup } from '../../../../packages/components'
import 'element-plus/dist/index.css'
const state = reactive({
// 基础控制
checkboxValue1: [],
checkboxData1: [
{ label: '北京', value: 'beijing', display: false },
{ label: '上海', value: 'shanghai', disabled: true },
{ label: '广州', value: 'guangzhou' },
{ label: '杭州', value: 'hangzhou' }
],
// 动态控制
checkboxValue2: [],
checkboxData2: [
{ label: '北京', value: 'beijing', display: (checkbox) => false },
{ label: '上海', value: 'shanghai', disabled: (checkbox) => true },
{ label: '广州', value: 'guangzhou' },
{ label: '杭州', value: 'hangzhou' }
],
// 整体禁用
checkboxValue3: [],
checkboxData3: [
{ label: '北京', value: 'beijing' },
{ label: '上海', value: 'shanghai' },
{ label: '广州', value: 'guangzhou' },
{ label: '杭州', value: 'hangzhou' }
]
})
</script>
<template>
<h4>基础控制</h4>
<p>display: true | false</p>
<p>disabled: true | false</p>
<ProCheckboxGroup :data="state.checkboxData1" v-model="state.checkboxValue1" size="small" />
<h4>动态控制</h4>
<p>display: function (checkbox) { ... return true | false }</p>
<p>disabled: function (checkbox) { ... return true | false }</p>
<ProCheckboxGroup :data="state.checkboxData2" v-model="state.checkboxValue2" size="default" />
<h4>整体禁用</h4>
<p>disabled: true | false</p>
<ProCheckboxGroup
:data="state.checkboxData3"
v-model="state.checkboxValue3"
size="default"
disabled
/>
</template>
<style lang="scss" scoped>
h4 {
padding: 25px 0 0;
}
</style>事件
ProCheckboxGroup API
| 属性 | 说明 | 类型 | 默认值 |
|---|---|---|---|
| model-value/v-model | 绑定值 | Array | - |
| checkbox-type | 多选框类型 | String: button、default | default |
| size | 多选框大小 | String: large、default、small | - |
| disabled | 多选框组整体禁用 | Boolean | false |
| min | 可被勾选的 checkbox 的最小数量 | Number | - |
| max | 可被勾选的 checkbox 的最大数量 | Number | - |
| label | 为屏幕阅读器准备的标签 | String | - |
| text-color | 当按钮为活跃状态时的字体颜色 | String | #ffffff |
| fill | 当按钮为活跃状态时的边框和背景颜色 | String | #409EFF |
| tag | 复选框组元素标签 | String | div |
| validate-event | 是否触发表单的校验 | Boolean | true |
| data | 多选框配置数据 [详见【Checkbox API】] | Array[Object] | [] |
Checkbox API
| 属性 | 说明 | 类型 | 默认值 |
|---|---|---|---|
| value | 多选框的值 | String Number Boolean Object | - |
| label | 多选框文本 | String Number Boolean Object | - |
| true-value | 选中时的值 | String Number | - |
| false-value | 没有选中时的值 | String Number | - |
| true-label | 选中时的值 | String Number | - |
| false-label | 没有选中时的值 | String Number | - |
| border | 是否显示边框 | Boolean | false |
| size | 多选框大小 | String: large、default、small | - |
| name | 原生 name 属性 | String | - |
| checked | 当前是否勾选 | Boolean | false |
| indeterminate | 设置不确定状态,仅负责样式控制 | Boolean | false |
| validate-event | 输入时是否触发表单的校验 | Boolean | true |
| tabindex | 输入框的 tabindex | String Number | - |
| id | input id | String | false |
| controls | 与aria-control一致, 当indeterminate为true时生效 | Boolean | - |
| display | 多选框显示控制 | Boolean: true | falseFunction: (data) => Boolean | true |
| disabled | 多选框禁用控制 | Boolean: true | falseFunction: (data) => Boolean | false |