1
0
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:
John Cleaver 2018-05-16 23:20:14 -04:00
parent dc19dc63fd
commit 6e94bf35b8
3 changed files with 66 additions and 27 deletions

View File

@ -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: {

View File

@ -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)
}
}
}

View File

@ -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>