mirror of
https://github.com/kihashi/stardew_community_checklist.git
synced 2025-10-19 08:03:17 +00:00
Add filtering.
This commit is contained in:
parent
6e94bf35b8
commit
784050fdde
@ -24,9 +24,15 @@ export default {
|
||||
data () {
|
||||
return {
|
||||
search: {
|
||||
search_term: '',
|
||||
search_seasons: this.$store.state.seasons,
|
||||
search_skills: this.$store.state.skills
|
||||
name_filter: '',
|
||||
season_filter: {
|
||||
selected_seasons: ['spring', 'summer', 'fall', 'winter'],
|
||||
season_exclusive: false
|
||||
},
|
||||
skill_filter: {
|
||||
selected_skills: ['farming', 'foraging', 'mining', 'fishing', 'combat'],
|
||||
skill_exclusive: false
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
@ -34,7 +40,57 @@ export default {
|
||||
filtered_items () {
|
||||
var self = this
|
||||
return self.$store.state.items
|
||||
.filter(item => item.name.toLowerCase().indexOf(self.search.search_term.toLowerCase()) !== -1)
|
||||
.filter(item => item.name.toLowerCase().indexOf(self.search.name_filter.toLowerCase()) !== -1)
|
||||
.filter(item => this.FilterSeasons(item.seasons.map(ssn => ssn.id), this.search.season_filter))
|
||||
.filter(item => this.FilterSkills(item.skills.map(skl => skl.id), this.search.skill_filter))
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
FilterSeasons (itemSeasons, seasonFilter) {
|
||||
if (seasonFilter.season_exclusive) {
|
||||
if (itemSeasons.length !== seasonFilter.selected_seasons.length) {
|
||||
return false
|
||||
} else {
|
||||
var a = itemSeasons
|
||||
var b = seasonFilter.selected_seasons
|
||||
a.sort()
|
||||
b.sort()
|
||||
for (var i = 0; i < a.length; ++i) {
|
||||
if (a[i] !== b[i]) { return false }
|
||||
}
|
||||
return true
|
||||
}
|
||||
} else {
|
||||
for (var season of seasonFilter.selected_seasons) {
|
||||
if (itemSeasons.indexOf(season) !== -1) {
|
||||
return true
|
||||
}
|
||||
}
|
||||
return false
|
||||
}
|
||||
},
|
||||
FilterSkills (itemSkills, skillFilter) {
|
||||
if (skillFilter.skill_exclusive) {
|
||||
if (itemSkills.length !== skillFilter.selected_skills.length) {
|
||||
return false
|
||||
} else {
|
||||
var a = itemSkills
|
||||
var b = skillFilter.selected_skills
|
||||
a.sort()
|
||||
b.sort()
|
||||
for (var i = 0; i < a.length; ++i) {
|
||||
if (a[i] !== b[i]) { return false }
|
||||
}
|
||||
return true
|
||||
}
|
||||
} else {
|
||||
for (var season of skillFilter.selected_skills) {
|
||||
if (itemSkills.indexOf(season) !== -1) {
|
||||
return true
|
||||
}
|
||||
}
|
||||
return false
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user