vue中map()和filter()的使用—vue中隐藏表格整行

.filter()的使用:方法创建一个新的数组,新数组中的元素是通过检查指定数组中符合条件的所有元素。

语法:

const arr= [32, 33, 16, 40];
const arr1 = arr.filter(item => item >= 18)
console.log(arr)   // [32, 33, 16, 40]
console.log(arr1)  // [32, 33, 40]

map()的使用:方法返回一个新数组,数组中的元素为原始数组元素调用函数处理后的值;

map() 方法按照原始数组元素顺序依次处理元素。

语法:

const arr= [4, 9, 16, 25];
const arr1 = arr.map(item => item+2)
console.log(arr)   // [4, 9, 16, 25]
console.log(arr1)  // [6, 11, 18, 27]

------------------------------map()方法的具体使用-------------------------

<el-table v-loading="loading" :data="projectRoleList" @selection-change="handleSelectionChange" >
  <el-table-column type="selection" width="55" align="center" />
  <el-table-column label="部门" align="center" prop="deptName" />
  <el-table-column label="项目" align="center" prop="projectName" />
  <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
    <template slot-scope="scope">
      <el-button
        size="mini"
        type="text"
        icon="el-icon-edit"
        @click="handleUpdate(scope.row)"
      >修改</el-button>
      <el-button
        size="mini"
        type="text"
        icon="el-icon-delete"
        @click="handleDelete(scope.row)"
      >删除</el-button>
    </template>
  </el-table-column>
</el-table>
// 多选框选中数据
handleSelectionChange(selection) {
  this.ids = selection.map(item => item.projectId);
  this.projectNameIds = selection.map(item => item.projectName);  //map的使用
  this.single = selection.length!=1
  this.multiple = !selection.length
},

------------------------------filter()方法的具体使用-------------------------

后台数据

//表格数据-获取部门项目信息
projectList(){
  this.loading = true;
  listProject(this.queryParams).then(response=>{
    // console.log(response.rows)
    this.projectRoleList = response.rows.filter(v => v.delFlag !== 2);   //filter的使用
     //-----delFlag=2隐藏删除整行---------
    response.total = this.projectRoleList.length;
    this.total = response.total;
    this.loading = false;
  });
},

 

  • 8
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Vue ,可以使用 `filters` 过滤器对数据进行格式化,但是它不能直接用于表格筛选。要实现表格的日期筛选,需要在表格使用自定义筛选器。 在 Vue ,可以使用 `Vue.filter` 方法定义一个全局过滤器。但是在这种情况下,我们需要为每个表格定义不同的筛选器,因此最好将筛选器定义为组件的局部方法。 下面是一个示例代码,其包含一个名为 `dateFilter` 的自定义筛选器,以及一个名为 `DateTable` 的表格组件,该组件使用了 `el-date-picker` 组件来实现日期筛选: ```html <template> <div> <el-date-picker v-model="filterDate" type="date" placeholder="Select date" @change="handleFilterChange" ></el-date-picker> <el-table :data="tableData" :filters="filters"> <el-table-column prop="date" label="Date" :filters="dateFilters"></el-table-column> <el-table-column prop="name" label="Name"></el-table-column> <<!-- other columns --> </el-table> </div> </template> <script> export default { data() { return { filterDate: null, tableData: [ { name: 'John', date: '2021-01-01' }, { name: 'Mary', date: '2021-01-02' }, { name: 'Bob', date: '2021-01-03' }, <!-- more data --> ], }; }, computed: { dateFilters() { const set = new Set(); this.tableData.forEach((item) => { set.add(item.date); }); return Array.from(set).map((value) => ({ text: value, value })); }, filters() { return { date: (value, row) => { if (!this.filterDate) { return true; } return value === this.filterDate; }, }; }, }, methods: { handleFilterChange() { this.$refs.table.clearFilter(); this.$refs.table.addFilter('date', this.filterDate); }, }, }; </script> ``` 在上面的代码,我们定义了一个名为 `dateFilter` 的自定义筛选器,它将日期格式化为 `YYYY-MM-DD` 格式。然后,在表格组件,我们使用 `el-date-picker` 组件来实现日期筛选,并在表格使用 `filters` 属性来指定筛选器选项。同时,我们使用 `filters` 属性为表格添加了一个名为 `date` 的筛选器,其过滤方法根据日期筛选表格数据。 最后,在 `handleFilterChange` 方法,我们使用 `$refs` 引用表格并清除之前的筛选器,然后将新的日期筛选器应用到表格。 这样就实现了基于日期控件的表格筛选功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值