el-table 静态查询 filter方法

 查询

<el-form-item label="状态:">
                <el-select v-model="formData.status" placeholder="请选择状态" @change="handleQuery"
                           @clear="handleQuery" clearable>
                  <el-option label="全部" value=""></el-option>
                  <el-option label="未完成" value="未完成"></el-option>
                  <el-option label="已完成" value="已完成"></el-option>
                </el-select>
              </el-form-item>

表格

 <el-table :data="tableData | filterData "  style="width: 100%" @selection-change="handleSelectionChange" height="560px">
                <el-table-column type="selection" label="序号" align="center" >
                </el-table-column>
              <el-table-column label="状态" prop="status" align="center"></el-table-column>
                <el-table-column prop="entrustCode" label="委托编号" align="center" show-overflow-tooltip>
                </el-table-column>
...
</el-table>

筛选步骤,只根据状态来筛选

data() {
        return {
            // 表单搜索数据
            formData: {
                pageSize: 100,
                pageNum: 1,
                entrustCode:"",
                detectedDeptName:"",
                projectName:"",
              status: "",
            },
            //   表格数据
            tableData: [],
            total: 1, //表格数据总数
            pageSizes: [100, 200, 300],
            checkData:[],//选中数据
        };
    },
filters: {
    filterData: function (data) {
//解构参数
      const { status } = this.formData;
      let filteredData = [...data];
      if (status) {
        filteredData = filteredData.filter(item => item.status.includes(status));
      }
      return filteredData;
    },
  },
// 避免出现没有绑定到Vue实例本身
 mounted() {
      this.$options.filters.filterData = this.$options.filters.filterData.bind(this);
    },

注意:在组件的 mounted 生命周期钩子函数中,使用 bind 方法把 this.$options.filters.filterData 函数绑定到 Vue 实例上,确保该函数中的 this 指向 Vue 实例本身,否则将获取不到

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
el-table-column组件的filter-method属性用于绑定一个自定义的筛选方法,该方法会在用户选择筛选条件时触发。在给filter-method属性赋值时,需要传入一个函数名,该函数接收两个参数:value和key。value表示用户选择的筛选条件的值,key表示当前列的prop属性值。在该函数中,可以根据自定义的筛选逻辑对每行数据进行过滤,只保留符合条件的行数据。如果用户没有选择任何筛选条件,则可以直接返回原始的表格数据。\[2\]在el-table组件中,可以使用computed属性来定义一个计算属性filteredTableData,该属性会根据filterValue和filterKey的值对表格数据进行过滤。如果filterValue为空,则直接返回原始表格数据;否则,使用filter方法对表格数据进行过滤,只保留符合条件的行数据。\[3\]同时,可以在methods中定义handleFilter方法,该方法会在用户选择筛选条件时触发更新filterValue和filterKey的值,从而触发filteredTableData的重新计算。 #### 引用[.reference_title] - *1* *2* *3* [el-table如何实现筛选功能,以及filters,filter_method详解](https://blog.csdn.net/m0_51312071/article/details/130787388)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值