需求:
后台返回el-tree全量数据,前端根据条件控制每个节点显示隐藏
实现:
获取后台数据后,调用this.$refs.componentTree.filter(“VS”);触发filterNode 方法,按照条件控制显示
效果:(条件:只显示name中包含 "VS"的节点,)

代码:
<template>
<div style="padding: 20px">
<el-tree
ref="componentTree"
style="height: 100%"
class="hx-scroll"
:data="componentTreeData"
highlight-current
show-checkbox
node-key="id"
:expand-on-click-node="false"
default-expand-all
:filter-node-method="filterNode"
:props="{ label: 'name', children: 'children' }"
>
</el-tree>
</div>
</template>
<script>
export default {
name: "test",
data() {
return {
componentTreeData: [
{
children: [
{
budgetVersionId: 1842182452449281,
children: [
{
budgetVersionId: 1842182452449281,
count: 0,
createTime: 1682301810000,
createdHostIp: "10.1.46.78,10.42.0.0",
creator: "system",
creatorId: -1,
id: 1849351792011922,
lastOperator: "韦民扬",
lastOperatorId: 1658858666192897,
name: "柱、暗柱VS柱",
new: false,
orderNo: 2,
parentId: 1849351790963362,
projectId: 1774308439969793,
reportType: 1,
status: 1,
thirdCommpent: "柱,暗柱",
type: 2,
updateHostIp: "10.1.46.78,10.42.0.0",
updateTime: 1682301810000,
},
{
budgetVersionId: 1842182452449281,
count: 0,
createTime: 1682301810000,
createdHostIp: "10.1.46.78,10.42.0.0",
creator: "system",
creatorId: -1,
id: 1849351790963361,
lastOperator: "韦民扬",
lastOperatorId: 1658858666192897,
name: "柱帽VS柱帽",
new: false,
orderNo: 3,
parentId: 1849351790963362,
projectId: 1774308439969793,
reportType: 1,
status: 1,
thirdCommpent: "柱帽",
type: 2,
updateHostIp: "10.1.46.78,10.42.0.0",
updateTime: 1682301810000,
},
{
budgetVersionId: 1842182452449281,
count: 0,
createTime: 1682301810000,
createdHostIp: "10.1.46.78,10.42.0.0",
creator: "system",
creatorId: -1,
id: 1849351792011921,
lastOperator: "韦民扬",
lastOperatorId: 1658858666192897,
name: "构造柱",
new: false,
orderNo: 4,
parentId: 1849351790963362,
projectId: 1774308439969793,
reportType: 1,
status: 1,
thirdCommpent: "构造柱",
type: 2,
updateHostIp: "10.1.46.78,10.42.0.0",
updateTime: 1682301810000,
},
],
count: 0,
createTime: 1682301810000,
createdHostIp: "10.1.46.78,10.42.0.0",
creator: "system",
creatorId: -1,
id: 1849351790963362,
lastOperator: "韦民扬",
lastOperatorId: 1658858666192897,
name: "柱",
new: false,
orderNo: 1,
projectId: 1774308439969793,
reportType: 1,
status: 1,
type: 1,
updateHostIp: "10.1.46.78,10.42.0.0",
updateTime: 1682301810000,
},
{
budgetVersionId: 1842182452449281,
children: [
{
budgetVersionId: 1842182452449281,
count: 0,
createTime: 1682301810000,
createdHostIp: "10.1.46.78,10.42.0.0",
creator: "system",
creatorId: -1,
id: 1849351792011920,
lastOperator: "韦民扬",
lastOperatorId: 1658858666192897,
name: "混凝土墙VS剪力墙",
new: false,
orderNo: 6,
parentId: 1849351790963360,
projectId: 1774308439969793,
reportType: 1,
status: 1,
thirdCommpent: "剪力墙",
type: 2,
updateHostIp: "10.1.46.78,10.42.0.0",
updateTime: 1682301810000,
},
{
budgetVersionId: 1842182452449281,
count: 0,
createTime: 1682301810000,
createdHostIp: "10.1.46.78,10.42.0.0",
creator: "system",
creatorId: -1,
id: 1849351790963391,
lastOperator: "韦民扬",
lastOperatorId: 1658858666192897,
name: "砌体墙VS砌体墙",
new: false,
orderNo: 7,
parentId: 1849351790963360,
projectId: 1774308439969793,
reportType: 1,
status: 1,
thirdCommpent: "砌体墙",
type: 2,
updateHostIp: "10.1.46.78,10.42.0.0",
updateTime: 1682301810000,
},
],
count: 0,
createTime: 1682301810000,
createdHostIp: "10.1.46.78,10.42.0.0",
creator: "system",
creatorId: -1,
id: 1849351790963360,
lastOperator: "韦民扬",
lastOperatorId: 1658858666192897,
name: "墙",
new: false,
orderNo: 5,
projectId: 1774308439969793,
reportType: 1,
status: 1,
type: 1,
updateHostIp: "10.1.46.78,10.42.0.0",
updateTime: 1682301810000,
},
{
budgetVersionId: 1842182452449281,
children: [
{
budgetVersionId: 1842182452449281,
count: 0,
createTime: 1682301810000,
createdHostIp: "10.1.46.78,10.42.0.0",
creator: "system",
creatorId: -1,
id: 1849351790963390,
lastOperator: "韦民扬",
lastOperatorId: 1658858666192897,
name: "门VS门",
new: false,
orderNo: 9,
parentId: 1849351792011919,
projectId: 1774308439969793,
reportType: 1,
status: 1,
thirdCommpent: "门",
type: 2,
updateHostIp: "10.1.46.78,10.42.0.0",
updateTime: 1682301810000,
},
{
budgetVersionId: 1842182452449281,
count: 0,
createTime: 1682301810000,
createdHostIp: "10.1.46.78,10.42.0.0",
creator: "system",
creatorId: -1,
id: 1849351792011918,
lastOperator: "韦民扬",
lastOperatorId: 1658858666192897,
name: "窗VS窗",
new: false,
orderNo: 10,
parentId: 1849351792011919,
projectId: 1774308439969793,
reportType: 1,
status: 1,
thirdCommpent: "窗",
type: 2,
updateHostIp: "10.1.46.78,10.42.0.0",
updateTime: 1682301810000,
},
{
budgetVersionId: 1842182452449281,
count: 0,
createTime: 1682301810000,
createdHostIp: "10.1.46.78,10.42.0.0",
creator: "system",
creatorId: -1,
id: 1849351790963389,
lastOperator: "韦民扬",
lastOperatorId: 1658858666192897,
name: "门联窗",
new: false,
orderNo: 11,
parentId: 1849351792011919,
projectId: 1774308439969793,
reportType: 1,
status: 1,
thirdCommpent: "门联窗",
type: 2,
updateHostIp: "10.1.46.78,10.42.0.0",
updateTime: 1682301810000,
},
{
budgetVersionId: 1842182452449281,
count: 0,
createTime: 1682301810000,
createdHostIp: "10.1.46.78,10.42.0.0",
creator: "system",
creatorId: -1,
id: 1849351792011917,
lastOperator: "韦民扬",
lastOperatorId: 1658858666192897,
name: "飘窗",
new: false,
orderNo: 12,
parentId: 1849351792011919,
projectId: 1774308439969793,
reportType: 1,
status: 1,
thirdCommpent: "飘窗",
type: 2,
updateHostIp: "10.1.46.78,10.42.0.0",
updateTime: 1682301810000,
},
{
budgetVersionId: 1842182452449281,
count: 0,
createTime: 1682301810000,
createdHostIp: "10.1.46.78,10.42.0.0",
creator: "system",
creatorId: -1,
id: 1849351790963388,
lastOperator: "韦民扬",
lastOperatorId: 1658858666192897,
name: "墙洞VS墙洞",
new: false,
orderNo: 13,
parentId: 1849351792011919,
projectId: 1774308439969793,
reportType: 1,
status: 1,
thirdCommpent: "墙洞",
type: 2,
updateHostIp: "10.1.46.78,10.42.0.0",
updateTime: 1682301810000,
},
{
budgetVersionId: 1842182452449281,
count: 0,
createTime: 1682301810000,
createdHostIp: "10.1.46.78,10.42.0.0",
creator: "system",
creatorId: -1,
id: 1849351792011916,
lastOperator: "韦民扬",
lastOperatorId: 1658858666192897,
name: "板洞",
new: false,
orderNo: 14,
parentId: 1849351792011919,
projectId: 1774308439969793,
reportType: 1,
status: 1,
thirdCommpent: "板洞",
type: 2,
updateHostIp: "10.1.46.78,10.42.0.0",
updateTime: 1682301810000,
},
],
count: 0,
createTime: 1682301810000,
createdHostIp: "10.1.46.78,10.42.0.0",
creator: "system",
creatorId: -1,
id: 1849351792011919,
lastOperator: "韦民扬",
lastOperatorId: 1658858666192897,
name: "门窗洞",
new: false,
orderNo: 8,
projectId: 1774308439969793,
reportType: 1,
status: 1,
type: 1,
updateHostIp: "10.1.46.78,10.42.0.0",
updateTime: 1682301810000,
},
{
budgetVersionId: 1842182452449281,
children: [
{
budgetVersionId: 1842182452449281,
count: 0,
createTime: 1682301810000,
createdHostIp: "10.1.46.78,10.42.0.0",
creator: "system",
creatorId: -1,
id: 1849351792011915,
lastOperator: "韦民扬",
lastOperatorId: 1658858666192897,
name: "梁、环梁VS梁",
new: false,
orderNo: 16,
parentId: 1849351790963387,
projectId: 1774308439969793,
reportType: 1,
status: 1,
thirdCommpent: "梁",
type: 2,
updateHostIp: "10.1.46.78,10.42.0.0",
updateTime: 1682301810000,
},
{
budgetVersionId: 1842182452449281,
count: 0,
createTime: 1682301810000,
createdHostIp: "10.1.46.78,10.42.0.0",
creator: "system",
creatorId: -1,
id: 1849351790963386,
lastOperator: "韦民扬",
lastOperatorId: 1658858666192897,
name: "连梁",
new: false,
orderNo: 17,
parentId: 1849351790963387,
projectId: 1774308439969793,
reportType: 1,
status: 1,
thirdCommpent: "连梁",
type: 2,
updateHostIp: "10.1.46.78,10.42.0.0",
updateTime: 1682301810000,
},
{
budgetVersionId: 1842182452449281,
count: 0,
createTime: 1682301810000,
createdHostIp: "10.1.46.78,10.42.0.0",
creator: "system",
creatorId: -1,
id: 1849351792011914,
lastOperator: "韦民扬",
lastOperatorId: 1658858666192897,
name: "圈梁",
new: false,
orderNo: 18,
parentId: 1849351790963387,
projectId: 1774308439969793,
reportType: 1,
status: 1,
thirdCommpent: "圈梁",
type: 2,
updateHostIp: "10.1.46.78,10.42.0.0",
updateTime: 1682301810000,
},
{
budgetVersionId: 1842182452449281,
count: 0,
createTime: 1682301810000,
createdHostIp: "10.1.46.78,10.42.0.0",
creator: "system",
creatorId: -1,
id: 1849351790963385,
lastOperator: "韦民扬",
lastOperatorId: 1658858666192897,
name: "过梁",
new: false,
orderNo: 19,
parentId: 1849351790963387,
projectId: 1774308439969793,

实现el-tree组件根据后台提供的全量数据,前端通过filterNode方法动态控制树形结构中包含特定关键词如VS的节点显示,其他节点隐藏。
最低0.47元/天 解锁文章
1735

被折叠的 条评论
为什么被折叠?



