Skip to content

Transfer 穿梭框

规则

js
{
    type:"aTransfer",
    title:"树形选择",
    field:"transfer",
    modelField:"selectedKeys",
    value:[],
    props:{
        titles:['Source', 'Target'],
        render: (item) => item.label
        dataSource:[{
            value: 'beijing',
            label: '北京',
            children: [
                {
                    value: 'gugong',
                    label: '故宫'
                },
                {
                    value: 'tiantan',
                    label: '天坛'
                },
                {
                    value: 'wangfujing',
                    label: '王府井'
                }
            ]
        }, {
            value: 'jiangsu',
            label: '江苏',
            children: [
                {
                    value: 'nanjing',
                    label: '南京',
                    children: [
                        {
                            value: 'fuzimiao',
                            label: '夫子庙',
                        }
                    ]
                },
                {
                    value: 'suzhou',
                    label: '苏州',
                    children: [
                        {
                            value: 'zhuozhengyuan',
                            label: '拙政园',
                        },
                        {
                            value: 'shizilin',
                            label: '狮子林',
                        }
                    ]
                }
            ]
        }]
    }
}

完整配置项:Ant-design-vue_Transfer

Props

参数说明类型默认值
dataSource数据源,其中的数据将会被渲染到左边一栏中,targetKeys 中指定的除外。[{key: string.isRequired,title: string.isRequired,description: string,disabled: bool}][][]
disabled是否禁用booleanfalse
filterOption接收 inputValue option 两个参数,当 option 符合筛选条件时,应返回 true,反之则返回 false(inputValue, option): boolean
footer可以设置为一个 作用域插槽slot="footer" slot-scope="props"
listStyle两个穿梭框的自定义样式CSSProperties
locale各种语言object{ itemUnit: '项', itemsUnit: '项', notFoundContent: '列表为空', searchPlaceholder: '请输入搜索内容' }
oneWay展示为单向样式booleanfalse
operations操作文案集合,顺序从上至下string[]['>', '<']
operationStyle操作栏的自定义样式CSSProperties-
pagination使用分页样式,自定义渲染列表下无效boolean | { pageSize: number, simple: boolean, showSizeChanger?: boolean, showLessItems?: boolean }flase
render每行数据渲染函数,该函数的入参为 dataSource 中的项,返回值为 element。或者返回一个普通对象,其中 label 字段为 element,value 字段为 titleFunction(record)| slot
selectAllLabels自定义顶部多选框标题的集合VueNode | ((info: { selectedCount: number; totalCount: number }) => VueNode)-
selectedKeys(v-model)设置哪些项应该被选中string[][]
showSearch是否显示搜索框booleanfalse
showSelectAll是否展示全选勾选框booleantrue
status设置校验状态'error' | 'warning'-
targetKeys(v-model)显示在右侧框数据的 key 集合string[][]
titles标题集合,顺序从左至右string[]['', '']

Events

事件名称说明回调参数
change选项在两栏之间转移时的回调函数(targetKeys, direction, moveKeys): void
scroll选项列表滚动时的回调函数(direction, event): void
search搜索框内容时改变时的回调函数(direction: 'left'|'right', value: string): void
selectChange选中项发生改变时的回调函数(sourceSelectedKeys, targetSelectedKeys): void

Render Props

Transfer 支持接收 children 自定义渲染列表,并返回以下参数:

json
{
  "direction": String,
  "disabled": Boolean,
  "filteredItems": Array,
  "selectedKeys": Array,
  "onItemSelect": Function,
  "onItemSelectAll": Function
}
参数说明类型
direction渲染列表的方向'left' | 'right'
disabled是否禁用列表boolean
filteredItems过滤后的数据TransferItem[]
itemSelect勾选条目(key: string, selected: boolean)
itemSelectAll勾选一组条目(keys: string[], selected: boolean)
selectedKeys选中的条目string[]

FormCreate 是一个开源项目,基于 MIT 许可证发布,欢迎个人和企业用户免费使用