# Transferencia
Selección mediante transferencia entre dos listas. v-model se vincula a las claves del lado izquierdo (origen): cuando el valor está vacío, todos los datos están en el lado derecho (destino) y la transferencia equivale a añadir o eliminar claves de origen; los elementos disabled no se pueden mover.
Transferencia
<template>
<div style="max-width: 640px">
<LhTransfer v-model="sourceKeys" :data="data" />
<p class="demo-note">v-model contiene las claves del lado izquierdo (origen): {{ sourceKeys.join(', ') || '(vacío)' }}</p>
<LhTransfer v-model="sourceKeys" :data="data" disabled />
<p class="demo-note">disabled desactiva todo el componente (ni los botones ni las casillas responden al pulso)</p>
</div>
</template>
<script>
export default {
data: () => ({
sourceKeys: ['ink', 'paper'],
data: [
{ key: 'ink', label: 'Tinta china' },
{ key: 'paper', label: 'Papel xuan' },
{ key: 'brush', label: 'Pincel de pelo de lobo' },
{ key: 'seal', label: 'Sello', disabled: true },
],
}),
}
</script>
# Props
| Prop | Descripción | Tipo | Predeterminado |
|---|---|---|---|
| data | Datos completos | LhTransferItem[] | [] |
| v-model | Lista de claves del lado izquierdo (origen) (prop controlada value); si no se pasa, el valor interno de respaldo es vacío y todo queda en el lado derecho | Array<string \| number> | — |
| disabled | Desactivado | boolean | false |
| sx | Prop abreviada de maquetación | — | — |
# Events
input(v-model)、change (sourceKeys, direction)
# Accesibilidad
Ambas listas usan role="listbox" + opciones con role="option" + aria-selected;
los botones de transferencia llevan un aria-label que indica la dirección y la cantidad, el estado desactivado se marca con aria-disabled, y se admite la selección y el desplazamiento mediante teclado.
Copyright © 2024-2026 FengMo WenXue