Skip to content

级联选择

级联选择器用于从一组相关联的数据集合中进行选择。

基础用法

ts
const config = {
  type: 'cascader',
  formItem: {
    label: '地区'
  },
  cascader: {
    options: [
      {
        value: 'zhejiang',
        label: '浙江',
        children: [
          {
            value: 'hangzhou',
            label: '杭州',
            children: [
              {
                value: 'xihu',
                label: '西湖'
              }
            ]
          }
        ]
      }
    ],
    placeholder: '请选择地区'
  }
}

API

属性说明类型默认值
defaultValue默认值string[] | number[]-
value(v-model)string[] | number[]-
options可选项数据源Option[]-
placeholder输入框占位文本string-
size输入框大小'large' | 'default' | 'small''default'
disabled禁用booleanfalse
allowClear是否支持清除booleantrue
showSearch在选择框中显示搜索框boolean | objectfalse
changeOnSelect(单选时生效)当此项为 true 时,点选每级菜单选项值都会发生变化booleanfalse
expandTrigger次级菜单的展开方式'click' | 'hover''click'

其它属性请参考 Ant Design Vue Cascader

ts
interface Option {
  value: string | number
  label: string
  disabled?: boolean
  children?: Option[]
}

interface ShowSearch {
  filter: (inputValue: string, path: Option[]) => boolean
  limit: number | false
  matchInputWidth: boolean
  render: (inputValue: string, path: Option[]) => VNode
  sort: (a: Option, b: Option) => number
}

更多属性请参考 Ant Design Vue Cascader

示例

vue
<script setup lang="ts">
const columns = [
  {
    title: '地区',
    dataIndex: 'area',
    edit: {
      type: 'cascader',
      formItem: {
        required: true
      },
      cascader: {
        options: [
          {
            value: 'zhejiang',
            label: '浙江',
            children: [
              {
                value: 'hangzhou',
                label: '杭州',
                children: [
                  {
                    value: 'xihu',
                    label: '西湖'
                  }
                ]
              }
            ]
          }
        ],
        showSearch: true,
        changeOnSelect: true,
        placeholder: '请选择地区'
      }
    }
  }
]
</script>

根据 Apache-2.0 许可发布。