Ngiler SH3LL 360
Home
Information
Create File
Create Folder
:
/
home
/
tbf
/
tbf.ro
/
resources
/
js
/
components
/
pages
/
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 :
ConcursMasterPlan.vue
| Size :
22.85
KB
Copy
<template> <div class="content-page-course"> <div class="container data-course"> <div class="header-content d-flex align-items-center"> <div class="d-flex align-items-center"> <h2 class="title-course-header">Câștigă premii la TBF Master Plan <span>2020</span></h2> </div> </div> <div> <div class="rating-course"> <div class="star-rating"> <star :class="'star star-1 average-1'"></star> <star :class="'star star-2 average-2'"></star> <star :class="'star star-3 average-3'"></star> <star :class="'star star-4 average-4'"></star> <star :class="'star star-5 average-5'"></star> </div> <div class="no-reviews"> </div> </div> <h3 class="subtitle" style="margin-top: 50px;">Locul 1: Quiz de marketing - TBF Extreme Lead-Generation, în valoare de 5000€, oferit de <u>TBF SYSTEMS</u></h3> <div class="description-course"> O modalitate inovativă de a atrage prospecți din online, care funcționează de 10 ori mai bine decât un website bine făcut. Iată ce primești:<br> 1. Te ajutăm să identifici publicul țintă, caracteristicile produselor sau serviciilor oferite de compania ta.<br /> 2. Legăm caracteristicile de nevoile publicului țintă.<br /> 3. Formulăm întrebările și opțiunile de răspuns în așa fel încât să aibă sens pentru cei care completează.<br /> 4. Îți pregătim headline-ul de început al quiz-ului în așa fel încât publicul țintă să între pe quiz atunci când se face promovare.<br /> 5. În paralel, colegii de la design o să îți personalizeze pozele din quiz, pozele pentru share pe Facebook, poze pentru reclamă de pe Facebook, culorile, fonturile... în așa fel încât să reflecte identitatea companiei tale.<br /> 6. Din partea de administrare o să poți să urmărești KPI-uri care contează, câte persoane au început quiz-ul, câte au finalizat, cât timp au petrecut pe întrebare, unde au renunțat, care sunt orele cele mai benefice pentru promovarea quiz-ului<br /> 7. Îți pregătim o pagină de final în care îi afișăm celui care a completat quiz-ul rezultatul personalizat bazat pe răspunsurile lui.<br /> </div> <h3 class="subtitle" style="margin-top: 50px;">Locul 2: SISTEM REZIDENȚIAL AUTOMATIZAT DE IRIGAȚII oferit de <u>HYDROSYSTEMS</u> – în valoare de 1.500 €</h3> <div id="lessons_box"> <div class="grouped-lessons"> <div class="list-lessons"> <div class="main-item" v-click-outside="closeAccordion" :data-qa_id="1" :data-lesson_id="1"> <div class="lesson-item d-flex align-items-center" id="lesson_1_1" :data-item_id="1" @click.prevent="toggleAccordion(1,1)"> <div class="title-lesson"> Click aici pentru a vedea lista de produse din care e compus sistemul </div> <div class="ml-auto column-right"> <div class="icons-right"> <icon-arr-down class="arrow-down"></icon-arr-down> <icon-close class="close-accordion"></icon-close> </div> </div> </div> <div class="panel-answer"> <div class="answer-text"> • Teava HDPE de 32 mm – 230 m<br/> • Boxa dreptunghiulara pentru electrovalve – 2 buc.<br/> • Electrovalva RN 150 cu olandez 9V – 5 buc.<br/> • Programator Bluetooth TBD 9V IP68 – 1 buc.<br/> • Distribuitor 2 elecrovalve – 1 buc.<br/> • Distribuitor 3 electrovalve – 1 buc.<br/> • Conectori impermeabili – 6 buc.<br/> • Cot compresiune 32 mm x 1” FE – 1 buc.<br/> • Niplu din alama 1” – 1 buc.<br/> • Senzor de ploaie – 1 buc.<br/> • Filtru de plastic cu sita 1” – 1 buc.<br/> • Robinet PP cu Fi 1’’ – 2 buc.<br/> • Aspersoare spray S020 fara duza – 2 buc.<br/> • Duza fixa CST – 2 buc.<br/> • Aspersoare pop-up spray S020 cu duza 10A – 8 buc.<br/> • Aspersoare pop-up spray S020 cu duza 17A – 6 buc.<br/> • Aspersoare pop-up turbina S050 – 6 buc.<br/> • Racord flexibil pentru aspersoare – 22 buc.<br/> • Piesa de bransare 32 mm x ¾’’ – 14 buc.<br/> • Cot compresiune 32 mm x 1’’ FI – 6 buc.<br/> • Adaptor compresiune 32 mm x 1’’ – 7 buc.<br/> • Cot compresiune 32 mm x ¾’’- 8 buc.<br/> • Teu compresiune egal 32 mm – 5 buc.<br/> • Teu compresiune 32 mm x 1’’ FE – 5 buc.<br/> • Cot compresiune egal 32 mm – 15 buc.<br/> • Dop compresiune egal 32 mm – 4 buc.<br/> • Robinet cu maneta FI x FE ¾’’ – 1 buc.<br/> • Mufa egala din alama ¾’’ – 1 buc.<br/> • Mufa redusa din alama FI x FE 1’’ x ¾’’ – 1 buc.<br/> • Cot cu olandez pentru electrovlva 1’’ x 1’’ – 1 buc.<br/> • Banda de picurare cu nanodrip picuratori la 30 cm – 100 m.<br/> • Robinet simplu pentru banda de picurare – 15 buc.<br/> • Dop Aquafix banda picurare – 15 buc.<br/> • Mufa Aquafix banda picurare – 5 buc.<br/> • Kit pentru ciupeci de picurare cu 4 brate – 2 buc.<br/> • Banda de teflon – 10 buc. </div> </div> </div> <div class="main-item" v-click-outside="closeAccordion" :data-qa_id="2" :data-lesson_id="2"> <div class="lesson-item d-flex align-items-center" id="lesson_2_2" :data-item_id="2" @click.prevent="toggleAccordion(2,2)"> <div class="title-lesson"> Click aici pentru a vedea caracteristicile sistemului rezidential cu automatizare </div> <div class="ml-auto column-right"> <div class="icons-right"> <icon-arr-down class="arrow-down"></icon-arr-down> <icon-close class="close-accordion"></icon-close> </div> </div> </div> <div class="panel-answer"> <div class="answer-text"> • Foloseste produse de cea mai buna calitate fabricate in Italia<br/> • Programatorul poate fi controlat de la distanta prin bluetooth cu ajutorul unui smatphone cu iOS sau Android, avand program antiinghet si raza de actiune aproximativ 10 – 12 m<br/> • Programatorul estecomplet impermeabil IP68, acesta se monteaza in boxa<br/> • Aspersoare cu duze codate cu diferite culori pentru o mai usoara identificare<br/> • Aspersoarele tiprotor asigura o uniformitate crescuta a irigarii si durabile in timp<br/> • Produsele se pot integra si in sisteme provenite de la alti prducatori<br/> • Presiune maxima de lucru a electrovalvelor este de 12 bar<br/> • Sistemul permite irigare plantelor direct la radacina<br/> • Sistemul permite irigarea prin cele 5 electrovalve in acelasi timp cu debit constant.<br/> • Sistemul de irigatii rezidential are 4 zone de aspersie si o zona de picurare.<br/> </div> </div> </div> <div class="main-item" v-click-outside="closeAccordion" :data-qa_id="3" :data-lesson_id="3"> <div class="lesson-item d-flex align-items-center" id="lesson_3_3" :data-item_id="3" @click.prevent="toggleAccordion(3,3)"> <div class="title-lesson"> Click pentru a vedea proiectul, pentru dimensiuni estimate </div> <div class="ml-auto column-right"> <div class="icons-right"> <icon-arr-down class="arrow-down"></icon-arr-down> <icon-close class="close-accordion"></icon-close> </div> </div> </div> <div class="panel-answer"> <div class="answer-text"> <img src="/build/images/plan_hydrosystems.jpg" style="width:100%; "> </div> </div> </div> </div> </div> </div> <div class="description-course"> ***Premiul poate fi adaptat dupa doleantele castigatorului la:<br> • Sistem rezidential de irigatie pentru casa/bloc;<br> • Sistem de irigatie pentru legume;<br> • Sistem de irigatie pentru fructe;<br> • Sistem de irigatie pentru pomicultura;<br> • Sistem de irigatie pentru sere/solare.<br> ***Calculul este estimativ pentru proiectul/dimensiunile din imagine; proiectul final poate varia in functie de dimensiunile primite de la beneficiar.<br/> ***Transportul si montajul este inclus in pret. </div> <h3 class="subtitle" style="margin-top: 50px;">BONUS: Biroul de arhitectura <u>Dart Architects</u> ofera consultanta GRATUITA tuturor participantilor la TBF Masterplan 2020 !</h3> <hr class="hr_tbf"> <h3 class="subtitle">Înscrie-te la concurs</h3> <div class="form-content"> <form method="POST" action="https://thebasicfundamentals.activehosted.com/proc.php" id="form_campaign"> <input type="hidden" name="u" value="19" /> <input type="hidden" name="f" value="19" /> <input type="hidden" name="s" /> <input type="hidden" name="c" value="0" /> <input type="hidden" name="m" value="0" /> <input type="hidden" name="act" value="sub" /> <input type="hidden" name="v" value="2" /> <input type="hidden" name="field[52]" id="contest_number" value="" /> <div v-if="hasErrors && !errorData['already_registered']" class="alert_errors">Verifică formularul pentru a putea intra în posesia premiilor! </div> <div v-if="hasErrors && errorData['already_registered']" class="alert_errors">Acest email a fost deja folosit pentru înscrierea la concurs!</div> <div v-if="successMessage" class="alert_success">Te-ai înscris la concurs cu succes!</div> <div class="row"> <div class="col-12 col-md-6 pr-10"> <input type="text" placeholder="Nume companie*" name="field[50]" class="input-tbf-text" v-bind:class="[errorData['company_name'] ? 'error' : '']" @focus="removeClassError"> </div> <div class="col-12 col-md-6 pl-10"> <input type="text" placeholder="Nume reprezentant*" name="field[49]" class="input-tbf-text" v-bind:class="[errorData['lastname'] ? 'error' : '']" @focus="removeClassError"> </div> </div> <div class="row mt-20"> <div class="col-12 col-md-6 pr-10"> <input type="hidden" placeholder="Telefon (pentru notificare prin sms)*" name="field[51]" value=""> <VuePhoneNumberInput v-model="phoneObj" class="input-tbf-text custom-for-phone" v-bind:class="[errorData['phone'] ? 'error' : '']" @focus="removeClassError" :translations="{ countrySelectorLabel: '', countrySelectorError: '', phoneNumberLabel: 'Telefon*', example: 'Exemplu :' }" @update='updatePhoneNumber' default-country-code='RO'/> </div> <div class="col-12 col-md-6 pl-10"> <input type="email" placeholder="Email*" name="email" class="input-tbf-text" v-bind:class="[errorData['email'] ? 'error' : '']" @focus="removeClassError"> </div> </div> <div class="row mt-20"> <div class="col-12 col-md-12"> <label for="checkbox" class="custom-label" v-bind:class="[errorData['terms'] ? 'error' : '']"><input type="checkbox" name="field[39]" class="input-tbf-text checkbox" @focus="removeClassError" id="checkbox" value="Accept ca numele, adresa de email si numarul de telefon furnizate de mine sa fie folosite pentru a primi date si informatii din partea tbf.ro" @click="checkboxChecked">Accept ca numele, adresa de email și numărul de telefon furnizate de mine să fie folosite pentru a primi date și informatii din partea <u>tbf.ro</u></label> </div> </div> <div class="send_book mt-20"> <button type="button" class="tbf_big_btn" @click="sendRequest">Înscrie-mă</button> </div> </form> </div> <div class="footer"> <hr class="hr_tbf"> <div class="description-wrapper"> <div class="description-holder first"> Copyright © 2019-2020 TBF Digital </div> <div class="description-holder last"> <a href="https://tbf.ro">www.tbf.ro</a> </div> </div> </div> </div> </div> </div> </template> <script> import Star from "../icons/Star"; import 'vue-phone-number-input/dist/vue-phone-number-input.css'; import VuePhoneNumberInput from 'vue-phone-number-input'; import VueCountdown from '@chenfengyuan/vue-countdown'; import vueAwesomeCountdown from 'vue-awesome-countdown' import IconClose from "../icons/Close"; import IconArrDown from "../icons/ArrowDown"; export default { data(){ return { errorData: [], hasErrors: false, successMessage: false, checked: false, phoneObj: undefined, phoneIsValid: false, phoneNumber: '', timestamp: 120000 } }, components: { 'star': Star, 'VuePhoneNumberInput': VuePhoneNumberInput, 'countdown': VueCountdown, IconClose, IconArrDown, }, watch: {}, created() {}, mounted() { const today = new Date().getTime(); const event_date = new Date('2020-02-10 14:00:00').getTime(); // const date = today.getFullYear()+'-'+(today.getMonth()+1)+'-'+today.getDate(); // const time = today.getHours() + ":" + today.getMinutes() + ":" + today.getSeconds(); // const dateTime = date +' '+ time; this.timestamp = event_date-today; this.$refs.countdown.start(); }, directives: { 'click-outside': { bind: function (el, binding, vnode) { window['event_'+el.dataset.lesson_id+'_'+el.dataset.qa_id] = function (event) { if (!(el == event.target || el.contains(event.target))) { vnode.context[binding.expression](el.dataset.lesson_id, el.dataset.qa_id) } }; document.body.addEventListener('click', window['event_'+el.dataset.lesson_id+'_'+el.dataset.qa_id]) }, unbind: function (el) { document.body.removeEventListener('click', window['event_'+el.dataset.lesson_id+'_'+el.dataset.qa_id]) } } }, methods: { transform(props) { Object.entries(props).forEach(([key, value]) => { // Adds leading zero const digits = value < 10 ? `<span class="counter-time">0</span><span class="counter-time">${value}</span>` : '<span class="counter-time">'+value.toString().charAt(0)+'</span><span class="counter-time">'+value.toString().charAt(1)+'</span>'; // uses singular form when the value is less than 2 const word = value < 2 ? key.replace(/s$/, '') : key; props[key] = digits; }); return props; }, updatePhoneNumber(payload){ if(payload.isValid){ this.phoneNumber = payload.formattedNumber; $('input[name="field[51]"]').val(this.phoneNumber); }else{ this.phoneNumber = ''; $('input[name="field[51]"]').val(''); } }, checkboxChecked(){ if(this.checked == false){ this.checked = true; }else{ this.checked = false; } }, beforeOpen(){ $("body").addClass('fixed-body'); }, beforeClose(){ $("body").removeClass('fixed-body'); }, removeClassError(e){ $(e.target).removeClass('error'); }, sendRequest(){ this.hasErrors = false this.errorData = [] if($('input[name="field[49]"]').val() == ''){ this.hasErrors = true this.errorData['lastname'] = true } if($('input[name="field[50]"]').val() == ''){ this.hasErrors = true this.errorData['company_name'] = true } if($('input[name="field[51]"]').val() == ''){ this.hasErrors = true this.errorData['phone'] = true } if($('input[name="email"]').val() == ''){ this.hasErrors = true this.errorData['email'] = true } if(this.checked == false){ this.hasErrors = true this.errorData['terms'] = true } if(!this.hasErrors){ axios.post("/storeContactForContest", { lastname: $('input[name="field[49]"]').val(), email: $('input[name="email').val(), phone: $('input[name="field[51]"]').val(), company_name: $('input[name="field[50]"]').val(), }) .then(response => { if(response.data.status == "error"){ this.errorData['already_registered'] = true; this.hasErrors = true; this.successMessage = false; }else{ $("#contest_number").val(response.data.registration_number); this.hasErrors = false; this.successMessage = true; $('#form_campaign').submit(); } }) .catch(error => { }) .finally(() => { }); } }, show (modal_id) { this.$modal.show(modal_id); }, hide (modal_id) { this.$modal.hide(modal_id); }, toggleAccordion(lesson_id, question_id){ var element = document.getElementById("lesson_" + lesson_id + "_" + question_id) element.classList.toggle("active-accordion"); var panel = element.nextElementSibling; if (panel.style.maxHeight) { panel.style.maxHeight = null; } else { panel.style.maxHeight = panel.scrollHeight + "px"; } if($('#lessons_box .active-accordion').length > 0){ $('#lessons_box').addClass('have-accordion') }else{ $('#lessons_box').removeClass('have-accordion') } }, closeAccordion(lesson_id, question_id){ var element = document.getElementById("lesson_" + lesson_id + "_" + question_id) if(typeof(element) != 'undefined' && element != null && element.classList.contains('active-accordion')){ this.toggleAccordion(lesson_id, question_id) } } } } </script>
Back