feat: setup complete

This commit is contained in:
Reto Aebersold 2023-11-09 11:36:05 +01:00 committed by Christian Cueni
parent 02a155410e
commit 515900ca9d
6 changed files with 99 additions and 12 deletions

View File

@ -0,0 +1,22 @@
<script setup lang="ts">
const props = defineProps({
icon: {
type: String,
default: "it-icon-info",
},
color: {
type: String,
default: "text-inherit",
},
});
</script>
<template>
<div class="mb-8 flex items-center space-x-4 border px-8 py-4">
<component
:is="props.icon"
:class="['block aspect-square h-16 w-auto', props.color]"
/>
<slot name="content"></slot>
</div>
</template>

View File

@ -12,7 +12,11 @@ const props = defineProps<{
<ItNavigationProgress :steps="3" :current-step="props.step" />
<slot name="content"></slot>
</div>
<div class="flex justify-end border border-t px-6 py-4">
<div
class="flex justify-end space-x-2 px-6 py-4"
:class="{ 'border border-t': $slots.footer }"
>
<slot name="footer"></slot>
</div>
</div>

View File

@ -1,6 +1,7 @@
<script setup lang="ts">
import WizardPage from "@/components/onboarding/WizardPage.vue";
import { useUserStore } from "@/stores/user";
import InfoBox from "@/components/onboarding/InfoBox.vue";
const userStore = useUserStore();
</script>
@ -9,15 +10,15 @@ const userStore = useUserStore();
<WizardPage :step="0.5">
<template #content>
<h2 class="my-10">Konto erstellen</h2>
<div class="mb-8 flex items-center space-x-4 border px-8 py-4">
<it-icon-check class="h-24 w-24 text-green-500" />
<p class="text-lg font-bold">
Du hast erfolgreich ein Konto für
<br />
{{ userStore.email }} erstellt.
</p>
</div>
<InfoBox color="text-green-500" icon="it-icon-check">
<template #content>
<p class="text-lg font-bold">
Du hast erfolgreich ein Konto für
<br />
{{ userStore.email }} erstellt.
</p>
</template>
</InfoBox>
<p class="text-lg font-bold">Mach nun weiter mit dem nächsten Schritt.</p>
</template>

View File

@ -69,10 +69,10 @@ watch(selectedCompany, (company) => {
</template>
<template #footer>
<button class="btn-blue flex items-center">
<router-link :to="{ name: 'setupComplete' }" class="btn-blue flex items-center">
Weiter
<it-icon-arrow-right class="it-icon ml-2 h-6 w-6" />
</button>
</router-link>
</template>
</WizardPage>
</template>

View File

@ -0,0 +1,54 @@
<script setup lang="ts">
import WizardPage from "@/components/onboarding/WizardPage.vue";
import InfoBox from "@/components/onboarding/InfoBox.vue";
import { ref } from "vue";
const courseSessionName = ref("");
</script>
<template>
<WizardPage :step="2">
<template #content>
<h2 class="my-10">An Durchführung teilnehmen</h2>
<template v-if="courseSessionName">
<InfoBox color="text-green-500" icon="it-icon-check">
<template #content>
<p class="text-lg">
Super, nun ist alles bereit. Du bist der Durchführung «{{
courseSessionName
}}» zugewiesen und kannst mit dem Lehrgang starten.
</p>
</template>
</InfoBox>
</template>
<template v-else>
<InfoBox>
<template #content>
<p class="text-lg">
Aktuell bist du leider keiner Durchführung zugewiesen.
</p>
</template>
</InfoBox>
<p>
Damit du mit diesem Lehrgang starten kannst, musst du einer Durchführung
zugewiesen werden. Nimm dafür deinem üK-Verantwortlichen oder unserem
<a class="underline" href="mailto:help@vbv.ch">Support</a>
Kontakt auf.
</p>
</template>
</template>
<template v-if="courseSessionName" #footer>
<router-link
:to="{ name: 'accountProfile' }"
class="btn-secondary flex items-center"
>
<it-icon-arrow-left class="it-icon mr-2 h-6 w-6" />
Zurück
</router-link>
<router-link to="/" class="btn-blue flex items-center">
Jetzt mit dem Lehrgang starten
<it-icon-arrow-right class="it-icon ml-2 h-6 w-6" />
</router-link>
</template>
</WizardPage>
</template>

View File

@ -258,6 +258,12 @@ const router = createRouter({
component: () => import("@/pages/onboarding/uk/AccountProfile.vue"),
name: "accountProfile",
},
{
path: "account/complete",
props: true,
component: () => import("@/pages/onboarding/uk/SetupComplete.vue"),
name: "setupComplete",
},
],
},
{