Refactor to use defineModel
This commit is contained in:
parent
f2c7c48e84
commit
b44bd048ee
|
|
@ -1,23 +1,9 @@
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import { t } from "i18next";
|
import { t } from "i18next";
|
||||||
import { computed } from "vue";
|
|
||||||
|
|
||||||
const props = defineProps<{
|
const model = defineModel<{
|
||||||
modelValue: {
|
|
||||||
payment_method: string;
|
payment_method: string;
|
||||||
};
|
}>({ required: true });
|
||||||
}>();
|
|
||||||
|
|
||||||
const emit = defineEmits(["update:modelValue"]);
|
|
||||||
|
|
||||||
const model = computed({
|
|
||||||
get() {
|
|
||||||
return props.modelValue;
|
|
||||||
},
|
|
||||||
set(value) {
|
|
||||||
emit("update:modelValue", value);
|
|
||||||
},
|
|
||||||
});
|
|
||||||
|
|
||||||
const paymentMethods = [
|
const paymentMethods = [
|
||||||
{ value: "credit_card", label: t("a.Debit-/Kreditkarte/Twint") },
|
{ value: "credit_card", label: t("a.Debit-/Kreditkarte/Twint") },
|
||||||
|
|
@ -42,7 +28,7 @@ const paymentMethods = [
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div v-if="props.modelValue.payment_method === 'cembra_byjuno'" class="col-span-full">
|
<div v-if="model.payment_method === 'cembra_byjuno'" class="col-span-full">
|
||||||
<p class="mt-4">
|
<p class="mt-4">
|
||||||
{{ $t("shop.paymentCembraByjunoMessage") }}
|
{{ $t("shop.paymentCembraByjunoMessage") }}
|
||||||
</p>
|
</p>
|
||||||
|
|
|
||||||
|
|
@ -2,10 +2,8 @@
|
||||||
import ItDatePicker from "@/components/ui/ItDatePicker.vue";
|
import ItDatePicker from "@/components/ui/ItDatePicker.vue";
|
||||||
import { useEntities } from "@/services/entities";
|
import { useEntities } from "@/services/entities";
|
||||||
import "@vuepic/vue-datepicker/dist/main.css";
|
import "@vuepic/vue-datepicker/dist/main.css";
|
||||||
import { computed } from "vue";
|
|
||||||
|
|
||||||
const props = defineProps<{
|
const model = defineModel<{
|
||||||
modelValue: {
|
|
||||||
first_name: string;
|
first_name: string;
|
||||||
last_name: string;
|
last_name: string;
|
||||||
street: string;
|
street: string;
|
||||||
|
|
@ -17,21 +15,9 @@ const props = defineProps<{
|
||||||
|
|
||||||
phone_number: string;
|
phone_number: string;
|
||||||
birth_date: string;
|
birth_date: string;
|
||||||
};
|
}>({ required: true });
|
||||||
}>();
|
|
||||||
|
|
||||||
const emit = defineEmits(["update:modelValue"]);
|
|
||||||
|
|
||||||
const { countries } = useEntities();
|
const { countries } = useEntities();
|
||||||
|
|
||||||
const address = computed({
|
|
||||||
get() {
|
|
||||||
return props.modelValue;
|
|
||||||
},
|
|
||||||
set(value) {
|
|
||||||
emit("update:modelValue", value);
|
|
||||||
},
|
|
||||||
});
|
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<template>
|
<template>
|
||||||
|
|
@ -43,7 +29,7 @@ const address = computed({
|
||||||
<div class="mt-2">
|
<div class="mt-2">
|
||||||
<input
|
<input
|
||||||
id="first-name"
|
id="first-name"
|
||||||
v-model="address.first_name"
|
v-model="model.first_name"
|
||||||
type="text"
|
type="text"
|
||||||
name="first-name"
|
name="first-name"
|
||||||
required
|
required
|
||||||
|
|
@ -60,7 +46,7 @@ const address = computed({
|
||||||
<div class="mt-2">
|
<div class="mt-2">
|
||||||
<input
|
<input
|
||||||
id="last-name"
|
id="last-name"
|
||||||
v-model="address.last_name"
|
v-model="model.last_name"
|
||||||
type="text"
|
type="text"
|
||||||
name="last-name"
|
name="last-name"
|
||||||
required
|
required
|
||||||
|
|
@ -80,7 +66,7 @@ const address = computed({
|
||||||
<div class="mt-2">
|
<div class="mt-2">
|
||||||
<input
|
<input
|
||||||
id="street-address"
|
id="street-address"
|
||||||
v-model="address.street"
|
v-model="model.street"
|
||||||
type="text"
|
type="text"
|
||||||
required
|
required
|
||||||
name="street-address"
|
name="street-address"
|
||||||
|
|
@ -100,7 +86,7 @@ const address = computed({
|
||||||
<div class="mt-2">
|
<div class="mt-2">
|
||||||
<input
|
<input
|
||||||
id="street-number"
|
id="street-number"
|
||||||
v-model="address.street_number"
|
v-model="model.street_number"
|
||||||
name="street-number"
|
name="street-number"
|
||||||
type="text"
|
type="text"
|
||||||
autocomplete="street-number"
|
autocomplete="street-number"
|
||||||
|
|
@ -119,7 +105,7 @@ const address = computed({
|
||||||
<div class="mt-2">
|
<div class="mt-2">
|
||||||
<input
|
<input
|
||||||
id="postal-code"
|
id="postal-code"
|
||||||
v-model="address.postal_code"
|
v-model="model.postal_code"
|
||||||
type="text"
|
type="text"
|
||||||
required
|
required
|
||||||
name="postal-code"
|
name="postal-code"
|
||||||
|
|
@ -136,7 +122,7 @@ const address = computed({
|
||||||
<div class="mt-2">
|
<div class="mt-2">
|
||||||
<input
|
<input
|
||||||
id="city"
|
id="city"
|
||||||
v-model="address.city"
|
v-model="model.city"
|
||||||
type="text"
|
type="text"
|
||||||
name="city"
|
name="city"
|
||||||
required
|
required
|
||||||
|
|
@ -153,7 +139,7 @@ const address = computed({
|
||||||
<div class="mt-2">
|
<div class="mt-2">
|
||||||
<select
|
<select
|
||||||
id="country"
|
id="country"
|
||||||
v-model="address.country_code"
|
v-model="model.country_code"
|
||||||
required
|
required
|
||||||
name="country"
|
name="country"
|
||||||
autocomplete="country-name"
|
autocomplete="country-name"
|
||||||
|
|
@ -170,14 +156,14 @@ const address = computed({
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div v-if="address.payment_method === 'cembra_byjuno'" class="col-span-full">
|
<div v-if="model.payment_method === 'cembra_byjuno'" class="col-span-full">
|
||||||
<label for="phone" class="block text-sm font-medium leading-6 text-gray-900">
|
<label for="phone" class="block text-sm font-medium leading-6 text-gray-900">
|
||||||
{{ $t("a.Telefonnummer") }}
|
{{ $t("a.Telefonnummer") }}
|
||||||
</label>
|
</label>
|
||||||
<div class="mt-2">
|
<div class="mt-2">
|
||||||
<input
|
<input
|
||||||
id="phone"
|
id="phone"
|
||||||
v-model="address.phone_number"
|
v-model="model.phone_number"
|
||||||
type="text"
|
type="text"
|
||||||
name="phone"
|
name="phone"
|
||||||
autocomplete="phone-number"
|
autocomplete="phone-number"
|
||||||
|
|
@ -186,12 +172,12 @@ const address = computed({
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div v-if="address.payment_method === 'cembra_byjuno'" class="col-span-full">
|
<div v-if="model.payment_method === 'cembra_byjuno'" class="col-span-full">
|
||||||
<label for="birth-date" class="block text-sm font-medium leading-6 text-gray-900">
|
<label for="birth-date" class="block text-sm font-medium leading-6 text-gray-900">
|
||||||
{{ $t("a.Geburtsdatum") }}
|
{{ $t("a.Geburtsdatum") }}
|
||||||
</label>
|
</label>
|
||||||
<div class="mt-2">
|
<div class="mt-2">
|
||||||
<ItDatePicker v-model="address.birth_date"></ItDatePicker>
|
<ItDatePicker v-model="model.birth_date"></ItDatePicker>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue