fix: open now effect only current node

This commit is contained in:
Methapon Metanipat 2024-09-16 13:25:06 +07:00
parent f7bf9fa91b
commit 4e98eaa95b

View file

@ -3,6 +3,7 @@ import { Icon } from '@iconify/vue';
import { ref } from 'vue';
type Node = {
[key: string]: any;
opened?: boolean;
selected?: boolean;
children?: Node[];
};
@ -11,7 +12,6 @@ type Props = {
level?: number;
keyTitle?: string;
keySubtitle?: string;
collapse?: boolean;
expandable?: boolean;
decoration?: {
level?: number;
@ -23,7 +23,6 @@ type Props = {
const props = defineProps<Props>();
const nodes = defineModel<Node[]>('nodes', { required: true });
const open = ref<boolean>(!props.collapse);
const dec = props.decoration?.find((v) => v.level === (props.level || 0));
</script>
@ -40,7 +39,7 @@ const dec = props.decoration?.find((v) => v.level === (props.level || 0));
<template v-else>
<div
class="item__content row items-center no-wrap"
@click="open = expandable ? !open : open"
@click="node.opened = expandable ? !node.opened : node.opened"
>
<label class="flex items-center item__checkbox" @click.stop>
<input type="checkbox" v-model="node.selected" />
@ -68,7 +67,7 @@ const dec = props.decoration?.find((v) => v.level === (props.level || 0));
<transition name="slide">
<div
class="q-pl-lg q-pt-sm"
v-if="open && node.children && node.children.length > 0"
v-if="node.opened && node.children && node.children.length > 0"
>
<TreeView
class="item__children"