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

相关推荐
AI前端老薛4 分钟前
CSS实现动画的几种方式
前端·css
携欢8 分钟前
portswigger靶场之修改序列化数据类型通关秘籍
android·前端·网络·安全
前端小L9 分钟前
专题二:核心机制 —— reactive 与 effect
javascript·源码·vue3
GuMoYu9 分钟前
npm link 测试本地依赖完整指南
前端·npm
代码老祖9 分钟前
vue3 vue-pdf-embed实现pdf自定义分页+关键词高亮
前端·javascript
未等与你踏清风9 分钟前
Elpis npm 包抽离总结
前端·javascript
代码猎人10 分钟前
如何使用for...of遍历对象
前端
秋天的一阵风12 分钟前
🎥解决前端 “复现难”:rrweb 录制回放从入门到精通(下)
前端·开源·全栈
林恒smileZAZ12 分钟前
【Vue3】我用 Vue 封装了个 ECharts Hooks
前端·vue.js·echarts
颜酱12 分钟前
用填充表格法-继续吃透完全背包及其变形
前端·后端·算法