Ngiler SH3LL 360
Home
Information
Create File
Create Folder
:
/
home
/
tbf
/
quiz_audit_management
/
resources
/
js
/
components
/
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 :
Steps.vue
| Size :
15.49
KB
Copy
<template> <div> <div class="content d-flex" v-if="quiz.questions" v-bind:class="{start: question != 'error_page' && quiz.questions[question].step_type == 'start', others: question != 'error_page' && quiz.questions[question].step_type != 'start'}"> <div class="question-no" v-if="step_no > 1 && step_no < 40 && quiz.questions[question].step_type != 'form'"> <div class="question-text">Intrebarea {{ step_no - 2 }}/38</div> <div class="question-progress-wrapper"><div class="question-progress-container" :style="'width:'+(step_no*100/38)+'%;'"></div></div> </div> <transition name="slide" mode="out-in"> <error-page :resetQuiz="resetQuizDev" v-if="question == 'error_page'"></error-page> <start-page v-else-if="quiz.questions[question].step_type == 'start'" :name_referral="name_referral" :question="quiz.questions[question]" :questionKey="''+question+''" :setNextQuestion="setNextQuestion" :step_no="step_no" :previousSet="previousSet" :key="'start-page' + keyIndex"></start-page> <form-step v-else-if="quiz.questions[question].step_type == 'form'" :name_referral="name_referral" :question="quiz.questions[question]" :questionKey="''+question+''" :setNextQuestion="setNextQuestion" :step_no="step_no" :previousSet="previousSet" :key="'form-step' + keyIndex"></form-step> <video-bonus v-else-if="quiz.questions[question].step_type == 'video_ad'" :name_referral="name_referral" :question="quiz.questions[question]" :questionKey="''+question+''" :setNextQuestion="setNextQuestion" :step_no="step_no" :previousSet="previousSet" :key="'video-bonus' + keyIndex"></video-bonus> <!-- <finish-page v-else-if="question != 0 && (question == null || question == '')"></finish-page> --> <quiz-page v-else-if="quiz.questions[question].step_type == 'questions'" :name_referral="name_referral" :question="quiz.questions[question]" :questionKey="''+question+''" :setNextQuestion="setNextQuestion" :step_no="step_no" :previousSet="previousSet" :key="'quiz-page' + keyIndex" :reset_button="reset_button" :resetQuizDev="resetQuizDev"></quiz-page> <!-- TEMPORAR am schimbat type 'finish' in 'finih', ca sa mearga pagina de calcule... --> <finish-page v-else-if="quiz.questions[question].step_type == 'finish'" :name_referral="name_referral" :question="quiz.questions[question]" :questionKey="''+question+''" :setNextQuestion="setNextQuestion" :step_no="step_no" :previousSet="previousSet" :key="'finish-page' + keyIndex"></finish-page> <loader-page v-else-if="quiz.questions[question].step_type == 'loader'" :question="quiz.questions[question]" :goCalculation="goCalculation" :name_referral="name_referral" :key="'loader-page' + keyIndex"></loader-page> <calculations-page v-else-if="quiz.questions[question].step_type == 'calculations'" :source="source" :session_token="session_token" :entity_json="entity_json" :question="quiz.questions[question]" :goThanks="goThanks" :name_referral="name_referral" :key="'calculations-page' + keyIndex" :reset_button="reset_button" :resetQuizDev="resetQuizDev"></calculations-page> <thanks-page v-else-if="quiz.questions[question].step_type == 'thanks'" :key="'thanks-page' + keyIndex" :name_referral="name_referral" :reset_button="reset_button" :resetQuizDev="resetQuizDev"></thanks-page> <previous-thanks-page v-else-if="quiz.questions[question].step_type == 'previous_thanks'" :question="quiz.questions[question]" :key="'previous-thanks-page' + keyIndex" :goThanks="goThanks" :name_referral="name_referral" :reset_button="reset_button" :resetQuizDev="resetQuizDev"></previous-thanks-page> </transition> </div> </div> </template> <script> import StartPage from './StartPage' import QuizPage from './QuizPage' import FormStep from './FormStep' import VideoBonus from './VideoBonus' import FinishPage from './FinishPage' import CalculationsPage from './CalculationsPage' import LoaderPage from './LoaderPage' import ThanksPage from './ThanksPage' import ErrorPage from './ErrorPage' export default { data() { return { quiz: {}, question: {}, timestamp: 0, step_no: 1, sessionId: '', keyIndex: 1, name_referral: '', reset_button: false, session_token: '', entity_json: {}, source: '' }; }, created() { if(this.$route.params.referral){ axios.get('/referrals/token/'+this.$route.params.referral).then(({data})=>{ this.$referral = data; }) } if(this.$route.params.session_id){ axios.get('/result/session-id/'+this.$route.params.session_id).then(({data})=>{ this.quiz = data.quiz; this.question = 0; this.session_token = this.$route.params.session_id this.entity_json = data.result.entity_json this.source = 'admin' }) }else{ this.getQuiz(); } }, mounted() { this.$root.$emit("change_step_progress", true); }, components: { StartPage, QuizPage, FormStep, VideoBonus, FinishPage, CalculationsPage, LoaderPage, ThanksPage, ErrorPage }, methods: { startQuiz() { this.step_no = 1; localStorage.setItem('quiz_step_no', 1) localStorage.setItem('quiz', '{}') localStorage.setItem('previous_step', 'nothing') localStorage.setItem('quiz_step', this.quiz.start_question); this.question = this.quiz.start_question; this.timestamp = Date.now(); this.$root.$emit("change_step_progress"); axios.post('/saveLog',{ question: 'start_question', answer: null, time: null, step_in: true, step_out: true, session_token: localStorage.getItem('sessionId'), }); }, setNextQuestion(currentQuestion, answer, title, answer_key, fields_data = null) { localStorage.setItem('previous_step', currentQuestion) const timeInSec = (Date.now() - this.timestamp)/1000 axios.post('/saveLog',{ question: currentQuestion, answer: answer_key, time: timeInSec, step_in: true, step_out: true, session_token: localStorage.getItem('sessionId'), }); var new_destination = ''; setTimeout(()=>{ try{ let quiz_obj = JSON.parse(localStorage.getItem('quiz')) quiz_obj[currentQuestion] = {answers: [{question: title, title: answer.title, value: answer.value, fields: fields_data}],order: this.keyIndex} localStorage.setItem('quiz', JSON.stringify(quiz_obj)) this.step_no++ //increment number title localStorage.setItem('quiz_step_no', this.step_no) console.log(this.$referral) if(fields_data){ axios.post('/quizResult', { session_token: localStorage.getItem('sessionId'), entity_json: localStorage.getItem('quiz'), referral_id: this.$referral.id }).then((result)=>{ // console.log('success'); }); } var size = Object.keys(this.quiz.questions[currentQuestion].next_step).length if(size){ this.quiz.questions[currentQuestion].next_step.every((element) => { if(element.condition == 'true'){ new_destination = element.destination return false; } if(eval(element.condition)){ new_destination = element.destination return false; } return true; }) localStorage.setItem('quiz_step', new_destination) this.question = new_destination this.keyIndex++ }else{ this.question = '' this.keyIndex++ } function has_key(string){ try{ return eval(string) }catch{ return null } } axios.post('/saveLog',{ question: this.question, answer: null, time: null, step_in: true, step_out: false, session_token: localStorage.getItem('sessionId'), }); if(this.quiz.questions[this.question].step_type == 'finish'){ axios.post('/sendMailWithJson', { entity_json: localStorage.getItem('quiz') }).then((result)=>{ // console.log('success'); }); } this.timestamp = Date.now() }catch(e){ // console.log('test'); // console.log(e) axios.post('/sendErrorEmail', { entity_json: localStorage.getItem('quiz'), session_id: localStorage.getItem('sessionId') }).then((result)=>{ this.question = 'error_page' localStorage.setItem('quiz_step', 'error_page') }); } }, 200) }, getQuiz() { var referral_id = null; if (typeof this.$route.params.referral_id != "undefined") { referral_id = this.$route.params.referral_id; } axios.get('/getQuiz', {referral: referral_id}).then((result)=>{ this.quiz = JSON.parse(result.data.json); this.reset_button = result.data.reset_button; if(localStorage.getItem('quiz_step')){ this.question = localStorage.getItem('quiz_step'); this.sessionId = localStorage.getItem('sessionId'); }else{ axios.get('/getSessionToken').then((res)=>{ this.sessionId = res.data; localStorage.setItem('sessionId', this.sessionId) }); this.step_no = 0; localStorage.setItem('quiz_step_no', 0) localStorage.setItem('quiz', '{}') localStorage.setItem('previous_step', 'nothing') localStorage.setItem('json_form', '{}') localStorage.setItem('quiz_step', this.quiz.start_question); this.question = this.quiz.start_question; } this.timestamp = Date.now(); this.step_no = localStorage.getItem('quiz_step_no'); if(result.data.name){ this.name_referral = result.data.name; } }); }, previousSet(){ const timeInSec = (Date.now() - this.timestamp)/1000 var new_destination = ''; setTimeout(()=>{ let quiz_obj = JSON.parse(localStorage.getItem('quiz')) this.step_no-- //increment number title localStorage.setItem('quiz_step_no', this.step_no) localStorage.setItem('quiz_step', localStorage.getItem('previous_step')) this.question = localStorage.getItem('previous_step') this.keyIndex++ this.timestamp = Date.now() }, 200) }, goCalculation($next_step){ axios.post('/quizResult', { session_token: localStorage.getItem('sessionId'), entity_json: localStorage.getItem('quiz'), referral_id: this.$referral.id }).then((result)=>{ // console.log('success'); }) axios.post('/saveLog',{ question: this.question, answer: null, time: null, step_in: true, step_out: true, session_token: localStorage.getItem('sessionId'), }); this.question = $next_step; localStorage.setItem('quiz_step', $next_step) axios.post('/saveLog',{ question: this.question, answer: null, time: null, step_in: true, step_out: false, session_token: localStorage.getItem('sessionId'), }); }, goThanks($next_step){ axios.post('/saveLog',{ question: this.question, answer: null, time: null, step_in: true, step_out: true, session_token: localStorage.getItem('sessionId'), }); this.question = $next_step; axios.post('/saveLog',{ question: this.question, answer: null, time: null, step_in: true, step_out: false, session_token: localStorage.getItem('sessionId'), }); }, resetQuizDev(){ axios.get('/getSessionToken').then((result)=>{ this.sessionId = result.data; localStorage.setItem('sessionId', this.sessionId) }); this.step_no = 0; localStorage.setItem('quiz_step_no', 0) localStorage.setItem('quiz', '{}') localStorage.setItem('previous_step', 'nothing') localStorage.setItem('json_form', '{}') localStorage.setItem('quiz_step', this.quiz.start_question); this.question = this.quiz.start_question; this.keyIndex++ this.timestamp = Date.now(); this.$root.$emit("change_step_progress"); } } } </script>
Back