Transfer

Uso básico

Los datos son pasados a la transferencia a través del atributo data. Los datos deben ser un array de objetos, y cada objeto debe tener estos atributos: key siendo la identificación del elemento de datos, label siendo el texto mostrado y disabled indicando si el elemento de datos está desactivado. Los elementos dentro de la lista de destino están sincronizados con la variable que se enlaza al v-model, y el valor de esa variable es un array de keys de los elementos destino. Por lo tanto, si no quiere que la lista de destino esté vacía inicialmente, puede inicializar el v-model con un array.

No data

Filtrable

Puede buscar y filtrar elementos de datos.

Establezca el atributo filterable a true para habilitar el modo filtro. Por defecto, si el elemento de datos label contiene la palabra clave de búsqueda, se incluirá en el resultado de la búsqueda. Además, puede implementar su propio método de filtro con el atributo filter-method. Toma un método y pasa la palabra clave de búsqueda y cada elemento de los datos cada vez que la palabra clave cambia. Para un determinado elemento de datos, si el método devuelve true, se incluirá en la lista de resultados.

No data

Personalizable

Puede personalizar los títulos de la lista, los textos de los botones, la función de renderizado para los elementos de datos, la comprobación del estado de los textos en el pie de la lista y el contenido del pie.

Use titles, button-texts, render-content y format respectivamente para personalizar los títulos de las listas, el texto de los botones, la función de renderizado para los items y el texto de la cabecera que muestra el estado de los items. Además, también puede utilizar los slots para personalizar los elementos de los datos. Para el pie de la lista hay dos slots: left-footer y right-footer. Además, si quiere algunos items marcados inicialmente puede usar left-default-checked y right-default-checked. Finalmente este ejemplo muestra el evento change. Tenga en cuenta que esta demostración no puede ejecutarse en JSFiddle porque no soporta la sintaxis JSX. En un proyecto real render-content funcionará si las dependencias relevantes están configuradas correctamente.

Customize data items using render-content

Customize data items using scoped slot

Alias de las props

Por defecto, Transfer busca key, label y disabled en cada elemento. Si sus datos tienen diferentes nombres de clave, puede usar el atributo props para definir distintos alias.

En este ejemplo los elementos no tienen key y label, en vez de eso tienen value y desc. Así que tiene que añadir alias para key y label.

No data

Transfer API

Transfer Attributes

NombreDescripciónTipoDefault
model-value / v-modelvalor vinculadoobject[]
dataOrigen de datosobject[]
filterableSi se puede filtrarbooleanfalse
filter-placeholderPlaceholder para el input del filtrostring
filter-methodMétodo de filtradoFunction
target-orderestrategia de órdenes para elementos de la lista destino. Si está configurado en original, los elementos mantendrán el mismo orden que la fuente de datos. Si está configurado para push, los nuevos elementos añadidos se insertaran al final. Si se ajusta a unshift, los nuevos elementos añadidos se insertarán en la parte superior.enumoriginal
titlesTítulos de las listasobject[]
button-textsTexto de los botonesobject[]
render-contentFunción de renderizadoobject
formatTexto para el status en el headerobject{}
propsprop alias para el origen de datosobject
left-default-checkedArray de claves de los elementos marcados inicialmente en la lista de la izquierdaobject[]
right-default-checkedArray de claves de los elementos marcados inicialmente en la lista de la derechaobject[]
validate-eventsi se debe activar la validación del formulariobooleantrue

Transfer Events

NombreDescripciónType
changetriggers when data items change in the right listFunction
left-check-changetriggers when end user changes the checked state of any data item in the left listFunction
right-check-changetriggers when end user changes the checked state of any data item in the right listFunction

Transfer Slots

NameDescripción
defaultCustom content for data items. The scope parameter is { option }
left-footercontent of left list footer
right-footercontent of right list footer

Transfer Exposes

NameDescripciónType
clearQueryclear the filter keyword of a certain panelFunction
leftPanelleft panel refobject
rightPanelright panel refobject

Transfer Panel API

Transfer Panel Exposes

NameDescriptionType
queryfilter keywordstring

Type Declarations

Show declarations
ts
import type { h as H, VNode } from 'vue'

type TransferKey = string | number

type TransferDirection = 'left' | 'right'

type TransferDataItem = Record<string, any>

type renderContent = (h: typeof H, option: TransferDataItem) => VNode | VNode[]

interface TransferFormat {
  noChecked?: string
  hasChecked?: string
}

interface TransferPropsAlias {
  label?: string
  key?: string
  disabled?: string
}

Fuente

ComponentesStyleDocumentación

Contribuidores