当前位置:首页 > VUE

VUE实现表头过滤

2026-01-17 18:38:33VUE

VUE实现表头过滤的方法

在VUE中实现表头过滤通常结合Element UI或Ant Design Vue等UI库的表格组件,以下是具体实现方式:

使用Element UI的Table组件

Element UI的el-table组件内置表头过滤功能,通过columnfiltersfilter-method属性实现:

VUE实现表头过滤

<el-table :data="tableData">
  <el-table-column
    prop="status"
    label="状态"
    :filters="[
      { text: '已完成', value: 'done' },
      { text: '进行中', value: 'progress' }
    ]"
    :filter-method="filterHandler">
  </el-table-column>
</el-table>
methods: {
  filterHandler(value, row, column) {
    return row.status === value;
  }
}

自定义表头过滤

对于需要完全自定义的场景,可以通过表头插槽实现:

<el-table :data="filteredData">
  <el-table-column prop="name" label="姓名">
    <template #header="scope">
      <el-input v-model="nameFilter" placeholder="筛选姓名"/>
    </template>
  </el-table-column>
</el-table>
computed: {
  filteredData() {
    return this.tableData.filter(item => 
      item.name.includes(this.nameFilter)
    );
  }
}

使用Ant Design Vue的Table

Ant Design Vue通过customFilterDropdown属性实现自定义过滤:

VUE实现表头过滤

<a-table :columns="columns" :data-source="data">
  <template #customFilterDropdown="{ setSelectedKeys, selectedKeys }">
    <div style="padding: 8px">
      <a-input
        placeholder="搜索名称"
        :value="selectedKeys[0]"
        @change="e => setSelectedKeys(e.target.value ? [e.target.value] : [])"
      />
    </div>
  </template>
</a-table>

动态过滤逻辑

对于复杂过滤需求,可以结合计算属性和watch实现动态过滤:

data() {
  return {
    filters: {
      name: '',
      status: []
    }
  }
},
computed: {
  filteredData() {
    return this.originalData.filter(item => {
      return (
        item.name.includes(this.filters.name) &&
        (this.filters.status.length === 0 || 
         this.filters.status.includes(item.status))
      );
    });
  }
}

服务端过滤

当数据量较大时,建议采用服务端过滤:

methods: {
  async fetchData(params) {
    const res = await api.get('/data', { params });
    this.tableData = res.data;
  },
  handleFilterChange(filter) {
    this.fetchData({ filter });
  }
}

以上方法可根据具体项目需求选择使用,Element UI/Ant Design Vue的封装方案适合快速实现,自定义方案则提供更高灵活性。

标签: 表头VUE
分享给朋友:

相关文章

VUE实现余额修改

VUE实现余额修改

VUE实现余额修改的方法 数据绑定与表单处理 使用Vue的v-model指令实现表单数据双向绑定,确保输入框与数据模型同步更新。 <template> <div>…

vue实现多级表头

vue实现多级表头

实现多级表头的核心方法 在Vue中实现多级表头通常需要结合el-table(Element UI)或自定义表格组件。以下是两种主流实现方式: 使用Element UI的el-table Elemen…

VUE实现闪动

VUE实现闪动

VUE实现闪动效果的方法 使用CSS动画 通过Vue绑定类名或样式,结合CSS的@keyframes实现闪动效果。定义动画关键帧并应用到元素上。 <template> <…

VUE实现sshLinux

VUE实现sshLinux

VUE 实现 SSH 连接 Linux 在 Vue 中实现 SSH 连接 Linux 服务器,通常需要借助第三方库或后端服务。以下是几种常见的方法: 使用 xterm.js 和 WebSocket…

VUE实现余额修改

VUE实现余额修改

Vue 实现余额修改功能 数据绑定与表单处理 在 Vue 中实现余额修改功能,通常需要一个表单来接收用户输入。通过 v-model 实现双向数据绑定,确保输入值与 Vue 实例中的数据同步。 <…

VUE实现悬浮框

VUE实现悬浮框

Vue 实现悬浮框的方法 使用 CSS 和 Vue 指令实现基础悬浮框 通过 Vue 的 v-show 或 v-if 指令控制悬浮框的显示与隐藏,结合 CSS 的 position: fixed 实现…