computed: {
namesFilter() {
if (this.name_from) {
return this.names.filter(item => {
return item.children.item[3].value.toLowerCase().includes(this.name_from.toLowerCase()) // Поиск по полному названию
return item.children.item[4].value.toLowerCase().includes(this.name_from.toLowerCase()) // Поиск по короткому названию
})
} else {
return this.names;
}
}
},
computed: {
namesFilter() {
const name = this.name_from.toLowerCase();
const names = this.names;
const filterBy = [ 3, 4 ];
return name
? names.filter(n => filterBy.some(i => n.children.item[i].value.toLowerCase().includes(name)))
: names;
},
},
filterBy
свойством компонента, привязать его содержимое через v-model
к, например, чекбоксам, и вот уже пользователь может настраивать фильтрацию по произвольному количеству свойств. namesFilter() {
if (this.name_from) {
let filter1 = this.names.filter(item => {
return item.children.item[3].value.toLowerCase().includes(this.name_from.toLowerCase()) // Поиск по полному названию
})
let filter2 = this.names.filter(item => {
return item.children.item[4].value.toLowerCase().includes(this.name_from.toLowerCase()) // Поиск по короткому названию
})
return [...filter1, ...filter2]
} else {
return this.names;
}
}