浏览代码

refactor Formations section of the school page

Olivier Massot 1 年之前
父节点
当前提交
8c054dc007

+ 4 - 0
components/Logiciels/Artist/Formations.vue

@@ -41,6 +41,10 @@
         </v-container>
         </v-container>
       </div>
       </div>
 
 
+      <!--
+      TODO: Déplacer le "Quelques chiffres" dans un composant à part,
+      voir comment gérer ça avec les anchored sections
+      -->
       <v-row class="custom-row">
       <v-row class="custom-row">
         <LayoutUISubTitle class="mb-12">
         <LayoutUISubTitle class="mb-12">
           Quelques chiffres
           Quelques chiffres

+ 60 - 46
components/Logiciels/School/Projet.vue → components/Logiciels/School/Contact.vue

@@ -1,20 +1,28 @@
 <template>
 <template>
   <AnchoredSection id="contact">
   <AnchoredSection id="contact">
-    <LayoutContainer id="Contact">
-      <v-row >
+    <LayoutContainer>
+      <!-- Section "Appelez nous" -->
+      <v-row>
         <v-col cols="6">
         <v-col cols="6">
-          <!-- <div class="help-img">
-
-          </div> -->
-          <v-img class="help-img" src="/images/contact/contact.jpg" />
+          <v-img
+            src="/images/contact/contact.jpg"
+            class="help-img"
+          />
         </v-col>
         </v-col>
 
 
         <v-col cols="5">
         <v-col cols="5">
-          <LayoutUISubTitle :titleText="` Contactez-nous `" />
+          <LayoutUISubTitle>
+            Contactez-nous
+          </LayoutUISubTitle>
+
+          <LayoutUITitle>
+            Vous avez un projet ?
+          </LayoutUITitle>
 
 
-          <LayoutUITitle :title="` Vous avez un projet ? `" />
-          <div class="ml-6">
-            <h6 class="subtitle">N'attendez plus, appelez-nous !</h6>
+          <div class="pl-6">
+            <h6 class="subtitle">
+              N'attendez plus, appelez-nous !
+            </h6>
             <p class="contact-details">
             <p class="contact-details">
               Vous avez une identité, des besoins, des projets... On est là pour
               Vous avez une identité, des besoins, des projets... On est là pour
               vous écouter et vous offrir une offre personnalisée ! Que vous
               vous écouter et vous offrir une offre personnalisée ! Que vous
@@ -23,38 +31,53 @@
               logiciel varie en fonction du nombre d'élèves, tout en conservant
               logiciel varie en fonction du nombre d'élèves, tout en conservant
               l'intégralité des fonctionnalités.
               l'intégralité des fonctionnalités.
             </p>
             </p>
-            <NuxtLink to="nous-contacter">
-            <v-btn class="btn-contact"> Nous contacter </v-btn>
-            </NuxtLink>
+
+            <v-btn to="nous-contacter" class="btn-contact"> Nous contacter </v-btn>
           </div>
           </div>
         </v-col>
         </v-col>
       </v-row>
       </v-row>
 
 
+      <!-- Section "Adhérent CMF" -->
       <v-row class="custom-row" >
       <v-row class="custom-row" >
         <v-col cols="6" >
         <v-col cols="6" >
-          <LayoutUISubTitle :titleText="` Adhérents CMF `" />
-          <LayoutUITitle :title="` Bénéficiez de conditions privilégiées `" />
-          <div class="ml-4">
-            <h6 class="subtitle">N'attendez plus, appelez-nous</h6>
+          <LayoutUISubTitle>
+            Adhérents CMF
+          </LayoutUISubTitle>
+
+          <LayoutUITitle>
+            Bénéficiez de conditions privilégiées
+          </LayoutUITitle>
+
+          <div class="pl-4">
+            <h6 class="subtitle">
+              N'attendez plus, appelez-nous
+            </h6>
+
             <p class="contact-details mr-12">
             <p class="contact-details mr-12">
               Si votre établissement d’enseignement artistique est adhérent à la
               Si votre établissement d’enseignement artistique est adhérent à la
               Confédération Musicale de France (CMF), vous bénéficiez
               Confédération Musicale de France (CMF), vous bénéficiez
               gratuitement, dans le cadre de votre adhésion, de la version
               gratuitement, dans le cadre de votre adhésion, de la version
-              Opentalent Artist standard et de conditions priviliégiés pour la
+              Opentalent Artist standard et de conditions privilégiées pour la
               version Opentalent School. <br />
               version Opentalent School. <br />
             </p>
             </p>
+
             <p class="mt-6 contact-details">
             <p class="mt-6 contact-details">
               Contactez-nous directement ou contactez votre fédération pour
               Contactez-nous directement ou contactez votre fédération pour
               obtenir vos codes d’accès.
               obtenir vos codes d’accès.
             </p>
             </p>
+
+            <!-- TODO: manque le @click -->
             <v-btn class="btn-contact">
             <v-btn class="btn-contact">
               Je souhaite obtenir mon code d'accès
               Je souhaite obtenir mon code d'accès
             </v-btn>
             </v-btn>
           </div>
           </div>
         </v-col>
         </v-col>
+
         <v-col cols="6">
         <v-col cols="6">
-          <!-- <v-img class="logo-cmf" src="/images/logiciels/school/cmf_logo_orange.png" /> -->
-          <div class="logo-cmf mt-12"></div>
+           <v-img
+             src="/images/logiciels/school/CMF-vivre_la_musique_ensemble.jpg"
+             class="logo-cmf mt-12"
+           />
         </v-col>
         </v-col>
       </v-row>
       </v-row>
     </LayoutContainer>
     </LayoutContainer>
@@ -65,24 +88,22 @@ import AnchoredSection from "~/components/Layout/AnchoredSection.vue";
 </script>
 </script>
 
 
 <style scoped>
 <style scoped>
-
 .custom-row {
 .custom-row {
   width: 90%;
   width: 90%;
   margin: auto;
   margin: auto;
 }
 }
 
 
+.help-img {
+  width: 100%;
+  height: 90%;
+  object-fit: cover;
+  object-position: center;
+}
 
 
 .logo-cmf {
 .logo-cmf {
-  background-image: url("/images/logiciels/school/CMF-vivre_la_musique_ensemble.jpg");
   background-repeat: no-repeat;
   background-repeat: no-repeat;
   background-size: contain;
   background-size: contain;
-  width: 100%;
-  height: 100%;
-}
-
-.help-img {
-
-  width: 100%;
+  width: 80%;
   height: 100%;
   height: 100%;
 }
 }
 
 
@@ -96,10 +117,12 @@ import AnchoredSection from "~/components/Layout/AnchoredSection.vue";
   gap: 9px;
   gap: 9px;
 }
 }
 
 
-@media (max-width: 1600px) {
-  .contact-details {
-    width: 30rem !important;
-  }
+.subtitle {
+  font-weight: 400;
+  font-size: 34px;
+  line-height: 38px;
+  color: #071b1f;
+  margin-bottom: 2rem;
 }
 }
 
 
 .contact-details {
 .contact-details {
@@ -110,18 +133,9 @@ import AnchoredSection from "~/components/Layout/AnchoredSection.vue";
   text-align: justify;
   text-align: justify;
 }
 }
 
 
-.subtitle {
-  font-weight: 400;
-  font-size: 34px;
-  line-height: 38px;
-  color: #071b1f;
-  margin-bottom: 2rem;
-}
-
-.help-img {
-  width: 100%;
-  height: 90%;
-  object-fit: cover;
-  object-position: center;
+@media (max-width: 1600px) {
+  .contact-details {
+    width: 30rem !important;
+  }
 }
 }
 </style>
 </style>

+ 97 - 100
components/Logiciels/School/Formations.vue

@@ -1,52 +1,62 @@
 <template>
 <template>
   <AnchoredSection id="webinars">
   <AnchoredSection id="webinars">
-    <LayoutContainer id="Formations">
-      <div class="container-green mt-12">
+    <LayoutContainer>
+      <div class="alt-theme pt-6 mt-12">
         <v-row>
         <v-row>
-          <LayoutUISubTitle
-            :iconSize="6"
-            :iconClasses="iconClasses"
-            :titleText="'Nos accompagnements sur-mesure'"
-            title-color="#fff"
-          />
+          <LayoutUISubTitle>
+            Nos accompagnements sur-mesure
+          </LayoutUISubTitle>
         </v-row>
         </v-row>
-        <v-row class="mb-6 align-center">
-          <v-col cols="6" v-for="(formation, index) in formations" :key="index">
-            <div class="image-wrapper mb-6">
+
+        <v-row class="formation pb-6 align-center">
+          <v-col
+            cols="6"
+            v-for="(formation, index) in formations"
+            :key="index"
+          >
+            <div class="mb-6">
               <div :class="formation.overlayClass"></div>
               <div :class="formation.overlayClass"></div>
               <div
               <div
                 :style="{ backgroundImage: 'url(' + formation.image + ')' }"
                 :style="{ backgroundImage: 'url(' + formation.image + ')' }"
                 class="background-img"
                 class="background-img"
               ></div>
               ></div>
             </div>
             </div>
-            <div class="col-details">
-              <h4 class="session-title">
+
+            <div>
+              <h4>
                 {{ formation.sessions }}
                 {{ formation.sessions }}
               </h4>
               </h4>
-              <h3 class="formation-title">{{ formation.title }}</h3>
-              <p class="formation-details">{{ formation.description }}</p>
-              <br />
-              <nuxt-link :to="formation.link">
-                <v-btn class="formation-btn">{{ formation.buttonText }}</v-btn>
-              </nuxt-link>
+
+              <h3>
+                {{ formation.title }}
+              </h3>
+
+              <p class="details mb-5">
+                {{ formation.description }}
+              </p>
+
+              <v-btn :to="formation.link">
+                {{ formation.buttonText }}
+              </v-btn>
             </div>
             </div>
           </v-col>
           </v-col>
         </v-row>
         </v-row>
       </div>
       </div>
 
 
-      <v-row class="aling-center">
-        <v-col cols="4">
-          <v-container> </v-container>
+      <!--
+      TODO: Déplacer le "Quelques chiffres" dans un composant à part,
+      voir comment gérer ça avec les anchored sections
+      -->
+      <v-row class="align-center">
+        <v-col cols="12">
           <v-row no-gutters>
           <v-row no-gutters>
-            <LayoutUISubTitle
-              :iconSize="6"
-              :iconClasses="iconClasses"
-              :titleText="'Quelques chiffres '"
-            />
-            <LayoutUITitle
-              title="Pour les petits comme pour les GRANDS établissements d'enseignement artistique"
-              title-color="#091d20"
-            />
+            <LayoutUISubTitle>
+              Quelques chiffres
+            </LayoutUISubTitle>
+
+            <LayoutUITitle>
+              Pour les petits comme pour les GRANDS établissements d'enseignement artistique
+            </LayoutUITitle>
           </v-row>
           </v-row>
         </v-col>
         </v-col>
       </v-row>
       </v-row>
@@ -59,47 +69,47 @@
             class="d-flex justify-center align-center small-padding"
             class="d-flex justify-center align-center small-padding"
           >
           >
             <CommonCardStat
             <CommonCardStat
-              :number="'30 > 1 500'"
-              text="Elèves"
-              backgroundColor="#c3e5e7"
+              number="30 > 1 500"
+              text="Élèves"
             />
             />
           </v-col>
           </v-col>
           <v-col cols="12" lg="3" class="d-flex justify-center align-center">
           <v-col cols="12" lg="3" class="d-flex justify-center align-center">
             <CommonCardStat
             <CommonCardStat
-              :number="234"
+              number="234"
               text="Clients"
               text="Clients"
-              backgroundColor="#c3e5e7"
             />
             />
           </v-col>
           </v-col>
           <v-col cols="12" lg="3" class="d-flex justify-center align-center">
           <v-col cols="12" lg="3" class="d-flex justify-center align-center">
             <CommonCardStat
             <CommonCardStat
-              :number="'20 304'"
+              number="20 304"
               text="Utilisateurs"
               text="Utilisateurs"
-              backgroundColor="#c3e5e7"
             />
             />
           </v-col>
           </v-col>
           <v-col cols="12" lg="3" class="d-flex justify-center align-center">
           <v-col cols="12" lg="3" class="d-flex justify-center align-center">
             <CommonCardStat
             <CommonCardStat
-              :number="13"
+              number="13"
               text="Années d'expérience"
               text="Années d'expérience"
-              backgroundColor="#c3e5e7"
             />
             />
           </v-col>
           </v-col>
         </v-row>
         </v-row>
       </v-container>
       </v-container>
       <v-row />
       <v-row />
 
 
-      <CommonCarouselClients :items="items" />
+      <CommonCarouselClients :items="items" >
+        <template v-slot:title>
+          Plus de <span class="alt-color">5000 structures</span> nous font confiance
+        </template>
+      </CommonCarouselClients>
     </LayoutContainer>
     </LayoutContainer>
   </AnchoredSection>
   </AnchoredSection>
 </template>
 </template>
 
 
-<script setup>
+<script setup lang="ts">
 import AnchoredSection from "~/components/Layout/AnchoredSection.vue";
 import AnchoredSection from "~/components/Layout/AnchoredSection.vue";
+import { Formation } from "~/types/interface";
 
 
-const formations = ref([
+const formations: Array<Formation> = [
   {
   {
-    id: 1,
     image: "/images/logiciels/school/formation.png",
     image: "/images/logiciels/school/formation.png",
     overlayClass: "image-overlay1",
     overlayClass: "image-overlay1",
     sessions: "3 formations disponibles",
     sessions: "3 formations disponibles",
@@ -110,7 +120,6 @@ const formations = ref([
     link: "/formations",
     link: "/formations",
   },
   },
   {
   {
-    id: 2,
     image: "/images/logiciels/school/webinaire.png",
     image: "/images/logiciels/school/webinaire.png",
     overlayClass: "image-overlay2",
     overlayClass: "image-overlay2",
     sessions: "Toutes nos sessions",
     sessions: "Toutes nos sessions",
@@ -120,27 +129,28 @@ const formations = ref([
     buttonText: "Découvrir nos webinaires ",
     buttonText: "Découvrir nos webinaires ",
     link: "/webinaires",
     link: "/webinaires",
   },
   },
-]);
-const items = ref([
+];
+
+const items: Array<{ src: string }> = [
   { src: "/images/reviews/school/review1.svg" },
   { src: "/images/reviews/school/review1.svg" },
   { src: "/images/reviews/school/review2.png" },
   { src: "/images/reviews/school/review2.png" },
   { src: "/images/reviews/school/review3.png" },
   { src: "/images/reviews/school/review3.png" },
   { src: "/images/reviews/school/review4.jpeg" },
   { src: "/images/reviews/school/review4.jpeg" },
   { src: "/images/reviews/school/review5.jpeg" },
   { src: "/images/reviews/school/review5.jpeg" },
   { src: "/images/reviews/school/review6.jpeg" },
   { src: "/images/reviews/school/review6.jpeg" },
-]);
+];
 </script>
 </script>
 
 
 <style scoped>
 <style scoped>
-
-:deep(.title){
-  width: 60rem;
-}
 .v-row {
 .v-row {
   max-width: 1600px;
   max-width: 1600px;
   margin: 0 auto;
   margin: 0 auto;
 }
 }
 
 
+:deep(h2) {
+  width: 60rem;
+}
+
 .background-img {
 .background-img {
   width: 600px;
   width: 600px;
   height: 400px;
   height: 400px;
@@ -148,56 +158,43 @@ const items = ref([
   background-position: center;
   background-position: center;
 }
 }
 
 
-.col-details {
-  margin-right: 6rem;
-}
-
-.formation-btn {
-  font-family: "Barlow";
-  font-style: normal;
-  width: 30rem;
-  height: 4rem;
-  font-weight: 500;
-  font-size: 1.5rem;
-  line-height: 18px;
-  background: transparent;
-  color: #eff9fb;
-  border: 1px solid #eff9fb;
-  border-radius: 0.5rem;
-  text-transform: none;
-}
-.formation-details {
-  font-weight: 300;
-  font-size: 1.2rem;
-  line-height: 1.5rem;
-  color: #eff9fb;
-}
-.formation-title {
-  font-weight: 500;
-  font-size: 1.8rem;
-  line-height: 26px;
-  color: #ffffff;
-  margin-bottom: 3rem;
-}
+.formation {
+  .v-btn {
+    font-family: "Barlow", serif;
+    font-style: normal;
+    width: 30rem;
+    height: 4rem;
+    font-weight: 500;
+    font-size: 1.5rem;
+    line-height: 18px;
+    background: transparent;
+    color: #eff9fb;
+    border: 1px solid #eff9fb;
+    border-radius: 0.5rem;
+    text-transform: none;
+  }
 
 
-.session-title {
-  font-weight: 500;
-  font-size: 1.8rem;
-  line-height: 26px;
-  color: #ffffff;
-  margin-bottom: 3rem;
-}
+  h3 {
+    font-weight: 500;
+    font-size: 1.8rem;
+    line-height: 26px;
+    color: #ffffff;
+    margin-bottom: 3rem;
+  }
 
 
-.container-green {
-  background-color: #0e2d32;
-  padding: 20px;
-  margin-bottom: 20px;
-  color: white;
-}
+  h4 {
+    font-weight: 500;
+    font-size: 1.8rem;
+    line-height: 26px;
+    color: #ffffff;
+    margin-bottom: 3rem;
+  }
 
 
-.card-container {
-  margin-bottom: 20px;
-  margin-left: 10rem;
-  margin-right: 0rem;
+  .details {
+    font-weight: 300;
+    font-size: 1.2rem;
+    line-height: 1.5rem;
+    color: #eff9fb;
+  }
 }
 }
 </style>
 </style>

+ 1 - 3
pages/opentalent_school.vue

@@ -18,7 +18,7 @@
 
 
     <LogicielsSchoolComparatif />
     <LogicielsSchoolComparatif />
 
 
-    <LogicielsSchoolProjet />
+    <LogicielsSchoolContact />
 
 
     <LogicielsSchoolFormations />
     <LogicielsSchoolFormations />
 
 
@@ -49,8 +49,6 @@ const menus: Array<MenuScroll> = [
   { anchor: "testimonials", label: "Témoignages" },
   { anchor: "testimonials", label: "Témoignages" },
 ];
 ];
 
 
-
-
 const stickyMenuActions: Array<StickyMenuAction> = [
 const stickyMenuActions: Array<StickyMenuAction> = [
   {
   {
     type: StickyMenuActionType.FOLLOW_LINK,
     type: StickyMenuActionType.FOLLOW_LINK,

+ 10 - 0
types/interface.d.ts

@@ -77,3 +77,13 @@ interface ComparisonItem {
   includedInStandard: boolean | string,
   includedInStandard: boolean | string,
   includedInPremium: boolean | string,
   includedInPremium: boolean | string,
 }
 }
+
+interface Formation {
+  image: string;
+  overlayClass: string;
+  sessions: string;
+  title: string;
+  description: string;
+  buttonText: string;
+  link: string;
+}