github.com/benoitkugler/goacve@v0.0.0-20201217100549-151ce6e55dc8/server/frontend/bv/src/pages/espace_perso/views/Retours.vue (about) 1 <template> 2 <b-card 3 title="ENQUÊTE SATISFACTION" 4 :sub-title="subtitle" 5 bg-variant="secondary" 6 > 7 <div v-if="camps.length == 0" class="text-center"> 8 Pour l'instant, aucun séjour ne collecte de retours... 9 </div> 10 <b-tabs v-else fill :value="currentIndex"> 11 <b-tab :title="camp.label" v-for="camp in camps" :key="camp.id"> 12 <row-sondage :camp="camp" :sondage="sondage(camp.id)"></row-sondage> 13 </b-tab> 14 </b-tabs> 15 </b-card> 16 </template> 17 18 <script lang="ts"> 19 import Vue from "vue"; 20 import Component from "vue-class-component"; 21 import { C } from "../logic/controller"; 22 import RowSondage from "../components/retours/RowSondage.vue"; 23 import { PublicSondage } from "../../../shared/logic/types"; 24 25 const RetoursProps = Vue.extend({ 26 props: {} 27 }); 28 29 @Component({ 30 components: { RowSondage } 31 }) 32 export default class Retours extends RetoursProps { 33 C = C; 34 35 get currentIndex() { 36 const id = this.$route.query["id-camp"]; 37 if (id) { 38 return this.camps.findIndex(c => c.id == Number(id)); 39 } 40 return null; 41 } 42 43 get camps() { 44 return C.campsSondages(); 45 } 46 47 get subtitle() { 48 if (this.camps.length == 0) return ""; 49 return `Afin d'améliorer nos prestations, nous avons à cœur de vous laisser la parole. 50 Vos suggestions, remarques et ressentis nous aiderons à améliorer nos séjours. 51 Merci d'avance de ce temps que vous réserverez pour répondre à cette courte enquête.`; 52 } 53 54 sondage(idCamp: number): PublicSondage | null { 55 return C.data.sondages[idCamp] || null; 56 } 57 } 58 </script> 59 60 <style scoped></style>