fix: open now effect only current node
This commit is contained in:
parent
f7bf9fa91b
commit
4e98eaa95b
1 changed files with 3 additions and 4 deletions
|
|
@ -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"
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue