<template> <div> <div id="selectionnerAuteur"> <span>selectionner un auteur : </span><br><br> <select id="auteur" name="auteur" size="1" v-model="auteur" v-on:change="choixAuteur()"> <option v-for="item in filteredList" v-bind:key="item.id">{{ item.nom }}</option> </select> </div> </div> </template> <script> import Service from "../../service/Service"; export default { name: "Filtre_Auteur", methods: { /** * @vuese * recuperation de l'auteur choisi */ choixAuteur: function () { if (this.auteur !== undefined) this.$emit("creer_filtre", {filtre: this.auteur, type: 'auteur'}) } }, props: { // l'auteur en cours auteur: {}, // le mode panier est-il activé ou non? panierChoisi: {} }, computed: { /** * @vuese * Filtrer la liste des auteurs pour virer (ou non) celui de l'auteur actuellement connecté */ filteredList: function () { if (!this.panierChoisi){ return this.listeAuteurs.filter(auteur => auteur.nom !== this.auteur) } else { return this.listeAuteurs} } }, watch:{ /** * @vuese * Dès que l'auteur est connu, on charge toues les auteurs disponibles en bd */ auteur: function () { let that = this Service.recupererAuteursExistants().then(function (reponse) { that.listeAuteurs = reponse.data }) } }, data: function () { return { listeAuteurs: [] } } } </script> <style scoped> </style>