el-tree 搜索 節點過濾 包含下級 節點過濾加載對應的子節點


 

原文地址:https://blog.csdn.net/klousYG/article/details/111247188

<template>
    <div>
        <el-input placeholder="輸入關鍵字進行過濾" v-model="filterText"></el-input>
        <el-tree class="filter-tree" :data="data" :props="defaultProps" default-expand-all :filter-node-method="filterNode" ref="tree"> </el-tree>
    </div>
</template>

<script>
export default {
    data() {
        return {
            filterText: '',
            data: [{id: 1, label: '一級 1', children: [{id: 4, label: '二級 1-1', children: [{id: 9, label: '三級 1-1-1'}, {id: 10, label: '三級 1-1-2'}] }] }, {id: 2, label: '一級 2', children: [{id: 5, label: '二級 2-1'}, {id: 6, label: '二級 2-2'}] }, {id: 3, label: '一級 3', children: [{id: 7, label: '二級 3-1'}, {id: 8, label: '二級 3-2'}] }], defaultProps: {children: 'children', label: 'label'}
        }
    }
    methods: {
        filterNode(value, data, node) {
            if (!value) return true
            let parentNode = node.parent, labels = [node.label], level = 1
            while (level < node.level) {
                labels = [...labels, parentNode.label]
                parentNode = parentNode.parent
                level++
            }
            return labels.some(label => label.indexOf(value) !== -1)
        },
    },
    watch: {
        filterText(val) {
            this.$refs.tree.filter(val);
        }
    },
}
</script>

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM