FAQ.vue 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159
  1. <!--
  2. Foire aux questions
  3. -->
  4. <template>
  5. <LayoutContainer>
  6. <v-row class="center-90">
  7. <LayoutUISubTitle>
  8. Des questions ?
  9. </LayoutUISubTitle>
  10. </v-row>
  11. <v-row class="center-90">
  12. <v-col cols="12" class="section-title">
  13. <h3>
  14. Tout savoir sur nos webinaire en ligne
  15. </h3>
  16. <div class="strong-label">
  17. Les questions les plus fréquentes
  18. </div>
  19. </v-col>
  20. </v-row>
  21. <div class="faq">
  22. <div
  23. v-for="(item, index) in faqItems"
  24. :key="index"
  25. class="faq-item"
  26. >
  27. <div
  28. class="question"
  29. @click="toggle(index)"
  30. >
  31. <v-icon icon="fas fa-circle" />
  32. {{ item.question }}
  33. </div>
  34. <div
  35. v-if="isOpen(index)"
  36. class="answer"
  37. >
  38. {{ item.answer }}
  39. </div>
  40. </div>
  41. </div>
  42. </LayoutContainer>
  43. </template>
  44. <script setup lang="ts">
  45. import type { FaqEntry } from "~/types/interface";
  46. const faqItems: Array<FaqEntry> = [
  47. {
  48. question: 'Comment s’inscrire à un webinaire?',
  49. answer: 'Pour vous inscrire à un webinaire, suivez le lien "Inscrivez-vous" correspondant au cours qui vous intéresse.',
  50. },
  51. {
  52. question: 'Combien de temps dure nos webinaires ?',
  53. answer: 'Nos webinaires durent en moyenne 1H30. Les sessions de questions/réponses peuvent parfois prolonger la durée prévue de nos webinaires.',
  54. },
  55. {
  56. question: 'Comment se passe un webinaire ?',
  57. answer: 'Inscrivez-vous à l\'un de nos webinaires en choisissant une date sur l\'agenda et renseignez vos informations. ' +
  58. 'Vous recevrez à la suite de votre inscription sur notre site, un email de confirmation avec un rappel de la date et de l\'horaire de participation ainsi que l\'URL de connexion pour le webinaire. ' +
  59. 'Un mail de relance à J-1 vous sera envoyer vous rappelant votre participation au webinaire. ' +
  60. 'Le jour J, cliquez sur l\'URL de connexion. Nous vous encourageons à arriver quelques minutes en avance pour vous assurer de pouvoir accéder au webinaire sans aucun problème technique. ' +
  61. 'Lors du début du webinaire, toutes les instructions nécessaires vous seront fournies.'
  62. },
  63. {
  64. question: 'De quel matériel aurais-je besoin pour suivre le webinaire ?',
  65. answer: 'Pour plus de confort, il est recommandé d\'être équipé d\'un outil (de préférence un ordinateur) disposant d\'un micro et de haut-parleur.',
  66. },
  67. {
  68. question: 'Y-a-t\'il une limite de participants ?',
  69. answer: 'Il n\'y a pas de limite de participants lors de nos webinaires. Cependant, nous nous réservons le droit d\'annuler une session si le nombre de participants est inférieur à 3 personnes.',
  70. },
  71. {
  72. question: 'J\'ai besoin d\'aide...',
  73. answer: 'Notre équipe est là pour vous. <button style="background-color: #0E2D32; color: #fff; border: none;border-radius: 4px;padding: 0.5rem 1rem;cursor: pointer;" class="contact-btn" onclick="window.location.href=\'/nous-contacter\'">Contactez-nous</button>'
  74. }];
  75. const activeIndex: Ref<number | null> = ref(null);
  76. function toggle(index: number) {
  77. activeIndex.value = activeIndex.value === index ? null : index;
  78. }
  79. function isOpen(index: number) {
  80. return activeIndex.value === index;
  81. }
  82. </script>
  83. <style scoped lang="scss">
  84. .section-title {
  85. display: flex;
  86. flex-direction: column;
  87. align-items: center;
  88. h3 {
  89. font-size: 2rem;
  90. letter-spacing: .1rem;
  91. line-height: 3.5rem;
  92. margin-bottom: .5rem;
  93. margin-top: 2rem;
  94. text-transform: uppercase;
  95. }
  96. .strong-label {
  97. font-size: 1.5rem;
  98. font-weight: 400 !important;
  99. letter-spacing: .1rem;
  100. line-height: 2rem;
  101. margin-bottom: 1rem;
  102. text-align: center;
  103. text-transform: uppercase;
  104. }
  105. }
  106. .faq {
  107. padding: 1rem;
  108. width: 90%;
  109. margin-left: auto;
  110. margin-right: auto;
  111. }
  112. .faq-item {
  113. margin-bottom: 0.5rem;
  114. border-radius: 4px;
  115. }
  116. .question {
  117. background-color: var(--primary-color);
  118. color: var(--on-primary-color);
  119. padding: 0.75rem 1rem;
  120. cursor: pointer;
  121. border-radius: 4px;
  122. display: flex;
  123. align-items: center;
  124. :hover {
  125. background-color: var(--neutral-color-alt-strong);
  126. }
  127. .v-icon {
  128. font-size: 10px !important;
  129. color: var(--on-primary-color-alt);
  130. margin-right: 0.5rem;
  131. }
  132. }
  133. .answer {
  134. background-color: var(--secondary-color);
  135. padding: 0.5rem 1rem;
  136. border: 1px solid var(--neutral-color-alt-strong);
  137. border-top: none;
  138. border-radius: 0 0 4px 4px;
  139. }
  140. </style>