VUE element-ui 表格筛选filter-method方法,适用于数组,嵌套对象

希望大家指正

针对这种情况,第一栏是新老校区都有的情况
VUE element-ui 表格筛选filter-method方法,适用于数组,嵌套对象_第1张图片VUE element-ui 表格筛选filter-method方法,适用于数组,嵌套对象_第2张图片
筛选的数据是这样的,classTimePosition是表格的一个prop绑定的属性

classTimePosition: [{
                            campus:'new',
                            timePosition:[{
                                time:'1',
                                weekD: '周三',
                                position:'bw221',
                            },{
                                time:'2',
                                weekD: '周一',
                                position:'bx211',
                            }],
                        },{
                            campus:'old',
                            timePosition:[{
                                time:'3',
                                weekD: '周五',
                                position:'bs227',
                            }],
                        }
                        ],
 //表头筛选
            filterHandler(value, row, column){  //筛选选项的value,一行row对象,column一列的属性值
                const property = column['property'];    // column['property']值为属性名·
                // console.log(JSON.stringify(column));
                
                //筛选数据中[{campus: '',..... }]这种类型数据
                if(Array.isArray(row[property])){   //行中该属性是数组
                    var  arr = false;
                    for(var i in row[property]){
                    //每次的arr为上一次和这一次结果的或,效果就是如果数据出现新老校区都有的情况,筛选到时候新老校区都会显示这条数据
                        arr = (row[property][i].campus === value)||arr;
                    }
                    return arr;
                }
			//
			else if(row[property] instanceof Object){//属性值是对象
                  
                    if(row[property].isInstituteRc!=undefined)
                        return row[property].isInstituteRc  === value;
                }
            else{ //普通属性值
                    return row[property] === value;
                }
            },

你可能感兴趣的:(vue)