flaschengeist-frontend/src/components/baruser/SearchBar.vue

71 lines
1.4 KiB
Vue
Raw Normal View History

<template>
2020-01-14 21:01:24 +00:00
<div>
<v-toolbar>
<v-spacer />
<v-toolbar-items>
<v-autocomplete
outlined
return-object
v-model="user"
style="margin-top: 3px"
placeholder="Suche Person"
:items="allUsers"
item-text="fullName"
full-width
2020-01-23 22:25:21 +00:00
:loading="loading"
:search-input.sync="filter"
>
<template v-slot:prepend-inner>
<v-icon>{{search_person}}</v-icon>
</template>
</v-autocomplete>
2020-01-14 21:01:24 +00:00
<v-btn text @click="addUser">Hinzufügen</v-btn>
</v-toolbar-items>
</v-toolbar>
</div>
</template>
<script>
2020-01-14 21:01:24 +00:00
import { mapGetters, mapActions } from 'vuex'
import { mdiAccountSearch } from '@mdi/js'
2020-01-14 21:01:24 +00:00
export default {
name: 'SearchBar',
props: {},
data() {
return {
user: null,
filter: '',
search_person: mdiAccountSearch
}
2020-01-14 21:01:24 +00:00
},
created() {
this.getAllUsers()
},
methods: {
...mapActions({
getAllUsers: 'barUsers/getAllUsers',
addCreditList: 'barUsers/addCreditList',
setFilter: 'barUsers/setFilter'
2020-01-14 21:01:24 +00:00
}),
addUser() {
this.addCreditList(this.user)
this.user = null
}
},
computed: {
2020-01-23 22:25:21 +00:00
...mapGetters({
allUsers: 'barUsers/allUsers',
loading: 'barUsers/allUsersLoading'
})
},
watch: {
filter(val) {
this.setFilter(val)
}
2020-01-14 21:01:24 +00:00
}
}
</script>
<style scoped></style>