42 lines
834 B
Vue
42 lines
834 B
Vue
|
<template>
|
||
|
<q-select
|
||
|
filled
|
||
|
label="Benutzer"
|
||
|
@input="updated"
|
||
|
v-model="user"
|
||
|
:options="users"
|
||
|
option-label="display_name"
|
||
|
option-value="userid"
|
||
|
map-options
|
||
|
/>
|
||
|
</template>
|
||
|
|
||
|
<script lang="ts">
|
||
|
import { computed, defineComponent, ref } from '@vue/composition-api';
|
||
|
import { Store } from 'vuex';
|
||
|
import { StateInterface } from 'src/store';
|
||
|
|
||
|
interface Props {
|
||
|
user: FG.User;
|
||
|
}
|
||
|
|
||
|
export default defineComponent({
|
||
|
name: 'UserSelector',
|
||
|
props: ['user'],
|
||
|
setup(props: Props, { root, emit }) {
|
||
|
const store = <Store<StateInterface>>root.$store;
|
||
|
const users = computed(() => store.state.user.users);
|
||
|
const user = ref(props.user);
|
||
|
const updated = (value: FG.User) => {
|
||
|
emit('update:user', value);
|
||
|
};
|
||
|
|
||
|
return {
|
||
|
user,
|
||
|
updated,
|
||
|
users
|
||
|
};
|
||
|
}
|
||
|
});
|
||
|
</script>
|