mirror of
https://github.com/kihashi/stardew_community_checklist.git
synced 2025-10-19 08:03:17 +00:00
Updated to propogate child events.
This commit is contained in:
parent
dc19dc63fd
commit
6e94bf35b8
@ -1,13 +1,13 @@
|
||||
<template>
|
||||
<div class="columns">
|
||||
<div class="column">
|
||||
<item-search v-model="search_term" v-on:input="$emit('input', searchFilter())" />
|
||||
<item-search v-model.lazy="value.name_filter" v-on:input="$emit('input', $event.target.value)" />
|
||||
</div>
|
||||
<div class="column">
|
||||
<season-filter />
|
||||
<season-filter :value="value.season_filter" v-on:input="UpdateSeasons"/>
|
||||
</div>
|
||||
<div class="column">
|
||||
<skill-filter />
|
||||
<skill-filter :value="value.skill_filter" v-on:input="UpdateSkills" />
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
@ -19,25 +19,30 @@ import SkillFilter from '@/components/search/SkillFilter.vue'
|
||||
export default {
|
||||
name: 'search-form',
|
||||
props: {
|
||||
search_term: {
|
||||
value: {
|
||||
default () {
|
||||
return ''
|
||||
},
|
||||
search_seasons: {
|
||||
type: Array
|
||||
},
|
||||
search_skills: {
|
||||
type: Array
|
||||
return {
|
||||
name_filter: '',
|
||||
season_filter: {
|
||||
selected_seasons: [],
|
||||
season_exclusive: false
|
||||
},
|
||||
skill_filter: {
|
||||
selected_skills: [],
|
||||
skill_exclusive: false
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
searchFilter: function () {
|
||||
return {
|
||||
search_term: this.search_term,
|
||||
search_seasons: this.search_seasons,
|
||||
search_skils: this.search_skills
|
||||
}
|
||||
UpdateSeasons (val) {
|
||||
this.value.season_filter = val
|
||||
this.$emit('input', this.value)
|
||||
},
|
||||
UpdateSkills (val) {
|
||||
this.value.skill_filter = val
|
||||
this.$emit('input', this.value)
|
||||
}
|
||||
},
|
||||
components: {
|
||||
|
||||
@ -5,8 +5,8 @@
|
||||
</div>
|
||||
<div class="field-body">
|
||||
<div class="field has-addons has-addons-centered">
|
||||
<div class="control" v-for="season in seasons" :key="season.id">
|
||||
<button-check>
|
||||
<div class="control" v-for="season in seasons" :key="season.order">
|
||||
<button-check :value="season.id" :checked="value.selected_seasons" v-on:change="UpdateSeasons">
|
||||
<span class="icon is-small">
|
||||
<season-icon :season="season"></season-icon>
|
||||
</span>
|
||||
@ -15,7 +15,7 @@
|
||||
</div>
|
||||
<div class="field">
|
||||
<div class="control is-expanded">
|
||||
<button-check class="is-fullwidth">
|
||||
<button-check class="is-fullwidth" :checked="value.season_exclusive" v-on:change="UpdateExclusive">
|
||||
Exclusive
|
||||
</button-check>
|
||||
</div>
|
||||
@ -33,10 +33,30 @@ export default {
|
||||
SeasonIcon,
|
||||
ButtonCheck
|
||||
},
|
||||
props: {
|
||||
value: {
|
||||
default () {
|
||||
return {
|
||||
selected_seasons: [],
|
||||
season_exclusive: false
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
seasons () {
|
||||
return this.$store.state.seasons
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
UpdateSeasons (val) {
|
||||
this.value.selected_seasons = val
|
||||
this.$emit('input', this.value)
|
||||
},
|
||||
UpdateExclusive (val) {
|
||||
this.value.season_exclusive = val
|
||||
this.$emit('input', this.value)
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -6,16 +6,16 @@
|
||||
<div class="field-body">
|
||||
<div class="field has-addons has-addons-centered">
|
||||
<div class="control" v-for="skill in skills" :key="skill.id">
|
||||
<button-check>
|
||||
<button-check :value="skill.id" :checked="value.selected_skills" v-on:change="UpdateSkills">
|
||||
<span class="icon is-small">
|
||||
<skill-icon :skill="skill"></skill-icon>
|
||||
<skill-icon :skill="skill" />
|
||||
</span>
|
||||
</button-check>
|
||||
</div>
|
||||
</div>
|
||||
<div class="field">
|
||||
<div class="control is-expanded">
|
||||
<button-check class="is-fullwidth">
|
||||
<button-check class="is-fullwidth" :checked="value.skill_exclusive" v-on:change="UpdateExclusive">
|
||||
Exclusive
|
||||
</button-check>
|
||||
</div>
|
||||
@ -34,17 +34,31 @@ export default {
|
||||
SkillIcon,
|
||||
ButtonCheck
|
||||
},
|
||||
data () {
|
||||
return {
|
||||
selected_skills: []
|
||||
props: {
|
||||
value: {
|
||||
default () {
|
||||
return {
|
||||
selected_skills: [],
|
||||
skill_exclusive: false
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
skills () {
|
||||
return this.$store.state.skills
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
UpdateSkills (val) {
|
||||
this.value.selected_skills = val
|
||||
this.$emit('input', this.value)
|
||||
},
|
||||
UpdateExclusive (val) {
|
||||
this.value.skill_exclusive = val
|
||||
this.$emit('input', this.value)
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
</script>
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user