Footer.vue 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486
  1. <template>
  2. <footer ref="footerElement">
  3. <LayoutContainer>
  4. <div >
  5. <v-row>
  6. <v-col
  7. :cols="mdAndDown ? 12 : 3"
  8. :class="mdAndDown ? 'logo-container' : 'flex-container'"
  9. >
  10. <nuxt-link to="/">
  11. <v-img
  12. :class="mdAndDown ? 'logo-md' : 'logo'"
  13. src="/images/logo/footer-logo.png"
  14. />
  15. </nuxt-link>
  16. </v-col>
  17. <v-col cols=" 2" v-if="!mdAndDown">
  18. <v-row class="title-link">
  19. <h5 class="ml-12 mt-10 h5-title">Agenda culturel</h5>
  20. </v-row>
  21. <v-row>
  22. <router-link to="/annuaire" class="small-link ml-12"
  23. >Annuaire</router-link
  24. >
  25. </v-row>
  26. <v-row>
  27. <router-link to="/actualites" class="small-link ml-12"
  28. >Actualités</router-link
  29. >
  30. </v-row>
  31. <v-row>
  32. <router-link to="/annonces" class="small-link ml-12"
  33. >Annonces</router-link
  34. >
  35. </v-row>
  36. </v-col>
  37. <v-col cols="2" v-if="!mdAndDown">
  38. <v-row class="title-link">
  39. <h5 class="ml-12 mt-10 h5-title">Logiciels culturels</h5>
  40. </v-row>
  41. <v-row>
  42. <router-link to="/opentalent_artist" class="small-link ml-12"
  43. >Opentalent Artist</router-link
  44. >
  45. </v-row>
  46. <v-row>
  47. <router-link to="/opentalent_school" class="small-link ml-12"
  48. >Opentalent School</router-link
  49. >
  50. </v-row>
  51. <v-row>
  52. <router-link to="/opentalent_manager" class="small-link ml-12"
  53. >Opentalent Manager</router-link
  54. >
  55. </v-row>
  56. </v-col>
  57. <v-col cols="2" v-if="!mdAndDown">
  58. <v-row class="title-link">
  59. <h5 class="ml-12 mt-8 h5-title">Espace client</h5>
  60. </v-row>
  61. <v-row>
  62. <NuxtLink
  63. to="https://ressources.opentalent.fr/display/FAQ/Accueil"
  64. class="small-link ml-12"
  65. >Foire Aux Questions</NuxtLink
  66. >
  67. </v-row>
  68. <v-row>
  69. <NuxtLink
  70. to="https://ressources.opentalent.fr/"
  71. class="small-link ml-12"
  72. target="_blank"
  73. >Support en ligne</NuxtLink
  74. >
  75. </v-row>
  76. <v-row>
  77. <NuxtLink
  78. to="/nous-contacter"
  79. class="small-link ml-12"
  80. target="_blank"
  81. >Nous contacter</NuxtLink
  82. >
  83. </v-row>
  84. </v-col>
  85. <v-col cols="3" v-if="!mdAndDown">
  86. <v-row class="title-link">
  87. <h5 class="ml-12 mt-10 h5-title">Suivez-nous</h5>
  88. </v-row>
  89. <v-row class="ml-5" no-gutters>
  90. <v-col cols="2">
  91. <a
  92. href="https://www.facebook.com/opentalent"
  93. target="_blank"
  94. class="fab fa-facebook brand"
  95. />
  96. </v-col>
  97. <v-col cols="2">
  98. <a
  99. href="https://twitter.com/Opentalent_FRA"
  100. target="_blank"
  101. class="fa-brands fa-square-twitter brand"
  102. />
  103. </v-col>
  104. <v-col cols="2">
  105. <a
  106. href="https://www.linkedin.com/company/2iopenservice"
  107. target="_blank"
  108. class="fab fa-linkedin brand"
  109. />
  110. </v-col>
  111. <v-col cols="2">
  112. <a
  113. href="https://www.youtube.com/@Opentalent74300"
  114. target="_blank"
  115. class="fab fa-youtube brand"
  116. />
  117. </v-col>
  118. </v-row>
  119. </v-col>
  120. </v-row>
  121. <v-row class="justify-center" v-if="mdAndDown">
  122. <v-col cols="12" class="text-center">
  123. <a
  124. href="https://www.facebook.com/opentalent"
  125. target="_blank"
  126. class="fab fa-facebook brand-md"
  127. />
  128. <a
  129. href="https://twitter.com/Opentalent_FRA"
  130. target="_blank"
  131. class="fa-brands fa-square-twitter brand-md"
  132. />
  133. <a
  134. href="https://www.linkedin.com/company/2iopenservice"
  135. target="_blank"
  136. class="fab fa-linkedin brand-md"
  137. />
  138. <a
  139. href="https://www.youtube.com/@Opentalent74300"
  140. target="_blank"
  141. class="fab fa-youtube brand-md"
  142. />
  143. </v-col>
  144. </v-row>
  145. </div>
  146. <v-row v-if="mdAndDown">
  147. <v-col cols="12" >
  148. <div v-for="(item, index) in footerLinks" :key="index">
  149. <v-container>
  150. <div class="link-md d-flex justify-space-between align-left" @click="toggle(index)">
  151. {{ item.label }}
  152. <v-icon>
  153. {{
  154. isActive(index) ? "fas fa-chevron-up" : "fas fa-chevron-down"
  155. }}
  156. </v-icon>
  157. </div>
  158. <div class="answer" v-if="isActive(index)">
  159. <div
  160. v-for="(sublink, sublinkIndex) in item.sublink"
  161. :key="sublinkIndex"
  162. class="mt-3"
  163. >
  164. <NuxtLink class="small-link-sm" :to="sublink.link">{{ sublink.label }}</NuxtLink>
  165. </div>
  166. </div>
  167. </v-container>
  168. </div>
  169. </v-col>
  170. </v-row>
  171. <v-row :class="mdAndDown ? '' : 'footer'" justify="center">
  172. <p class="mt-6">
  173. <a class="mention" href="/mentions-legales" target="_blank"
  174. >Mentions légales</a
  175. >
  176. -
  177. <a class="mention" href="/politique-de-confidentialite" target="_blank"
  178. >Politiques de cookies</a
  179. >
  180. -
  181. <a class="mention" href="/CGV" target="_blank"
  182. >Conditions Générales de Ventes</a
  183. >
  184. </p>
  185. </v-row>
  186. <v-row justify="center" class="mb-6">
  187. <p class="mention">2024 &copy; Tous droits réservés par Opentalent</p>
  188. </v-row>
  189. </LayoutContainer>
  190. </footer>
  191. </template>
  192. <script setup>
  193. import { useDisplay } from "vuetify";
  194. import { ref, provide } from "vue";
  195. const footerElement = ref(null);
  196. const footerLinks = ref([
  197. {
  198. label: "AGENDA CULTUREL",
  199. sublink: [
  200. {
  201. label: "Annuaire",
  202. link: "/annuaire",
  203. },
  204. {
  205. label: "Actualités",
  206. link: "/actualites",
  207. },
  208. {
  209. label: "Annonces",
  210. link: "/annonces",
  211. },
  212. ],
  213. },
  214. {
  215. label: "LOGICIELS CULTURELS ",
  216. sublink: [
  217. {
  218. label: "Opentalent Artist",
  219. link: "/opentalent_artist)",
  220. },
  221. {
  222. label: "Opentalent School",
  223. link: "/opentalent_school",
  224. },
  225. {
  226. label: "Opentalent Manager",
  227. link: "/opentalent_manager",
  228. },
  229. ],
  230. },
  231. {
  232. label: "À PROPOS ",
  233. sublink: [
  234. {
  235. label: "Qui sommes-nous",
  236. link: "/qui-sommes-nous)",
  237. },
  238. {
  239. label: "Nous rejoindre",
  240. link: "/nous-rejoindre",
  241. },
  242. {
  243. label: "Nous contacter",
  244. link: "/nous-contacter",
  245. },
  246. ],
  247. },
  248. {
  249. label: "ESPACE CLIENT ",
  250. sublink: [
  251. {
  252. label: "Foire Aux Questions ",
  253. link: "/ https://ressources.opentalent.fr/)",
  254. },
  255. {
  256. label: "Support en ligne ",
  257. link: "/https://ressources.opentalent.fr/?contact",
  258. },
  259. {
  260. label: "Nous contacter ",
  261. link: "/nous-contacter",
  262. },
  263. ],
  264. },
  265. ]);
  266. const activeIndex = ref(-1);
  267. function toggle(index) {
  268. activeIndex.value = activeIndex.value === index ? -1 : index;
  269. }
  270. function isActive(index) {
  271. return activeIndex.value === index;
  272. }
  273. provide("footerElement", footerElement);
  274. const { mdAndDown } = useDisplay();
  275. </script>
  276. <style scoped>
  277. .jusitfy-center {
  278. justify-content: center;
  279. }
  280. .logo-md {
  281. width: 18rem;
  282. }
  283. .logo-container {
  284. display: flex;
  285. justify-content: center;
  286. align-items: center;
  287. }
  288. .mention {
  289. text-decoration: none;
  290. color: #ffffff;
  291. font-size: 0.8rem;
  292. }
  293. .brand {
  294. color: #ecfbfc;
  295. font-size: 1.9rem;
  296. text-decoration: none !important;
  297. }
  298. .brand-md {
  299. color: #ecfbfc;
  300. font-size: 3rem;
  301. text-decoration: none !important;
  302. margin: 0 1rem;
  303. }
  304. /* .flex-container {
  305. display: flex;
  306. flex-direction: column;
  307. justify-content: space-between;
  308. } */
  309. .vertical-bar {
  310. height: 4rem;
  311. border: 0.1rem solid #ecfbfc;
  312. margin-left: 10px;
  313. margin-top: 3rem;
  314. }
  315. .right-reserved {
  316. color: rgba(255, 255, 255, 0.6);
  317. font-family: Space Grotesk;
  318. font-size: 0.6rem;
  319. letter-spacing: 1px;
  320. }
  321. .h5-title {
  322. font-size: 1.1rem;
  323. font-style: normal;
  324. letter-spacing: 1.2px;
  325. text-transform: uppercase;
  326. }
  327. .link-md {
  328. display: flex;
  329. flex-direction: row;
  330. text-align: left;
  331. text-transform: uppercase;
  332. font-family: "Barlow";
  333. font-style: normal;
  334. font-weight: 700;
  335. font-size: 1.5rem;
  336. border-bottom: 1px solid rgba(255, 255, 255, 0.3);
  337. }
  338. .logo-opentalent-md {
  339. display: flex;
  340. justify-content: center;
  341. align-items: center;
  342. }
  343. .icon:nth-child(2) {
  344. margin-left: 10px;
  345. }
  346. .title-link,
  347. .title-link-sm {
  348. font-family: "Barlow";
  349. font-style: normal;
  350. font-weight: 500;
  351. font-size: 1rem;
  352. line-height: 20px;
  353. margin-bottom: 1rem;
  354. }
  355. .title-link-sm {
  356. margin-bottom: 0.1rem;
  357. }
  358. .small-link-sm {
  359. font-family: "Barlow";
  360. font-style: normal;
  361. font-weight: 300;
  362. font-size: 1.3rem;
  363. line-height: 20px;
  364. color: #ffffff;
  365. text-decoration: none !important;
  366. text-align: left;
  367. }
  368. .small-link {
  369. font-family: "Barlow";
  370. font-style: normal;
  371. font-weight: 300;
  372. font-size: 0.9rem;
  373. line-height: 20px;
  374. color: #ffffff;
  375. text-decoration: none !important;
  376. margin-bottom: 0.5rem;
  377. }
  378. .container {
  379. background: #091d20;
  380. color: aliceblue;
  381. }
  382. .activities {
  383. height: 12rem;
  384. background: #091d20;
  385. border-bottom: 0.4px solid rgba(255, 255, 255, 0.3);
  386. box-shadow: 0px 3px 24px rgba(0, 0, 0, 0.07);
  387. }
  388. .footer {
  389. margin-top: 2rem;
  390. border-top: 0.4px solid rgba(255, 255, 255, 0.3);
  391. box-shadow: 0px 3px 24px rgba(0, 0, 0, 0.07);
  392. }
  393. .logo {
  394. margin-bottom: 3rem;
  395. width: 25rem;
  396. }
  397. .logo-jaune {
  398. margin-left: 307.74px;
  399. }
  400. .logo-rouge {
  401. margin-left: 117px;
  402. }
  403. .logo-bleu {
  404. margin-left: 91.74px;
  405. }
  406. .text-logo-jaune {
  407. margin-left: 10rem;
  408. font-family: "Barlow";
  409. font-style: normal;
  410. font-weight: 500;
  411. font-size: 14px;
  412. line-height: 18px;
  413. display: flex;
  414. align-items: center;
  415. color: #ecfbfc;
  416. text-shadow: 0px 4px 4px rgba(0, 0, 0, 0.25), 0px 4px 4px rgba(0, 0, 0, 0.25),
  417. 0px 4px 4px rgba(0, 0, 0, 0.25);
  418. }
  419. .text-logo-rouge {
  420. margin-left: 37.74px;
  421. font-family: "Barlow";
  422. font-style: normal;
  423. font-weight: 500;
  424. font-size: 14px;
  425. line-height: 18px;
  426. display: flex;
  427. align-items: center;
  428. color: #ecfbfc;
  429. text-shadow: 0px 4px 4px rgba(0, 0, 0, 0.25), 0px 4px 4px rgba(0, 0, 0, 0.25),
  430. 0px 4px 4px rgba(0, 0, 0, 0.25);
  431. }
  432. .text-logo-bleu {
  433. height: 24px;
  434. left: 897px;
  435. top: 7858px;
  436. margin-left: 25.74px;
  437. font-family: "Barlow";
  438. font-style: normal;
  439. font-weight: 500;
  440. font-size: 14px;
  441. line-height: 18px;
  442. display: flex;
  443. align-items: center;
  444. color: #ecfbfc;
  445. text-shadow: 0px 4px 4px rgba(0, 0, 0, 0.25), 0px 4px 4px rgba(0, 0, 0, 0.25),
  446. 0px 4px 4px rgba(0, 0, 0, 0.25);
  447. }
  448. </style>