Transfer

Transfer the elements between two columns in an intuitive and efficient way.

One or more elements can be selected from either column, one click on the proper ‘direction’ button, and the transfer is done. The left column is considered the ‘source’ and the right column is considered the ‘target’. As you can see in the API description, these names are reflected in.

Examples


2/14 itemsSource
Not Found
6 itemsTarget
Not Found

Basic

The most basic usage of Transfer involves providing the source data and target keys arrays, plus the rendering and some callback functions.



Advanced

You can customize the labels of the transfer buttons, the width and height of the columns, and what should be displayed in the footer.


8 items
Not Found
12 items
Not Found

Custom datasource

Custom each Transfer Item, and in this way you can render a complex datasource.


999 items
Not Found
1001 items
Not Found

Performance Test

2000 items.


API

Property Description Type Default
dataSource Used for setting the source data. The elements that are part of this array will be present the left column. Except the elements whose keys are included in targetKeys prop. [{key: string.isRequired,title: string.isRequired,description: string,disabled: bool}] []
filterOption A function to determine whether an item should show in search result list (inputValue, option): boolean
footer customize the progress dot by setting a scoped slot slot="footer" slot-scope="props"
lazy property of vc-lazy-load for lazy rendering items. Turn off it by set to false. object|boolean { height: 32, offset: 32 }
listStyle A custom CSS style used for rendering the transfer columns. object
notFoundContent Text to display when a column is empty. string|slot 'The list is empty'
operations A set of operations that are sorted from bottom to top. string[] ['>', '<']
render The function to generate the item shown on a column. Based on an record (element of the dataSource array), this function should return a element which is generated from that record. Also, it can return a plain object with value and label, label is a element and value is for title Function(record)
searchPlaceholder The hint text of the search box. string 'Search here'
selectedKeys A set of keys of selected items. string[] []
showSearch If included, a search box is shown on each column. boolean false
targetKeys A set of keys of elements that are listed on the right column. string[] []
titles A set of titles that are sorted from left to right. string[] -

events

Events Name Description Arguments
change A callback function that is executed when the transfer between columns is complete. (targetKeys, direction, moveKeys): void
scroll A callback function which is executed when scroll options list (direction, event): void
searchChange A callback function which is executed when search field are changed (direction: 'left'|'right', event: Event): void
selectChange A callback function which is executed when selected items are changed. (sourceSelectedKeys, targetSelectedKeys): void

Warning

According the standard of Vue, the key should always be supplied directly to the elements in the array. In Transfer, the keys should be set on the elements included in dataSource array. By default, key property is used as an unique identifier.

If there's no key in your data, you should use rowKey to specify the key that will be used for uniquely identify each element.

// eg. your primary key is `uid`
return <Transfer :rowKey="record => record.uid" />;