结合el-input、el-select实现纯前端过滤树形el-table数据

样式图示

1.搜索实现方法

bash 复制代码
const searchBtn = async () => {
    // 获取table列表数据接口
    const res = await Api.menuList({paging: false})
    if (res.code === 200) {
        // 把树形结构转成扁平结构
        let result = treeToArray(res.data)
        // 处理搜索框中数据进行table显示项过滤
        if(commonData.searchParams.menuName || commonData.searchParams.menuCode || commonData.searchParams.status ) {
            // 过滤后给el-table重新赋值
            commonData.tableData = result.filter(item => {
                /**
                 * menuName 搜索框名称数据项
                 * menuCode 搜索框编码数据项
                 * status 搜索框普通用户数据项
                 */
                const {menuName, menuCode, status} = commonData.searchParams
                const isMenuName = menuName ?  item.menuName.includes(menuName):true
                const isMenuCode = menuCode?  item.menuCode.includes(menuCode):true
                // item.status == status 次数判断是因为 status只会出现 1 或者 2
                const isStatus = status ? item.status == status :true
                return isMenuName && isMenuCode && isStatus
            })
            // 调用方法让table树形结构展开
            unfoldBtn()
        } else {
            // 重新加载table数据接口
            loadData()
        }
    }
}

2.过滤后实现效果

相关推荐
ohMyGod_12330 分钟前
React16,17,18,19新特性更新对比
前端·javascript·react.js
前端小趴菜0532 分钟前
React-forwardRef-useImperativeHandle
前端·vue.js·react.js
@大迁世界32 分钟前
第1章 React组件开发基础
前端·javascript·react.js·前端框架·ecmascript
Hilaku35 分钟前
从一个实战项目,看懂 `new DataTransfer()` 的三大妙用
前端·javascript·jquery
爱分享的程序员39 分钟前
前端面试专栏-算法篇:20. 贪心算法与动态规划入门
前端·javascript·node.js
我想说一句40 分钟前
事件委托与合成事件:前端性能优化的"偷懒"艺术
前端·javascript
爱泡脚的鸡腿42 分钟前
Web第二次笔记
前端·javascript
良辰未晚42 分钟前
Canvas 绘制模糊?那是你没搞懂 DPR!
前端·canvas
Dream耀1 小时前
React合成事件揭秘:高效事件处理的幕后机制
前端·javascript
P7Dreamer1 小时前
Vue 3 + Element Plus 实现可定制的动态表格列配置组件
前端·vue.js