Bonjour,
Je bosse actuellement sur un calendrier avec Vue et je cherche à créer une popup.
Cette popup se lancerait dès que l'utilisateur cliquerai sur un jour du calendrier.
J'ai vu que BootstrapVue proposait des popup (Popover) vraiment sympa, j'ai donc créer un composant "Popover" que j'ai modifié avec mes besoins.
Maintenant je cherche à "lancer" ce component dès que le client click sur une cellule du calendrier (soit un jour).
Est-ce que vous pensez cela jouable ?
Salut,
Merci pour ta réponse :)
Yes pas de problème!
Mon code du component "Calendar"
<tr class="row-week">
<td :id="date.day + '-' + date.month" class="day" v-for="(date) in firstWeek" :item = "date" :key="date._id">
<label>{{date.day}}</label>
</td>
</tr>
<tr class="row-week">
<td :id="date.day + '-' + date.month" class="day" v-for="(date) in secondWeek" :item="date" :key="date._id">
<label>{{date.day}}</label>
</td>
</tr>
<tr class="row-week">
<td :id="date.day + '-' + date.month" class="day" v-for="(date) in thirdWeek" :item="date" :key="date._id">
<label>{{date.day}}</label>
</td>
</tr>
<tr class="row-week">
<td :id="date.day + '-' + date.month" class="day" v-for="date in fourthWeek" :key="date._id">
<label>{{date.day}}</label>
</td>
</tr>
<tr class="row-week">
<td :id="date.day + '-' + date.month" class="day" v-for="date in fifthWeek" :key="date._id">
<label>{{date.day}}</label>
</td>
</tr>
<tr class="row-week">
<td :id="date.day + '-' + date.month" class="day" v-for="date in lastWeek" :key="date._id">
<label>{{date.day}}</label>
</td>
</tr>
</table>
</div>
<button id="test">Test</button>
<Popover target="test"/>
</template>
Le code du component "Popover" :
<template>
<b-popover
:target="target"
triggers="click"
:show.sync="popoverShow"
placement="auto"
ref="popover"
@show="onShow"
@shown="onShown"
@hidden="onHidden"
>
<template slot="title">
<b-button @click="onClose" class="close" aria-label="Close">
<span class="d-inline-block" aria-hidden="true">×</span>
</b-button>
Ajouter un intervenant
</template>
<div>
<b-form-group
label="Name"
label-for="popover-input-1"
label-cols="3"
:state="input1state"
class="mb-1"
description="Choix intervenant"
invalid-feedback="This field is required"
>
<b-form-select
ref="input1"
id="popover-input-1"
v-model="input1"
:state="input1state"
:options="options1"
size="sm"
></b-form-select>
</b-form-group>
<b-form-group
label="Statut"
label-for="popover-input-2"
label-cols="3"
:state="input2state"
class="mb-1"
description="Choix du statut"
invalid-feedback="This field is required"
>
<b-form-select
ref="input2"
id="popover-input-2"
v-model="input2"
:state="input2state"
:options="options2"
size="sm"
></b-form-select>
</b-form-group>
<b-alert show class="small">
<strong>Current Values:</strong><br>
Intervenant: <strong>{{ input1 }}</strong><br>
Statut: <strong>{{ input2 }}</strong>
</b-alert>
<b-button @click="onClose" size="sm" variant="danger">Cancel</b-button>
<b-button id="confirmButton" @click="onOk" size="sm" variant="success">Valider</b-button>
</div>
</b-popover>
</template>
Pour l'instant j'ai ça qui fonctionne :
J'ai défini une props "target" sur le component Popover pour l'utiliser comme ceci dans mon component Calendar
<Popover target="test"/>
pour l'instant ça fonctionne lorsque je mets un bouton avec l'id "test", il me reste plus qu'à trouver une fonction qui récupère l'id de mes cellules pour ajuster le target et c'est niquel je pense :)
Je t'ai mis juste l'essentiel, dis moi si tu veux plus de renseignement sur les variables et les méthodes des composants ;)