From 308e7d40f38409eafa9400e660983a01c7ef7ff2 Mon Sep 17 00:00:00 2001 From: Methapon Metanipat Date: Mon, 30 Sep 2024 13:23:51 +0700 Subject: [PATCH] feat: add ancestor node --- src/components/shared/TreeView.vue | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/components/shared/TreeView.vue b/src/components/shared/TreeView.vue index b8c4675b..60bbd5d6 100644 --- a/src/components/shared/TreeView.vue +++ b/src/components/shared/TreeView.vue @@ -21,6 +21,7 @@ type Props = { iconSize?: string; selectable?: boolean; selectedNode?: Node[]; + ancestorNode?: Node[]; decoration?: { level?: number; bg?: string; @@ -34,7 +35,7 @@ const nodes = defineModel('nodes', { required: true }); const emits = defineEmits<{ (e: 'checked'): void; - (e: 'select', node: Node): void; + (e: 'select', node: Node, ancestor?: Node[]): void; }>(); const dec = props.decoration?.find((v) => v.level === (props.level || 0)); @@ -162,8 +163,11 @@ function toggleExpand(node: Node) { $emit('checked'); } " - @select="(v) => $emit('select', v)" + @select="(v) => $emit('select', v, props.ancestorNode)" :level="(level || 0) + 1" + :ancestorNode=" + !props.ancestorNode ? [node] : [...props.ancestorNode, node] + " :expandable :decoration />