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: [
          // ...
        ]
      }
    }
  ]
}