add: filter proto

v0.3
rrr-marble 4 years ago
parent f608d3d9f6
commit 75d97dee8d

@ -48,34 +48,18 @@ export default {
.then(data => this.items = data) .then(data => this.items = data)
.catch((e) => console.log(e)) .catch((e) => console.log(e))
}, },
fetchFiltered(filter) {
const baseURL = "http://localhost:8080/api/v1";
// request options
const options = {
method: 'POST',
body: JSON.stringify(filter),
headers: {
'Content-Type': 'application/json'
}
};
fetch(`${baseURL}/detailed_search/?limit=10000`, options)
.then(res => res.json())
.then(data => this.items = data)
.catch((e) => console.log(e))
},
applyFilters(filter) { applyFilters(filter) {
let key; for (let key in filter) {
for (key in filter) {
if (filter[key] != "Any") { if (filter[key] != "Any") {
this.currentFilters[key] = filter[key] if (key in this.currentFilters)
this.currentFilters[key].push(filter[key]);
else
this.currentFilters[key] = [filter[key]];
} else { } else {
delete this.currentFilters[key] delete this.currentFilters[key]
} }
}; };
this.fetchFiltered(this.currentFilters);
}, },
}, },
mounted () { mounted () {
@ -83,7 +67,14 @@ export default {
}, },
computed: { computed: {
filteredItems() { filteredItems() {
return [...this.items].filter(item => true) return [...this.items].filter(item => {
for (let [filterParam, filterValues] of Object.entries(this.currentFilters)) {
if (!filterValues.includes(item[filterParam])){
return false;
}
}
return true;
})
}, },
filteredAndSearchedItems(){ filteredAndSearchedItems(){
return this.filteredItems.filter(item => { return this.filteredItems.filter(item => {

Loading…
Cancel
Save