address selection: filter cities based on country

This commit is contained in:
nobohan
2021-05-20 11:46:18 +02:00
parent 2f28cb16ef
commit 4cc308c936
4 changed files with 38 additions and 7 deletions

View File

@@ -16,13 +16,12 @@ const fetchCountries = () => {
/*
* Endpoint cities GET
* TODO
* method GET, get Country Object
* @returns {Promise} a promise containing all Postal Code objects filtered with country
*/
const fetchCities = (country) => {
console.log('<<< fetching cities for', country);
//TODO use country
//TODO deal with huge number of postal code ... we should do suggestion...
const url = `/api/1.0/main/postal-code.json`;
const url = `/api/1.0/main/postal-code.json?item_per_page=1000&country=${country.id}`;
return fetch(url)
.then(response => {
if (response.ok) { return response.json(); }
@@ -37,7 +36,7 @@ const fetchCities = (country) => {
*/
const fetchReferenceAddresses = (city) => {
console.log('<<< fetching references addresses for', city); // city n'est pas utilisé pour le moment
//TODO deal with huge number of addresses... we should do suggestion...
const url = `/api/1.0/main/address-reference.json`;
return fetch(url)
.then(response => {

View File

@@ -2,12 +2,13 @@
<div class="container">
<select
v-model="selected">
<option :value="{}" disabled selected>{{ $t('select_country') }}</option>
<option :value="{}" selected disabled>{{ $t('select_country') }}</option>
<option
v-for="item in this.countries"
v-bind:item="item"
v-bind:key="item.id"
v-bind:value="item">
v-bind:value="item"
v-bind:selected="item.countryCode === 'FR'">
{{ item.name.fr }}
</option>
</select>
@@ -19,6 +20,9 @@
export default {
name: 'CountrySelection',
props: ['address', 'getCities'],
// data: () => {
// selected: this.address.loaded.countries.filter(c => c.countryCode === 'FR')[0]
// },
computed: {
countries() {
const countries = this.address.loaded.countries;