|
@@ -1,7 +1,7 @@
|
|
|
<template>
|
|
<template>
|
|
|
<LayoutContainer>
|
|
<LayoutContainer>
|
|
|
<v-row class="center-90">
|
|
<v-row class="center-90">
|
|
|
- <table>
|
|
|
|
|
|
|
+ <table v-if="mdAndUp">
|
|
|
<thead>
|
|
<thead>
|
|
|
<tr>
|
|
<tr>
|
|
|
<th/>
|
|
<th/>
|
|
@@ -75,13 +75,125 @@
|
|
|
</tr>
|
|
</tr>
|
|
|
</tbody>
|
|
</tbody>
|
|
|
</table>
|
|
</table>
|
|
|
|
|
+
|
|
|
|
|
+ <div v-else>
|
|
|
|
|
+ <div class="d-flex flex-row flex-grow-1 justify-center mt-2">
|
|
|
|
|
+ <v-btn
|
|
|
|
|
+ :disabled="carouselPos === 0"
|
|
|
|
|
+ icon="fas fa-chevron-left"
|
|
|
|
|
+ class="mr-6"
|
|
|
|
|
+ @click="goToPrevious"
|
|
|
|
|
+ />
|
|
|
|
|
+ <v-btn
|
|
|
|
|
+ :disabled="carouselPos === 1"
|
|
|
|
|
+ icon="fas fa-chevron-right"
|
|
|
|
|
+ @click="goToNext"
|
|
|
|
|
+ />
|
|
|
|
|
+ </div>
|
|
|
|
|
+
|
|
|
|
|
+ <v-carousel
|
|
|
|
|
+ v-model="carouselPos"
|
|
|
|
|
+ :hide-delimiters="true"
|
|
|
|
|
+ :show-arrows="false"
|
|
|
|
|
+ :height="800"
|
|
|
|
|
+ >
|
|
|
|
|
+ <v-carousel-item>
|
|
|
|
|
+ <h4>Standard</h4>
|
|
|
|
|
+ <div>
|
|
|
|
|
+ <p class="from">À partir de</p>
|
|
|
|
|
+ <p class="price">
|
|
|
|
|
+ {{ standardPrice }} <span class="ttc">ttc</span>
|
|
|
|
|
+ <span class="month">/mois</span>
|
|
|
|
|
+ </p>
|
|
|
|
|
+ </div>
|
|
|
|
|
+
|
|
|
|
|
+ <table>
|
|
|
|
|
+ <tbody>
|
|
|
|
|
+ <tr
|
|
|
|
|
+ v-for="(item, index) in items"
|
|
|
|
|
+ :key="item.label"
|
|
|
|
|
+ >
|
|
|
|
|
+ <td class="label-column">
|
|
|
|
|
+ {{ item.label }}
|
|
|
|
|
+ </td>
|
|
|
|
|
+
|
|
|
|
|
+ <td>
|
|
|
|
|
+ <v-icon
|
|
|
|
|
+ v-if="item.includedInStandard === true"
|
|
|
|
|
+ icon="far fa-check-circle"
|
|
|
|
|
+ size="18"
|
|
|
|
|
+ />
|
|
|
|
|
+
|
|
|
|
|
+ <v-icon
|
|
|
|
|
+ v-else-if="item.includedInStandard === false"
|
|
|
|
|
+ icon="far fa-times-circle"
|
|
|
|
|
+ size="18"
|
|
|
|
|
+ color="red"
|
|
|
|
|
+ />
|
|
|
|
|
+
|
|
|
|
|
+ <span v-else>
|
|
|
|
|
+ {{ item.includedInStandard }}
|
|
|
|
|
+ </span>
|
|
|
|
|
+ </td>
|
|
|
|
|
+ </tr>
|
|
|
|
|
+ </tbody>
|
|
|
|
|
+ </table>
|
|
|
|
|
+ </v-carousel-item>
|
|
|
|
|
+
|
|
|
|
|
+ <v-carousel-item>
|
|
|
|
|
+ <h4>Premium</h4>
|
|
|
|
|
+
|
|
|
|
|
+ <div>
|
|
|
|
|
+ <p class="from">À partir de</p>
|
|
|
|
|
+ <p class="price">
|
|
|
|
|
+ {{ premiumPrice }} <span class="ttc">ttc</span>
|
|
|
|
|
+ <span class="month">/mois</span>
|
|
|
|
|
+ </p>
|
|
|
|
|
+ </div>
|
|
|
|
|
+
|
|
|
|
|
+ <table>
|
|
|
|
|
+ <tbody>
|
|
|
|
|
+ <tr
|
|
|
|
|
+ v-for="(item, index) in items"
|
|
|
|
|
+ :key="item.label"
|
|
|
|
|
+ >
|
|
|
|
|
+ <td class="label-column">
|
|
|
|
|
+ {{ item.label }}
|
|
|
|
|
+ </td>
|
|
|
|
|
+
|
|
|
|
|
+ <td>
|
|
|
|
|
+ <v-icon
|
|
|
|
|
+ v-if="item.includedInPremium === true"
|
|
|
|
|
+ icon="far fa-check-circle"
|
|
|
|
|
+ size="18"
|
|
|
|
|
+ />
|
|
|
|
|
+
|
|
|
|
|
+ <v-icon
|
|
|
|
|
+ v-else-if="item.includedInPremium === false"
|
|
|
|
|
+ icon="far fa-times-circle"
|
|
|
|
|
+ size="18"
|
|
|
|
|
+ color="red"
|
|
|
|
|
+ />
|
|
|
|
|
+
|
|
|
|
|
+ <span v-else>
|
|
|
|
|
+ {{ item.includedInPremium }}
|
|
|
|
|
+ </span>
|
|
|
|
|
+ </td>
|
|
|
|
|
+ </tr>
|
|
|
|
|
+ </tbody>
|
|
|
|
|
+ </table>
|
|
|
|
|
+ </v-carousel-item>
|
|
|
|
|
+ </v-carousel>
|
|
|
|
|
+ </div>
|
|
|
</v-row>
|
|
</v-row>
|
|
|
</LayoutContainer>
|
|
</LayoutContainer>
|
|
|
</template>
|
|
</template>
|
|
|
|
|
|
|
|
<script setup lang="ts">
|
|
<script setup lang="ts">
|
|
|
-
|
|
|
|
|
import type { ComparisonItem } from "~/types/interface";
|
|
import type { ComparisonItem } from "~/types/interface";
|
|
|
|
|
+import { useDisplay } from "vuetify";
|
|
|
|
|
+
|
|
|
|
|
+const { mdAndUp } = useDisplay()
|
|
|
|
|
|
|
|
const props = defineProps({
|
|
const props = defineProps({
|
|
|
standardPrice: {
|
|
standardPrice: {
|
|
@@ -97,6 +209,17 @@ const props = defineProps({
|
|
|
required: true
|
|
required: true
|
|
|
}
|
|
}
|
|
|
});
|
|
});
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+const carouselPos = ref(0)
|
|
|
|
|
+
|
|
|
|
|
+const goToPrevious = () => {
|
|
|
|
|
+ carouselPos.value = 0
|
|
|
|
|
+};
|
|
|
|
|
+
|
|
|
|
|
+const goToNext = () => {
|
|
|
|
|
+ carouselPos.value = 1
|
|
|
|
|
+};
|
|
|
</script>
|
|
</script>
|
|
|
|
|
|
|
|
<style scoped lang="scss">
|
|
<style scoped lang="scss">
|
|
@@ -125,6 +248,10 @@ th {
|
|
|
font-weight: 400;
|
|
font-weight: 400;
|
|
|
font-size: 30px;
|
|
font-size: 30px;
|
|
|
line-height: 34px;
|
|
line-height: 34px;
|
|
|
|
|
+
|
|
|
|
|
+ @media (max-width: 600px) {
|
|
|
|
|
+ font-size: 18px;
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
tr {
|
|
tr {
|
|
@@ -138,6 +265,10 @@ tbody tr:nth-child(even) {
|
|
|
|
|
|
|
|
td {
|
|
td {
|
|
|
padding-right: 5rem;
|
|
padding-right: 5rem;
|
|
|
|
|
+
|
|
|
|
|
+ @media (max-width: 600px) {
|
|
|
|
|
+ padding-right: 0;
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
td:first-child {
|
|
td:first-child {
|
|
@@ -149,6 +280,10 @@ td:first-child {
|
|
|
letter-spacing: 0.18em;
|
|
letter-spacing: 0.18em;
|
|
|
text-transform: uppercase;
|
|
text-transform: uppercase;
|
|
|
color: var(--on-neutral-color-alt);
|
|
color: var(--on-neutral-color-alt);
|
|
|
|
|
+
|
|
|
|
|
+ @media (max-width: 600px) {
|
|
|
|
|
+ padding-left: 5px;
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
.standard {
|
|
.standard {
|
|
@@ -187,5 +322,32 @@ td:first-child {
|
|
|
|
|
|
|
|
.month {
|
|
.month {
|
|
|
padding-right: 5rem;
|
|
padding-right: 5rem;
|
|
|
|
|
+
|
|
|
|
|
+ @media (max-width: 600px) {
|
|
|
|
|
+ padding-right: 0;
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
|
|
+.v-carousel {
|
|
|
|
|
+ h4 {
|
|
|
|
|
+ text-align: center;
|
|
|
|
|
+ margin: 24px auto 12px auto;
|
|
|
|
|
+ text-transform: uppercase;
|
|
|
|
|
+ letter-spacing: 0.25em;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ p {
|
|
|
|
|
+ padding-right: 0;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ .price {
|
|
|
|
|
+ margin-top: 12px;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ .ttc {
|
|
|
|
|
+ padding-right: 10px;
|
|
|
|
|
+ }
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
</style>
|
|
</style>
|