# Sélecteur arborescent
Contrôle de sélection en arbre. Réutilise la logique d'extension / de coche de LhTree : en sélection simple, le premier clic sur un nœud parent se contente de l'étendre (il faut un second clic pour le sélectionner), tandis que le clic sur un nœud feuille le sélectionne directement ; la sélection multiple s'appuie sur des cases à cocher. Le panneau est monté sur body par défaut (Vue2 n'a pas de Teleport).
Sélecteur arborescent
<template>
<div class="demo-col" style="gap: 16px">
<div class="demo-row" style="gap: 12px; flex-wrap: wrap">
<LhTreeSelect v-model="single" :data="data" placeholder="Sélection simple (clic sur un parent : extension ; clic sur une feuille : sélection)" />
<LhTreeSelect v-model="single" :data="data" disabled placeholder="Désactivé" />
<LhTreeSelect v-model="multi" :data="data" multiple placeholder="Sélection multiple (cases à cocher)" />
</div>
<LhTreeSelect v-model="embedded" :data="data" :teleported="false" placeholder="teleported=false, panneau intégré" />
<p class="demo-note">
Simple : {{ single || "(non sélectionné)" }} ; multiple : {{ multi.join(', ') || "(non sélectionné)" }} ; intégré : {{
embedded || "(non sélectionné)"
}}
</p>
</div>
</template>
<script>
export default {
data: () => ({
single: 'xishan',
multi: [],
embedded: '',
data: [
{
key: 'song',
label: 'Dynastie Song',
children: [
{ key: 'fan', label: 'Fan Kuan' },
{ key: 'xishan', label: 'Voyageurs parmi les montagnes et les rivières' },
],
},
{ key: 'yuan', label: 'Dynastie Yuan', children: [{ key: 'huang', label: 'Huang Gongwang' }] },
],
}),
}
</script>
# Props
| Prop | Description | Type | Valeur par défaut |
|---|---|---|---|
| data | Données de l'arbre | LhTreeNode[] | [] |
| v-model | Valeur courante ; en sélection simple, chaîne de clé ; en sélection multiple, tableau des clés cochées | string \| string[] | — |
| multiple | Sélection multiple (cases à cocher affichées, la valeur est le tableau des clés cochées) | boolean | false |
| disabled | Désactivé | boolean | false |
| placeholder | Texte de l'espace réservé | string | Pack de langue |
| teleported | Le panneau est-il monté sur body | boolean | true |
| sx | Propriétés de mise en page rapide | — | — |
# Events
input (v-model), change (value)
# Accessibilité
Le déclencheur est role="combobox" + aria-expanded ; le panneau hérite de la sémantique role="tree" / role="treeitem" de LhTree ;
en mode multiple, les cases à cocher portent aria-checked, et la navigation clavier complète est prise en charge.
Copyright © 2024-2026 FengMo WenXue