Ngiler SH3LL 360
Home
Information
Create File
Create Folder
:
/
home
/
tbf
/
tbfguest.tbf.ro
/
src
/
views
/
public
/
Information Server
MySQL :
OFF
Perl :
OFF
CURL :
ON
WGET :
OFF
PKEXEC :
OFF
Directive
Local Value
IP Address
89.40.16.97
System
Linux server.atelieruldeit.ro 3.10.0-1160.el7.x86_64 #1 SMP Mon Oct 19 16:18:59 UTC 2020 x86_64
User
tbf
PHP Version
7.3.33
Software
Apache
Doc root
Writable
close
Edit File :
LandingRecruitments.vue
| Size :
34.73
KB
Copy
<template> <div id="landing-recruitments" v-if="loaded"> <div class="bg-white"> <div class="relative isolate pt-14"> <svg class="absolute inset-0 -z-10 h-full w-full stroke-gray-200 [mask-image:radial-gradient(100%_100%_at_top_right,white,transparent)]" aria-hidden="true"> <defs> <pattern id="83fd4e5a-9d52-42fc-97b6-718e5d7ee527" width="200" height="200" x="50%" y="-1" patternUnits="userSpaceOnUse"> <path d="M100 200V.5M.5 .5H200" fill="none" /> </pattern> </defs> <svg x="50%" y="-1" class="overflow-visible fill-gray-50"> <path d="M-100.5 0h201v201h-201Z M699.5 0h201v201h-201Z M499.5 400h201v201h-201Z M-300.5 600h201v201h-201Z" stroke-width="0" /> </svg> <rect width="100%" height="100%" stroke-width="0" fill="url(#83fd4e5a-9d52-42fc-97b6-718e5d7ee527)" /> </svg> <div class="mx-auto max-w-7xl px-6 py-24 sm:py-32 flex lg:gap-x-10 lg:px-8 lg:py-40"> <div class="mx-auto max-w-4xl lg:mx-0 lg:flex-auto"> <img :src="recruitment.settings.logo" class="w-auto h-12 mb-10" v-if="recruitment.settings.logo" /> <div class="flex"> <div class="relative flex items-center gap-x-4 rounded-full px-4 py-1 text-sm leading-6 text-gray-600 ring-1 ring-gray-900/10 hover:ring-gray-900/20"> <span class="font-semibold" :style="textColor">Angajăm</span> <span class="h-4 w-px bg-gray-900/10" aria-hidden="true" /> <a href="#profilul-ideal" class="flex items-center gap-x-1"> <span class="inset-0" aria-hidden="true" /> Vezi Profilul Ideal <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" class="-mr-2 h-5 w-5 text-gray-400" aria-hidden="true"> <path stroke-linecap="round" stroke-linejoin="round" d="M8.25 4.5l7.5 7.5-7.5 7.5" /> </svg> </a> </div> </div> <h1 class="mt-10 text-4xl font-bold tracking-tight text-gray-900 sm:text-6xl">{{ recruitment.title }}</h1> <p class="mt-6 text-lg leading-8 text-gray-600"> {{ recruitment.description }} </p> <div class="mt-10 flex items-center gap-x-6"> <template v-if="recruitment.settings.id_form"> <button v-if="!isTypeFormURL" @click="openTypeForm" :data-tf-popup="recruitment.settings.id_form" data-tf-opacity="100" data-tf-medium="snippet" :style="bgColorButton" class="rounded-md px-3.5 py-2.5 text-sm font-semibold text-white shadow-sm focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2"> Aplică acum </button> <button v-else :href="recruitment.settings.id_form" target="_blank" :style="bgColorButton" class="rounded-md px-3.5 py-2.5 text-sm font-semibold text-white shadow-sm focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2"> Aplică acum </button> </template> <a href="#informatii-generale" class="text-sm font-semibold leading-6 text-gray-900">Află mai multe <span aria-hidden="true">→</span></a> </div> </div> </div> </div> </div> <div class="bg-white py-24 sm:py-32" id="informatii-generale" v-if="recruitment.details.filter((el) => el.category == 'position' && el.active).length"> <div class="mx-auto max-w-7xl px-6 lg:px-8"> <div class="mx-auto grid max-w-2xl grid-cols-1 gap-x-8 gap-y-16 sm:gap-y-20 lg:mx-0 lg:max-w-none lg:grid-cols-3"> <div class="col-span-1"> <h2 class="text-3xl font-bold tracking-tight text-gray-900 sm:text-4xl">Informații generale</h2> </div> <dl class="col-span-2 grid grid-cols-1 gap-x-8 gap-y-16 sm:grid-cols-2"> <div v-for="feature in recruitment.details.filter((el) => el.category == 'position' && el.active)" :key="feature.id" class="flex items-start"> <div class="flex h-12 w-12 items-center justify-center rounded-lg bg-blue-50 border border-blue-600/20 text-blue-500 mr-6" v-html="iconsDetails[feature.code]"></div> <div> <dt class="text-base font-semibold leading-none text-gray-900"> {{ feature.title }} </dt> <dd class="mt-2 text-base leading-7 text-gray-600">{{ feature.description }}</dd> </div> </div> </dl> </div> </div> </div> <div class="relative isolate overflow-hidden bg-gray-900 py-24 sm:py-32"> <div class="absolute inset-x-0 -top-16 -z-10 flex transform-gpu justify-center overflow-hidden blur-3xl" aria-hidden="true"> <div class="aspect-[1318/752] w-[82.375rem] flex-none bg-gradient-to-r from-[#80caff] to-[#4f46e5] opacity-25" style=" clip-path: polygon( 73.6% 51.7%, 91.7% 11.8%, 100% 46.4%, 97.4% 82.2%, 92.5% 84.9%, 75.7% 64%, 55.3% 47.5%, 46.5% 49.4%, 45% 62.9%, 50.3% 87.2%, 21.3% 64.1%, 0.1% 100%, 5.4% 51.1%, 21.4% 63.9%, 58.9% 0.2%, 73.6% 51.7% ); " /> </div> <div class="mx-auto max-w-7xl px-6 lg:px-8"> <div class="mx-auto max-w-2xl lg:mx-0"> <h2 class="text-3xl font-bold tracking-tight text-white sm:text-4xl">Povestea Noastră</h2> <p class="mt-6 text-lg leading-8 text-gray-300"> "Povestea Noastră" ilustrează călătoria noastră: viziune, valori și realizări marcante. Înconjurată de premii și parteneriate solide, pasiunea și inovația ne definesc. Descoperă esența noastră. </p> </div> <dl class="mx-auto mt-16 grid max-w-2xl grid-cols-1 gap-x-8 gap-y-16 text-base leading-7 sm:grid-cols-2 lg:mx-0 lg:max-w-none lg:grid-cols-3"> <div v-for="feature in recruitment.details.filter((el) => el.category == 'main' && el.active)" :key="feature.id"> <dt class="font-semibold text-white">{{ feature.title }}</dt> <dd class="mt-1 text-gray-300">{{ feature.description }}</dd> </div> </dl> </div> </div> <section id="profilul-ideal" aria-labelledby="table-of-contents-title" class="scroll-mt-14 py-16 sm:scroll-mt-32 sm:py-20 lg:py-32"> <div class="mx-auto px-4 sm:px-6 max-w-7xl md:px-4 lg:px-12"> <p className="mt-8 font-display text-4xl font-bold tracking-tight text-slate-900">Profilul Ideal</p> <p className="mt-4 text-lg tracking-tight text-slate-700"> Explorând responsabilitățile principale, activitățile zilnice și abilitățile esențiale, vei înțelege ce căutăm într-un candidat ideal. Fiecare detaliu subliniază importanța rolului și calitățile necesare pentru a excela în cadrul echipei noastre. </p> <div> <ol role="list" class="mt-16 space-y-10 sm:space-y-16"> <li v-if="recruitment.responsibilities.length"> <h3 class="font-display text-3xl font-bold tracking-tight text-slate-900">Responsabilități</h3> <ol role="list" class="mt-8 divide-y divide-slate-300/30 rounded-2xl bg-slate-50 px-6 py-3 text-base tracking-tight sm:px-8 sm:py-7"> <li class="flex justify-between py-3" :aria-label="responsibility.description" v-for="responsibility in recruitment.responsibilities" :key="responsibility.id"> <span class="font-medium text-slate-900" aria-hidden="true">{{ responsibility.description }}</span> <!-- <span class="font-mono text-slate-400" aria-hidden="true">{{ responsibility.kpi }}</span> --> </li> </ol> </li> <li v-if="recruitment.activities.length"> <h3 class="font-display text-3xl font-bold tracking-tight text-slate-900">Activități</h3> <ol role="list" class="mt-8 divide-y divide-slate-300/30 rounded-2xl bg-slate-50 px-6 py-3 text-base tracking-tight sm:px-8 sm:py-7"> <li class="flex justify-between py-3" :aria-label="activity.description" v-for="activity in recruitment.activities" :key="activity.id"> <span class="font-medium text-slate-900" aria-hidden="true">{{ activity.description }}</span> <div class="flex items-center gap-0.5"> <div v-for="star in activity.importance?.stars" class="text-yellow-400"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" class="w-4 h-4"> <path vector-effect="non-scaling-stroke" fill-rule="evenodd" d="M10.788 3.21c.448-1.077 1.976-1.077 2.424 0l2.082 5.007 5.404.433c1.164.093 1.636 1.545.749 2.305l-4.117 3.527 1.257 5.273c.271 1.136-.964 2.033-1.96 1.425L12 18.354 7.373 21.18c-.996.608-2.231-.29-1.96-1.425l1.257-5.273-4.117-3.527c-.887-.76-.415-2.212.749-2.305l5.404-.433 2.082-5.006z" clip-rule="evenodd" /> </svg> </div> <div v-for="star in 5 - activity.importance?.stars" class="text-gray-200"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" class="w-4 h-4"> <path vector-effect="non-scaling-stroke" fill-rule="evenodd" d="M10.788 3.21c.448-1.077 1.976-1.077 2.424 0l2.082 5.007 5.404.433c1.164.093 1.636 1.545.749 2.305l-4.117 3.527 1.257 5.273c.271 1.136-.964 2.033-1.96 1.425L12 18.354 7.373 21.18c-.996.608-2.231-.29-1.96-1.425l1.257-5.273-4.117-3.527c-.887-.76-.415-2.212.749-2.305l5.404-.433 2.082-5.006z" clip-rule="evenodd" /> </svg> </div> </div> </li> </ol> </li> <li v-if="recruitment.abilities.length"> <h3 class="font-display text-3xl font-bold tracking-tight text-slate-900">Abilități necesare</h3> <ol role="list" class="mt-8 divide-y divide-slate-300/30 rounded-2xl bg-slate-50 px-6 py-3 text-base tracking-tight sm:px-8 sm:py-7"> <li class="flex justify-between py-3" :aria-label="ability.description" v-for="ability in recruitment.abilities" :key="ability.id"> <span class="font-medium text-slate-900" aria-hidden="true">{{ ability.description }}</span> <div class="flex items-center gap-0.5"> <div v-for="star in ability.importance?.stars" class="text-yellow-400"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" class="w-4 h-4"> <path vector-effect="non-scaling-stroke" fill-rule="evenodd" d="M10.788 3.21c.448-1.077 1.976-1.077 2.424 0l2.082 5.007 5.404.433c1.164.093 1.636 1.545.749 2.305l-4.117 3.527 1.257 5.273c.271 1.136-.964 2.033-1.96 1.425L12 18.354 7.373 21.18c-.996.608-2.231-.29-1.96-1.425l1.257-5.273-4.117-3.527c-.887-.76-.415-2.212.749-2.305l5.404-.433 2.082-5.006z" clip-rule="evenodd" /> </svg> </div> <div v-for="star in 5 - ability.importance?.stars" class="text-gray-200"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" class="w-4 h-4"> <path vector-effect="non-scaling-stroke" fill-rule="evenodd" d="M10.788 3.21c.448-1.077 1.976-1.077 2.424 0l2.082 5.007 5.404.433c1.164.093 1.636 1.545.749 2.305l-4.117 3.527 1.257 5.273c.271 1.136-.964 2.033-1.96 1.425L12 18.354 7.373 21.18c-.996.608-2.231-.29-1.96-1.425l1.257-5.273-4.117-3.527c-.887-.76-.415-2.212.749-2.305l5.404-.433 2.082-5.006z" clip-rule="evenodd" /> </svg> </div> </div> </li> </ol> </li> </ol> </div> </div> </section> <div class="bg-white py-24 sm:py-32" v-if="recruitment.details.filter((el) => el.category == 'culture' && el.active)?.length"> <div class="mx-auto max-w-7xl px-6 lg:px-8"> <div class="mx-auto grid max-w-2xl grid-cols-1 gap-x-8 gap-y-16 sm:gap-y-20 lg:mx-0 lg:max-w-none lg:grid-cols-3"> <h2 class="text-3xl font-bold tracking-tight text-gray-900 sm:text-4xl">Cultura companiei noastre</h2> <dl class="col-span-2 grid grid-cols-1 gap-x-8 gap-y-16 sm:grid-cols-2"> <div v-for="feature in recruitment.details.filter((el) => el.category == 'culture' && el.active)" :key="feature.id" class="flex items-start"> <div class="flex h-12 w-12 items-center justify-center rounded-lg bg-blue-50 border border-blue-600/20 text-blue-500 mr-6" v-html="iconsDetails[feature.code]"></div> <div> <dt class="text-base font-semibold leading-none text-gray-900"> {{ feature.title }} </dt> <dd class="mt-2 text-base leading-7 text-gray-600">{{ feature.description }}</dd> </div> </div> </dl> </div> </div> </div> <div class="relative isolate overflow-hidden bg-gray-900 py-24 sm:py-32"> <div class="absolute inset-x-0 -top-16 -z-10 flex transform-gpu justify-center overflow-hidden blur-3xl" aria-hidden="true"> <div class="aspect-[1318/752] w-[82.375rem] flex-none bg-gradient-to-r from-[#80caff] to-[#4f46e5] opacity-25" style=" clip-path: polygon( 73.6% 51.7%, 91.7% 11.8%, 100% 46.4%, 97.4% 82.2%, 92.5% 84.9%, 75.7% 64%, 55.3% 47.5%, 46.5% 49.4%, 45% 62.9%, 50.3% 87.2%, 21.3% 64.1%, 0.1% 100%, 5.4% 51.1%, 21.4% 63.9%, 58.9% 0.2%, 73.6% 51.7% ); " /> </div> <div class="mx-auto max-w-7xl px-6 lg:px-8"> <div class="mx-auto max-w-4xl lg:mx-0"> <h2 class="text-4xl font-bold tracking-tight text-white sm:text-6xl">Procesul de Aplicare în Trei Pași</h2> <p class="mt-6 text-lg leading-8 text-gray-300"> Aplică online, primești un răspuns într-o săptămână și participi la un interviu scurt. Rapid, simplu și respectuos față de timpul tău. </p> <div class="mt-10 flex items-center justify-center gap-x-6 lg:justify-start"> <template v-if="recruitment.settings.id_form"> <button v-if="!isTypeFormURL" @click="openTypeForm" :data-tf-popup="recruitment.settings.id_form" data-tf-opacity="100" data-tf-medium="snippet" class="rounded-md bg-white px-3.5 py-2.5 text-sm font-semibold text-gray-900 shadow-sm hover:bg-gray-100 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-white"> Aplică acum </button> <button v-else :href="recruitment.settings.id_form" target="_blank" class="rounded-md bg-white px-3.5 py-2.5 text-sm font-semibold text-gray-900 shadow-sm hover:bg-gray-100 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-white"> Aplică acum </button> </template> </div> </div> <div class="mx-auto mt-16 grid max-w-2xl grid-cols-1 gap-6 sm:mt-20 lg:mx-0 lg:max-w-none lg:grid-cols-3 lg:gap-8"> <div v-for="card in cards" :key="card.name" class="flex gap-x-4 rounded-xl bg-white/5 p-6 ring-1 ring-inset ring-white/10"> <div class="text-base leading-7"> <h3 class="font-semibold text-white">{{ card.name }}</h3> <p class="mt-2 text-gray-300">{{ card.description }}</p> </div> </div> </div> </div> </div> <section class="bg-white py-24 sm:py-32" v-if="recruitment.details.find((el) => el.category == 'not_for_you' && el.active)"> <div class="mx-auto max-w-7xl px-6 lg:px-8" :set="(not_for_you = recruitment.details.find((el) => el.category == 'not_for_you' && el.active))"> <div class="flex flex-col pb-10 sm:pb-16 lg:pb-0 lg:pr-8 xl:pr-20"> <h2 class="text-base font-semibold leading-8" :style="textColor">Nu te potrivești?</h2> <p class="mt-2 text-3xl font-bold tracking-tight text-gray-900 sm:text-4xl">{{ not_for_you.title }}</p> <p class="mt-6 text-lg leading-8 text-gray-600"> {{ not_for_you.description }} </p> </div> </div> </section> <footer class="bg-gray-900" aria-labelledby="footer-heading"> <div class="mx-auto max-w-7xl px-6 py-12 md:flex md:items-center md:justify-between lg:px-8"> <div class="flex items-center space-x-3"> <div class="flex items-center text-gray-300" v-if="recruitment.settings.email"> <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="currentColor" class="w-4 h-4 mr-1"> <path stroke-linecap="round" vector-effect="non-scaling-stroke" stroke-width="1" d="M16.5 12a4.5 4.5 0 11-9 0 4.5 4.5 0 019 0zm0 0c0 1.657 1.007 3 2.25 3S21 13.657 21 12a9 9 0 10-2.636 6.364M16.5 12V8.25" /> </svg> <a class="text-sm leading-6 m-0" :href="`mailto:${recruitment.settings.email}`" target="_blank">{{ recruitment.settings.email }}</a> </div> <div class="flex items-center text-gray-300" v-if="recruitment.settings.phone"> <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="currentColor" class="w-4 h-4 mr-1"> <path stroke-linecap="round" vector-effect="non-scaling-stroke" stroke-width="1" stroke-linejoin="round" d="M10.5 1.5H8.25A2.25 2.25 0 006 3.75v16.5a2.25 2.25 0 002.25 2.25h7.5A2.25 2.25 0 0018 20.25V3.75a2.25 2.25 0 00-2.25-2.25H13.5m-3 0V3h3V1.5m-3 0h3m-3 18.75h3" /> </svg> <p class="text-sm leading-6 m-0">{{ recruitment.settings.phone }}</p> </div> </div> <p class="text-xs leading-5 text-gray-400">© {{ currentYear }} Toate drepturile rezervate.</p> </div> </footer> </div> <div class="fixed bottom-6 right-6"> <button @click="downloadHtml" class="rounded-md bg-blue-500 px-3.5 py-2.5 text-sm font-semibold text-white shadow-sm hover:bg-blue-400 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-blue-500"> Descarcă resursa </button> </div> </template> <script> import JSZip from "jszip"; import { createPopup } from "@typeform/embed"; import "@typeform/embed/build/css/popup.css"; export default { data() { return { base_url: import.meta.env.VITE_APP_BASE_URL, loaded: false, showLoader: false, currentYear: new Date().getFullYear(), recruitment: {}, iconsDetails: { position: `<svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.0\" stroke=\"currentColor\" class=\"w-6 h-6\"><path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M4.26 10.147a60.436 60.436 0 00-.491 6.347A48.627 48.627 0 0112 20.904a48.627 48.627 0 018.232-4.41 60.46 60.46 0 00-.491-6.347m-15.482 0a50.57 50.57 0 00-2.658-.813A59.905 59.905 0 0112 3.493a59.902 59.902 0 0110.399 5.84c-.896.248-1.783.52-2.658.814m-15.482 0A50.697 50.697 0 0112 13.489a50.702 50.702 0 017.74-3.342M6.75 15a.75.75 0 100-1.5.75.75 0 000 1.5zm0 0v-3.675A55.378 55.378 0 0112 8.443m-7.007 11.55A5.981 5.981 0 006.75 15.75v-1.5\"/></svg>`, experience: `<svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.0\" stroke=\"currentColor\" class=\"w-6 h-6\"><path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M11.48 3.499a.562.562 0 011.04 0l2.125 5.111a.563.563 0 00.475.345l5.518.442c.499.04.701.663.321.988l-4.204 3.602a.563.563 0 00-.182.557l1.285 5.385a.562.562 0 01-.84.61l-4.725-2.885a.563.563 0 00-.586 0L6.982 20.54a.562.562 0 01-.84-.61l1.285-5.386a.562.562 0 00-.182-.557l-4.204-3.602a.563.563 0 01.321-.988l5.518-.442a.563.563 0 00.475-.345L11.48 3.5z\"/></svg>`, available: `<svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.0\" stroke=\"currentColor\" class=\"w-6 h-6\"><path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M12 6v6h4.5m4.5 0a9 9 0 11-18 0 9 9 0 0118 0z\"/></svg>`, bonuses: `<svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.0\" stroke=\"currentColor\" class=\"w-6 h-6\"><path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M14.25 7.756a4.5 4.5 0 100 8.488M7.5 10.5h5.25m-5.25 3h5.25M21 12a9 9 0 11-18 0 9 9 0 0118 0z\"/></svg>`, car: `<svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.0\" stroke=\"currentColor\" class=\"w-6 h-6\"><path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M15.75 5.25a3 3 0 013 3m3 0a6 6 0 01-7.029 5.912c-.563-.097-1.159.026-1.563.43L10.5 17.25H8.25v2.25H6v2.25H2.25v-2.818c0-.597.237-1.17.659-1.591l6.499-6.499c.404-.404.527-1 .43-1.563A6 6 0 1121.75 8.25z\"/></svg>`, phone: `<svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.0\" stroke=\"currentColor\" class=\"w-6 h-6\"><path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M10.5 1.5H8.25A2.25 2.25 0 006 3.75v16.5a2.25 2.25 0 002.25 2.25h7.5A2.25 2.25 0 0018 20.25V3.75a2.25 2.25 0 00-2.25-2.25H13.5m-3 0V3h3V1.5m-3 0h3m-3 18.75h3\"/></svg>`, salary: `<svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.0\" stroke=\"currentColor\" class=\"w-6 h-6\">\n<path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M2.25 18.75a60.07 60.07 0 0115.797 2.101c.727.198 1.453-.342 1.453-1.096V18.75M3.75 4.5v.75A.75.75 0 013 6h-.75m0 0v-.375c0-.621.504-1.125 1.125-1.125H20.25M2.25 6v9m18-10.5v.75c0 .414.336.75.75.75h.75m-1.5-1.5h.375c.621 0 1.125.504 1.125 1.125v9.75c0 .621-.504 1.125-1.125 1.125h-.375m1.5-1.5H21a.75.75 0 00-.75.75v.75m0 0H3.75m0 0h-.375a1.125 1.125 0 01-1.125-1.125V15m1.5 1.5v-.75A.75.75 0 003 15h-.75M15 10.5a3 3 0 11-6 0 3 3 0 016 0zm3 0h.008v.008H18V10.5zm-12 0h.008v.008H6V10.5z\" />\n</svg>`, laptop: `<svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.0\" stroke=\"currentColor\" class=\"w-6 h-6\">\n<path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 17.25v1.007a3 3 0 01-.879 2.122L7.5 21h9l-.621-.621A3 3 0 0115 18.257V17.25m6-12V15a2.25 2.25 0 01-2.25 2.25H5.25A2.25 2.25 0 013 15V5.25m18 0A2.25 2.25 0 0018.75 3H5.25A2.25 2.25 0 003 5.25m18 0V12a2.25 2.25 0 01-2.25 2.25H5.25A2.25 2.25 0 013 12V5.25\" />\n</svg>`, location: `<svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.0\" stroke=\"currentColor\" class=\"w-6 h-6\">\n<path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M2.25 21h19.5m-18-18v18m10.5-18v18m6-13.5V21M6.75 6.75h.75m-.75 3h.75m-.75 3h.75m3-6h.75m-.75 3h.75m-.75 3h.75M6.75 21v-3.375c0-.621.504-1.125 1.125-1.125h2.25c.621 0 1.125.504 1.125 1.125V21M3 3h12m-.75 4.5H21m-3.75 3.75h.008v.008h-.008v-.008zm0 3h.008v.008h-.008v-.008zm0 3h.008v.008h-.008v-.008z\" />\n</svg>`, job_type: `<svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.0\" stroke=\"currentColor\" class=\"w-6 h-6\">\n<path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M2.25 21h19.5m-18-18v18m10.5-18v18m6-13.5V21M6.75 6.75h.75m-.75 3h.75m-.75 3h.75m3-6h.75m-.75 3h.75m-.75 3h.75M6.75 21v-3.375c0-.621.504-1.125 1.125-1.125h2.25c.621 0 1.125.504 1.125 1.125V21M3 3h12m-.75 4.5H21m-3.75 3.75h.008v.008h-.008v-.008zm0 3h.008v.008h-.008v-.008zm0 3h.008v.008h-.008v-.008z\" />\n</svg>`, city: `<svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.0\" stroke=\"currentColor\" class=\"w-6 h-6\">\n<path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M20.893 13.393l-1.135-1.135a2.252 2.252 0 01-.421-.585l-1.08-2.16a.414.414 0 00-.663-.107.827.827 0 01-.812.21l-1.273-.363a.89.89 0 00-.738 1.595l.587.39c.59.395.674 1.23.172 1.732l-.2.2c-.212.212-.33.498-.33.796v.41c0 .409-.11.809-.32 1.158l-1.315 2.191a2.11 2.11 0 01-1.81 1.025 1.055 1.055 0 01-1.055-1.055v-1.172c0-.92-.56-1.747-1.414-2.089l-.655-.261a2.25 2.25 0 01-1.383-2.46l.007-.042a2.25 2.25 0 01.29-.787l.09-.15a2.25 2.25 0 012.37-1.048l1.178.236a1.125 1.125 0 001.302-.795l.208-.73a1.125 1.125 0 00-.578-1.315l-.665-.332-.091.091a2.25 2.25 0 01-1.591.659h-.18c-.249 0-.487.1-.662.274a.931.931 0 01-1.458-1.137l1.411-2.353a2.25 2.25 0 00.286-.76m11.928 9.869A9 9 0 008.965 3.525m11.928 9.868A9 9 0 118.965 3.525\" />\n</svg>`, medical_insurance: `<svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.0\" stroke=\"currentColor\" class=\"w-6 h-6\">\n<path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M21 8.25c0-2.485-2.099-4.5-4.688-4.5-1.935 0-3.597 1.126-4.312 2.733-.715-1.607-2.377-2.733-4.313-2.733C5.1 3.75 3 5.765 3 8.25c0 7.22 9 12 9 12s9-4.78 9-12z\" />\n</svg>`, days_off: `<svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.0\" stroke=\"currentColor\" class=\"w-6 h-6\">\n<path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M12 3v2.25m6.364.386l-1.591 1.591M21 12h-2.25m-.386 6.364l-1.591-1.591M12 18.75V21m-4.773-4.227l-1.591 1.591M5.25 12H3m4.227-4.773L5.636 5.636M15.75 12a3.75 3.75 0 11-7.5 0 3.75 3.75 0 017.5 0z\" />\n</svg>`, induction: `<svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.0\" stroke=\"currentColor\" class=\"w-6 h-6\">\n<path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9.879 7.519c1.171-1.025 3.071-1.025 4.242 0 1.172 1.025 1.172 2.687 0 3.712-.203.179-.43.326-.67.442-.745.361-1.45.999-1.45 1.827v.75M21 12a9 9 0 11-18 0 9 9 0 0118 0zm-9 5.25h.008v.008H12v-.008z\" />\n</svg>`, objectives: `<svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.0\" stroke=\"currentColor\" class=\"w-6 h-6\">\n<path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M6.75 3v2.25M17.25 3v2.25M3 18.75V7.5a2.25 2.25 0 012.25-2.25h13.5A2.25 2.25 0 0121 7.5v11.25m-18 0A2.25 2.25 0 005.25 21h13.5A2.25 2.25 0 0021 18.75m-18 0v-7.5A2.25 2.25 0 015.25 9h13.5A2.25 2.25 0 0121 11.25v7.5\" />\n</svg>`, evaluations: `<svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.0\" stroke=\"currentColor\" class=\"w-6 h-6\">\n<path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M3 13.125C3 12.504 3.504 12 4.125 12h2.25c.621 0 1.125.504 1.125 1.125v6.75C7.5 20.496 6.996 21 6.375 21h-2.25A1.125 1.125 0 013 19.875v-6.75zM9.75 8.625c0-.621.504-1.125 1.125-1.125h2.25c.621 0 1.125.504 1.125 1.125v11.25c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 01-1.125-1.125V8.625zM16.5 4.125c0-.621.504-1.125 1.125-1.125h2.25C20.496 3 21 3.504 21 4.125v15.75c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 01-1.125-1.125V4.125z\" />\n</svg>`, bonuses_2: `<svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.0\" stroke=\"currentColor\" class=\"w-6 h-6\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M2.25 18.75a60.07 60.07 0 0115.797 2.101c.727.198 1.453-.342 1.453-1.096V18.75M3.75 4.5v.75A.75.75 0 013 6h-.75m0 0v-.375c0-.621.504-1.125 1.125-1.125H20.25M2.25 6v9m18-10.5v.75c0 .414.336.75.75.75h.75m-1.5-1.5h.375c.621 0 1.125.504 1.125 1.125v9.75c0 .621-.504 1.125-1.125 1.125h-.375m1.5-1.5H21a.75.75 0 00-.75.75v.75m0 0H3.75m0 0h-.375a1.125 1.125 0 01-1.125-1.125V15m1.5 1.5v-.75A.75.75 0 003 15h-.75M15 10.5a3 3 0 11-6 0 3 3 0 016 0zm3 0h.008v.008H18V10.5zm-12 0h.008v.008H6V10.5z\" />\n</svg>`, training: `<svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.0\" stroke=\"currentColor\" class=\"w-6 h-6\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M4.26 10.147a60.436 60.436 0 00-.491 6.347A48.627 48.627 0 0112 20.904a48.627 48.627 0 018.232-4.41 60.46 60.46 0 00-.491-6.347m-15.482 0a50.57 50.57 0 00-2.658-.813A59.905 59.905 0 0112 3.493a59.902 59.902 0 0110.399 5.84c-.896.248-1.783.52-2.658.814m-15.482 0A50.697 50.697 0 0112 13.489a50.702 50.702 0 017.74-3.342M6.75 15a.75.75 0 100-1.5.75.75 0 000 1.5zm0 0v-3.675A55.378 55.378 0 0112 8.443m-7.007 11.55A5.981 5.981 0 006.75 15.75v-1.5\" />\n</svg>`, responsibility: `<svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.0\" stroke=\"currentColor\" class=\"w-6 h-6\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M10.5 6a7.5 7.5 0 107.5 7.5h-7.5V6z\" />\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M13.5 10.5H21A7.5 7.5 0 0013.5 3v7.5z\" />\n</svg>`, procedure: `<svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.0\" stroke=\"currentColor\" class=\"w-6 h-6\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M8.25 6.75h12M8.25 12h12m-12 5.25h12M3.75 6.75h.007v.008H3.75V6.75zm.375 0a.375.375 0 11-.75 0 .375.375 0 01.75 0zM3.75 12h.007v.008H3.75V12zm.375 0a.375.375 0 11-.75 0 .375.375 0 01.75 0zm-.375 5.25h.007v.008H3.75v-.008zm.375 0a.375.375 0 11-.75 0 .375.375 0 01.75 0z\" />\n</svg>`, mistake: `<svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.0\" stroke=\"currentColor\" class=\"w-6 h-6\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M12 12.75c1.148 0 2.278.08 3.383.237 1.037.146 1.866.966 1.866 2.013 0 3.728-2.35 6.75-5.25 6.75S6.75 18.728 6.75 15c0-1.046.83-1.867 1.866-2.013A24.204 24.204 0 0112 12.75zm0 0c2.883 0 5.647.508 8.207 1.44a23.91 23.91 0 01-1.152 6.06M12 12.75c-2.883 0-5.647.508-8.208 1.44.125 2.104.52 4.136 1.153 6.06M12 8.25c.995 0 1.971-.08 2.922-.236.403-.066.74-.358.795-.762a3.778 3.778 0 00-.399-2.25M12 8.25c-.995 0-1.97-.08-2.922-.236-.402-.066-.74-.358-.795-.762a3.734 3.734 0 01.4-2.253M12 8.25a2.25 2.25 0 00-2.248 2.146M12 8.25a2.25 2.25 0 012.248 2.146M8.683 5a6.032 6.032 0 01-1.155-1.002c.07-.63.27-1.222.574-1.747m.581 2.749A3.75 3.75 0 0115.318 5m0 0c.427-.283.815-.62 1.155-.999a4.471 4.471 0 00-.575-1.752M4.921 6a24.048 24.048 0 00-.392 3.314c1.668.546 3.416.914 5.223 1.082M19.08 6c.205 1.08.337 2.187.392 3.314a23.882 23.882 0 01-5.223 1.082\" />\n</svg>`, }, cards: [ { name: "Pasul 1 - Aplică", description: 'Click pe butonul de "Aplică acum" pentru a aplica la job. Răspunde la întrebări și în maximum 5 minute ai terminat.', }, { name: "Pasul 2 - Primești răspuns în 7 zile", description: "În maximum o săptămână primești răspuns dacă te califici pentru interviul scurt.", }, { name: "Pasul 3 - Ne vedem la interviu", description: "Avem un interviu scurt (online) de 10 minute pentru a ne asigura că merită să ne vedem la un interviu complet. În acest fel nu îți irosim timpul.", }, ], bgColorButton: "background-color: #4F46E5;", textColor: "color: #4F46E5;", isTypeFormURL: false, }; }, async mounted() { // Hide tawk messenger if (window.Tawk_API) { window.Tawk_API.hideWidget(); } await this.getRecruitments(); }, methods: { async getRecruitments() { let timer = setTimeout(() => { this.showLoader = true; // arată loader-ul }, 500); await axios .get(`/positions/${this.$route.params.id}/recruitments`) .then(({ data }) => { this.recruitment = data.data; if (this.recruitment.settings.color) { this.bgColorButton = `background-color: ${this.recruitment.settings.color};`; this.textColor = `color: ${this.recruitment.settings.color};`; } if (this.recruitment.settings.id_form && this.recruitment.settings.id_form != "null") { const adjusted_pattern = /^(https?:\/\/)?((([a-z\d]([a-z\d-]*[a-z\d])*)\.)+[a-z]{2,}|((\d{1,3}\.){3}\d{1,3}))(:\d+)?(\/[-a-z\d%_.~+]*)*(\?.*)?(#[\w\-]*)?$/; this.isTypeFormURL = adjusted_pattern.test(this.recruitment.settings.id_form); } }) .catch((error) => { var responseError = error.response.data; this.realTimeNotifications.addNotification({ type: "error", title: "TBF ERROR", description: `"${responseError.message}". Vă rugăm să ne contactați și să ne transmiteți eroare. În interesul remedierii acestei probleme cât mai curând posibil.`, }); }) .finally(() => { clearTimeout(timer); this.loaded = true; if (this.showLoader) { this.showLoader = false; } }); }, async downloadHtml() { var landingPage = document.getElementById("landing-recruitments"); var html = document.createElement("html"); var head = document.createElement("head"); var body = document.createElement("body"); var headHtml = ` <meta charset="UTF-8"> <link rel="icon" href="/favicon.ico" sizes="any"> <link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png"> <link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png"> <link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png"> <link rel="manifest" href="/site.webmanifest"> <link rel="mask-icon" href="/safari-pinned-tab.svg" color="#5bbad5"> <meta name="msapplication-TileColor" content="#2d89ef"> <meta name="theme-color" content="#ffffff"> <!-- OG Tags --> <meta property="og:title" content="${this.recruitment.title}" /> <meta property="og:description" content="${this.recruitment.description}" /> <meta property="og:image" content="/tbf-12.jpg" /> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>${this.recruitment.title}</title> <link rel="preconnect" href="https://fonts.googleapis.com" /> <link rel="preconnect" href="https://fonts.gstatic.com" crossOrigin="anonymous" /> <link href="https://fonts.googleapis.com/css2?family=Gochi+Hand&family=Inter:wght@400;500;600;700;800&display=swap" rel="stylesheet" /> `; head.innerHTML = headHtml; var script = document.createElement("script"); script.src = "https://cdn.tailwindcss.com"; head.appendChild(script); html.appendChild(head); body.innerHTML = landingPage.innerHTML; // var typeFormScript = document.createElement("script"); // typeFormScript.src = "https://embed.typeform.com/next/embed.js"; // body.appendChild(typeFormScript); html.appendChild(body); let images = html.getElementsByTagName("img"); const zip = new JSZip(); var img = zip.folder("images"); for (let index = 0; index < images.length; index++) { let src = images[index].src; if (src) { let baseUrl = new URL(this.base_url); let srcUrl = new URL(src); srcUrl.hostname = baseUrl.hostname; const response = await axios.get(srcUrl.href, { responseType: "blob" }).catch((ex) => console.log(ex)); if (response && response.status == 200) { let fileExtension = src.split(".").pop().split(/\#|\?/)[0]; var newFileName = `image-${index}.${fileExtension}`; img.file(`${newFileName}`, response.data); images[index].src = `images/${newFileName}`; } // let fileName = value.substring(value.lastIndexOf("/")+1); } } const blob = new Blob([html.outerHTML], { type: "text/plain" }); zip.file("index.html", blob); zip.generateAsync({ type: "blob", }).then((content) => { const a = document.createElement("a"); a.download = `landing_page_${this.recruitment.title}_archive.zip`; a.href = window.URL.createObjectURL(content); a.dataset.downloadurl = ["application/zip", a.download, a.href].join(":"); a.click(); setTimeout(() => { window.URL.revokeObjectURL(content); }, 0); }); }, openTypeForm() { createPopup(this.recruitment.settings.id_form, { mode: "popup", }).open(); }, }, }; </script>
Back