fix: some condition not met make node not show
This commit is contained in:
parent
a51c250ccb
commit
7db7813a9e
1 changed files with 5 additions and 11 deletions
|
|
@ -93,22 +93,16 @@ function toggleExpand(node: Node, ancestor?: []) {
|
||||||
emits('open', node, ancestor);
|
emits('open', node, ancestor);
|
||||||
}
|
}
|
||||||
|
|
||||||
function filterNode(text: string, node: Node, ancestor?: Node[]) {
|
function visibleNode(text: string, node: Node, ancestor?: Node[]): boolean {
|
||||||
if (!text) return;
|
if (!text) return true;
|
||||||
|
|
||||||
const getTitle = (n: Node): string => n[props.keyTitle || 'title'];
|
const getTitle = (n: Node): string => n[props.keyTitle || 'title'];
|
||||||
const getSubtitle = (n: Node): string => n[props.keySubtitle || 'subtitle'];
|
const getSubtitle = (n: Node): string => n[props.keySubtitle || 'subtitle'];
|
||||||
const recursiveFilter = (n: Node): boolean => {
|
|
||||||
if (!n.children) {
|
|
||||||
return getTitle(n).includes(text) || getSubtitle(n).includes(text);
|
|
||||||
}
|
|
||||||
return n.children.some((v) => recursiveFilter(v));
|
|
||||||
};
|
|
||||||
|
|
||||||
return (
|
return (
|
||||||
ancestor?.some(
|
[node, ...(ancestor || [])].some(
|
||||||
(v) => getTitle(v).includes(text) || getSubtitle(v).includes(text),
|
(v) => getTitle(v).includes(text) || getSubtitle(v).includes(text),
|
||||||
) || recursiveFilter(node)
|
) || (node.children || []).some((v) => visibleNode(text, v, []))
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
@ -124,7 +118,7 @@ function filterNode(text: string, node: Node, ancestor?: Node[]) {
|
||||||
<template v-for="(node, i) in nodes" :key="i">
|
<template v-for="(node, i) in nodes" :key="i">
|
||||||
<div
|
<div
|
||||||
class="tree-item"
|
class="tree-item"
|
||||||
v-if="filterText ? filterNode(filterText, node, ancestorNode) : true"
|
v-if="filterText ? visibleNode(filterText, node, ancestorNode) : true"
|
||||||
>
|
>
|
||||||
<slot
|
<slot
|
||||||
v-if="$slots['item']"
|
v-if="$slots['item']"
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue