Code added to auto-complete the address in desired format
This commit is contained in:
parent
f16c997920
commit
9ead873449
2 changed files with 43 additions and 77 deletions
|
|
@ -7,23 +7,11 @@
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<!-- <div class="row my-4">
|
|
||||||
<div class="col">
|
|
||||||
<label for="map">Home address</label>
|
|
||||||
<vue-google-autocomplete
|
|
||||||
id="map"
|
|
||||||
classname="form-control"
|
|
||||||
placeholder="Start typing"
|
|
||||||
v-on:placechanged="getAddressData"
|
|
||||||
>
|
|
||||||
</vue-google-autocomplete>
|
|
||||||
</div>
|
|
||||||
</div> -->
|
|
||||||
<div class="row my-4">
|
<div class="row my-4">
|
||||||
<div class="col">
|
<div class="col">
|
||||||
<label for="autocomplete">Home address</label>
|
<label for="autocomplete">Home address</label>
|
||||||
<input ref="autocomplete"
|
<input ref="autocomplete"
|
||||||
id="autocomplete"
|
id="autocomplete"
|
||||||
placeholder="Search"
|
placeholder="Search"
|
||||||
class="form-control search-location"
|
class="form-control search-location"
|
||||||
onfocus="value = ''"
|
onfocus="value = ''"
|
||||||
|
|
@ -34,11 +22,8 @@
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
|
|
||||||
import vehicleBanner from "@/common-components/vehicle-banner/vehicle-banner";
|
import vehicleBanner from "@/common-components/vehicle-banner/vehicle-banner";
|
||||||
//import FormField from '../../ux-components/form-field/form-field.vue';
|
|
||||||
//import VueGoogleAutocomplete from 'vue-google-autocomplete'
|
|
||||||
|
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: "App",
|
name: "App",
|
||||||
components: {
|
components: {
|
||||||
|
|
@ -46,11 +31,6 @@ export default {
|
||||||
//FormField
|
//FormField
|
||||||
//VueGoogleAutocomplete
|
//VueGoogleAutocomplete
|
||||||
},
|
},
|
||||||
/* mounted() {
|
|
||||||
// To demonstrate functionality of exposed component functions
|
|
||||||
// Here we make focus on the user input
|
|
||||||
this.$refs.address.focus();
|
|
||||||
}, */
|
|
||||||
mounted() {
|
mounted() {
|
||||||
this.autocomplete = new window.google.maps.places.Autocomplete(
|
this.autocomplete = new window.google.maps.places.Autocomplete(
|
||||||
(this.$refs.autocomplete),
|
(this.$refs.autocomplete),
|
||||||
|
|
@ -63,18 +43,49 @@ export default {
|
||||||
|
|
||||||
this.autocomplete.addListener('place_changed', () => {
|
this.autocomplete.addListener('place_changed', () => {
|
||||||
let place = this.autocomplete.getPlace();
|
let place = this.autocomplete.getPlace();
|
||||||
let ac = place.address_components;
|
let address1 = "";
|
||||||
/* let lat = place.geometry.location.lat();
|
let postcode = "";
|
||||||
let lon = place.geometry.location.lng(); */
|
|
||||||
let city = ac[0]["short_name"];
|
let input = document.getElementById("autocomplete");
|
||||||
/*
|
|
||||||
console.log(`The user picked ${city} with the coordinates ${lat}, ${lon}`);
|
for (const component of place.address_components) {
|
||||||
console.log(ac); */
|
const componentType = component.types[0];
|
||||||
});
|
|
||||||
|
switch (componentType) {
|
||||||
|
case "street_number": {
|
||||||
|
address1 = `${component.long_name} ${address1}`;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
case "route": {
|
||||||
|
address1 += component.short_name;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case "locality":
|
||||||
|
address1 += ', ' + component.long_name;
|
||||||
|
break;
|
||||||
|
case "administrative_area_level_1": {
|
||||||
|
address1 += ', ' + component.short_name;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case "postal_code": {
|
||||||
|
postcode = `${component.long_name}${postcode}`;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
case "postal_code_suffix": {
|
||||||
|
postcode = `${postcode}-${component.long_name}`;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
let addressField1 = document.querySelector("#autocomplete");
|
||||||
|
addressField1.value = address1 + ' ' + postcode;
|
||||||
|
}
|
||||||
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
|
|
|
||||||
|
|
@ -1,45 +0,0 @@
|
||||||
<template>
|
|
||||||
<div class="d-flex flex-column w-100">
|
|
||||||
<div class="form-group">
|
|
||||||
<label v-bind:for="formFieldId">{{ labelText }}</label>
|
|
||||||
<input type="text" class="form-control" v-bind:id="formFieldId" v-bind:name="formFieldName" :required="required == 1" />
|
|
||||||
<loader
|
|
||||||
v-if="display"
|
|
||||||
v-bind:style="{ width: `${sizeInRem}rem`, height: `${sizeInRem}rem` }"
|
|
||||||
v-bind:class="[this.loaderColor, this.loaderPosition]"
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
<label class="small mt-1">{{ this.errorText }}</label>
|
|
||||||
</div>
|
|
||||||
</template>
|
|
||||||
|
|
||||||
<script>
|
|
||||||
import loader from "@/ux-components/loader/loader";
|
|
||||||
export default {
|
|
||||||
name: "formField",
|
|
||||||
props: {
|
|
||||||
formFieldId: String,
|
|
||||||
formFieldName: String,
|
|
||||||
required: Number,
|
|
||||||
labelText: String,
|
|
||||||
errorText: String,
|
|
||||||
loaderColor: String,
|
|
||||||
loaderPosition: String,
|
|
||||||
sizeInRem: [Number, String],
|
|
||||||
},
|
|
||||||
data() {
|
|
||||||
return {
|
|
||||||
display: false,
|
|
||||||
isError: false,
|
|
||||||
};
|
|
||||||
},
|
|
||||||
methods: {
|
|
||||||
displayComponent() {
|
|
||||||
this.display = true;
|
|
||||||
},
|
|
||||||
},
|
|
||||||
components: {
|
|
||||||
loader,
|
|
||||||
},
|
|
||||||
};
|
|
||||||
</script>
|
|
||||||
Loading…
Reference in a new issue