当前位置:首页 > 前端教程

elementui filter

2026-01-14 20:05:11前端教程

ElementUI 过滤器(Filter)使用指南

ElementUI 是一套基于 Vue.js 的组件库,常用于快速构建前端界面。过滤器(Filter)在 ElementUI 中主要用于表格(Table)组件的列数据筛选或格式化显示。以下是常见的使用方法和示例。

表格列过滤器

在 ElementUI 的表格组件中,可以通过 filtersfilter-method 属性实现列数据的筛选功能。

elementui filter

<el-table :data="tableData">
  <el-table-column
    prop="status"
    label="状态"
    :filters="[
      { text: '启用', value: 'active' },
      { text: '禁用', value: 'inactive' }
    ]"
    :filter-method="filterStatus">
  </el-table-column>
</el-table>
methods: {
  filterStatus(value, row) {
    return row.status === value;
  }
}
  • filters 定义筛选选项,text 是显示文本,value 是筛选值。
  • filter-method 是自定义筛选函数,参数为筛选值 value 和当前行数据 row,返回 true 表示匹配。

全局过滤器(Vue Filter)

ElementUI 本身不提供全局过滤器功能,但可以结合 Vue 的过滤器(Filter)对数据进行格式化。

elementui filter

// 注册全局过滤器
Vue.filter('formatDate', function(value) {
  if (!value) return '';
  return new Date(value).toLocaleDateString();
});
<el-table :data="tableData">
  <el-table-column prop="createTime" label="创建时间">
    <template slot-scope="scope">
      {{ scope.row.createTime | formatDate }}
    </template>
  </el-table-column>
</el-table>

自定义筛选弹出框

对于更复杂的筛选需求,可以通过 scoped slot 自定义筛选界面。

<el-table :data="tableData">
  <el-table-column prop="name" label="姓名">
    <template slot="header" slot-scope="scope">
      <el-input
        v-model="searchName"
        size="mini"
        placeholder="输入姓名筛选"
        @change="handleNameFilter"/>
    </template>
  </el-table-column>
</el-table>
data() {
  return {
    searchName: '',
    tableData: [] // 原始数据
  };
},
methods: {
  handleNameFilter() {
    this.tableData = this.originalData.filter(item => 
      item.name.includes(this.searchName)
    );
  }
}

表单输入框过滤器

ElementUI 的输入框(Input)可以通过监听事件实现实时过滤。

<el-input
  v-model="searchText"
  placeholder="输入关键词过滤"
  @input="handleFilter">
</el-input>
<el-table :data="filteredData"></el-table>
data() {
  return {
    searchText: '',
    originalData: [],
    filteredData: []
  };
},
methods: {
  handleFilter() {
    this.filteredData = this.originalData.filter(item =>
      item.name.includes(this.searchText)
    );
  }
}

注意事项

  • 表格筛选功能需要数据源支持,确保 tableData 是可响应的。
  • 全局过滤器需在 Vue 实例化前注册。
  • 复杂筛选逻辑建议通过计算属性(computed)优化性能。

标签: elementuifilter
分享给朋友:

相关文章

elementui视频

elementui视频

以下是关于 ElementUI 视频资源的整理,涵盖教程、实战案例和官方资源: ElementUI 官方视频资源 ElementUI 官方文档虽以文字为主,但部分社区或第三方平台可能有官方团队发布的…

elementui iview

elementui iview

Element UI 和 iView 对比 Element UI 和 iView 都是基于 Vue.js 的 UI 组件库,广泛应用于企业级中后台系统的开发。以下是两者的主要特点和差异: Eleme…

elementui rowspan

elementui rowspan

合并行(Rowspan)在 Element UI 表格中的实现 Element UI 的表格组件默认不直接支持 rowspan 属性,但可以通过自定义 span-method 方法实现合并行功能。以下…

elementui重写

elementui重写

重写 Element UI 组件的方法 Element UI 是一个基于 Vue.js 的组件库,重写其组件可以通过以下几种方式实现,具体取决于需求场景。 全局样式覆盖 通过修改 CSS 变量或覆盖…

elementui选中

elementui选中

选中状态的基本用法 在Element UI中,选中状态通常通过v-model绑定数据实现。例如表格的多选功能,使用el-table组件配合type="selection"的列定义,结合v-model绑…

elementui dropdown

elementui dropdown

ElementUI Dropdown 基础用法 ElementUI 的 Dropdown 组件用于创建下拉菜单,常用于导航或操作选项的折叠展示。以下是一个基础示例: <el-dropdown&…