Small improvements on account pages, added payment info card

This commit is contained in:
2024-11-04 12:04:15 +01:00
parent a776431738
commit 7e649240ca
12 changed files with 123 additions and 91 deletions

View File

@@ -1,5 +1,4 @@
<script setup lang="ts">
defineProps({
title: String,
subtitle: String,

View File

@@ -0,0 +1,11 @@
<script setup lang="ts">
</script>
<template>
<v-progress-circular
size="128"
width="12"
color="primary"
indeterminate
/>
</template>

View File

@@ -0,0 +1,21 @@
<script setup lang="ts">
import { useRouter } from 'vue-router';
import outlinedButton from '@/components/basics/outlinedButton.vue';
const router = useRouter()
</script>
<template>
<v-container max-width="1000">
<!-- Back to previous page -->
<v-row>
<v-col>
<outlined-button prepend-icon="mdi-arrow-left" @click="router.back()" >
{{ $t('misc.onePageBack') }}
</outlined-button>
</v-col>
</v-row>
<slot></slot>
</v-container>
</template>

View File

@@ -106,7 +106,8 @@
}
},
"addNewAccount": "Neuen Account hinzufügen",
"accountRole": "Account Rolle"
"accountRole": "Account Rolle",
"noRealPaymentsNeeded": "Keine echten Kontodaten nötig!"
},
"order": {
"orders": "Bestellung | Bestellungen",

View File

@@ -106,7 +106,8 @@
}
},
"addNewAccount": "Add new account",
"accountRole": "Account Role"
"accountRole": "Account Role",
"noRealPaymentsNeeded": "No real payment data required!"
},
"order": {
"orders": "Order | Orders",

View File

@@ -3,22 +3,14 @@ import accountDataCard from './accountDataCard.vue';
import accountManagingCard from './accountManagingCard.vue';
import addressesCard from './addressesCard.vue';
import paymentsCard from './paymentsCard.vue';
import OutlinedButton from '@/components/basics/outlinedButton.vue';
import { useRouter } from 'vue-router';
import accountSubPageLayout from '@/layouts/accountSubPageLayout.vue';
const router = useRouter()
</script>
<template>
<v-container max-width="1000">
<v-row>
<v-col>
<outlined-button prepend-icon="mdi-arrow-left" @click="router.back()" >
{{ $t('misc.onePageBack') }}
</outlined-button>
</v-col>
</v-row>
<account-sub-page-layout>
<v-row>
<v-col>
<account-data-card />
@@ -42,5 +34,5 @@ const router = useRouter()
<account-managing-card />
</v-col>
</v-row>
</v-container>
</account-sub-page-layout>
</template>

View File

@@ -4,9 +4,9 @@ import { useAccountStore } from '@/stores/account.store';
import outlinedButton from '@/components/basics/outlinedButton.vue';
import { PaymentModel } from '@/data/models/user/paymentModel';
import { getIbanRules, getStringRules } from '@/scripts/validationRules';
import cardViewOneLine from '@/components/basics/cardViewOneLine.vue';
const accountStore = useAccountStore()
</script>
<template>
@@ -14,9 +14,19 @@ const accountStore = useAccountStore()
icon="mdi-currency-usd"
:title="$t('account.userData.payment')"
>
<v-expansion-panels
v-if="accountStore.userAccount.payments.length > 0"
>
<v-row>
<v-col>
<card-view-one-line
color="amber"
prepend-icon="mdi-alert"
:title="$t('account.noRealPaymentsNeeded')"
/>
</v-col>
</v-row>
<v-row v-if="accountStore.userAccount.payments.length > 0">
<v-col>
<v-expansion-panels>
<v-expansion-panel
v-for="payment in accountStore.userAccount.payments"
color="primary"
@@ -56,12 +66,19 @@ const accountStore = useAccountStore()
</template>
</v-expansion-panel>
</v-expansion-panels>
</v-col>
</v-row>
<v-row v-else>
<v-col>
<v-empty-state
v-else
:title="$t('account.noPayments')"
icon="mdi-currency-usd-off"
/>
</v-col>
</v-row>
<template #actions>
<outlined-button

View File

@@ -1,27 +1,28 @@
<script setup lang="ts">
import { useAccountStore } from '@/stores/account.store';
import orderItem from './orderItem.vue';
import { useRouter } from 'vue-router';
import outlinedButton from '@/components/basics/outlinedButton.vue';
import accountSubPageLayout from '@/layouts/accountSubPageLayout.vue';
import circularProgressIndeterminate from '@/components/basics/circularProgressIndeterminate.vue';
const accountStore = useAccountStore()
const router = useRouter()
accountStore.refreshOrders()
</script>
<template>
<v-container max-width="1000">
<v-row>
<v-col>
<outlined-button prepend-icon="mdi-arrow-left" @click="router.back()" >
{{ $t('misc.onePageBack') }}
</outlined-button>
<account-sub-page-layout>
<!-- During fetching state -->
<v-row
v-if="accountStore.fetchInProgress"
>
<v-col class="text-center">
<circular-progress-indeterminate />
</v-col>
</v-row>
<!-- Display all orders -->
<v-row
v-if="accountStore.orders.length > 0"
v-else-if="accountStore.orders.length > 0"
v-for="order in accountStore.orders"
>
<v-col>
@@ -31,6 +32,7 @@ accountStore.refreshOrders()
</v-col>
</v-row>
<!-- No orders -->
<v-row v-else>
<v-col>
<v-empty-state
@@ -40,5 +42,5 @@ accountStore.refreshOrders()
/>
</v-col>
</v-row>
</v-container>
</account-sub-page-layout>
</template>

View File

@@ -5,11 +5,7 @@ import { OrderApiModel } from '@/data/models/apiEndpoints/orderApiModel';
import moment from 'moment';
defineProps({
order: OrderApiModel,
loading: {
type: Boolean,
default: false
}
order: OrderApiModel
})
</script>
@@ -52,7 +48,7 @@ defineProps({
:location="ticket.concert.location"
:city="ticket.concert.location.city"
:image="ticket.concert.image"
:seat="ticket.seat.seatNr"
:seat-nr="ticket.seat.seatNr"
:seat-group="ticket.seat.seatRow.seatGroup.name"
:seat-row="ticket.seat.seatRow.row"
/>

View File

@@ -7,6 +7,7 @@ import concertListItem from '@/components/pageParts/concertListItem.vue';
import outlinedButton from '@/components/basics/outlinedButton.vue';
import { useConcertStore } from '@/stores/concert.store';
import ticketListItem from '@/components/pageParts/ticketListItem.vue';
import circularProgressIndeterminate from '@/components/basics/circularProgressIndeterminate.vue';
const router = useRouter()
const basketStore = useBasketStore()
@@ -53,12 +54,7 @@ concertStore.getConcert(Number(router.currentRoute.value.params.id))
<v-row >
<v-col class="text-center" v-if="concertStore.fetchInProgress">
<v-progress-circular
size="x-large"
width="10"
color="primary"
indeterminate
/>
<circular-progress-indeterminate />
<div class="pt-5 text-h3">
{{ $t('misc.loading') }}...

View File

@@ -2,12 +2,11 @@
import { useRouter } from 'vue-router';
import sectionDivider from '@/components/basics/sectionDivider.vue';
import seatPlanMap from '@/components/seatPlanMap/seatPlanMap.vue';
import { ref } from 'vue';
import heroImage from '@/components/pageParts/heroImage.vue';
import concertListItem from '@/components/pageParts/concertListItem.vue';
import { LocationDetailsApiModel } from '@/data/models/locations/locationDetailsApiModel';
import cardViewHorizontal from '@/components/basics/cardViewHorizontal.vue';
import { useLocationStore } from '@/stores/location.store';
import circularProgressIndeterminate from '@/components/basics/circularProgressIndeterminate.vue';
const router = useRouter()
const locationStore = useLocationStore()
@@ -82,7 +81,7 @@ locationStore.getLocationByName(String(router.currentRoute.value.params.name))
<div v-if="locationStore.fetchInProgress">
<v-col class="text-center">
<v-progress-circular indeterminate :size="128" :width="12" color="primary" />
<circular-progress-indeterminate />
</v-col>
</div>

View File

@@ -11,9 +11,6 @@ locationStore.getLocations()
<template>
<v-container>
<v-row>
</v-row>
<v-row>
<v-spacer />