element ui table 增加筛选的方法示例

 更新时间:2018年11月02日 13:41:31   作者:徐金俊  
这篇文章主要介绍了element ui table 增加筛选的方法示例,详细的介绍了如何添加规则内容,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

网上大部分都可以增加筛选功能,但没有找到下列这种情况。

若表头数据较多,而表头是自己通过v-for循环产生,这种情况怎么给虚拟dom添加筛选规则。

<el-table-column v-for="item in tableHead" :key="item.id" :prop="item.id" :label="item.label" :filters="item.filter" :filter-method="item.filter && filterHandler">

列表头是通过v-for循环遍历出来的数据

如何添加规则内容

首先,element提供了filters,filter-method两个属性,一个是写规则的内容,一个是写的方法。

this.tableHead = [
   {id: '1', label: xxx},
   {id: '2', label: xxx, filter: []},
   {id: '3', label: xxx, filter: []},
   {id: '4', label: xxx},
   {id: '5', label: xxx},
   {id: '6', label: xxx, filter: []}
  ]

只需要在要添加规则的上面加上filter这个key值。

filter里面的内容要按照element ui 上面的格式塞进去

:filters="[{ text: '家', value: '家' }, { text: '公司', value: '公司' }]"

所以只能用方法来找到相应的id然后再处理。

let filterList = this.tableHead.filter(i => i.id === '1')[0].filter

规则的内容是和列表内容有关系,而一般情况下列表的内容也是从后端数据拿到的。所以要对规则的内容进行处理。

this.tableData.forEach((item) => {
   filterList.push({
   text: item.xxx, value: item.yyy
  })
 })

这样操作肯定会有重复的text和value,所以需要去重。

去重方法:

uniqArrObject (arr) {
  let result = {}
  let finalResult = []
  for (let i = 0; i < arr.length; i++) {
   result[arr[i].text] = arr[i]
  }
  for (let key in result) {
   finalResult.push(result[key])
  }
  return finalResult
 },

得到最终的规则内容:

filterList = this.uniqArrObject(filterList)

规则方法

filterHandler (value, row, column) {
  const property = column['property']
  return row[property] === value || row[property].value === value
},

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • Vue组件实现原理详细分析

    Vue组件实现原理详细分析

    这篇文章主要介绍了Vue组件基础操作,组件是vue.js最强大的功能之一,而组件实例的作用域是相互独立的,这就意味着不同组件之间的数据无法相互进行直接的引用
    2023-01-01
  • 轻松学Vue组件之单文件组件

    轻松学Vue组件之单文件组件

    一个组件相当于是一个小模块,它是html、css与js的集合体,可以用于描述页面中的某个结构(模块),下面这篇文章主要给大家介绍了关于轻松学Vue组件之单文件组件的相关资料,需要的朋友可以参考下
    2023-03-03
  • 详解Vue.js中引入图片路径的几种方式

    详解Vue.js中引入图片路径的几种方式

    这篇文章主要介绍了Vue.js中引入图片路径的几种方式,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-06-06
  • vue3实现动态侧边菜单栏的几种方式简单总结

    vue3实现动态侧边菜单栏的几种方式简单总结

    在做开发中都会遇到的需求,每个用户的权限是不一样的,那他可以访问的页面(路由)可以操作的菜单选项是不一样的,如果由后端控制,我们前端需要去实现动态路由,动态渲染侧边菜单栏,这篇文章主要给大家介绍了关于vue3实现动态侧边菜单栏的几种方式,需要的朋友可以参考下
    2024-02-02
  • vue--elementui中如何修改el-input样式

    vue--elementui中如何修改el-input样式

    在使用 element ui 组件过程中,我最近碰到了新的问题,vue--elementui中如何修改el-input样式呢,今天小编通过示例代码给大家详细讲解,需要的朋友参考下吧
    2023-05-05
  • 如何在 Vue 表单中处理图片

    如何在 Vue 表单中处理图片

    这篇文章主要介绍了如何在 Vue 表单中处理图片,帮助大家更好的理解和使用vue框架,感兴趣的朋友可以了解下
    2021-01-01
  • 基于Vue3实现视频播放与截图功能

    基于Vue3实现视频播放与截图功能

    这篇文章主要为大家详细介绍了如何通过Vue3实现简单的视频播放与截图功能,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2025-04-04
  • Vue3中Vuex的详细使用方法

    Vue3中Vuex的详细使用方法

    在vue3.x中vuex调取值在html代码里可以直接使用vue2.x的方法,但是在js里与vue2.x就有了那么一丢丢的不同,下面这篇文章主要给大家介绍了关于Vue3中Vuex详细使用的相关资料,需要的朋友可以参考下
    2022-07-07
  • 使用vue-cli导入Element UI组件的方法

    使用vue-cli导入Element UI组件的方法

    这篇文章给大家介绍了使用vue-cli导入Element UI组件的方法,非常不错,具有一定的参考借鉴价值,需要的朋友一起看看吧
    2018-05-05
  • vue实现在页面上添加水印的示例代码

    vue实现在页面上添加水印的示例代码

    这篇文章主要给大家介绍一下vue实现在页面上添加水印的实例,文中有详细的代码示例供大家参考,具有一定的参考价值,感兴趣的小伙伴跟着小编一起来看看吧
    2023-12-12

最新评论