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:
parent
3444b7a762
commit
dc5f0bdd6e
@ -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>
|
||||||
|
|||||||
@ -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)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -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,
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user