Appearance
Tree
Tree 컴포넌트는 디렉터리, 조직도, 분류 체계 등 계층적인 구조의 데이터를 표현할 때 사용합니다. 사용자는 각 노드를 확장하거나 축소하고, 선택할 수 있어 구조를 직관적으로 탐색할 수 있습니다.
Tree
RnD 대시보드 모음
David 대시보드
기술지원
싸이웰 시스템
지티플러스
이인티그레이션
Aiden 대시보드
vue
<script setup lang="ts">
import { ref, computed } from 'vue';
import { Tree } from '@jennifersoft/vue-components-v2';
const treeData = ref([
{
label: 'RnD 대시보드 모음',
dashboard_ids: ['dashboard_id1', 'dashboard_id2', 'dashboard_id3'],
isOpen: true,
id: 'id1',
children: [
{
label: 'David 대시보드',
id: 'id2',
isOpen: true,
children: [
{
label: '기술지원',
id: 'id3',
isOpen: true,
dashboard_ids: [
'dashboard_id4',
'dashboard_id5',
'dashboard_id6',
],
children: [
{
label: '싸이웰 시스템',
id: 'id4',
dashboard_ids: ['dashboard_id7'],
},
{
label: '지티플러스',
id: 'id5',
dashboard_ids: ['dashboard_id8'],
},
{
label: '이인티그레이션',
id: 'id6',
dashboard_ids: ['dashboard_id9'],
},
],
},
],
},
{
label: 'Aiden 대시보드',
id: 'id7',
children: [
{
label: '기술지원',
id: 'id8',
dashboard_ids: [
'dashboard_id10',
'dashboard_id11',
'dashboard_id12',
],
},
],
},
],
},
]);
const selectedId = ref('id3');
</script>
<template>
<tree :nodes="treeData" v-model="selectedId" />
</template>
Icon Tree
ryan
ryan-dash
ryan-k8s-1011
ryan-k8s-1012
ryan-k8s-1013
ryan-k8s-1014
Total
jennifer
infra
Demian
vue
<script setup lang="ts">
import { ref, computed } from 'vue';
import { Tree } from '@jennifersoft/vue-components-v2';
import { ICON_TYPE } from '@jennifersoft/vue-components-v2';
const customIconTreeData = ref([
{
label: 'ryan',
isOpen: true,
id: 'id1',
icon: ICON_TYPE.domainGroup,
children: [
{
label: 'ryan-dash',
id: 'id2',
icon: ICON_TYPE.domain,
},
{
label: 'ryan-k8s-1011',
id: 'id3',
icon: ICON_TYPE.domain,
},
{
label: 'ryan-k8s-1012',
id: 'id4',
icon: ICON_TYPE.domain,
},
{
label: 'ryan-k8s-1013',
id: 'id5',
icon: ICON_TYPE.domain,
},
{
label: 'ryan-k8s-1014',
id: 'id6',
icon: ICON_TYPE.domain,
},
],
},
{
label: 'Total',
isOpen: true,
id: 'id7',
icon: ICON_TYPE.domainGroup,
children: [
{
label: 'jennifer',
id: 'id8',
icon: ICON_TYPE.domainGroup,
children: [
{
label: 'autodeploy',
id: 'id8-1',
icon: ICON_TYPE.domain,
},
{
label: 'webflux',
id: 'id8-2',
icon: ICON_TYPE.domain,
},
],
},
{
label: 'infra',
id: 'id10',
icon: ICON_TYPE.domainGroup,
children: [
{
label: 'simula',
id: 'id11',
icon: ICON_TYPE.domain,
},
{
label: 'ENV_TEST',
id: 'id12',
icon: ICON_TYPE.domain,
},
{
label: 'Jennifer5',
id: 'id13',
icon: ICON_TYPE.domain,
},
],
},
{
label: 'Demian',
id: 'id20',
icon: ICON_TYPE.domainGroup,
children: [
{
label: 'Demian background',
id: 'id21',
icon: ICON_TYPE.domain,
},
{
label: 'Demian collector',
id: 'id22',
icon: ICON_TYPE.domain,
},
{
label: 'Demian console',
id: 'id23',
icon: ICON_TYPE.domain,
},
],
},
],
},
]);
const selectedId = ref('id3');
</script>
<template>
<tree :nodes="customIconTreeData" v-model="selectedId" tree-type="icon" />
</template>
Folder Tree
RnD 대시보드 모음
David 대시보드
기술지원
싸이웰 시스템
지티플러스
이인티그레이션
Aiden 대시보드
vue
<script setup lang="ts">
import { ref, computed } from 'vue';
import { Tree } from '@jennifersoft/vue-components-v2';
const treeData = ref([
{
label: 'RnD 대시보드 모음',
dashboard_ids: ['dashboard_id1', 'dashboard_id2', 'dashboard_id3'],
isOpen: true,
id: 'id1',
children: [
{
label: 'David 대시보드',
id: 'id2',
isOpen: true,
children: [
{
label: '기술지원',
id: 'id3',
isOpen: true,
dashboard_ids: [
'dashboard_id4',
'dashboard_id5',
'dashboard_id6',
],
children: [
{
label: '싸이웰 시스템',
id: 'id4',
dashboard_ids: ['dashboard_id7'],
},
{
label: '지티플러스',
id: 'id5',
dashboard_ids: ['dashboard_id8'],
},
{
label: '이인티그레이션',
id: 'id6',
dashboard_ids: ['dashboard_id9'],
},
],
},
],
},
{
label: 'Aiden 대시보드',
id: 'id7',
children: [
{
label: '기술지원',
id: 'id8',
dashboard_ids: [
'dashboard_id10',
'dashboard_id11',
'dashboard_id12',
],
},
],
},
],
},
]);
const selectedId = ref('id3');
</script>
<template>
<tree :nodes="treeData" v-model="selectedId" tree-type="folder" />
</template>