poc.vue 7.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308
  1. <template>
  2. <LayoutContainer>
  3. <LayoutNavigation />
  4. <LayoutUITitlePage
  5. title="LOGICIELS CULTURELS"
  6. subtitle="UNE GAMME DE LOGICIELS ADAPTÉE À CHAQUE STRUCTURE CULTURELLE"
  7. />
  8. <div v-if="mdAndDown">
  9. <div class="sticky-menu">
  10. <v-btn color="primary">Nous contacter</v-btn>
  11. <v-btn color="secondary">Nous appeler</v-btn>
  12. </div>
  13. </div>
  14. <v-carousel
  15. ref="carousel"
  16. v-model="activeIndex"
  17. :show-arrows="false"
  18. class="carousel"
  19. :hide-delimiter-background="true"
  20. :show-delimiters="false"
  21. :touch="true"
  22. :wrap-around="true"
  23. :interval="5000"
  24. >
  25. <v-carousel-item v-for="(item, index) in carouselItems" :key="index">
  26. <v-row>
  27. <v-col cols="12">
  28. <v-img class="logo" :src="item.logo" />
  29. <p
  30. class="description"
  31. v-html="item.description"
  32. style="text-align: justify"
  33. ></p>
  34. <!-- <nuxt-link :to="item.link">
  35. <v-btn :class="item.buttonClass">
  36. En savoir plus
  37. <i
  38. class="fas fa-arrow-right"
  39. style="color: white; margin-left: 8px"
  40. ></i>
  41. </v-btn>
  42. </nuxt-link> -->
  43. </v-col>
  44. </v-row>
  45. <v-row>
  46. <v-col cols="12">
  47. <div
  48. class="background-rectangle"
  49. :style="{ backgroundColor: item.color }"
  50. />
  51. <v-card class="card" elevation="5">
  52. <v-img
  53. class="profile-image"
  54. :src="item.avatar"
  55. alt="Profile Image"
  56. contain
  57. rounded
  58. />
  59. <v-card-text>
  60. <v-card-title class="name">
  61. {{ item.name }}
  62. <p class="school">
  63. {{ item.school }}
  64. </p>
  65. </v-card-title>
  66. <p class="status">
  67. {{ item.status }}
  68. </p>
  69. </v-card-text>
  70. </v-card>
  71. <v-img :src="item.image" class="image" />
  72. </v-col>
  73. </v-row>
  74. </v-carousel-item>
  75. <div class="custom-controls">
  76. <div
  77. v-for="(item, index) in carouselItems"
  78. :key="index"
  79. :class="{ 'active-control': index === activeIndex }"
  80. @click="changeSlide(index)"
  81. />
  82. </div>
  83. </v-carousel>
  84. </LayoutContainer>
  85. </template>
  86. <script setup>
  87. import { ref } from "vue";
  88. import { useDisplay } from "vuetify";
  89. const { mdAndDown } = useDisplay();
  90. let activeIndex = ref(0);
  91. const changeSlide = (index) => {
  92. activeIndex.value = index;
  93. };
  94. const carouselItems = ref([
  95. {
  96. logo: "/images/logo/logiciels/School-noir.png",
  97. description:
  98. "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…",
  99. buttonClass: "btn-school",
  100. image: "/images/carousel/school/Fille_School.png",
  101. color: "rgba(32, 147, 190, 0.4)",
  102. link: "/opentalent_school",
  103. name: "Cindy Blanchard",
  104. school: "Conservatoire de Musique",
  105. status: "élève",
  106. avatar: "/images/carousel/school/avatar.png",
  107. },
  108. {
  109. logo: "/images/logo/logiciels/Artist-noir.png",
  110. description:
  111. "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.",
  112. buttonClass: "btn-artist",
  113. image: "/images/carousel/artist/musician.png",
  114. color: "rgba(250, 194, 10, 0.4)",
  115. link: "opentalent_artist",
  116. name: "Thierry Dupont ",
  117. school: "Orchestre d’harmonie",
  118. status: "Admin",
  119. avatar: "/images/carousel/artist/avatar.png",
  120. },
  121. {
  122. logo: "/images/logo/logiciels/Manager-noir.png",
  123. description:
  124. "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.",
  125. buttonClass: "btn-manager",
  126. image: "/images/carousel/manager/fédération.png",
  127. color: "rgba(216, 5, 11, 0.4)",
  128. link: "opentalent_manager",
  129. name: "Marie Voisin",
  130. school: "Réseau d'organisations culturelles ",
  131. status: "ADMIN",
  132. avatar: "/images/carousel/manager/avatar.png",
  133. },
  134. ]);
  135. </script>
  136. <style scoped>
  137. .carousel {
  138. height: 100% !important;
  139. }
  140. ::v-deep .v-carousel__controls {
  141. display: none;
  142. }
  143. .sticky-menu {
  144. position: fixed;
  145. bottom: 0;
  146. width: 100%;
  147. display: flex;
  148. justify-content: center;
  149. background-color: white;
  150. z-index: 100;
  151. }
  152. /* ============= TITLE =============== */
  153. .title {
  154. font-size: 4rem;
  155. line-height: 3.5rem;
  156. letter-spacing: 1.1rem;
  157. margin-top: 2rem;
  158. margin-bottom: 2rem;
  159. }
  160. .subtitle {
  161. font-size: 1.5rem;
  162. line-height: 2rem;
  163. letter-spacing: 0.5rem;
  164. margin-bottom: 8rem;
  165. }
  166. /* ============= CARD =============== */
  167. .card {
  168. position: absolute ;
  169. width: 10rem;
  170. height: 20%;
  171. left: 6rem;
  172. border-radius: 1rem;
  173. }
  174. .profile-image {
  175. width: 40%;
  176. margin: auto;
  177. }
  178. .name {
  179. text-align: center;
  180. font-size: .9rem;
  181. white-space: normal;
  182. }
  183. .school,
  184. .status {
  185. text-align: center;
  186. white-space: normal;
  187. }
  188. .school {
  189. color: #888888;
  190. margin-top: -0.8rem;
  191. font-weight: normal !important;
  192. font-size: 0.8rem !important;
  193. margin-top: 0.2px;
  194. line-height: 1rem !important;
  195. }
  196. .status {
  197. text-transform: uppercase;
  198. font-weight: bold;
  199. color: black !;
  200. font-size: 100%;
  201. margin-top: 0.8rem;
  202. }
  203. /* ============= RECTANGLE =============== */
  204. .background-rectangle {
  205. position: absolute;
  206. width: 100%;
  207. height: 20rem;
  208. left: 72%;
  209. top: 70%;
  210. transform: translate(-70%, -50%);
  211. border-radius: 200px 0px 0px 15rem;
  212. z-index: -1;
  213. /* ============= LOGO =============== */
  214. }
  215. .logo {
  216. width: 15rem;
  217. height: 20vh;
  218. margin-left: 1rem;
  219. }
  220. .description {
  221. text-align: left;
  222. margin-bottom: 1rem;
  223. margin-left: 1rem;
  224. margin-right: 1rem;
  225. }
  226. /* ============= CAROUSEL =============== */
  227. .custom-controls {
  228. position: absolute;
  229. top: 50%;
  230. right: 1vw;
  231. transform: translateY(-50%);
  232. display: flex;
  233. flex-direction: column;
  234. gap: 1vh;
  235. }
  236. .image {
  237. height: 25rem;
  238. right: -3rem;
  239. bottom: 2rem;
  240. }
  241. .custom-controls div {
  242. position: relative;
  243. top: 10rem;
  244. width: 0.6rem;
  245. height: 0.6rem;
  246. border-radius: 50%;
  247. background-color: grey;
  248. cursor: pointer;
  249. margin-bottom: 0.5rem;
  250. }
  251. .custom-controls .active-control {
  252. background-color: #000;
  253. margin-right: 2rem;
  254. }
  255. /* ============= BUTTON =============== */
  256. .btn-school {
  257. background: rgba(32, 147, 190, 0.4);
  258. }
  259. .btn-artist {
  260. background: rgba(250, 194, 10, 0.4);
  261. }
  262. .btn-manager {
  263. background: rgba(216, 5, 11, 0.4);
  264. }
  265. .btn-school,
  266. .btn-artist,
  267. .btn-manager {
  268. text-align: left;
  269. border-radius: 0.5rem;
  270. margin-left: 2vw;
  271. padding: 15px;
  272. gap: 9px;
  273. font-weight: 700;
  274. font-size: 0.7rem;
  275. line-height: 15px;
  276. width: 10rem;
  277. height: 2.5rem;
  278. color: white;
  279. }
  280. </style>