Skip to content

单选可取消选中

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>

属性

属性名类型默认值可选值说明
listArray按钮选项数组
propsObject{ label: 'label',value: 'value' }配置项
multipleBooleanfalsetrue,false按钮是否多选
maxNumNumberInfinity最大选中数量, 仅多选有效
maxNumToastString超出最大选中数量超出最大选中数量的提示信息
cancelSelectItemBooleantruetrue,false已选中的选项再次点击的时候能否取消选中,默认 true
disabledArrArray[]禁用选项
lineNumberNumber3每行按钮个数
gapString12px按钮间距
selectedStyleObject{background: '#409eff',color: '#FFFFFF',borderColor: '#409eff'}自定义按钮选中样式
unSelectedStyleObject{background: '#F5F5F5', color: '#4D4D4D',borderColor: '#F5F5F5'}自定义按钮未选中样式
disabledStyleObject{background: '#e9e9eb',color: '#bcbec2',borderColor: '#e9e9eb'}按钮禁用的样式
showBadgeBooleanfalse是否显示选中角标
badgePositionStringtoptop,bottom选中角标的位置
badgeSizeString16px角标的大小
badgeColorString#cdcdcd角标默认颜色
badgeSelectedColorString#409eff角标选中颜色
badgeDisabledColorString#bcbec2角标禁用颜色

list 配置项

属性名类型默认值可选值说明
labelString,Number显示的字段 ke
value绑定的 key
disabledBooleanfalse是否禁用选项 true 禁用

事件

事件名说明
itemClick选项点击事件