Tree

Muestra un conjunto de datos jerárquicos.

Uso básico

Estructura básica de árbol.

Seleccionable

Usado para la selección de nodos.

Este ejemplo también muestra como cargar los datos de forma asíncrona.

Nodos hoja en modo perezoso (lazy load)

Los datos de un nodo no son cargados hasta que no es pinchado, así que el árbol no puede predecir si es una hoja. Por eso a cada nodo se le añade el botón de desplegar, y si el nodo es una hoja el botón desaparecerá al pinchar en él. También puede decirle al árbol que el nodo es una hoja de antemano, y así evita que muestre el botón de desplegar.

Lazy loading multiple times 2.6.3

When lazily loading node data remotely, lazy loading may sometimes fail. In this case, you can call reject to keep the node status as is and allow remote loading to continue.

Checkbox desactivados

El checkbox de un nodo se puede poner como desactivado.

En el ejemplo, la propiedad disabled se declara en defaultProps, y algunos nodos se ponen como disabled:true. Los checkboxes correspondientes son desactivados y no se pueden pinchar.

Desplegado o seleccionado por defecto

Los nodos pueden estar desplegados o seleccionados por defecto.

Utilice default-expanded-keys y default-checked-keys para establecer los nodos desplegados y seleccionados respectivamente. Tenga en cuenta que para que funcione es necesario que tengan node-key. Su valor es el nombre de una clave en el objeto data, y el valor de la clave debe ser único en todo el árbol.

Level one 2
Level one 3

Seleccionando nodos

Este ejemplo muestra como establecer y leer nodos seleccionados. Esto se puede hacer por nodos o por claves. Si lo hace por claves el atributo node-key es necesario.

Level one 1
Level two 1-1
Level three 1-1-1
Level three 1-1-2
Level one 2
Level two 2-1
Level two 2-2
Level one 3
Level two 3-1
Level two 3-2

Contenido personalizado en los nodos

El contenido de los nodos puede ser personalizado, así que puede añadir iconos y botones a su gusto.

Hay dos maneras de personalizar la plantilla para los nodos de árbol: render-content y scoped slot. Utilice render-content para asignar una función de renderizado que devuelve el contenido del árbol de nodos. Mire la documentación de node para una introducción detallada a las funciones de renderizado. Si prefiere scoped slot, tendrá acceso a los nodos y datos en el ámbito de aplicación, representando el objeto TreeNode y los datos del nodo actual respectivamente. Ten en cuenta que la demo de render-content no puede ejecutarse en JSFiddle porque no soporta la sintaxis JSX. En un proyecto real render-content funcionará si las dependencias son configuradas correctamente.

Using render-content

Level one 1Append Delete
Level two 1-1Append Delete
Level three 1-1-1Append Delete
Level three 1-1-2Append Delete
Level one 2Append Delete
Level two 2-1Append Delete
Level two 2-2Append Delete
Level one 3Append Delete
Level two 3-1Append Delete
Level two 3-2Append Delete

Using scoped slot

Level two 1-1 Append Delete
Level three 1-1-1 Append Delete
Level three 1-1-2 Append Delete
Level two 2-1 Append Delete
Level two 2-2 Append Delete
Level two 3-1 Append Delete
Level two 3-2 Append Delete

Clase de nodo personalizado

La clase de nodos de árbol puede ser personalizada

. Usa props.class para construir un nombre de clase de nodos.

Level one 1
Level two 1-1
Level three 1-1-1
Level three 1-1-2
Level one 2
Level two 2-1
Level two 2-2
Level one 3
Level two 3-1
Level two 3-2

Filtrado de nodos

Los nodos del árbol se pueden filtrar.

Invoque el método filter de la instancia de Tree para filtrar los nodos. Su parámetro es la palabra de filtrado. Tenga en cuenta que para que funcione es necesario filter-node-method, y su valor el método de filtrado.

Level one 1
Level two 1-1
Level three 1-1-1
Level three 1-1-2
Level one 2
Level two 2-1
Level two 2-2
Level one 3
Level two 3-1
Level two 3-2

Acordeón

Solo puede ser expandido un nodo del mismo nivel a la vez.

Arrastrable

Puede arrastrar y soltar nodos de Tree añadiendo un atributo draggable .

Level one 1
Level two 1-1
Level three 1-1-1
Level one 2
Level two 2-1
Level three 2-1-1
Level two 2-2
Level three 2-2-1
Level one 3
Level two 3-1
Level three 3-1-1
Level two 3-2
Level three 3-2-1

Atributos

NombreDescripciónTipoPor defecto
dataDatos del árbolobject
empty-textTexto a mostrar cuando data es voidstring
node-keyIdentificador único en todo el árbol para los nodosstring
propsOpciones de configuraciónProps
render-after-expandsi se mostrarán los nodos hijo sólo después de que se desglose por primera vez un nodo padrebooleantrue
loadMétodo para cargar los datos de subárbolesFunction
render-contentFunción de renderizado para los nodosFunction
highlight-currentSi el nodo actual está resaltadobooleanfalse
default-expand-allExpandir todos los nodos por defectobooleanfalse
expand-on-click-nodeSi expandir o contraer un nodo al pincharlo, si es false solo se hará al pinchar en la flechabooleantrue
check-on-click-nodeSi es false, el nodo sólo se puede marcar o desmarcar haciendo clic en la casilla de verificación.booleanfalse
auto-expand-parentExpandir un nodo padre si el hijo está seleccionadobooleantrue
default-expanded-keysArray de claves de los nodos expandidos inicialmenteobject
show-checkboxSi un nodo es seleccionablebooleanfalse
check-strictlyEl estado de selección de un nodo no afecta a sus padres o hijos, cuando show-checkbox es truebooleanfalse
default-checked-keysArray con claves de los nodos seleccionados inicialmenteobject
current-node-keyla clave del nodo inicialmente seleccionadostring / number
filter-node-methodesta función se ejecutará antes de arrastrar un nodo. si devuelve false, el nodo no puede ser arrastrado.Function
accordionSi solo un nodo de cada nivel puede expandirse a la vezbooleanfalse
indentIndentación horizontal de los nodos en niveles adyacentes, en pixelesnumber18
iconcomponente de icono de nodo de árbol personalizadostring / Component
lazysi se trata de un nodo de hoja lazy load, utilizado con el atributo loadbooleanfalse
draggablesi se habilita la función de drag & drop en los nodosbooleanfalse
allow-dragesta función se ejecutará antes de arrastrar un nodo. Si se devuelve false, el nodo no puede ser arrastradoFunction
allow-dropesta función se ejecutará al arrastrar y soltar un nodo. si devuelve false, el nodo arrastrando no se puede soltar en el nodo destino. type tiene tres valores posibles: 'prev' (insertar el nodo de arrastre antes del nodo de destino), 'inner' (insertar el nodo de arrastre en el nodo de destino) y 'next' (insertar el nodo de arrastre después del nodo de destino)Function

props

AtributosDescripciónTipoPor defecto
labelEspecifica que clave del objecto nodo se utilizará como labelstring / Function
childrenEspecifica que objeto del nodo se utiliza como subárbolstring
disabledEspecifica si el nodo es una hoja, sólo funciona cuando lazy load está activadostring / Function
isLeafelimina un nodo, solo funciona si node-key está asignadostring / Function
classnombre de clase de nodo personalizadostring / Function

Método

Tree tiene los siguientes métodos, que devuelven el array de nodos seleccionados.

MethodDescripciónParámetros
filterEsta función se ejecutará en cada nodo cuando se use el método filtrar, si devuelve false el nodo se ocultaAcepta un parámetro que será usado como primer parámetro para el método filter-node-method
updateKeyChildrendos parámetros: objeto nodo que se corresponde al nodo actual y propiedad node del TreeNode(key, data)Acepta dos parámetros: 1. clave del nodo 2. nuevo dato
getCheckedNodesSi el nodo puede ser seleccionado (show-checkbox es true), devuelve el array de nodos actualmente seleccionado(leafOnly, includeHalfChecked) Acepta dos parámetros de tipo booleano: 1. el valor por defecto es false. Si el parámetro es true, solo devuelve los nodos seleccionados 2. el valor por defecto es false. Si el parámetro es true, el valor de retorno contiene nodos halfchecked.
setCheckedNodesestablecer ciertos nodos para ser verificados, solo funciona cuando node-key es asignadoun array de nodos a ser verificados
getCheckedKeysSi el nodo puede ser seleccionado (show-checkbox es true), devuelve el array de claves de nodo seleccionados(leafOnly) Acepta un parámetro de tipo booleano cuyo valor por defecto es false. Si el parámetro es true, solo devuelve los nodos seleccionados
setCheckedKeysestablece ciertos nodos para ser verificados, solo funciona cuando node-key es asignado(keys, leafOnly) Acepta dos parametros: 1. un array de claves 2. un operador booleano. Si se establece a true, sólo se establecerá el estado comprobado de los nodos de hoja. El valor por defecto es false.
setCheckedestablece nodo para ser comprobado o no, solo funciona cuando node-key es asignado(key/data, checked, deep) Acepta tres parámetros: 1. la clave o dato del nodo a ser seleccionado 2. un parámetro tipo booleano que indica chequeado o no. 3. un parámetro de tipo booleano que indica profundidad o no.
getHalfCheckedNodesSi el nodo puede ser seleccionado (show-checkbox es true), devuelve el array de nodos actualmente medio seleccionado
getHalfCheckedKeysSi el nodo puede ser seleccionado (show-checkbox es true), devuelve el array actual de los medio seleccionados en claves de nodo
getCurrentKeydevuelve el nodo por el dato o la clave
getCurrentNode(data) los datos del nodo o nodo a borrar
setCurrentKeyestablecer nodo resaltado por clave, solo funciona cuando node-key es asignado(key, shouldAutoExpandParent=true) 1. la clave del nodo a ser resaltado. Si es null, cancela los nodos actualmente resaltados 2. whether to automatically expand parent node
setCurrentNodeestablecer nodo resaltado, solo funciona cuando node-key es asignado(node, shouldAutoExpandParent=true) 1. nodo a ser resaltado 2. si expandir automáticamente el nodo padre
getNode(data) los datos o clave del nodo(data) los datos o clave del nodo
removeelimina un nodo, solo funciona cuando se asigna node-key(data) los datos del nodo o el nodo a ser borrad
appendañadir un nodo hijo a un nodo determinado del árbol(data, parentNode) 1. los datos del nodo hijo que se añadirán 2. los datos del nodo padre, clave o nodo
insertBeforeinsertar un nodo antes de un nodo dado en el árbol(data, refNode) 1. node's data to be inserted 2. reference node's data, key or node
insertAfterinsertar un nodo después de un nodo dado en el árbol(data, refNode) 1. Datos del nodo que se insertarán 2. Datos del nodo de referencia, clave o nodo

Eventos

NombreDescripciónParámetros
node-clickFiltra los nodos del árbol, los nodos filtrados estarán ocultoscuatro parámetros: objeto de nodo correspondiente al nodo pulsado, node propiedad de TreeNode, TreeNode en sí mismo, y el objeto del evento
node-contextmenuAsocia un nuevo dato al nodo, solo funciona si node-key está asignadocuatro parámetros: evento, el objeto nodo sobre el que se hizo clic, la propiedad node del TreeNode, el TreeNode en si mismo
check-changesi el nodo puede ser seleccionado (show-checkbox es true), devuelve el array de nodos actualmente seleccionada.tres parámetros: el objeto del nodo seleccionado, propiedad node de TreeNode y el TreeNode en si
checkEstablece algunos nodos como seleccionados, solo funciona cuando node-key está asignadoUn array de nodos a seleccionar
current-changeSi los nodos pueden ser seleccionados (show-checkbox es true), devuelve un array con las claves de los nodos seleccionados(leafOnly) Acepta un booleano que por defecto es false.
node-expandEstablece algunos nodos como seleccionados, solo si node-key está asignadotres parámetros: el objeto del nodo abierto, propiedad node de TreeNode y el TreeNode en si
node-collapseEstablece si un nodo está seleccionado, solo funciona si node-key esta asignadotres parámetros: el objeto del nodo cerrado, propiedad node de TreeNode y el TreeNode en si
node-drag-startSi el nodo puede ser seleccionado (show-checkbox es true), devuelve la mitad del array de nodos actualmente seleccionada.dos parámetros: el objeto del nodo que se arrastrara, evento.
node-drag-enterSi el nodo puede ser seleccionado (show-checkbox es true), devuelve la mitad del array de claves del nodo actualmente seleccionado.tres parámetros: objeto del nodo que se arrastra, objeto del nodo en el que entra, evento.
node-drag-leavedevuelve la clave del nodo resaltado actualmente (null si no hay ninguno)tres parámetros: objeto del nodo que se arrastra, objeto del nodo sobre el que esta el arrastre, evento.
node-drag-overdevuelve los datos del nodo de resaltado (nulo si no hay ningún nodo resaltado)tres parámetros: objeto del nodo que se arrastra, objeto del nodo del cual se sale, evento.
node-drag-endestablece el nodo resaltado por la clave, solo funciona si node-key está asignadocuatro parámetros: objeto del nodo que se arrastra, objeto del nodo que corresponde al final del arrastre (puede ser undefined ), tipo de integración (antes (before), después (after), dentro (inner) ), evento.
node-dropestablece el nodo resaltado, solo funciona si node-key está asignadocuatro parámetros: objeto del nodo que se esta arrastrando, objeto del nodo sobre el que se esta soltando, tipo de integración (antes (before), después (after), dentro (inner) ), evento.

Slots

NombreDescripción
Contenido personalizado para nodos de tree. El parámetro del ámbito es { node, data }
empty 2.3.4puede personalizar el contenido cuando los datos están vacíos.

Fuente

ComponentesStyleDocumentación

Contribuidores