This commit is contained in:
Jonathan Chevalier
2022-11-10 14:58:01 +01:00
parent 63eddab459
commit 0403f9bd52

View File

@@ -2,6 +2,13 @@
<div style="min-height: 350px"> <div style="min-height: 350px">
<div class="step_title">Indiquez votre adresse de livraison :</div> <div class="step_title">Indiquez votre adresse de livraison :</div>
<div class="alert alert-danger" role="alert" v-if="noOfferFound">
Nous sommes désolé mais votre adresse est trop eloignée de la pharmacie pour bénéficier de ce service<br/>
Nous vous invitions à utiliser le service de La Poste pour trouver une pharmacie proche de chez vous :
<a href="https://www.mesmedicamentschezmoi.com" target="_blank">Accéder à mesmedicamentschezmoi.com</a>
</div>
<div class="input-group mb-3"> <div class="input-group mb-3">
<div class="input-group-text"> <div class="input-group-text">
<i v-if="isSearching" class="fa-solid fa-circle-notch fa-spin fa-fw color-success"></i> <i v-if="isSearching" class="fa-solid fa-circle-notch fa-spin fa-fw color-success"></i>
@@ -10,8 +17,8 @@
<input type="text" placeholder="Exemple : 9 Impasse des Peupliers 13008 Marseille" class="form-control" <input type="text" placeholder="Exemple : 9 Impasse des Peupliers 13008 Marseille" class="form-control"
v-model="query" v-model="query"
@input="updateSearchResult" aria-describedby="button-addon"> @input="updateSearchResult" aria-describedby="button-addon">
<button class="btn btn-primary" type="button" id="button-addon" @click="checkIdAddressIsEligible"> <button class="btn btn-primary" type="button" id="button-addon" @click="[this.currentBtSearch = 'liveSearch',checkIdAddressIsEligible()]">
<i v-if="isChecking" class="fa-solid fa-circle-notch fa-spin fa-fw"></i> <i v-if="isChecking && currentBtSearch === 'liveSearch'" class="fa-solid fa-circle-notch fa-spin fa-fw"></i>
<i v-else class="fa-regular fa-circle-check fa-fw"></i> <i v-else class="fa-regular fa-circle-check fa-fw"></i>
Valider Valider
</button> </button>
@@ -23,12 +30,35 @@
</li> </li>
</ul> </ul>
<div class="alert alert-danger" role="alert" v-if="noOfferFound"> <div class="step_title mt-4">Mon carnet d'adresses :</div>
Nous sommes désolé mais votre adresse est trop eloignée de la pharmacie pour bénéficier de ce service<br/>
Nous vous invitions à utiliser le service de La Poste pour trouver une pharmacie proche de chez vous : <div class="row" v-if="isConnected === false">
<a href="https://www.mesmedicamentschezmoi.com" target="_blank">Accéder à mesmedicamentschezmoi.com</a> <div class="col-auto">
<a href="/cart/p/FORM_ACCESS/0/0/" class="btn btn-dark" title="S'identifier"><i
class="fa-solid fa-user-lock me-1"></i> S'identifier <i class="fa-solid fa-angle-right ms-1"></i></a>
</div>
</div>
<div v-if="isConnected && addressBook.length >0" class="row">
<div v-for="(address,i) in addressBook" class="col-auto">
<!--<i class="fa-solid fa-address-book"></i>-->
{{ address.street }}<br/>
{{ address.zip_code }} {{ address.city }}<br/><br/>
<button class="btn btn-primary" type="button" @click="useAddressBook(address,i)">
<i v-if="isChecking && currentBtSearch === 'addressBook'+i" class="fa-solid fa-circle-notch fa-spin fa-fw"></i>
<i v-else class="fa-regular fa-circle-check fa-fw"></i>
Choisir cette adresse
</button>
</div>
</div> </div>
<div v-if="isConnected && addressBook.length === 0">
Vous n'avez pas encore d'adresse enregistrée
</div>
<div v-else class="col-auto">
<i class="fa-solid fa-circle-notch fa-spin fa-fw text-primary fa-2x"></i>
</div>
</div> </div>
</template> </template>
@@ -57,9 +87,20 @@ export default {
searchResults: [], searchResults: [],
isSearching: false, isSearching: false,
isChecking: false, isChecking: false,
addressBook: [],
isConnected: null,
currentBtSearch : null
} }
}, },
methods: { methods: {
useAddressBook(address,i) {
this.currentBtSearch = 'addressBook'+i
this.store.setStreet(address.street)
this.store.setZipCode(address.zip_code)
this.store.setCity(address.city)
this.checkIdAddressIsEligible()
},
updateSearchResult: async function () { updateSearchResult: async function () {
this.store.setStreet(null) this.store.setStreet(null)
@@ -84,7 +125,7 @@ export default {
this.store.setZipCode(item.properties.postcode) this.store.setZipCode(item.properties.postcode)
this.store.setCity(item.properties.city) this.store.setCity(item.properties.city)
}, },
checkIdAddressIsEligible: async function () { checkIdAddressIsEligible: async function (e) {
this.isChecking = true this.isChecking = true
const urlApi = '/php/api/v3/mmcm.php?EXEC=getEligibility&street=' + encodeURI(this.store.street) const urlApi = '/php/api/v3/mmcm.php?EXEC=getEligibility&street=' + encodeURI(this.store.street)
@@ -111,6 +152,28 @@ export default {
} }
},
async mounted() {
let urlApi = '/php/api/v3/mmcm.php?EXEC=getAccountAddress'
if (import.meta.env.DEV) {
urlApi += '&ID_SESSION=wqG6cX5g';
console.log(urlApi)
}
let apiResult = await fetch(urlApi)
.then(response => {
if (response.ok) {
return response.json();
}
})
this.isConnected = apiResult.connected
if (apiResult.connected && apiResult.nb > 0) {
this.addressBook = apiResult.list
}
} }
} }