FAQ.vue 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158
  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 center-90">
  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. v-html="item.answer"
  38. />
  39. </div>
  40. </div>
  41. </LayoutContainer>
  42. </template>
  43. <script setup lang="ts">
  44. import type { FaqEntry } from "~/types/interface";
  45. const faqItems: Array<FaqEntry> = [
  46. {
  47. question: 'Comment s’inscrire à un webinaire?',
  48. answer: 'Pour vous inscrire à un webinaire, suivez le lien "Inscrivez-vous" correspondant au cours qui vous intéresse.',
  49. },
  50. {
  51. question: 'Combien de temps dure nos webinaires ?',
  52. answer: 'Nos webinaires durent en moyenne 1H30. Les sessions de questions/réponses peuvent parfois prolonger la durée prévue de nos webinaires.',
  53. },
  54. {
  55. question: 'Comment se passe un webinaire ?',
  56. answer: 'Inscrivez-vous à l\'un de nos webinaires en choisissant une date sur l\'agenda et renseignez vos informations. ' +
  57. '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. ' +
  58. 'Un mail de relance à J-1 vous sera envoyer vous rappelant votre participation au webinaire. ' +
  59. '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. ' +
  60. 'Lors du début du webinaire, toutes les instructions nécessaires vous seront fournies.'
  61. },
  62. {
  63. question: 'De quel matériel aurais-je besoin pour suivre le webinaire ?',
  64. 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.',
  65. },
  66. {
  67. question: 'Y-a-t\'il une limite de participants ?',
  68. 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.',
  69. },
  70. {
  71. question: 'J\'ai besoin d\'aide...',
  72. answer: 'Notre équipe est là pour vous. <br/><button style="background-color: #0E2D32; color: #fff; border: none;border-radius: 4px;padding: 0.5rem 1rem;cursor: pointer;margin-top: 6px;" class="contact-btn" onclick="window.location.href=\'/nous-contacter\'">Contactez-nous</button>'
  73. }];
  74. const activeIndex: Ref<number | null> = ref(null);
  75. function toggle(index: number) {
  76. activeIndex.value = activeIndex.value === index ? null : index;
  77. }
  78. function isOpen(index: number) {
  79. return activeIndex.value === index;
  80. }
  81. </script>
  82. <style scoped lang="scss">
  83. .section-title {
  84. display: flex;
  85. flex-direction: column;
  86. align-items: center;
  87. h3 {
  88. font-size: 2rem;
  89. letter-spacing: .1rem;
  90. line-height: 3.5rem;
  91. margin-bottom: .5rem;
  92. margin-top: 2rem;
  93. text-transform: uppercase;
  94. }
  95. .strong-label {
  96. font-size: 1.5rem;
  97. font-weight: 400 !important;
  98. letter-spacing: .1rem;
  99. line-height: 2rem;
  100. margin-bottom: 1rem;
  101. text-align: center;
  102. text-transform: uppercase;
  103. }
  104. }
  105. .faq {
  106. padding: 1rem;
  107. width: 90%;
  108. margin-left: auto;
  109. margin-right: auto;
  110. }
  111. .faq-item {
  112. margin-bottom: 0.5rem;
  113. border-radius: 4px;
  114. }
  115. .question {
  116. background-color: var(--primary-color);
  117. color: var(--on-primary-color);
  118. padding: 0.75rem 1rem;
  119. cursor: pointer;
  120. border-radius: 4px;
  121. display: flex;
  122. align-items: center;
  123. :hover {
  124. background-color: var(--neutral-color-alt-strong);
  125. }
  126. .v-icon {
  127. font-size: 10px !important;
  128. color: var(--on-primary-color-alt);
  129. margin-right: 0.5rem;
  130. }
  131. }
  132. .answer {
  133. background-color: var(--secondary-color);
  134. padding: 0.5rem 1rem;
  135. border: 1px solid var(--neutral-color-alt-strong);
  136. border-top: none;
  137. border-radius: 0 0 4px 4px;
  138. }
  139. </style>