因为搞了好几天也没在网上找到答案。所以用了自己想的办法,后来感觉还是很笨的办法,不过总算解决了
screen(value4,value5,value6,currentPage) {
this.axios
.get(`/teacher/mapping/list`, {
schoolId: this.value4 ,
gradeId: this.value5 ,
subjectId: this.value6 ,
pageNum: this.currentPage,
size: 10
})
.then(res => res.data)
.then(data => {
if(data.code == 200) {
var arr = []//数组1
var arr1 = []//数组2
var arr2 = []//数组3
//如果三个中任何一个被选择的话执行这个
for(let i=0;i<this.list.length;i++){
if(this.value5 == this.list[i].gradeId){
arr.push(this.list[i])
}
if(this.value4 == this.list[i].schoolId){
arr.push(this.list[i])
}
if(this.value6 == this.list[i].subjectId){
arr.push(this.list[i])
}
}
// 如果三个中有任意两个被选择的话执行arr1
for(var j=0;j<this.list.length;j++){
if(this.value5 == this.list[j].gradeId && this.value4 == this.list[j].schoolId){
arr1.push(this.list[j])
}
if(this.value4 == this.list[j].schoolId && this.value6 == this.list[j].subjectId){
arr1.push(this.list[j])
}
if(this.value6 == this.list[j].subjectId && this.value5 == this.list[j].gradeId){
arr1.push(this.list[j])
}
}
// 如果三个都被选择的话执行arr2
for(var k=0;k<this.list.length;k++){
if(this.value5 == this.list[k].gradeId && this.value4 == this.list[k].schoolId && this.value6 == this.list[k].subjectId){
arr2.push(this.list[k])
}
}
//下面个判断出来的结果必须放在最后。不然会出错
if(this.value4 != '' || this.value5 != '' || this.value6 != ''){
this.list = arr
}
if(this.value5 != '' && this.value4 != '' || this.value4 != '' && this.value6 != '' || this.value6 != '' && this.value5 != ''){
this.list = arr1
}
if(this.value6 != '' && this.value5 != '' && this.value4 != ''){
this.list = arr2
}
}
})
},
当点击筛选按钮的时候改变下面的table表格的数据
以后如果有更好的办法会更新