单选可取消选中
vue
<template>
<view style="padding: 40rpx;">
<ex-btn-select
:list="list"
v-model="value"
@itemClick="itemClick"
></ex-btn-select>
</view>
</template>
<script>
export default {
data() {
return {
value: 1,
list: [
{
label: "单选1",
value: 1,
},
{
label: "单选2",
value: 2,
},
{
label: "禁用3",
value: 3,
disabled: true,
},
{
label: "禁用4",
value: 4,
disabled: true,
},
{
label: "单选5",
value: 5,
},
{
label: "单选5",
value: 6,
},
],
};
},
methods: {
itemClick(a) {
console.log(a, "单选点击---------------------");
},
},
};
</script>单选不可取消选中
vue
<template>
<view style="padding: 40rpx;">
<ex-btn-select
:list="list"
v-model="value"
:cancelSelectItem="false"
></ex-btn-select>
</view>
</template>
<script>
export default {
data() {
return {
value: 1,
list: [
{
label: "单选1",
value: 1,
},
{
label: "单选2",
value: 2,
},
{
label: "禁用3",
value: 3,
disabled: true,
},
{
label: "禁用4",
value: 4,
disabled: true,
},
{
label: "单选5",
value: 5,
},
{
label: "单选5",
value: 6,
},
],
};
},
};
</script>基础多选
vue
<template>
<view style="padding: 40rpx;">
<ex-btn-select
:list="list"
v-model="value"
@itemClick="itemClick"
:maxNum="3"
multiple
></ex-btn-select>
</view>
</template>
<script>
export default {
data() {
return {
value: [1, 2],
list: [
{
label: "多选1",
value: 1,
},
{
label: "多选2",
value: 2,
},
{
label: "禁用3",
value: 3,
disabled: true,
},
{
label: "禁用4",
value: 4,
disabled: true,
},
{
label: "多选5",
value: 5,
},
{
label: "多选5",
value: 6,
},
],
};
},
methods: {
itemClick(a) {
console.log(a, "多选点击---------------------");
},
},
};
</script>自定义插槽内容
vue
<template>
<view style="padding: 40rpx;">
<ex-btn-select :list="list" v-model="value" @itemClick="itemClick">
<template v-slot:default="{ item, index }">
<view style="display: flex; align-items: center;">
<ex-icon color="red" name="radio-checked"></ex-icon>
<text>{{ item.label }}</text>
</view>
</template>
</ex-btn-select>
</view>
</template>
<script>
export default {
data() {
return {
value: 1,
list: [
{
label: "单选1",
value: 1,
},
{
label: "单选2",
value: 2,
},
{
label: "禁用3",
value: 3,
disabled: true,
},
{
label: "禁用4",
value: 4,
disabled: true,
},
{
label: "单选5",
value: 5,
},
{
label: "单选5",
value: 6,
},
],
};
},
methods: {
itemClick(a) {
console.log(a, "单选点击---------------------");
},
},
};
</script>属性
| 属性名 | 类型 | 默认值 | 可选值 | 说明 |
|---|---|---|---|---|
| list | Array | 按钮选项数组 | ||
| props | Object | { label: 'label',value: 'value' } | 配置项 | |
| multiple | Boolean | false | true,false | 按钮是否多选 |
| maxNum | Number | Infinity | 最大选中数量, 仅多选有效 | |
| maxNumToast | String | 超出最大选中数量 | 超出最大选中数量的提示信息 | |
| cancelSelectItem | Boolean | true | true,false | 已选中的选项再次点击的时候能否取消选中,默认 true |
| disabledArr | Array | [] | 禁用选项 | |
| lineNumber | Number | 3 | 每行按钮个数 | |
| gap | String | 12px | 按钮间距 | |
| selectedStyle | Object | {background: '#409eff',color: '#FFFFFF',borderColor: '#409eff'} | 自定义按钮选中样式 | |
| unSelectedStyle | Object | {background: '#F5F5F5', color: '#4D4D4D',borderColor: '#F5F5F5'} | 自定义按钮未选中样式 | |
| disabledStyle | Object | {background: '#e9e9eb',color: '#bcbec2',borderColor: '#e9e9eb'} | 按钮禁用的样式 | |
| showBadge | Boolean | false | 是否显示选中角标 | |
| badgePosition | String | top | top,bottom | 选中角标的位置 |
| badgeSize | String | 16px | 角标的大小 | |
| badgeColor | String | #cdcdcd | 角标默认颜色 | |
| badgeSelectedColor | String | #409eff | 角标选中颜色 | |
| badgeDisabledColor | String | #bcbec2 | 角标禁用颜色 |
list 配置项
| 属性名 | 类型 | 默认值 | 可选值 | 说明 |
|---|---|---|---|---|
| label | String,Number | 显示的字段 ke | ||
| value | 绑定的 key | |||
| disabled | Boolean | false | 是否禁用选项 true 禁用 |
事件
| 事件名 | 说明 |
|---|---|
| itemClick | 选项点击事件 |
