前端tree通过input过滤


data() {

    return {

            treeData: [],

            treeData: [

                {

                    name: 'aa',

                     id: '1'

                    children: [{name: 'ab', id: '11', children:undefined}]

                    }

             ]

     }

},


method: {

      filterTreeData(row) {

          this.treeData= row ?this.returnFilter(JSON.parse(JSON.stringify(this.treeDataAll)),row,'-1'):JSON.parse(JSON.stringify(this.treeDataAll))

      },

        returnFilter(data,row,isTop) {

                const arr= []

                const list= [...data]

                list.forEach(item => {

                    item.isShow= false

                    if (item['children']) {

                            const children= this.returnFilter(item.children,row)

                            item.isShow= children.isShow

                            item.children= children.list

                    }

                    if (item.name.includes(row)|| item.isShow) {

                        arr.push(item)

                    }

            })

            if (isTop === '-1') {

                return arr

            }else {

                if (arr.length> 0) {

                    return { list: arr, isShow: true }

              }

                return { list: arr, isShow: false }

        }

    }

}

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容