Checkbox 多选框

代码演示

基础用法

简单的是非选择,可以使用 checkbox 组件。

查看代码 < />

<template>
  <w-checkbox v-model="value">今日就诊</w-checkbox>
</template>
<script>
  export default {
    data () {
      return {
          value: true
      }
    }
  }
</script>
( value的当前值:b )

绑定true-value、false-value

value默认情况下是取e.target.checked的值,取值范围为true或false,如果你期望自定义选中与未选中时的值,可以传入true-value,false-value。

查看代码 < />

<template>
  <w-checkbox v-model="value"
    true-value="a" false-value="b">
    今日就诊
  </w-checkbox>
</template>
<script>
  export default {
    data () {
      return {
          value: 'b'
      }
    }
  }
</script>

禁用状态

为组件添加 disabled 属性即可禁用多选框。

查看代码 < />

<template>
  <w-checkbox v-model="value1" disabled>今日就诊</w-checkbox>
  <w-checkbox v-model="value2" disabled>我的患者</w-checkbox>

  <br />
  <w-checkbox-group v-model="value" style="margin-top: 16px;" disabled>
    <w-checkbox :label="1">我的患者</w-checkbox>
    <w-checkbox :label="2">本科室</w-checkbox>
    <w-checkbox :label="3">本地区</w-checkbox>
    <w-checkbox :label="4">本省市</w-checkbox>
    <w-checkbox :label="5">其他地区</w-checkbox>
  </w-checkbox-group>
</template>
<script>
  export default {
    data () {
      return {
          value: [1, 2, 3],
          value1: false,
          value2: true
      }
    }
  }
</script>

多选框组

使用w-checkbox-group组件包裹w-checkbox的形式就可以形成一个多选框组。

查看代码 < />

<template>
  <w-checkbox-group v-model="value">
    <w-checkbox :label="1">我的患者</w-checkbox>
    <w-checkbox :label="2">本科室</w-checkbox>
    <w-checkbox :label="3">本地区</w-checkbox>
    <w-checkbox :label="4" disabled>本省市</w-checkbox>
    <w-checkbox :label="5" disabled>其他地区</w-checkbox>
  </w-checkbox-group>
</template>
<script>
  export default {
    data () {
      return {
          value: [1, 2, 5]
      }
    }
  }
</script>

全选

使用indeterminate属性可以实现全选效果。

查看代码 < />

<template>
  <div>
    <div style="margin-bottom: 15px;">
      <w-checkbox v-model="checkAll"
        :indeterminate="indeterminate"
        @change="handleCheckAllChange">全选</w-checkbox>
    </div>
    <w-checkbox-group v-model="checked" @change="handleCheckGroupChange">
      <w-checkbox v-for="(o, index) in options"
        :key="index" :label="o.label">{{o.value}}</w-checkbox>
    </w-checkbox-group>
  </div>
</template>
<script>
  export default {
    data () {
      return {
        checkAll: false,
        indeterminate: true,
        checked: [1, 2],
        options: [{
          label: 1,
          value: '我的患者'
        }, {
          label: 2,
          value: '本科室'
        }, {
          label: 3,
          value: '本地区'
        }]
      }
    },
    methods: {
      handleCheckAllChange (val) {
        this.indeterminate = false
        this.checked = val ? this.options.map(item => item.label) : []
      },
      handleCheckGroupChange (val) {
        let checkedCount = val.length
        this.checkAll = this.options.length === checkedCount
        this.indeterminate = checkedCount > 0 && checkedCount < this.options.length
      }
    }
  }
</script>

有边框的多选框

为 w-checkbox组件添加 border属性即可让多选框拥有描边效果。

查看代码 < />

<template>
  <w-checkbox-group v-model="value">
    <w-checkbox :label="1" border>正在就诊</w-checkbox>
    <w-checkbox :label="2" border>未就诊</w-checkbox>
    <w-checkbox :label="3" border disabled>已就诊</w-checkbox>
  </w-checkbox-group>
</template>
<script>
  export default {
    data () {
      return {
          value: [1]
      }
    }
  }
</script>

按钮样式

w-checkbox-group包裹w-checkbox-button组件可以组成按钮样式的多选框组。

查看代码 < />

<template>
  <w-checkbox-group v-model="value0" size="large" plain discrete>
    <w-checkbox-button :label="1">我的患者</w-checkbox-button>
    <w-checkbox-button :label="2">本科室</w-checkbox-button>
    <w-checkbox-button :label="3">本地区</w-checkbox-button>
    <w-checkbox-button :label="4" disabled>本省市</w-checkbox-button>
    <w-checkbox-button :label="5">其他地区</w-checkbox-button>
  </w-checkbox-group>
  <w-checkbox-group v-model="value" size="large" plain>
    <w-checkbox-button :label="1">我的患者</w-checkbox-button>
    <w-checkbox-button :label="2">本科室</w-checkbox-button>
    <w-checkbox-button :label="3">本地区</w-checkbox-button>
    <w-checkbox-button :label="4" disabled>本省市</w-checkbox-button>
    <w-checkbox-button :label="5">其他地区</w-checkbox-button>
  </w-checkbox-group>
  <w-checkbox-group v-model="value2" size="medium">
    <w-checkbox-button :label="1">我的患者</w-checkbox-button>
    <w-checkbox-button :label="2">本科室</w-checkbox-button>
    <w-checkbox-button :label="3">本地区</w-checkbox-button>
    <w-checkbox-button :label="4">本省市</w-checkbox-button>
    <w-checkbox-button :label="5" disabled>其他地区</w-checkbox-button>
  </w-checkbox-group>
  <w-checkbox-group v-model="value3" size="small">
    <w-checkbox-button :label="1">我的患者</w-checkbox-button>
    <w-checkbox-button :label="2">本科室</w-checkbox-button>
    <w-checkbox-button :label="3">本地区</w-checkbox-button>
    <w-checkbox-button :label="4">本省市</w-checkbox-button>
    <w-checkbox-button :label="5">其他地区</w-checkbox-button>
  </w-checkbox-group>
  <w-checkbox-group v-model="value4" size="mini">
    <w-checkbox-button :label="1">我的患者</w-checkbox-button>
    <w-checkbox-button :label="2">本科室</w-checkbox-button>
    <w-checkbox-button :label="3">本地区</w-checkbox-button>
    <w-checkbox-button :label="4">本省市</w-checkbox-button>
    <w-checkbox-button :label="5">其他地区</w-checkbox-button>
  </w-checkbox-group>
</template>
<script>
  export default {
    data () {
      return {
          value0: [1],
          value: [1, 2],
          value2: [1, 5],
          value3: [1],
          value4: [1]
      }
    }
  }
</script>

圆角按钮样式

为w-checkbox-group添加round属性, 可以让按钮样式变为圆角形式.

查看代码 < />

<template>
  <w-checkbox-group v-model="value0" size="large" round discrete>
    <w-checkbox-button :label="1">我的患者</w-checkbox-button>
    <w-checkbox-button :label="2">本科室</w-checkbox-button>
    <w-checkbox-button :label="3">本地区</w-checkbox-button>
    <w-checkbox-button :label="4" disabled>本省市</w-checkbox-button>
    <w-checkbox-button :label="5">其他地区</w-checkbox-button>
  </w-checkbox-group>
  <w-checkbox-group v-model="value" size="large" round>
    <w-checkbox-button :label="1">我的患者</w-checkbox-button>
    <w-checkbox-button :label="2">本科室</w-checkbox-button>
    <w-checkbox-button :label="3">本地区</w-checkbox-button>
    <w-checkbox-button :label="4" disabled>本省市</w-checkbox-button>
    <w-checkbox-button :label="5">其他地区</w-checkbox-button>
  </w-checkbox-group>
  <w-checkbox-group v-model="value2" size="medium" round>
    <w-checkbox-button :label="1">我的患者</w-checkbox-button>
    <w-checkbox-button :label="2">本科室</w-checkbox-button>
    <w-checkbox-button :label="3">本地区</w-checkbox-button>
    <w-checkbox-button :label="4">本省市</w-checkbox-button>
    <w-checkbox-button :label="5" disabled>其他地区</w-checkbox-button>
  </w-checkbox-group>
  <w-checkbox-group v-model="value3" size="small" round>
    <w-checkbox-button :label="1">我的患者</w-checkbox-button>
    <w-checkbox-button :label="2">本科室</w-checkbox-button>
    <w-checkbox-button :label="3">本地区</w-checkbox-button>
    <w-checkbox-button :label="4">本省市</w-checkbox-button>
    <w-checkbox-button :label="5">其他地区</w-checkbox-button>
  </w-checkbox-group>
  <w-checkbox-group v-model="value4" size="mini" round>
    <w-checkbox-button :label="1">我的患者</w-checkbox-button>
    <w-checkbox-button :label="2">本科室</w-checkbox-button>
    <w-checkbox-button :label="3">本地区</w-checkbox-button>
    <w-checkbox-button :label="4">本省市</w-checkbox-button>
    <w-checkbox-button :label="5">其他地区</w-checkbox-button>
  </w-checkbox-group>
</template>
<script>
  export default {
    data () {
      return {
          value0: [1],
          value: [1, 2],
          value2: [1, 5],
          value3: [1],
          value4: [1]
      }
    }
  }
</script>

可选个数限制

为组件添加 max 和 min 属性即可限制多选框的选择项目数的上限与下限。

查看代码 < />

<template>
  <w-checkbox-group v-model="multiple" :max="3" :min="1">
    <w-checkbox :label="1">病历</w-checkbox>
    <w-checkbox :label="2">检验</w-checkbox>
    <w-checkbox :label="3">检查</w-checkbox>
    <w-checkbox :label="4">处方</w-checkbox>
  </w-checkbox-group>
</template>
<script>
  export default {
    data () {
      return {
          multiple: [1]
      }
    }
  }
</script>

API

Checkbox 、Checkbox-Button Attributes

参数 说明 类型 可选值 默认值 Version
border 是否加边框样式(仅checkbox生效) Boolean false
checked 当前是否勾选 Boolean false
disabled 是否禁用 Boolean false
false-value 多选框未被选中时的值 String / Number v1.4.4
label 选中值(只有在checkbox-group时有效) String / Number / Boolean
name 原生 name 属性 String
true-value 多选框被选中时的值 String / Number v1.4.4
value / v-model 绑定值 String / Boolean / Number

Checkbox 、Checkbox-Button Events

事件名称 说明 回调参数
change 当绑定值变化时触发的事件 更新后的值

Checkbox-Group Attributes

参数 说明 类型 可选值 默认值 Version
discrete 按钮组是否离散(按钮不相连) Boolean v1.7.10
disabled 是否禁用 Boolean false v1.7.12
max 可被勾选的最大项数 Number
min 可被勾选的最小项数 Number
plain 轻量级按钮组 Boolean v1.5.1
round 圆角按钮样式(仅按钮样式组可用) Boolean v1.5.0
value / v-model 绑定值 Array

Checkbox-Group Events

事件名称 说明 回调参数 Version
change 当绑定值变化时触发的事件 更新后的值

贡献者

类型 参与者
设计者 UED视觉组
维护者 UED前端组
上次更新: 12/23/2020, 2:14:59 PM