You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

50 lines
1.0 KiB
Vue

<script setup lang="ts">
import { useShoppingListStore } from '../store/shoppingList';
import { ref, reactive } from 'vue';
import { useRouter } from 'vue-router';
const store = useShoppingListStore();
const router = useRouter();
const isValid = ref(false);
const item = reactive({
name: '',
price: 0.99,
user: '',
});
const form = ref(null);
const submit = () => {
store.items.push({
name: item.name,
price: item.price * 100,
user: store.users.find(user => user.name === item.user),
});
router.push('/shopping-list');
};
</script>
<template>
<v-form ref="form" v-model="isValid" lazy-validation>
<v-text-field
label="Item Name"
required
v-model="item.name"
/>
<v-text-field
label="Price"
suffix="€"
required
v-model="item.price"
/>
<v-select
label="User"
:items="store.users.map(user => user.name)"
required
v-model="item.user"
/>
<v-btn color="primary" @click="submit()">add item</v-btn>
</v-form>
</template>