Address selection: add selectCountry and selectCity components

This commit is contained in:
nobohan
2021-05-10 15:21:38 +02:00
parent efb9bc938a
commit fe5745831c
6 changed files with 110 additions and 18 deletions

View File

@@ -1,8 +1,10 @@
// import { mainMessages } from 'ChillMainAssets/vuejs/_js/i18n'
// import { mainMessages } from 'ChillMainAssets/vuejs/_js/i18n' //TODO
const addressMessages = {
fr: {
add_an_address: 'Ajouter une adresse'
add_an_address: 'Ajouter une adresse',
select_country: 'Choisir le pays',
select_city: 'Choisir une localité'
}
};

View File

@@ -14,20 +14,40 @@ const getDataPromise = getReferenceAddress()
strict: debug,
state: {
referenceAddresses: referenceAddresses.results,
countries: ['france', 'belgium'] //TODO fetch countries from CHILL API
// add_persons: {
// query: "",
// suggested: [],
// selected: []
// },
// errorMsg: []
countries: [
{id: 1, name: 'France', countryCode: 'FR'},
{id: 2, name: 'Belgium', countryCode: 'BE'}
], //TODO fetch countries from CHILL API
cities: [
{id: 1, name: 'Bruxelles', code: '1000', country: 'BE'},
{id: 2, name: 'Aisne', code: '85045', country: 'FR'},
{id: 3, name: 'Saint-Gervais', code: '85230', country: 'FR'}
], //TODO fetch postal codes from CHILL API
selectedCountry: {id: 1, name: 'France', countryCode: 'FR'}, // TODO how to specify a default value?
selectedCity: null,
},
getters: {
getCountries: state => state.countries,
getSelectedCountry: state => state.selectedCountry,
getCities: state => {
console.log(state.cities)
console.log(state)
console.log(state.selectedCountry.countryCode)
console.log(state.cities.filter(c => c.country == state.selectedCountry.countryCode))
return state.selectedCountry.countryCode === undefined ?
state.cities :
state.cities.filter(c => c.country == state.selectedCountry.countryCode);
}
,
getReferenceAddresses: state => state.referenceAddresses,
// getReferenceAddressesCities: state => {}, //TODO get unique cities from addressReference
},
mutations: {
setSelectedCountry(state, value) {
state.selectedCountry = value;
},
setSelectedCity(state, value) {
state.selectedCity = value;
}
// removeParticipation(state, item) {
// //console.log('mutation: remove item', item.id);
// state.accompanying_course.participations = state.accompanying_course.participations.filter(participation => participation !== item);