• 引入
  • 代码演示
    • 基本
  • API
    • TabPicker 参数
    • TabPicker 实例方法
      • getSelectedValues()
      • getSelectedOptions()
    • TabPicker 事件
      • @select(data)
      • @change(data)
      • @show()
      • @hide()
    • TabPicker 插槽
  • 附录

    TabPicker 多级联动选择器

    Scan me!

    底部级联选择的tab切换面板

    引入

    1. import { TabPicker } from 'mand-mobile'
    2. Vue.component(TabPicker.name, TabPicker)

    代码演示

    基本

    TabPicker 多频道选择器 - 图2

    1. <template>
    2. <div class="md-example-child md-example-child-tab-picker md-example-child-tab-picker-0">
    3. <md-field title="地址">
    4. <md-field-item
    5. title="联系地址"
    6. arrow="arrow-right"
    7. @click="show = !show"
    8. placeholder="请选择联系地址"
    9. :content="addressStr"
    10. solid
    11. />
    12. </md-field>
    13. <md-tab-picker
    14. title="请选择"
    15. describe="请选择您所在的省份、城市、区县"
    16. large-radius
    17. :data="data"
    18. v-model="show"
    19. @change="handleChange"
    20. />
    21. </div>
    22. </template>
    23. <script>
    24. import {Field, FieldItem, TabPicker} from 'mand-mobile'
    25. import data from 'mand-mobile/components/tab-picker/demo/data'
    26. export default {
    27. name: 'tab-bar-demo',
    28. components: {
    29. [Field.name]: Field,
    30. [FieldItem.name]: FieldItem,
    31. [TabPicker.name]: TabPicker,
    32. },
    33. data() {
    34. return {
    35. show: false,
    36. address: [],
    37. data: data,
    38. }
    39. },
    40. computed: {
    41. addressStr() {
    42. return this.address.map(item => item.label).join(' ')
    43. },
    44. },
    45. methods: {
    46. handleChange({options}) {
    47. this.address = options
    48. },
    49. },
    50. }
    51. </script>
    52.  

    API

    TabPicker 参数

    属性说明类型默认值备注
    v-model控制显示或隐藏Booleanfalse-
    default-value默认值Array[]-
    data数据源Array[]数据格式参考附录
    title弹窗标题String--
    describe弹窗描述文本String--
    placeholder默认提示文本String请选择-
    mask-closable点击蒙层是否可关闭弹出层Booleantrue-

    TabPicker 实例方法

    getSelectedValues()

    获取所有面板选中项的值

    ['value1', 'value2', 'value3']
    getSelectedOptions()

    获取所有面板选中项对象

    [
      { value: 'value1', label: 'Item1' },
      { value: 'value2', label: 'Item2' },
      // ...
    ]

    TabPicker 事件

    @select(data)

    选项选中事件

    // data对象
    {
      index: 0,
      value: 'value1',
      options: { value: 'value1', label: 'Item1' }
    }
    @change(data)

    底部弹窗选中事件

    // data对象
    {
      values: ['value1', 'value2', 'value3'],
      options: [
        { value: 'value1', label: 'Item1' },
        { value: 'value2', label: 'Item2' },
        // ...
      ]
    }
    @show()

    底部弹窗弹层展示事件

    @hide()

    底部弹窗弹层隐藏事件

    TabPicker 插槽

    选项插槽自定义

    <md-tab-picker>
      <div slot="item" scoped-slot="{ option }">
        Hello, {{option.label}}
      </div>
    </md-tab-picker>

    附录

    • 级联数据源数据格式
    {
      // 唯一键名
      name: '',
      // 面板标签
      label: '',
      // 选项列表
      options: [
        {
          // 选项值
          value: "",
          // 选项标签
          label: "",
          // 级联子面板
          children: {
            name: '',
            label: '',
            options: [
              // ...
            ]
          }
        }
      ]
    }