结合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.过滤后实现效果

相关推荐
gnip16 小时前
企业级配置式表单组件封装
前端·javascript·vue.js
一只叫煤球的猫17 小时前
写代码很6,面试秒变菜鸟?不卖课,面试官视角走心探讨
前端·后端·面试
excel18 小时前
Three.js 材质(Material)详解 —— 区别、原理、场景与示例
前端
掘金安东尼18 小时前
抛弃自定义模态框:原生Dialog的实力
前端·javascript·github
hj5914_前端新手1 天前
javascript基础- 函数中 this 指向、call、apply、bind
前端·javascript
薛定谔的算法1 天前
低代码编辑器项目设计与实现:以JSON为核心的数据驱动架构
前端·react.js·前端框架
Hilaku1 天前
都2025年了,我们还有必要为了兼容性,去写那么多polyfill吗?
前端·javascript·css
yangcode1 天前
iOS 苹果内购 Storekit 2
前端
LuckySusu1 天前
【js篇】JavaScript 原型修改 vs 重写:深入理解 constructor的指向问题
前端·javascript
LuckySusu1 天前
【js篇】如何准确获取对象自身的属性?hasOwnProperty深度解析
前端·javascript