Browse Source

responsif review gomepage

Maha Bouchiba 1 year ago
parent
commit
423ed855a1
3 changed files with 57 additions and 511 deletions
  1. 57 57
      components/Home/Reviews.vue
  2. 0 146
      pages/mobile.vue
  3. 0 308
      pages/poc.vue

+ 57 - 57
components/Home/Reviews.vue

@@ -1,12 +1,14 @@
 <template>
   <LayoutContainer>
-    <div :class="!smAndDown ? 'container-color' : 'container-color-md' ">
+    <div :class="!smAndDown ? 'container-color' : 'container-color-md'">
       <div class="d-flex justify-center align-center flex-column">
         <v-icon size="6" class="fa-solid fa-circle icon-title" />
         <h6 class="small-title">Avis Clients</h6>
       </div>
 
-      <h1 class="title-review" :class="smAndDown? 'mb-12 ' : ''">C'est vous qui le dites</h1>
+      <h1 class="title-review" :class="smAndDown ? 'mb-12 ' : ''">
+        C'est vous qui le dites
+      </h1>
     </div>
 
     <div v-if="!smAndDown" class="container-green">
@@ -136,57 +138,56 @@
     </div>
 
     <div v-if="smAndDown">
-    <v-row>
-      <v-col cols="12">
-        <Carousel :itemsToShow="1" :wrapAround="true" ref="reviewCaroussel">
-          <Slide v-for="(card, index) in cards" :key="index">
-            <div class="card-sm">
-              <v-card >
-                <v-card-title>
-                  <span class="review-name">{{ card.name }}</span>
-                </v-card-title>
-
-                <v-card-text>
-                  <p class="description-review">
-                    {{ card.review }}
-                  </p>
-                </v-card-text>
-                <div class="card-footer">
-                  <small >{{ card.status }}</small>
-
-                  <small >{{ card.structure }}</small>
-                </div>
-              </v-card>
-            </div>
-          </Slide>
-        </Carousel>
-      </v-col>
-    </v-row>
-
-    <v-row class="justify-center align-center">
-      <v-col class="d-flex justify-space-around align-center">
-        <i
-          style="cursor: pointer"
-          class="fa-solid fa-arrow-left-long"
-          @click="goPrevious"
-        />
-        <div class="custom-controls">
-          <div
-            v-for="(item, index) in cards"
-            :key="index"
-            :class="{ 'active-control': index === state.activeIndex }"
-            class="ml-6"
-          />
-        </div>
-        <i
-          style="cursor: pointer"
-          class="fa-solid fa-arrow-right-long"
-          @click="goNext"
-        />
-      </v-col>
-    </v-row>
-  </div>
+      <v-row>
+        <v-col cols="12">
+          <Carousel :itemsToShow="1" :wrapAround="true" ref="reviewCaroussel">
+            <Slide v-for="(card, index) in cards" :key="index">
+              <div class="card-sm">
+                <v-card>
+                  <v-card-title>
+                    <span class="review-name">{{ card.name }}</span>
+                  </v-card-title>
+
+                  <v-card-text>
+                    <p class="description-review">
+                      {{ card.review }}
+                    </p>
+                  </v-card-text>
+                  <div class="card-footer">
+                    <small>{{ card.status }}</small>
+
+                    <small>{{ card.structure }}</small>
+                  </div>
+                </v-card>
+              </div>
+            </Slide>
+          </Carousel>
+        </v-col>
+      </v-row>
 
+      <v-row class="justify-center align-center">
+        <v-col class="d-flex justify-space-around align-center">
+          <i
+            style="cursor: pointer"
+            class="fa-solid fa-arrow-left-long"
+            @click="goPrevious"
+          />
+          <div class="custom-controls">
+            <div
+              v-for="(item, index) in cards"
+              :key="index"
+              :class="{ 'active-control': index === state.activeIndex }"
+              class="ml-6"
+            />
+          </div>
+          <i
+            style="cursor: pointer"
+            class="fa-solid fa-arrow-right-long"
+            @click="goNext"
+          />
+        </v-col>
+      </v-row>
+    </div>
   </LayoutContainer>
 </template>
 
@@ -203,7 +204,6 @@ const state = ref({
   activeIndex: 0,
 });
 
-
 const goNext = () => {
   if (reviewCaroussel.value) {
     reviewCaroussel.value.next();
@@ -214,12 +214,13 @@ const goNext = () => {
 const goPrevious = () => {
   if (reviewCaroussel.value) {
     reviewCaroussel.value.prev();
-    state.value.activeIndex = state.value.activeIndex - 1 < 0 ? cards.length - 1 : state.value.activeIndex - 1;
+    state.value.activeIndex =
+      state.value.activeIndex - 1 < 0
+        ? cards.length - 1
+        : state.value.activeIndex - 1;
   }
 };
 
-
-
 const cards = [
   {
     name: "Patrice CATHELIN",
@@ -262,7 +263,6 @@ const items = ref([
 </script>
 
 <style scoped>
-
 .custom-controls div {
   width: 0.6rem;
   height: 0.6rem;

+ 0 - 146
pages/mobile.vue

@@ -1,146 +0,0 @@
-<template>
-  <div v-if="smAndDown">
-    <v-row>
-      <v-col cols="12">
-        <Carousel :itemsToShow="1" :wrapAround="true" ref="carousel">
-          <Slide v-for="(card, index) in cards" :key="index">
-            <div class="card-sm">
-              <v-card class="review-card left mx-auto">
-                <v-card-title>
-                  <span class="review-name">{{ card.name }}</span>
-                </v-card-title>
-
-                <v-card-text>
-                  <p class="description-review">
-                    {{ card.review }}
-                  </p>
-                </v-card-text>
-                <div class="card-footer">
-                  <small class="status">{{ card.status }}</small>
-
-                  <small class="structure">{{ card.structure }}</small>
-                </div>
-              </v-card>
-            </div>
-          </Slide>
-        </Carousel>
-      </v-col>
-    </v-row>
-
-    <v-row class="justify-center align-center">
-      <v-col class="d-flex justify-space-around align-center">
-        <i
-          style="cursor: pointer"
-          class="fa-solid fa-arrow-left-long"
-          @click="goPrevious"
-        />
-        <div class="custom-controls">
-          <div
-            v-for="(item, index) in cards"
-            :key="index"
-            :class="{ 'active-control': index === state.activeIndex }"
-            class="ml-6"
-          />
-        </div>
-        <i
-          style="cursor: pointer"
-          class="fa-solid fa-arrow-right-long"
-          @click="goNext"
-        />
-      </v-col>
-    </v-row>
-  </div>
-</template>
-
-<script setup>
-import { ref } from "vue";
-import { Carousel, Slide } from "vue3-carousel";
-import "vue3-carousel/dist/carousel.css";
-import { useDisplay } from "vuetify";
-
-const { smAndDown } = useDisplay();
-const carousel = ref(null);
-
-const state = ref({
-  activeIndex: 0,
-});
-
-
-const goNext = () => {
-  if (carousel.value) {
-    carousel.value.next();
-    state.value.activeIndex = (state.value.activeIndex + 1) % cards.length;
-  }
-};
-
-const goPrevious = () => {
-  if (carousel.value) {
-    carousel.value.prev();
-    state.value.activeIndex = state.value.activeIndex - 1 < 0 ? cards.length - 1 : state.value.activeIndex - 1;
-  }
-};
-
-
-
-const cards = [
-  {
-    name: "Patrice CATHELIN",
-    review:
-      "C'est un logiciel très bien conçu et efficace avec une équipe ouverte, dynamique et à l'écoute. L’assistance est très réactive, j'ai toujours eu une réponse rapide à mes besoins, ce qui est fort appréciable.",
-    status: "Directeur administratif & pédagogique",
-    structure: "Conservatoire de Musique & de Danse de Sens (78)",
-  },
-  {
-    name: "Karine GIRAUD",
-    review:
-      "Étant présente depuis presque le début, je suis fière d'avoir vu grandir ce logiciel et d'avoir évoluée avec lui. De plus, je me suis sentie écoutée lors de mes propositions d'amélioration, car beaucoup ont vu le jour. Enfin, l'accompagnement et la réactivité n'ont jamais faibli depuis toutes ces années",
-    status: "Secrétaire administrative",
-    structure: "Association Musicale Sainte Cécile de Lagord (17)",
-  },
-  {
-    name: "Laurent BEL",
-    review:
-      "Logiciel très complet qui permet de faire beaucoup de choses. J’apprécie particulièrement la réactivité, la bienveillance et le fait que l’équipe soit à l'écoute pour faire évoluer l'outil en fonction de nos besoins. Si besoin, la FAQ est vraiment utile. Elle permet de trouver rapidement une solution face à un problème rencontré.",
-    status: "Directeur administratif & pédagogique",
-    structure: "École de Musique EPIC Musique en 4 Rivières (74)",
-  },
-  {
-    name: "Philippe BORY",
-    review:
-      "Opentalent est une entreprise avec de vraies valeurs humaines, à l'écoute de chaque structure et qui ne cesse de s'améliorer pour toujours coller aux besoins de ses clients. Plus qu'une relation commerciale, c'est pour nous un véritable partenaire au quotidien.",
-    status: "Personnel administratif",
-    structure: "École d'Arts de Saint-Michel-sur-Orge (91)",
-  },
-];
-</script>
-
-<style scoped>
-.custom-controls div {
-  width: 0.6rem;
-  height: 0.6rem;
-  border-radius: 50%;
-  background-color: grey;
-  cursor: pointer;
-  margin-bottom: 0.5rem;
-}
-
-.custom-controls {
-  display: flex;
-  flex-direction: row;
-  justify-content: center;
-  align-items: center;
-}
-
-.custom-controls .active-control {
-  background-color: black;
-  margin-right: 10px;
-}
-
-.card-sm {
-  width: 300px;
-  height: 400px;
-  display: flex;
-  justify-content: center;
-  align-items: center;
-}
-</style>

+ 0 - 308
pages/poc.vue

@@ -1,308 +0,0 @@
-<template>
-  <LayoutContainer>
-    <LayoutNavigation />
-
-    <LayoutUITitlePage
-      title="LOGICIELS CULTURELS"
-      subtitle="UNE GAMME DE LOGICIELS ADAPTÉE À CHAQUE STRUCTURE CULTURELLE"
-    />
-    <div v-if="mdAndDown">
-    <div class="sticky-menu">
-      <v-btn color="primary">Nous contacter</v-btn>
-      <v-btn color="secondary">Nous appeler</v-btn>
-    </div>
-  </div>
-    <v-carousel
-      ref="carousel"
-      v-model="activeIndex"
-      :show-arrows="false"
-      class="carousel"
-      :hide-delimiter-background="true"
-      :show-delimiters="false"
-      :touch="true"
-      :wrap-around="true"
-      :interval="5000"
-    >
-      <v-carousel-item v-for="(item, index) in carouselItems" :key="index">
-        <v-row>
-          <v-col cols="12">
-            <v-img class="logo" :src="item.logo" />
-
-            <p
-              class="description"
-              v-html="item.description"
-              style="text-align: justify"
-            ></p>
-
-            <!-- <nuxt-link :to="item.link">
-              <v-btn :class="item.buttonClass">
-                En savoir plus
-                <i
-                  class="fas fa-arrow-right"
-                  style="color: white; margin-left: 8px"
-                ></i>
-              </v-btn>
-            </nuxt-link> -->
-          </v-col>
-        </v-row>
-
-        <v-row>
-          <v-col cols="12">
-            <div
-              class="background-rectangle"
-              :style="{ backgroundColor: item.color }"
-            />
-            <v-card  class="card" elevation="5">
-                <v-img
-                  class="profile-image"
-                  :src="item.avatar"
-                  alt="Profile Image"
-                  contain
-                  rounded
-                />
-                <v-card-text>
-                  <v-card-title class="name">
-                    {{ item.name }}
-
-                    <p class="school">
-                      {{ item.school }}
-                    </p>
-                  </v-card-title>
-                  <p class="status">
-                    {{ item.status }}
-                  </p>
-                </v-card-text>
-              </v-card>
-
-            <v-img :src="item.image" class="image" />
-          </v-col>
-        </v-row>
-      </v-carousel-item>
-
-      <div class="custom-controls">
-        <div
-          v-for="(item, index) in carouselItems"
-          :key="index"
-          :class="{ 'active-control': index === activeIndex }"
-          @click="changeSlide(index)"
-        />
-      </div>
-    </v-carousel>
-  </LayoutContainer>
-</template>
-
-<script setup>
-import { ref } from "vue";
-import { useDisplay } from "vuetify";
-const { mdAndDown } = useDisplay();
-
-let activeIndex = ref(0);
-
-const changeSlide = (index) => {
-  activeIndex.value = index;
-};
-
-const carouselItems = ref([
-  {
-    logo: "/images/logo/logiciels/School-noir.png",
-    description:
-      "Pour les petits comme pour les GRANDS établissements d’enseignement artistique tels que les écoles de musique, de danse, de théâtre, d'art, de cirque et conservatoire.<br> Il permet la gestion au quotidien et en temps réel de votre établissement, de gérer vos élèves et vos professeurs, vos emplois du temps, le suivi pédagogique, vos salles, la facturation et les encaissements…",
-    buttonClass: "btn-school",
-    image: "/images/carousel/school/Fille_School.png",
-    color: "rgba(32, 147, 190, 0.4)",
-    link: "/opentalent_school",
-    name: "Cindy Blanchard",
-    school: "Conservatoire de Musique",
-    status: "élève",
-    avatar: "/images/carousel/school/avatar.png",
-  },
-  {
-    logo: "/images/logo/logiciels/Artist-noir.png",
-    description:
-      "Pour les structures culturelles pratiquantes telles que les orchestres, les chorales, les compagnies de danse, théâtre et cirque. <br> Gérez votre activité avec un logiciel de gestion et de communication au service de votre passion.",
-    buttonClass: "btn-artist",
-    image: "/images/carousel/artist/musician.png",
-    color: "rgba(250, 194, 10, 0.4)",
-    link: "opentalent_artist",
-    name: "Thierry Dupont ",
-    school: "Orchestre d’harmonie",
-    status: "Admin",
-    avatar: "/images/carousel/artist/avatar.png",
-  },
-  {
-    logo: "/images/logo/logiciels/Manager-noir.png",
-    description:
-      "La solution de mise en réseau des organisations culturelles.<br> Fédérations, confédérations et collectivités, utilisez une solution collaborative innovante et unique spécialement développée pour les réseaux culturels.",
-    buttonClass: "btn-manager",
-    image: "/images/carousel/manager/fédération.png",
-    color: "rgba(216, 5, 11, 0.4)",
-    link: "opentalent_manager",
-    name: "Marie Voisin",
-    school: "Réseau d'organisations culturelles ",
-    status: "ADMIN",
-    avatar: "/images/carousel/manager/avatar.png",
-  },
-]);
-</script>
-
-<style scoped>
-.carousel {
-  height: 100% !important;
-}
-::v-deep .v-carousel__controls {
-  display: none;
-}
-.sticky-menu {
-  position: fixed;
-  bottom: 0;
-  width: 100%;
-  display: flex;
-  justify-content: center;
-  background-color: white;
-  z-index: 100;
-}
-/* ============= TITLE ===============  */
-.title {
-  font-size: 4rem;
-  line-height: 3.5rem;
-  letter-spacing: 1.1rem;
-  margin-top: 2rem;
-  margin-bottom: 2rem;
-}
-
-.subtitle {
-  font-size: 1.5rem;
-  line-height: 2rem;
-  letter-spacing: 0.5rem;
-  margin-bottom: 8rem;
-}
-
-/* ============= CARD ===============  */
-.card {
-  position: absolute ;
-  width: 10rem;
-  height: 20%;
-  left: 6rem;
-  border-radius: 1rem;
-}
-
-.profile-image {
-  width: 40%;
-  margin: auto;
-}
-
-.name {
-  text-align: center;
-  font-size: .9rem;
-  white-space: normal;
-}
-.school,
-.status {
-  text-align: center;
-  white-space: normal;
-}
-
-.school {
-  color: #888888;
-  margin-top: -0.8rem;
-  font-weight: normal !important;
-  font-size: 0.8rem !important;
-  margin-top: 0.2px;
-  line-height: 1rem !important;
-}
-
-.status {
-  text-transform: uppercase;
-  font-weight: bold;
-  color: black !;
-  font-size: 100%;
-  margin-top: 0.8rem;
-}
-/* ============= RECTANGLE ===============  */
-.background-rectangle {
-  position: absolute;
-  width: 100%;
-  height: 20rem;
-  left: 72%;
-  top: 70%;
-  transform: translate(-70%, -50%);
-  border-radius: 200px 0px 0px 15rem;
-  z-index: -1;
-
-  /* ============= LOGO ===============  */
-}
-.logo {
-  width: 15rem;
-  height: 20vh;
-  margin-left: 1rem;
-}
-.description {
-  text-align: left;
-  margin-bottom: 1rem;
-  margin-left: 1rem;
-  margin-right: 1rem;
-}
-
-/* ============= CAROUSEL ===============  */
-.custom-controls {
-  position: absolute;
-  top: 50%;
-  right: 1vw;
-  transform: translateY(-50%);
-  display: flex;
-  flex-direction: column;
-  gap: 1vh;
-}
-
-.image {
-  height: 25rem;
-  right: -3rem;
-  bottom: 2rem;
-}
-
-.custom-controls div {
-  position: relative;
-  top: 10rem;
-  width: 0.6rem;
-  height: 0.6rem;
-  border-radius: 50%;
-  background-color: grey;
-  cursor: pointer;
-  margin-bottom: 0.5rem;
-}
-
-.custom-controls .active-control {
-  background-color: #000;
-  margin-right: 2rem;
-}
-
-/* ============= BUTTON ===============  */
-
-.btn-school {
-  background: rgba(32, 147, 190, 0.4);
-}
-
-.btn-artist {
-  background: rgba(250, 194, 10, 0.4);
-}
-
-.btn-manager {
-  background: rgba(216, 5, 11, 0.4);
-}
-
-.btn-school,
-.btn-artist,
-.btn-manager {
-  text-align: left;
-  border-radius: 0.5rem;
-  margin-left: 2vw;
-  padding: 15px;
-  gap: 9px;
-  font-weight: 700;
-  font-size: 0.7rem;
-  line-height: 15px;
-  width: 10rem;
-  height: 2.5rem;
-  color: white;
-}
-</style>