BjTreeview

Composant Vue pour l’arborescence DSBJ. Structure récursive via nodes ; variantes cases à cocher et compact.

Utilisation

<script setup>
import { BjTreeview } from '@flrxnt/dsbj/vue'

const nodes = [
  {
    id: '1',
    label: 'Documents',
    icon: 'ri-folder-line',
    children: [
      { id: '1-1', label: 'Rapport.pdf', icon: 'ri-file-text-line' },
    ],
  },
]
</script>

<template>
  <BjTreeview :nodes="nodes" :checkbox="false" :compact="false" />
</template>

Aperçu (HTML)

  • Documents
    • Rapport.pdf
    • Note de service.docx

Aperçu HTML (compact + cases à cocher)

  • Projet
    • Tâche

Combinaisons checkbox × compact (4)

Les quatre booléens : (false,false), (true,false), (false,true), (true,true) sur la même structure nodes.

<BjTreeview :nodes="nodes" :checkbox="false" :compact="false" />
<BjTreeview :nodes="nodes" :checkbox="true" :compact="false" />
<BjTreeview :nodes="nodes" :checkbox="false" :compact="true" />
<BjTreeview :nodes="nodes" :checkbox="true" :compact="true" />

Événements

ÉvénementDescription
checkcheck(id, checked) : clic sur une case à cocher (prop checkbox true).
toggletoggle(id, expanded) : ouverture ou fermeture d’un nœud avec enfants.
<script setup>
import { BjTreeview } from '@flrxnt/dsbj/vue'

function onCheck(id: string, checked: boolean) {
  console.log('check', id, checked)
}
function onToggle(id: string, expanded: boolean) {
  console.log('toggle', id, expanded)
}
</script>

<template>
  <BjTreeview :nodes="nodes" :checkbox="true" @check="onCheck" @toggle="onToggle" />
</template>

Slots

Pas de slots : tout le libellé et les icônes viennent des objets nodes.

v-model

Pas de v-model : l’expansion et les cases sont internes ; écoutez check et toggle pour synchroniser votre état.

Props

PropDescription
nodesTableau de nœuds (id, label, icon, children et checked optionnels) ; children définit les sous-niveaux.
checkboxAffiche une case à cocher par nœud (défaut : false).
compactRéduit l’espacement (défaut : false).