使用场景,前端页面需要根据多个条件进行过滤数据。因为是前端进行过滤所以要将数据深拷贝一份,每次过滤后的数据都不修改源数据,否则会出现过滤数据后数据丢失的情况。
本方法是用的是includes所以是模糊搜索,只要包含就可以查出数据,不是精确匹配。
过滤数据前先判断是否输入条件,如果没有输入条件则返回源数据
filterTable () {
const { furnaceCode, lotCode, ftyLevelMatCode, cableCode } = this.formData.form
if (!furnaceCode && !lotCode && !ftyLevelMatCode && !cableCode) {
return this.rowLabelList
}
var tempData = []
const formDataKey = ['cableCode', 'furnaceCode', 'ftyLevelMatCode', 'lotCode'] // 需要搜索的字段名
const formData = this.formData.form
tempData = this.rowLabelList.filter((item) => {
return formDataKey.every((key) => {
return item[key].includes(formData[key])
})
}
)
return tempData
},