## Cascader Si les options ont une structure hiérarchique claire, un Cascader peut être utilisé pour les afficher et les selectionner. ### Usage Il y a deux manières de dérouler la liste des options. :::demo Assigner un tableau à l'attribut `options` génère un Cascader. L'attribut `expand-trigger` détermine comment les options suivantes sont affichées. Cet exemple utilises aussi l'évènement `change`, qui a pour paramètre la valeur du Cascader, c'est à dire un tableau constitué de chaque niveau jusqu'à la valeur selectionnée, comme un chemin. ```html
Les options se déroulent après un clic (défaut)
Les options se déroulent au passage de la souris
``` ::: ### Options désactivées Désactivez une option en configurant `disabled` dans l'objet option. :::demo Dans cet exemple, le premier item dans le tableau `options` est configuré avec `disabled: true`, il est donc désactivé. Par défaut, Cascader recherche le champ `disabled` dans chaque option; si vous utilisez un autre nom de champ pour indiquer que l'option est désactivée, vous pouvez l'assigner dans l'attribut `props` (voir la table de l'API ci-dessous). Les champs `value`, `label` et `children` peuvent être personnalisés de la même manière. ```html ``` ::: ### Afficher uniquement le dernier niveau Le champ peut n'afficher que le dernier niveau au lieu de tous. :::demo L'attribut `show-all-levels` détermine si tous les niveaux sont affichés. Si il est à `false`, seul le dernier niveau est affiché. ```html ``` ::: ### Valeur par défaut :::demo La valeur par défaut peut être définit grâce à un tableau. ```html ``` ::: ### Changement après sélection Les options parentes peuvent aussi être sélectionnées. :::demo Par défaut seules les options de dernier niveau peuvent être sélectionnées. En réglant `change-on-select` à `true`, les options parentes peuvent aussi être sélectionnées. ```html ``` ::: ### Charger les options dynamiquement Il est possible de charger dynamiquement les options quand on clique ou passe la souris sur leurs parent. :::demo Dans cet exemple, les optionsn'ont pas de données de villes au moment de l'initialisation. Grâce à l'évènement `active-item-change` vous pouvez charger les villes de manière dynamique. De plus, cet exemple montre comment `props` peut être utilisé. ```html ``` ::: ### Filtres Recherchez une option particulière en entrant des mots-clé. :::demo Ajouter `filterable` à `el-cascader` active le filtrage. ```html
Only options of the last level can be selected
Options of all levels can be selected
``` ::: ### Attributs | Attribut | Description | Type | Options | Défaut| |---------- |-------------------- |---------|------------- |-------- | | value / v-model | La valeur liée. | boolean / string / number | — | — | | options | Données des options. | array | — | — | | props | Options de configuration, voir la table suivante. | object | — | — | | value | Valeur sélectionnée. | array | — | — | | separator | Séparateur des options. | string | — | / | | popper-class | Classe personnalisée pour le menu déroulant du Cascader | string | — | — | | placeholder | Placeholder du champ. | string | — | Select | | disabled | Désactive le Cascader. | boolean | — | false | | clearable | Détermine si la valeur peut être effacée. | boolean | — | false | | expand-trigger | Mode de déclenchement du menu suivant. | string | click / hover | click | | show-all-levels | Détermine si tout les niveaux doivent être affichés dans le champ. | boolean | — | true | | filterable | Active la recherche par mots-clé. | boolean | — | — | | debounce | Délai d'attente après avoir entré un mot-clé, en millisecondes. | number | — | 300 | | change-on-select | Détermine si il est possible de sélectionner une option de n'importe quel niveau. | boolean | — | false | | size | taille du champ | string | medium / small / mini | — | | before-filter | Fonction de hook qui s'active avant le filtrage, le paramètre étant la valeur entrée. Si `false` est retourné ou bien une `Promise` est retournée puis rejetée, le filtrage sera annulé. | function(value) | — | — | ### props | Attribut | Description | Type | Valeurs acceptées | Défaut | | --------- | ----------------- | ------ | ------ | ------ | | label | Détermine quelle clé d'option est utilisé comme label. | string | — | — | | value | Détermine quelle clé d'option est utilisé comme valeur. | string | — | — | | children | Détermine quelle clé d'option est utilisé en tant que sous-options. | string | — | — | | disabled | Détermine quelle clé d'option est utilisé pour indiquer si l'option est désactivée. | string | — | — | ### Évènements | Nom | Description | Paramètres | |---------- |-------- |---------- | | change | Se déclecnhe lorsque la valeur change. | La valeur | | active-item-change | Se déclenche quand le parent de l'option active change, ne marche que si `change-on-select` est `false` | Un tableau des options actives | | blur | Se déclenche quand le Cascader perds le focus. | (event: Event) | | focus | Se déclenche quand le Cascader a le focus. | (event: Event) | | visible-change | Se déclenche quand le menu apparaît ou disparaît. | `true` quand il apparaît, `false` sinon. |