1
0
mirror of https://github.com/kihashi/stardew_community_checklist.git synced 2025-10-19 08:03:17 +00:00

Add event bindings for search field

This commit is contained in:
John Cleaver 2018-05-02 23:12:45 -04:00
parent 3444b7a762
commit dc5f0bdd6e
3 changed files with 45 additions and 5 deletions

View File

@ -6,7 +6,7 @@
<div class="field-body"> <div class="field-body">
<div class="field"> <div class="field">
<div class="control"> <div class="control">
<input class="input" placeholder="Item Name"/> <input class="input" placeholder="Item Name" v-bind:value="value" v-on:input="$emit('input', $event.target.value)"/>
</div> </div>
</div> </div>
</div> </div>
@ -15,7 +15,14 @@
<script> <script>
export default { export default {
name: 'item-search' name: 'item-search',
props: {
value: {
default () {
return ''
}
}
}
} }
</script> </script>

View File

@ -1,6 +1,6 @@
<template> <template>
<section class="section"> <section class="section">
<search-form></search-form> <search-form v-model="search"></search-form>
<section class="container"> <section class="container">
<div class="columns is-multiline"> <div class="columns is-multiline">
<div class="column is-3 is-flex" v-for="item in filtered_items" :key="item.id"> <div class="column is-3 is-flex" v-for="item in filtered_items" :key="item.id">
@ -21,9 +21,20 @@ export default {
SearchForm, SearchForm,
ItemCard ItemCard
}, },
data () {
return {
search: {
search_term: '',
search_seasons: this.$store.state.seasons,
search_skills: this.$store.state.skills
}
}
},
computed: { computed: {
filtered_items () { filtered_items () {
return this.$store.state.items var self = this
return self.$store.state.items
.filter(item => item.name.toLowerCase().indexOf(self.search.search_term.toLowerCase()) !== -1)
} }
} }

View File

@ -1,7 +1,7 @@
<template> <template>
<div class="columns"> <div class="columns">
<div class="column"> <div class="column">
<item-search /> <item-search v-model="search_term" v-on:input="$emit('input', searchFilter())" />
</div> </div>
<div class="column"> <div class="column">
<season-filter /> <season-filter />
@ -18,6 +18,28 @@ import SeasonFilter from '@/components/search/SeasonFilter.vue'
import SkillFilter from '@/components/search/SkillFilter.vue' import SkillFilter from '@/components/search/SkillFilter.vue'
export default { export default {
name: 'search-form', name: 'search-form',
props: {
search_term: {
default () {
return ''
},
search_seasons: {
type: Array
},
search_skills: {
type: Array
}
}
},
methods: {
searchFilter: function () {
return {
search_term: this.search_term,
search_seasons: this.search_seasons,
search_skils: this.search_skills
}
}
},
components: { components: {
ItemSearch, ItemSearch,
SeasonFilter, SeasonFilter,