1.场景一,多选项单选
async search () {
await this.getRequestCaiLiaoDetail()
const values = Object.values(this.queryForm)
// 参数都为空
if (values.every((item) => !item)) {
this.caiLiaoTable = this.resultClone
return
}
// 去除为空的参数
const params = Object.keys(this.queryForm).reduce((cur, item) => {
if (this.queryForm[item]) {
cur[item] = this.queryForm[item]
}
return cur
}, {})
const paramsKeys = Object.keys(params)
this.caiLiaoTable = this.resultFilterClone.filter((item) => {
let flag = false
for (let i = 0; i < paramsKeys.length; i++) {
if (item[paramsKeys[i]].indexOf(params[paramsKeys[i]]) > -1) {
flag = true
} else {
flag = false
break
}
}
return flag
})
},
2.场景二,多选项为多选
async search() {
await this.getRequestCaiLiaoDetail()
const values = Object.values(this.queryForm)
// 参数都为空
if (values.every((item) => item.length === 0)) {
this.caiLiaoTable = this.resultClone
return
}
// 去除为空的参数
const params = Object.keys(this.queryForm).reduce((cur, item) => {
if (this.queryForm[item].length > 0) {
cur[item] = this.queryForm[item]
}
return cur
}, {})
const paramsKeys = Object.keys(params)
this.caiLiaoTable = this.resultFilterClone.filter((item) => {
let flag = false
for (let i = 0; i < paramsKeys.length; i++) {
if (this.haveContain(params[paramsKeys[i]], item[paramsKeys[i]])) {
flag = true
} else {
flag = false
break
}
}
return flag
})
},
// 查看多选项是否有当前字段
haveContain(arr, field) {
let flag = false;
flag = arr.some(el => {
return field.indexOf(el) > -1
})
return flag
},