123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239 |
- <template>
- <!--MAIN-->
- <main>
- <!--REGISTER ADDRESS-->
- <div class="registerAddress mt-3">
- <div class="container-fluid c-section">
- <div class="row">
- <div class="col-sm-3"></div>
- <div class="col-sm-6">
- <div class="a-section a-spacing-medium">
- <div class="a-subheader a-breadcrumb a-spacing-small">
- <ul>
- <li>
- <a href="#">
- <span>Your Account</span>
- </a>
- </li>
- <li class="a-breadcrumb-divider">›</li>
- <li>
- <a href="#">
- <span>Your Adresses</span>
- </a>
- </li>
- <li class="a-breadcrumb-divider">›</li>
- <li class="active">
- <a href="#">
- <span>Update Address</span>
- </a>
- </li>
- </ul>
- </div>
- </div>
- <div class="a-section">
- <h2>Update address</h2>
- <div class="a-section a-spacing-none a-spacing-top-small">
- <b>
- Or pick up your packages at your convenience from our self-service locations. To add an Amazon Pickup Point or Locker, click
- <a
- href="#"
- >here</a>.
- </b>
- </div>
- <!-- Error Message -->
- <div class="a-section a-spacing-none a-spacing-top-small">
- <b></b>
- </div>
- <form>
- <div class="a-spacing-medium a-spacing-top-medium">
- <!-- Country / Region -->
- <div class="a-spacing-top-medium">
- <label style="margin-bottom: 0px;">Country/Region</label>
- <select v-model="country" class="a-select-option">
- <option
- v-for="country in countries"
- :key="country.alpha2Code"
- :value="country.name"
- >{{ country.name }}</option>
- </select>
- </div>
- <!-- Full name -->
- <div class="a-spacing-top-medium">
- <label style="margin-bottom: 0px;">Full Name</label>
- <input v-model="fullName" :placeholder="address.fullName" type="text" class="a-input-text" style="width: 100%;" />
- </div>
- <!-- Street Address -->
- <div class="a-spacing-top-medium">
- <label style="margin-bottom: 0px;">Street Address</label>
- <input
- v-model="streetAddress1"
- :placeholder="address.streetAddress1"
- type="text"
- class="a-input-text"
- style="width: 100%;"
- />
- <!-- Street Address 2 -->
- <input
- v-model="streetAddress2"
- :placeholder="address.streetAddress2"
- type="text"
- class="a-input-text a-spacing-top-small"
- style="width: 100%;"
- />
- </div>
- <!-- City -->
- <div class="a-spacing-top-medium">
- <label style="margin-bottom: 0px;">City</label>
- <input v-model="city" :placeholder="address.city" type="text" class="a-input-text" style="width: 100%;" />
- </div>
- <!-- State -->
- <div class="a-spacing-top-medium">
- <label style="margin-bottom: 0px;">State / Province / Region</label>
- <input v-model="state" :placeholder="address.state" type="text" class="a-input-text" style="width: 100%;" />
- </div>
- <!-- Zip Code -->
- <div class="a-spacing-top-medium">
- <label style="margin-bottom: 0px;">Zip Code</label>
- <input v-model="zipCode" :placeholder="address.zipCode" type="text" class="a-input-text" style="width: 100%;" />
- </div>
- <!-- Phone Number -->
- <div class="a-spacing-top-medium">
- <label style="margin-bottom: 0px;">Phone Number</label>
- <input v-model="phoneNumber" :placeholder="address.phoneNumber" type="text" class="a-input-text" style="width: 100%;" />
- <div class="a-section a-spacing-none a-spacing-top-micro">
- <span class="a-size-mini">May be used to assist delivery</span>
- </div>
- </div>
- <div class="a-spacing-base a-spacing-top-medium">
- <h3>Add delivery instructions</h3>
- </div>
- <!-- Delivery Instruction -->
- <div class="a-spacing-top-medium">
- <label
- style="margin-bottom: 0px;"
- >Do we need additional instructions to find this address?</label>
- <textarea
- v-model="deliverInstructions"
- :placeholder="address.deliverInstructions"
- style="height:6em; width: 100%;"
- ></textarea>
- </div>
- <!-- Security code -->
- <div class="a-spacing-top-medium">
- <label
- style="margin-bottom: 0px;"
- >Do we need a security code or a call box number to access this building?</label>
- <input v-model="securityCode" :placeholder="address.securityCode" type="text" class="a-input-text" style="width: 100%;" />
- </div>
- <div class="a-spacing-top-medium">
- <label style="margin-bottom: 0px;">Weekend delivery</label>
- <a href="#">
- <i class="fas fa-angle-down"></i> Which days can you receive packages?
- </a>
- </div>
- <div class="a-spacing-top-medium"></div>
- <hr />
- <div class="a-spacing-top-medium">
- <span>
- <b>Make sure your address is correct</b>
- </span>
- </div>
- <div>
- <span>If the address contains typos or other errors, your package may be undeliverable.</span>
- </div>
- <div class="a-spacing-top-small">
- <span>
- <a href="#">Tips for entering addresses</a>
- </span>
- <span>|</span>
- <span>
- <a href="#">APO/FPO address tips</a>
- </span>
- </div>
- <div class="a-spacing-top-large">
- <span class="a-button-register">
- <span class="a-button-inner">
- <span @click="onUpdateAddress" class="a-button-text">Update address</span>
- </span>
- </span>
- </div>
- </div>
- </form>
- </div>
- </div>
- <div class="col-sm-3"></div>
- </div>
- </div>
- </div>
- <!--/REGISTER ADDRESS-->
- </main>
- <!--/MAIN-->
- </template>
- <script>
- export default {
- async asyncData ({ $axios, params }) {
- try {
- let response = $axios.$get('/api/countries')
- let singleAddress = $axios.$get(`/api/address/${params.id}`)
- let [countriesResponse, addressResponse] = await Promise.all([
- response,
- singleAddress
- ])
- console.log(singleAddress)
- return {
- countries: countriesResponse,
- address: addressResponse.address
- }
- } catch (err) {
- console.log(err)
- }
- },
- data () {
- return {
- country: 'United States of America',
- fullName: '',
- streetAddress1: '',
- streetAddress2: '',
- city: '',
- state: '',
- zipCode: '',
- phoneNumber: '',
- deliverInstructions: '',
- securityCode: ''
- }
- },
- methods: {
- async onUpdateAddress () {
- try {
- let data = {
- country: this.country,
- fullName: this.fullName,
- streetAddress: this.streetAddress1 + ' ' + this.streetAddress2,
- city: this.city,
- state: this.state,
- zipCode: this.zipCode,
- phoneNumber: this.phoneNumber,
- deliverInstructions: this.deliverInstructions,
- securityCode: this.securityCode,
- }
- let response = await this.$axios.$put(`/api/address/${this.$route.params.id}`, data)
- if (response.success) {
- this.$router.push('/address')
- }
- } catch (err) {
- console.log(err)
- }
- }
- }
- }
- </script>
|