29 KiB
Tree
Affiche un ensemble de données possédant plusieurs niveaux de hiérarchie ou d'imbrication.
Usage
Voici la structure basique.
:::demo
<el-tree :data="data" :props="defaultProps" @node-click="handleNodeClick"></el-tree>
<script>
export default {
data() {
return {
data: [{
label: 'Niveau un 1',
children: [{
label: 'Niveau deux 1-1',
children: [{
label: 'Niveau trois 1-1-1'
}]
}]
}, {
label: 'Niveau un 2',
children: [{
label: 'Niveau deux 2-1',
children: [{
label: 'Niveau trois 2-1-1'
}]
}, {
label: 'Niveau deux 2-2',
children: [{
label: 'Niveau trois 2-2-1'
}]
}]
}, {
label: 'Niveau un 3',
children: [{
label: 'Niveau deux 3-1',
children: [{
label: 'Niveau trois 3-1-1'
}]
}, {
label: 'Niveau deux 3-2',
children: [{
label: 'Niveau trois 3-2-1'
}]
}]
}],
defaultProps: {
children: 'children',
label: 'label'
}
};
},
methods: {
handleNodeClick(data) {
console.log(data);
}
}
};
</script>
:::
Sélection
Vous pouvez activer la sélection des noeuds.
:::demo cet exemple montre également comment charger des données de maniÚre asynchrone.
<el-tree
:props="props"
:load="loadNode"
lazy
show-checkbox
@check-change="handleCheckChange">
</el-tree>
<script>
export default {
data() {
return {
props: {
label: 'name',
children: 'zones'
},
count: 1
};
},
methods: {
handleCheckChange(data, checked, indeterminate) {
console.log(data, checked, indeterminate);
},
handleNodeClick(data) {
console.log(data);
},
loadNode(node, resolve) {
if (node.level === 0) {
return resolve([{ name: 'Root1' }, { name: 'Root2' }]);
}
if (node.level > 3) return resolve([]);
var hasChild;
if (node.data.name === 'region1') {
hasChild = true;
} else if (node.data.name === 'region2') {
hasChild = false;
} else {
hasChild = Math.random() > 0.5;
}
setTimeout(() => {
var data;
if (hasChild) {
data = [{
name: 'zone' + this.count++
}, {
name: 'zone' + this.count++
}];
} else {
data = [];
}
resolve(data);
}, 500);
}
}
};
</script>
:::
Noeud-feuille personnalisés en mode lazy
:::demo Les données d'un noeud ne sont pas accessibles tant que la noeud n'est pas cliqué, l'arbre ne peut donc pas prédire si un noeud sera une feuille. C'est pourquoi un bouton de menu est ajouté à chaque noeud, et si c'est une feuille il disparaßtra aprÚs le clic. Vous pouvez également dire par avance à l'arbre si un noeud est une feuille, pour éviter l'apparition du bouton de menu.
<el-tree
:props="props"
:load="loadNode"
lazy
show-checkbox>
</el-tree>
<script>
export default {
data() {
return {
props: {
label: 'name',
children: 'zones',
isLeaf: 'leaf'
},
};
},
methods: {
loadNode(node, resolve) {
if (node.level === 0) {
return resolve([{ name: 'region' }]);
}
if (node.level > 1) return resolve([]);
setTimeout(() => {
const data = [{
name: 'leaf',
leaf: true
}, {
name: 'zone'
}];
resolve(data);
}, 500);
}
}
};
</script>
:::
Checkbox désactivées
Les checkbox des noeuds peuvent ĂȘtre dĂ©sactivĂ©es individuellement.
:::demo Dans cet exemple, la propriété disabled est ajoutée à defaultProps, et certains noeuds ont disabled:true. Les checkbox correspondantes sont donc désactivées.
<el-tree
:data="data"
:props="defaultProps"
show-checkbox>
</el-tree>
<script>
export default {
data() {
return {
data: [{
id: 1,
label: 'Niveau un 1',
children: [{
id: 3,
label: 'Niveau deux 2-1',
children: [{
id: 4,
label: 'Niveau trois 3-1-1'
}, {
id: 5,
label: 'Niveau trois 3-1-2',
disabled: true
}]
}, {
id: 2,
label: 'Niveau deux 2-2',
disabled: true,
children: [{
id: 6,
label: 'Niveau trois 3-2-1'
}, {
id: 7,
label: 'Niveau trois 3-2-2',
disabled: true
}]
}]
}],
defaultProps: {
children: 'children',
label: 'label',
disabled: 'disabled',
},
};
}
};
</script>
:::
Ouverture et sélection par défaut
Certains noeuds peuvent ĂȘtre ouverts et/ou sĂ©lectionnĂ©s par dĂ©faut.
:::demo Utilisez default-expanded-keys et default-checked-keys pour rĂ©glez respectivement les noeuds ouverts et les noeuds sĂ©lectionnĂ©s par dĂ©faut. Notez que node-key est requis dans ce cas. Sa valeurs est le nom d'une clĂ© dans l'objets data, et sa valeur devrait ĂȘtre unique dans tout l'arbre.
<el-tree
:data="data"
show-checkbox
node-key="id"
:default-expanded-keys="[2, 3]"
:default-checked-keys="[5]"
:props="defaultProps">
</el-tree>
<script>
export default {
data() {
return {
data: [{
id: 1,
label: 'Niveau un 1',
children: [{
id: 4,
label: 'Niveau deux 1-1',
children: [{
id: 9,
label: 'Niveau trois 1-1-1'
}, {
id: 10,
label: 'Niveau trois 1-1-2'
}]
}]
}, {
id: 2,
label: 'Niveau un 2',
children: [{
id: 5,
label: 'Niveau deux 2-1'
}, {
id: 6,
label: 'Niveau deux 2-2'
}]
}, {
id: 3,
label: 'Niveau un 3',
children: [{
id: 7,
label: 'Niveau deux 3-1'
}, {
id: 8,
label: 'Niveau deux 3-2'
}]
}],
defaultProps: {
children: 'children',
label: 'label'
}
};
}
};
</script>
:::
Sélectionner des noeuds
:::demo Cet exemple montre comment récupérer et sélectionner des noeuds. Vous pouvez utiliser deux approches: les noeuds ou les clés. Dans le cas des clés, node-key est requis.
<el-tree
:data="data"
show-checkbox
default-expand-all
node-key="id"
ref="tree"
highlight-current
:props="defaultProps">
</el-tree>
<div class="buttons">
<el-button @click="getCheckedNodes">Récupération par noeud</el-button>
<el-button @click="getCheckedKeys">Récupération par clé</el-button>
<el-button @click="setCheckedNodes">Sélection par noeud</el-button>
<el-button @click="setCheckedKeys">Sélection par clé</el-button>
<el-button @click="resetChecked">Reset</el-button>
</div>
<script>
export default {
methods: {
getCheckedNodes() {
console.log(this.$refs.tree.getCheckedNodes());
},
getCheckedKeys() {
console.log(this.$refs.tree.getCheckedKeys());
},
setCheckedNodes() {
this.$refs.tree.setCheckedNodes([{
id: 5,
label: 'Niveau deux 2-1'
}, {
id: 9,
label: 'Niveau trois 1-1-1'
}]);
},
setCheckedKeys() {
this.$refs.tree.setCheckedKeys([3]);
},
resetChecked() {
this.$refs.tree.setCheckedKeys([]);
}
},
data() {
return {
data: [{
id: 1,
label: 'Niveau un 1',
children: [{
id: 4,
label: 'Niveau deux 1-1',
children: [{
id: 9,
label: 'Niveau trois 1-1-1'
}, {
id: 10,
label: 'Niveau trois 1-1-2'
}]
}]
}, {
id: 2,
label: 'Niveau un 2',
children: [{
id: 5,
label: 'Niveau deux 2-1'
}, {
id: 6,
label: 'Niveau deux 2-2'
}]
}, {
id: 3,
label: 'Niveau un 3',
children: [{
id: 7,
label: 'Niveau deux 3-1'
}, {
id: 8,
label: 'Niveau deux 3-2'
}]
}],
defaultProps: {
children: 'children',
label: 'label'
}
};
}
};
</script>
:::
Contenu personnalisé
Le contenu des noeuds peut ĂȘtre personnalisĂ©, afin de pouvoir ajouter des icĂŽnes ou des boutons par exemple.
:::demo Il existe deux méthodes de personnalisation: render-content et les slots avec portée. Utilisez render-content pour assigner une fonction de rendu qui va générer le contenu des noeuds. Voire la documentation de Vue pour plus d'informations. Si vous préférez les slots, vous aurez accÚs à node et data dans le scope, corerspondant à l'objet TreeNode et aux données du noeud courant. Notez que la démo de render-content ne marche pas dans jsfiddle car il ne supporte pas JSX. Dans un vrai projet, render-content marchera si les dépendances sont satisfaites.
<div class="custom-tree-container">
<div class="block">
<p>Avec render-content</p>
<el-tree
:data="data"
show-checkbox
node-key="id"
default-expand-all
:expand-on-click-node="false"
:render-content="renderContent">
</el-tree>
</div>
<div class="block">
<p>Avec un slot</p>
<el-tree
:data="data"
show-checkbox
node-key="id"
default-expand-all
:expand-on-click-node="false">
<template #default="{ node, data }">
<span class="custom-tree-node">
<span>{{ node.label }}</span>
<span>
<a
@click="append(data)">
Append
</a>
<a
@click="remove(node, data)">
Delete
</a>
</span>
</span>
</template>
</el-tree>
</div>
</div>
<script>
let id = 1000;
export default {
data() {
const data = [{
id: 1,
label: 'Niveau un 1',
children: [{
id: 4,
label: 'Niveau deux 1-1',
children: [{
id: 9,
label: 'Niveau trois 1-1-1'
}, {
id: 10,
label: 'Niveau trois 1-1-2'
}]
}]
}, {
id: 2,
label: 'Niveau un 2',
children: [{
id: 5,
label: 'Niveau deux 2-1'
}, {
id: 6,
label: 'Niveau deux 2-2'
}]
}, {
id: 3,
label: 'Niveau un 3',
children: [{
id: 7,
label: 'Niveau deux 3-1'
}, {
id: 8,
label: 'Niveau deux 3-2'
}]
}];
return {
data: JSON.parse(JSON.stringify(data)),
}
},
methods: {
append(data) {
const newChild = { id: id++, label: 'testtest', children: [] };
if (!data.children) {
data.children = []
}
data.children.push(newChild);
this.data = [...this.data]
},
remove(node, data) {
const parent = node.parent;
const children = parent.data.children || parent.data;
const index = children.findIndex(d => d.id === data.id);
children.splice(index, 1);
this.data = [...this.data]
},
renderContent(h, { node, data, store }) {
return h("span", {
class: "custom-tree-node"
}, h("span", null, node.label), h("span", null, h("a", {
onClick: () => this.append(data)
}, "Append "), h("a", {
onClick: () => this.remove(node, data)
}, "Delete")));
}
}
};
</script>
<style>
.custom-tree-node {
flex: 1;
display: flex;
align-items: center;
justify-content: space-between;
font-size: 14px;
padding-right: 8px;
}
</style>
:::
Filtrage
Les noeuds peuvent ĂȘtre filtrĂ©s par mot-clĂ©.
:::demo Utilisez la méthode filter de l'instance de Tree pour pouvoir filtrer les noeuds, son paramÚtre étant le mot-clé. Notez que pour que cela fonctionne, filter-node-method est requis, sa valeur étant la méthode de filtrage.
<el-input
placeholder="Filter keyword"
v-model="filterText">
</el-input>
<el-tree
class="filter-tree"
:data="data"
:props="defaultProps"
default-expand-all
:filter-node-method="filterNode"
ref="tree">
</el-tree>
<script>
export default {
watch: {
filterText(val) {
this.$refs.tree.filter(val);
}
},
methods: {
filterNode(value, data) {
if (!value) return true;
return data.label.indexOf(value) !== -1;
}
},
data() {
return {
filterText: '',
data: [{
id: 1,
label: 'Niveau un 1',
children: [{
id: 4,
label: 'Niveau deux 1-1',
children: [{
id: 9,
label: 'Niveau trois 1-1-1'
}, {
id: 10,
label: 'Niveau trois 1-1-2'
}]
}]
}, {
id: 2,
label: 'Niveau un 2',
children: [{
id: 5,
label: 'Niveau deux 2-1'
}, {
id: 6,
label: 'Niveau deux 2-2'
}]
}, {
id: 3,
label: 'Niveau un 3',
children: [{
id: 7,
label: 'Niveau deux 3-1'
}, {
id: 8,
label: 'Niveau deux 3-2'
}]
}],
defaultProps: {
children: 'children',
label: 'label'
}
};
}
};
</script>
:::
Accordéon
Vous pouvez utiliser un mode accordéon afin que seul un noeud par niveau soit ouvert.
:::demo
<el-tree
:data="data"
:props="defaultProps"
accordion
@node-click="handleNodeClick">
</el-tree>
<script>
export default {
data() {
return {
data: [{
label: 'Niveau un 1',
children: [{
label: 'Niveau deux 1-1',
children: [{
label: 'Niveau trois 1-1-1'
}]
}]
}, {
label: 'Niveau un 2',
children: [{
label: 'Niveau deux 2-1',
children: [{
label: 'Niveau trois 2-1-1'
}]
}, {
label: 'Niveau deux 2-2',
children: [{
label: 'Niveau trois 2-2-1'
}]
}]
}, {
label: 'Niveau un 3',
children: [{
label: 'Niveau deux 3-1',
children: [{
label: 'Niveau trois 3-1-1'
}]
}, {
label: 'Niveau deux 3-2',
children: [{
label: 'Niveau trois 3-2-1'
}]
}]
}],
defaultProps: {
children: 'children',
label: 'label'
}
};
},
methods: {
handleNodeClick(data) {
console.log(data);
}
}
};
</script>
:::
Noeuds déplaçables
Vous pouvez déplacer les noeuds par drag'n drop en ajoutant l'attribut draggable.
:::demo
<el-tree
:data="data"
node-key="id"
default-expand-all
@node-drag-start="handleDragStart"
@node-drag-enter="handleDragEnter"
@node-drag-leave="handleDragLeave"
@node-drag-over="handleDragOver"
@node-drag-end="handleDragEnd"
@node-drop="handleDrop"
draggable
:allow-drop="allowDrop"
:allow-drag="allowDrag">
</el-tree>
<script>
export default {
data() {
return {
data: [{
label: 'Niveau un 1',
children: [{
label: 'Niveau deux 1-1',
children: [{
label: 'Niveau trois 1-1-1'
}]
}]
}, {
label: 'Niveau un 2',
children: [{
label: 'Niveau deux 2-1',
children: [{
label: 'Niveau trois 2-1-1'
}]
}, {
label: 'Niveau deux 2-2',
children: [{
label: 'Niveau trois 2-2-1'
}]
}]
}, {
label: 'Niveau un 3',
children: [{
label: 'Niveau deux 3-1',
children: [{
label: 'Niveau trois 3-1-1'
}]
}, {
label: 'Niveau deux 3-2',
children: [{
label: 'Niveau trois 3-2-1'
}]
}]
}],
defaultProps: {
children: 'children',
label: 'label'
}
};
},
methods: {
handleDragStart(node, ev) {
console.log('drag start', node);
},
handleDragEnter(draggingNode, dropNode, ev) {
console.log('tree drag enter: ', dropNode.label);
},
handleDragLeave(draggingNode, dropNode, ev) {
console.log('tree drag leave: ', dropNode.label);
},
handleDragOver(draggingNode, dropNode, ev) {
console.log('tree drag over: ', dropNode.label);
},
handleDragEnd(draggingNode, dropNode, dropType, ev) {
console.log('tree drag end: ', dropNode && dropNode.label, dropType);
},
handleDrop(draggingNode, dropNode, dropType, ev) {
console.log('tree drop: ', dropNode.label, dropType);
},
allowDrop(draggingNode, dropNode, type) {
if (dropNode.data.label === 'Niveau deux 3-1') {
return type !== 'inner';
} else {
return true;
}
},
allowDrag(draggingNode) {
return draggingNode.data.label.indexOf('Niveau trois 3-1-1') === -1;
}
}
};
</script>
:::
Attributs
| Attribut | Description | Type | Valeurs acceptées | Défaut |
|---|---|---|---|---|
| data | DonnĂ©es de l'arbre | array | â | â |
| empty-text | Texte Ă afficher quand il n'y a pas de donnĂ©es. | string | â | â |
| node-key | Identifiant unique pour chaque noeud, doit ĂȘtre unique dans tout l'arbre. | string | â | â |
| props | Options de configuration, voir table suivante. | object | â | â |
| render-after-expand | Si les noeuds enfants doivent ĂȘtre gĂ©nĂ©rĂ©s seulement aprĂšs la premiĂšre ouverture du parent. | boolean | â | true |
| load | Méthode pour charger les noeuds enfants, uniquement en mode lazy. |
function(node, resolve) | â | â |
| render-content | Fonction de rendu pour les noeuds. | Function(h, { node, data, store }) | â | â |
| highlight-current | Si le noeud courant est mis en valeur. | boolean | â | false |
| default-expand-all | Si tous les noeuds sont ouverts par dĂ©faut. | boolean | â | false |
| expand-on-click-node | Si l'ouverture se fait aussi en cliquant sur le noeud. Si false, l'ouverture ne se fera qu'en cliquant sur l'icĂŽne. |
boolean | â | true |
| check-on-click-node | Si la sélection se fait aussi en cliquant sur le noeud. Si false, la sélection ne se fera qu'en cliquant sur la checkbox. |
boolean | â | false |
| auto-expand-parent | Si un noeud parent est automatiquement ouvert quand un noeud enfant s'ouvre. | boolean | â | true |
| default-expanded-keys | Tableau des clĂ©s des noeuds initialement ouverts. | array | â | â |
| show-checkbox | Si un noeud est sĂ©lectionnable. | boolean | â | false |
| check-strictly | Si la sélection d'un noeud affecte celle de son parent quand show-checkbox est true. |
boolean | â | false |
| default-checked-keys | Tableau des clĂ©s des noeuds initialement sĂ©lectionnĂ©s. | array | â | â |
| current-node-key | ClĂ© du noeud initialement sĂ©lectionnĂ©. | string, number | â | â |
| filter-node-method | Fonction exécutée sur chaque noeud pour le filtrage. Si elle retourne false, les noeuds seront cachés. |
Function(value, data, node) | â | â |
| accordion | Si les noeuds fonctionnent en mode accordĂ©on. | boolean | â | false |
| indent | Indentation horizontale des noeuds en px. | number | â | 16 |
| icon-class | IcĂŽne pour chaque noeud. | string | - | - |
| lazy | Si les noeuds sont chargés en mode lazy, utilisé avec l'attribut load. |
boolean | â | false |
| draggable | Si les noeuds sont dĂ©plaçables par drag'n drop. | boolean | â | false |
| allow-drag | Fonction exécutée avant le déplacement d'un noeud. Si false est retourné, le noeud ne sera pas déplaçable. |
Function(node) | â | â |
| allow-drop | Fonction exĂ©cutĂ©e avant le placement d'un noeud. Si false est retournĂ©, le noeud ne pourra ĂȘtre placĂ© sur la zone en question. type a trois valeurs possibles: 'prev' (insertion avant le noeud cible), 'inner' (insertion dans le noeud cible) and 'next' (insertion aprĂšs le noeud cible). |
Function(draggingNode, dropNode, type) | â | â |
props
| Attribut | Description | Type | Valeurs acceptées | Défaut |
|---|---|---|---|---|
| label | DĂ©termine quelle clĂ© de l'objet noeud reprĂ©sente le label. | string, function(data, node) | â | â |
| children | DĂ©termine quelle clĂ© de l'objet noeud reprĂ©sente les noeuds enfants. | string | â | â |
| disabled | DĂ©termine quelle clĂ© de l'objet noeud reprĂ©sente la dĂ©sactivation du noeud. | boolean, function(data, node) | â | â |
| isLeaf | DĂ©termine si le noeud est une feuille, ne marche qu'avec le mode lazy loading. | boolean, function(data, node) | â | â |
Méthodes
Tree possÚde les méthodes suivantes, qui retourne la sélection de noeuds actuelle.
| Méthode | Description | ParamÚtres |
|---|---|---|
| filter | Filtre les noeuds. | Accepte un paramĂštre qui sera le premier paramĂštre de filter-node-method. |
| updateKeyChildren | Ajoute de nouvelles données au noeud, ne marche que lorsque node-key est assigné. |
(key, data) Accepte deux paramÚtres: 1. clé du noeud 2. nouvelles données. |
| getCheckedNodes | Si le noeud peut-ĂȘtre sĂ©lectionnĂ© (show-checkbox est true), il retourne un tableau des noeuds sĂ©lectionnĂ©s. |
(leafOnly, includeHalfChecked) Accepte deux booléen: 1. Défaut à false. Si true, retourne seulement un tableau des sous-noeuds sélectionnés. 2. Défaut à false. Si true, retourne la moitié des noeuds sélectionnés. |
| setCheckedNodes | Détermine quels noeuds sont sélectionnés, ne marche que si node_key est assigné. |
Un tableau de noeuds qui doivent ĂȘtre sĂ©lectionnĂ©s. |
| getCheckedKeys | Si le noeud peut ĂȘtre sĂ©lectionnĂ© (show-checkbox est true), retourne un tableau de clĂ©s des noeuds sĂ©lectionnĂ©s. |
(leafOnly) Booléen, défaut à false. Si à true, Il retourne seulement un tableau des sous-noeuds sélectionnés. |
| setCheckedKeys | Détermine quels noeuds sont sélectionnés, ne marche que si node_key est assigné. |
(keys, leafOnly) Accepte deux paramÚtres: 1. un tableau de clés de noeuds à sélectionner 2. un booléen avec pour défaut false. Si à true, Il retourne seulement un tableau des sous-noeuds sélectionnés. |
| setChecked | Détermine si un noeud est sélectionnable, ne marche que si node_key est assigné. |
(key/data, checked, deep) Accepte trois paramÚtres: 1. La clé ou les données du noeud 2. un booléen indiquant si sélectionné. 3. un booléen indiquant si profond. |
| getHalfCheckedNodes | Si le noeud peut ĂȘtre sĂ©lectionnĂ© (show-checkbox est true), retourne la moitiĂ© des noeuds sĂ©lectionnĂ©s. |
- |
| getHalfCheckedKeys | Si le noeud peut ĂȘtre sĂ©lectionnĂ© (show-checkbox est true), retourne les clĂ©s de la moitiĂ© des noeuds sĂ©lectionnĂ©s. |
- |
| getCurrentKey | retourne la clé du noeud actuellement en valeur (null si aucun noeud n'est en valeur). |
â |
| getCurrentNode | retourne les données du noeud actuellement en valeur (null si aucun noeud n'est en valeur). |
â |
| setCurrentKey | Met un noeud en valeur par sa clé, ne marche que si node_key est assigné. |
(key, shouldAutoExpandParent=true) 1. la clé du noeud. Si null, annule la sélection actuelle. 2. whether to automatically expand parent node |
| setCurrentNode | Met un noeud en valeur, ne marche que si node_key est assigné. |
(node, shouldAutoExpandParent=true) 1. le noeud. 2. whether to automatically expand parent node |
| getNode | Retourne le noeud grùce à sa clé ou ses données. | (data) la clé ou les données du noeud. |
| remove | Supprime un noeud, ne marche que si node-key est assigné. | (data) le noeud ou ses données à supprimer. |
| append | Ajoute un noeud à un autre noeud. | (data, parentNode) 1. les données du noeud à ajouter 2. les données du parent, clé ou données. |
| insertBefore | InsÚre un noeud avant un autre noeud. | (data, refNode) 1. Les données du noeud à insérer 2. Clé ou noeud de référence. |
| insertAfter | InsÚre un noeud aprÚs un autre noeud. | (data, refNode) 1. Les données du noeud à insérer 2. Clé ou noeud de référence. |
ĂvĂšnements
| Nom | Description | ParamĂštres |
|---|---|---|
| node-click | Se dĂ©clenche quand est cliquĂ©. | Le noeud cliquĂ©, la propriĂ©tĂ© node de TreeNode, TreeNode lui-mĂȘme. |
| node-contextmenu | Se dĂ©clenche quand un noeud reçoit un clic droit. | L'Ă©vĂšnement, le noeud cliquĂ©, la propriĂ©tĂ© node de TreeNode, TreeNode lui-mĂȘme. |
| check-change | Se déclenche quand quand la sélection d'un noeud change. | Le noeud modifié, si le noeud est sélectionné, si des enfants sont sélectionnés. |
| check | Se déclenche aprÚs un clic sur le checkbox. | Le noeud modifié, l'objet statut de l'arbre avec quatre propriétés: checkedNodes, checkedKeys, halfCheckedNodes, halfCheckedKeys. |
| current-change | Se déclenche quand le noeud courant changes. | Le noeud courant, la propriété node de TreeNode |
| node-expand | Se dĂ©clenche quand le noeud courant s'ouvre. | Le noeud ouvert, la propriĂ©tĂ© node de TreeNode, TreeNode lui-mĂȘme. |
| node-collapse | Se dĂ©clenche quand le noeud courant se ferme. | Le noeud fermĂ©, la propriĂ©tĂ© node de TreeNode, TreeNode lui-mĂȘme. |
| node-drag-start | Se déclenche quand le déplacement commence. | Le noeud déplacé, l'évÚnement. |
| node-drag-enter | Se déclenche quand le noeud déplacé entre dans un autre noeud. | Le noeud déplacé, l'autre noeud, l'évÚnement. |
| node-drag-leave | Se déclenche quand le noeud déplacé quitte un autre noeud. | Le noeud déplacé, l'autre noeud, l'évÚnement. |
| node-drag-over | Se déclenche quand le noeud passe au-dessus d'un autre noeud (comme l'évÚnement mouseover). | Le noeud déplacé, l'autre noeud, l'évÚnement. |
| node-drag-end | Se dĂ©clenche quand le dĂ©placement se termine. | Le noeud dĂ©placĂ©, le noeud d'arrivĂ©e (peut-ĂȘtre undefined), le type de placement (before / after / inner), l'Ă©vĂšnement. |
| node-drop | Se déclenche aprÚs que le noeud déplacé soit placé. | Le noeud déplacé, le noeud d'arrivée, le type de placement (before / after / inner), l'évÚnement. |
Slot avec portée
| Nom | Description |
|---|---|
| â | Le contenu personnalisĂ© des noeuds. les paramĂštres sont { node, data }. |