Catalogue.vue 7.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308
  1. <template>
  2. <AnchoredSection id="catalog">
  3. <LayoutContainer v-if="!mdAndDown">
  4. <div class="grey-container">
  5. <v-row class="custom-row">
  6. <LayoutUISubTitle
  7. :iconSize="6"
  8. :iconClasses="iconClasses"
  9. :titleText="'Découvrez notre catalogue de formation'"
  10. />
  11. <LayoutUITitle title="Catalogue" />
  12. </v-row>
  13. <v-row class="custom-row" style=" padding: 2rem; max-width: 90%; margin-left: auto; margin-right: auto;">
  14. <v-col v-for="(course, index) in courses" :key="index" cols="4">
  15. <v-card class="mb-4">
  16. <v-card-text>
  17. <div class="title-card-container">
  18. <span class="number-card">{{ course.number }}</span>
  19. <h4 class="card-title">{{ course.title }}</h4>
  20. <v-img class="logo-img" :src="course.imageUrl" />
  21. </div>
  22. <p class="details-card mb-6">{{ course.description }}</p>
  23. <div class="container-blue">
  24. <h6 class="title-obj">Objectifs pédagogiques</h6>
  25. <ul class="list-obj">
  26. <li
  27. v-for="(objective, objIndex) in course.objectives"
  28. :key="objIndex"
  29. >
  30. {{ objective }}
  31. </li>
  32. </ul>
  33. </div>
  34. <div class="container-blue">
  35. <h6 class="title-obj">Programme</h6>
  36. <v-row>
  37. <v-col
  38. v-for="column in course.program"
  39. :key="column.id"
  40. cols="6"
  41. >
  42. <ul class="list-obj">
  43. <li
  44. v-for="(objective, objIndex) in column.objectives"
  45. :key="objIndex"
  46. >
  47. {{ objective }}
  48. </li>
  49. </ul>
  50. </v-col>
  51. </v-row>
  52. </div>
  53. <v-chip class="badge-time"
  54. >
  55. <span> Durée : {{ course.duration }}</span>
  56. </v-chip
  57. >
  58. <v-chip class="badge-time"> <span>{{ course.price }}</span></v-chip>
  59. <v-chip
  60. class="chip-download"
  61. @click="downloadPdf(course.downloadLink)"
  62. >
  63. Télécharger le programme de formation
  64. </v-chip>
  65. </v-card-text>
  66. </v-card>
  67. </v-col>
  68. </v-row>
  69. </div>
  70. </LayoutContainer>
  71. </AnchoredSection>
  72. </template>
  73. <script setup>
  74. import { useDisplay } from "vuetify";
  75. import AnchoredSection from "~/components/Layout/AnchoredSection.vue";
  76. const { smAndDown, mdAndDown } = useDisplay();
  77. const downloadPdf = (pdfUrl) => {
  78. window.open(pdfUrl, "_blank");
  79. };
  80. const courses = [
  81. {
  82. number: "01",
  83. title: "Formation initiale ",
  84. description:
  85. "Cette formation est destinée aux nouveaux utilisateurs. Elle est obligatoire lors de l'acquisition du logiciel. Elle est également utile lors d'un changement de personnel dans la structure. ",
  86. objectives: [
  87. "Ajuster la configuration du logiciel",
  88. "Gérer les élèves et leurs familles",
  89. "Générer des factures et faire le suivi des règlements",
  90. "Gérer le planning des cours",
  91. "Evaluer les élèves et générer des bulletins",
  92. "Communiquer avec les personnes du répertoire",
  93. ],
  94. duration: "14h",
  95. program: [
  96. {
  97. id: 1,
  98. objectives: [
  99. "Accès et interface",
  100. "Configuration",
  101. "Répertoire",
  102. "Agenda",
  103. ],
  104. },
  105. {
  106. id: 2,
  107. objectives: [
  108. "Parc matériel",
  109. "Suivi pédagogique",
  110. "Facturation",
  111. "Communication",
  112. ],
  113. },
  114. ],
  115. price: "1 580 € TTC",
  116. downloadLink:
  117. "https://www.opentalent.fr/fileadmin/stockage/stockage/support/programme/PF-School-2023-02_2-jours.pdf",
  118. },
  119. {
  120. number: "02",
  121. title: "Formation complémentaire",
  122. // imageUrl: "/images/opentalent_school_black.jpg",
  123. description:
  124. "Cette formation suppose d’avoir les connaissances de base sur le logiciel. Elle permet d’avoir une remise à niveau sur sur des fonctionnalités qui ont été incorrectement comprises / configurées, ou qui ont été récemment développées.",
  125. objectives: [
  126. "Ajuster la configuration du logiciel",
  127. "Gérer les élèves et leurs familles",
  128. ],
  129. duration: "7h",
  130. program: [
  131. {
  132. id: 1,
  133. objectives: ["Accès et interface", "Configuration"],
  134. },
  135. {
  136. id: 2,
  137. objectives: ["Répertoire"],
  138. },
  139. ],
  140. price: "790€ TTC",
  141. downloadLink:
  142. "https://www.opentalent.fr/fileadmin/stockage/stockage/support/programme/PF-School-2023-02_1-jour.pdf",
  143. },
  144. {
  145. number: "03",
  146. title: "Formation Typo 3",
  147. // imageUrl: "/images/opentalent_school_black.jpg",
  148. description:
  149. "Cette formation est destinée aux nouveaux utilisateurs Typo3. Elle est optionnelle et permet d'aller plus loin dans la gestion du site internet intégré.",
  150. objectives: [
  151. "Gérer les pages et leur accès",
  152. "Gérer le contenu des pages et leur accès",
  153. "Configurer les options du site internet côté logiciel",
  154. ],
  155. duration: "7h",
  156. program: [
  157. {
  158. id: 1,
  159. objectives: ["Gestion des pages", "Gestion des blocs"],
  160. },
  161. {
  162. id: 2,
  163. objectives: ["Configuration côté logiciel"],
  164. },
  165. ],
  166. price: "790€ TTC",
  167. downloadLink:
  168. " https://www.opentalent.fr/fileadmin/stockage/stockage/support/programme/PF-Typo3-2023-02_1-jour.pdf",
  169. },
  170. ];
  171. </script>
  172. <style scoped>
  173. *{
  174. text-align: justify;
  175. }
  176. .custom-row {
  177. width: 90%;
  178. margin-left: auto;
  179. margin-right: auto;
  180. }
  181. .v-card {
  182. border: none !important;
  183. box-shadow: none !important;
  184. background-color: transparent !important;
  185. }
  186. .grey-container {
  187. background-color: #f8f8f8;
  188. }
  189. .chip-download {
  190. border-radius: 3rem;
  191. font-family: "Barlow";
  192. font-style: normal;
  193. font-weight: 500;
  194. font-size: 14px;
  195. line-height: 18px;
  196. margin-top: 1rem;
  197. margin-bottom: 1rem;
  198. display: flex;
  199. justify-content: center;
  200. align-items: center;
  201. }
  202. .badge-time {
  203. color: white;
  204. border: 1px solid #0e2d32;
  205. border-radius: 3rem;
  206. font-family: "Barlow";
  207. font-style: normal;
  208. font-weight: 500;
  209. font-size: 14px;
  210. line-height: 18px;
  211. margin-top: 1rem;
  212. margin-bottom: 1rem;
  213. display: flex;
  214. justify-content: center;
  215. align-items: center;
  216. }
  217. .badge-time span {
  218. color: var(--Vert-90, #0E2D32);
  219. }
  220. .list-obj {
  221. margin-top: 0.5rem;
  222. font-family: "Barlow";
  223. font-style: normal;
  224. font-weight: 300;
  225. font-size: 14px;
  226. line-height: 18px;
  227. color: #000000;
  228. }
  229. .title-obj {
  230. font-family: "Barlow";
  231. font-style: normal;
  232. font-weight: 500;
  233. font-size: 16px;
  234. line-height: 20px;
  235. color: #0e2d32;
  236. }
  237. .container-blue {
  238. justify-content: space-between;
  239. align-items: center;
  240. background: #c3e5e7;
  241. padding: 1rem;
  242. margin-top: 1rem;
  243. margin-bottom: 1rem;
  244. border-radius: 1rem;
  245. padding-left: 1.5rem;
  246. height: 13rem;
  247. }
  248. .details-card {
  249. font-family: "Barlow";
  250. font-style: normal;
  251. font-weight: 300;
  252. font-size: 1rem;
  253. line-height: 1rem;
  254. color: #091d20;
  255. margin-top: 1rem;
  256. margin-bottom: .5rem;
  257. height: 5rem;
  258. }
  259. .number-card {
  260. font-family: "Barlow";
  261. font-style: normal;
  262. font-weight: 500;
  263. font-size: 1.3rem;
  264. color: #b9e5e7;
  265. margin-right: 1rem;
  266. }
  267. .title-card-container {
  268. display: flex;
  269. flex-direction: row;
  270. justify-content: space-between;
  271. align-items: center;
  272. font-family: "Barlow";
  273. font-style: normal;
  274. font-weight: 600;
  275. font-size: 1.2rem;
  276. width: 31rem;
  277. border-bottom: 1px solid #0e2d32;
  278. }
  279. .logo-img {
  280. width: 10rem;
  281. height: 3rem;
  282. margin-top: 1rem;
  283. margin-bottom: 1rem;
  284. margin-left: 4rem;
  285. }
  286. </style>