prevent from jumping to an end without completing the survey once

This commit is contained in:
thilo 2020-03-22 19:23:06 +01:00
parent 0877b4e30a
commit 3bd11fce38
5 changed files with 15 additions and 0 deletions

View file

@ -11,6 +11,9 @@
export default { export default {
mounted() { mounted() {
this.$store.commit("init") this.$store.commit("init")
if (!this.$store.state.surveyCompletedOnce) {
this.$router.push("/")
}
}, },
} }
</script> </script>

View file

@ -98,6 +98,7 @@
this.$router.push("/questionnaire/" + nextQuestion) this.$router.push("/questionnaire/" + nextQuestion)
} }
else { else {
this.$store.commit("setSurveyCompleted")
router.push('/results') router.push('/results')
} }
} }

View file

@ -6,6 +6,7 @@ Vue.use(Vuex)
export default new Vuex.Store({ export default new Vuex.Store({
state: { state: {
surveyCompletedOnce: false,
answers: [], answers: [],
questions: [] questions: []
}, },
@ -16,6 +17,9 @@ export default new Vuex.Store({
answerQuestion(state, pl) { answerQuestion(state, pl) {
this.state.answers[pl.id] = pl.answer this.state.answers[pl.id] = pl.answer
}, },
setSurveyCompleted() {
this.state.surveyCompletedOnce = true
},
init() { init() {
axios.get('https://avian-safeguard-214619.firebaseio.com/questions.json') axios.get('https://avian-safeguard-214619.firebaseio.com/questions.json')
.then(res => { .then(res => {

View file

@ -43,6 +43,7 @@
this.$router.push("/questionnaire/" + nextQuestion) this.$router.push("/questionnaire/" + nextQuestion)
} }
else { else {
this.$store.commit("setSurveyCompleted")
router.push('/results') router.push('/results')
} }
}, },

View file

@ -4,6 +4,9 @@
<p class="risk-chance alert" v-if="risk >= 66">hoch</p> <p class="risk-chance alert" v-if="risk >= 66">hoch</p>
<p class="risk-chance warning" v-if="risk >= 33 && risk < 66">durchschnittlich</p> <p class="risk-chance warning" v-if="risk >= 33 && risk < 66">durchschnittlich</p>
<p class="risk-chance success" v-if="risk < 33">niedrig</p> <p class="risk-chance success" v-if="risk < 33">niedrig</p>
<p class="text-center"><router-link style="text-decoration:none" to="/">
Zurück zum Anfang
</router-link></p>
<p v-if="bad.length > 0">Auf Folgendes sollten Sie achten:</p> <p v-if="bad.length > 0">Auf Folgendes sollten Sie achten:</p>
<div v-for="card in bad" v-bind:key="card.description" class="card-advice alert"> <div v-for="card in bad" v-bind:key="card.description" class="card-advice alert">
<div class="card-advice-title">{{ card.title }}</div> <div class="card-advice-title">{{ card.title }}</div>
@ -114,4 +117,7 @@
.risk-chance.alert { .risk-chance.alert {
color: #E94A47; color: #E94A47;
} }
.text-center {
text-align: center;
}
</style> </style>