Skip to content

Checkbox 复选框

复选框组件一般用于需要多个选择的场景。该组件功能完整,使用方便。

平台差异说明

AppH5微信小程序支付宝小程序百度小程序头条小程序QQ小程序
兼容中兼容中兼容中兼容中

基本使用

该组件无需强制搭配tn-checkbox-group组件使用(视情况而定),可以单个独立使用tn-checkbox组件。

复选框设置对应值的方式有两种:

  • 通过v-modeltn-checkbox绑定一个变量,这个绑定的变量是双向的(初始值只能是true或者false)。
  • 通过v-modeltn-checkbox-group绑定一个数组,该数组的变量时双向的(数组中的值是被选中选项的名称)。
vue
<template>
  <view class="">
    <tn-checkbox-group @change="checkboxGroupChange">
      <tn-checkbox @change="checkboxChange" v-model="item.checked" v-for="(item, index) in list" :key="index"
        :name="item.name">{{item.name}}</tn-checkbox>
    </tn-checkbox-group>
    <tn-checkbox-group v-model="defaultCheckValue" @change="checkboxGroupChange">
      <tn-checkbox @change="checkboxChange" v-for="(item, index) in list" :key="index"
        :name="item.name">{{item.name}}</tn-checkbox>
    </tn-checkbox-group>
    <tn-button @click="checkedAll">全选</tn-button>
  </view>
</template>

<script>
  export default {
    data() {
      return {
        list: [{
            name: 'apple',
            checked: true,
            disabled: false
          },
          {
            name: 'banner',
            checked: false,
            disabled: false
          },
          {
            name: 'orange',
            checked: true,
            disabled: false
          }
        ],
        defaultCheckValue: ['apple','orange']
      }
    },
    methods: {
      // 选中某个复选框时,由checkbox时触发
      checkboxChange(e) {
        //console.log(e);
      },
      // 选中任一checkbox时,由checkbox-group触发
      checkboxGroupChange(e) {
        // console.log(e);
      },
      // 全选
      checkedAll() {
        this.list.map(val => {
          val.checked = true
        })
        this.defaultCheckValue = this.list.map(val => {
          return val.name
        })
      }
    }
  };
</script>

自定义选框形状

通过设置shapesquare或者circle,将复选框设置为方形或者圆形。

vue
<tn-checkbox-group>
	<tn-checkbox v-model="checked" shape="circle">圆形</tn-checkbox>
    <tn-checkbox v-model="checked" shape="square">方形</tn-checkbox>
</tn-checkbox-group>

自定义选中颜色

这里设置的是tn-checkbox的选框的背景颜色,设置activeColor参数进行配置。

vue
<tn-checkbox-group>
	<tn-checkbox v-model="checked" activeColor="#AAAAAA">图鸟科技</tn-checkbox>
</tn-checkbox-group>

文本是否可以点击

通过设置disabledLabel可以配置点击文本是否。

vue
<tn-checkbox-group>
	<tn-checkbox v-model="checked" :disabledLabel="true">文本不可以点击</tn-checkbox>
</tn-checkbox-group>

禁用Checkbox

设置disabledtrue,即可禁用某个组件,让用户无法点击,禁用分为两种状态,一是未勾选前禁用,这时只显示一个灰色的区域。二是已勾选后 再禁用,会有灰色的已勾选的图标,但此时依然是不可操作的。

vue
<tn-checkbox-group>
	<tn-checkbox v-model="checked" :disabled="true">不可被选中</tn-checkbox>
</tn-checkbox-group>

API

Checkbox-group Props

属性名说明类型默认值可选值
v-model用于双向绑定复选框被选中的值,数组中的值为checkbox对应的名称Array--
max最多允许选中的checkbox数量Number999-
name表单提交时的标识符String--
disabled禁用选择可选框Booleanfalsetrue
disabledLabel禁止点击标签选择选项Booleanfalsetrue
shape可选框的形状Stringsquarecircle
activeColor选中后选框的背景颜色String#01BEFF-
sizecheckbox的整体大小,单位rpxNumber34-
width每个checkbox占用的宽度Stringauto-
wrap换行显示checkboxBooleanfalsetrue
iconSize图标大小,单位rpxNumber20-

Checkbox-group Slots

名称说明
default用于存放checkbox组件

Checkbox-group Event

事件名称说明回调参数
inputcheckbox选择状态发生改变时触发Array:[元素为被选中的checkboxname]
change任意checkbox的状态发生改变触发Array:[元素为被选中的checkboxname]

Checkbox Props

注意tn-checkboxtn-checkbox-group二者同名参数中,tn-checkbox的参数优先级比较高。

属性名说明类型默认值可选值
v-model用于双向绑定复选框被选状态,如果将该变量设置为true,将会被选中Booleanfalsetrue
namecheckbox组件标识名称String|Number--
disabled禁用选择可选框Booleanfalsetrue
disabledLabel禁止点击标签选择选项Booleanfalsetrue
shape可选框的形状Stringsquarecircle
activeColor选中后选框的背景颜色String#01BEFF-
sizecheckbox的整体大小,单位rpxNumber34-
labelSizelabel标签的字体大小,单位rpxNumber30-
wrap换行显示checkboxBooleanfalsetrue
iconName选框中的图标名称,使用TuniaoUI内置的图标名称Stringsuccess-
iconSize图标大小,单位rpxNumber20-

Checkbox Slots

名称说明
defaultcheckboxLabel的名称

Checkbox Event

事件名称说明回调参数
change任意checkbox的状态发生改变触发Object: {value: [true或者false,true为被选中,否则反之], name: [通过props传递的name参数] }