Select 选择器

一、概述

定义

下拉选择器,用户通过下拉选项,选择需要的选项。

使用场景

  • 弹出一个下拉选项给用户选择操作

  • 当选项少时(少于 5 项),建议直接将选项平铺,使用 Radio

类型

  • 大选择器

  • 中选择器

  • 小选择器

二、大选择器

适用于展示区域较大,同时选择操作重要度高时。

交互说明

  • 用户激活选择框,出现选项浮层
  • 选择选项后,选项浮层收起,选择操作完成

Select 选择器 - 图1

  1. <template>
  2. <div class="se-select-wrap">
  3. <se-select size="large" v-model="value">
  4. <se-option
  5. v-for="(option, index) in options"
  6. :key="index"
  7. :value="option.value"
  8. :label="option.label"
  9. ></se-option>
  10. </se-select>
  11. </div>
  12. </template>
  13. <script>
  14. export default {
  15. data() {
  16. return {
  17. options: [
  18. {
  19. value: 'bj',
  20. label: '北京'
  21. },
  22. {
  23. value: 'xz',
  24. label: '深圳'
  25. },
  26. {
  27. value: 'gz',
  28. label: '广州'
  29. },
  30. {
  31. value: 'sh',
  32. label: '上海'
  33. }
  34. ],
  35. value: ''
  36. }
  37. },
  38. watch: {
  39. value() {
  40. console.log(this.value)
  41. }
  42. }
  43. }
  44. </script>

三、中选择器

用户非重要功能的选择项,该按钮操作在页面层级中的重要程度不高,亦或使用大按钮会扰乱用户阅读信息,可用中选择器替代。

交互说明

  • 用户激活选择框,出现选项浮层
  • 选择选项后,选项浮层收起,选择操作完成

Select 选择器 - 图2

<template>
  <div class="se-select-wrap">
    <se-select v-model="value">
      <se-option
        v-for="(option, index) in options"
        :key="index"
        :value="option.value"
        :label="option.label"
      ></se-option>
    </se-select>
  </div>
</template>

<script>
  export default {
    data() {
      return {
        options: [
          {
            value: 'bj',
            label: '北京'
          },
          {
            value: 'xz',
            label: '深圳'
          },
          {
            value: 'gz',
            label: '广州'
          },
          {
            value: 'sh',
            label: '上海'
          }
        ],
        value: ''
      }
    },
    watch: {
      value() {
        console.log(this.value)
      }
    }
  }
</script>

四、小选择器

用于内容区域较小的地方。

Select 选择器 - 图3

<template>
  <div class="se-select-wrap">
    <se-select v-model="value" size="mini">
      <se-option
        v-for="(option, index) in options"
        :key="index"
        :value="option.value"
        :label="option.label"
      ></se-option>
    </se-select>
  </div>
</template>

<script>
  export default {
    data() {
      return {
        options: [
          {
            value: 'bj',
            label: '北京'
          },
          {
            value: 'xz',
            label: '深圳'
          },
          {
            value: 'gz',
            label: '广州'
          },
          {
            value: 'sh',
            label: '上海'
          }
        ],
        value: ''
      }
    },
    watch: {
      value() {
        console.log(this.value)
      }
    }
  }
</script>

交互说明

  • 用户激活选择框,出现选项浮层
  • 选择选项后,选项浮层收起,选择操作完成

Select Props

属性类型默认值必填说明
value / v-modelboolean / string / number绑定值
disabledbooleanfalse是否禁用
sizelarge / default / smalldefault输入框尺寸
placeholderstring请选择占位符

Select Events

事件名称描述回调函数参数
change选中值发生变化时触发目前的选中值
visibility-change下拉框出现/隐藏时触发出现则为 true,隐藏则为 false
blur当 input 失去焦点时触发(event: Event)
focus当 input 获得焦点时触发(event: Event)

Option Props

属性类型说明
valueboolean / string / number选项的值
labelboolean / string / number选项的标签,若不设置则默认与 value 相同