2023-06-11 12:14:03 +00:00
|
|
|
@extends('public.account.layout')
|
|
|
|
|
|
|
|
@section('title', trans('storefront::account.pages.my_addresses'))
|
|
|
|
|
|
|
|
@push('globals')
|
|
|
|
<script>
|
|
|
|
FleetCart.langs['storefront::account.addresses.confirm'] = '{{ trans('storefront::account.addresses.confirm') }}';
|
|
|
|
</script>
|
|
|
|
@endpush
|
|
|
|
|
|
|
|
@section('panel')
|
2023-12-03 14:07:47 +00:00
|
|
|
<my-addresses
|
|
|
|
:initial-addresses="{{ $addresses }}"
|
|
|
|
:initial-default-address="{{ $defaultAddress }}"
|
|
|
|
:countries="{{ json_encode($countries) }}"
|
|
|
|
inline-template
|
|
|
|
>
|
2023-06-11 12:14:03 +00:00
|
|
|
<div class="panel">
|
|
|
|
<div class="panel-header">
|
|
|
|
<h4>{{ trans('storefront::account.pages.my_addresses') }}</h4>
|
|
|
|
</div>
|
|
|
|
|
|
|
|
<div class="panel-body" v-cloak>
|
|
|
|
<div class="my-addresses">
|
|
|
|
<div class="address-card-wrap" v-if="hasAddress && ! formOpen">
|
|
|
|
<div class="row">
|
|
|
|
<div class="col-xl-6 col-lg-9 d-flex" v-for="address in addresses" :key="address.id">
|
2023-12-03 14:07:47 +00:00
|
|
|
<address
|
|
|
|
class="address-card"
|
|
|
|
:class="{ active: defaultAddress.address_id === address.id }"
|
|
|
|
@click="changeDefaultAddress(address)"
|
|
|
|
>
|
|
|
|
<span class="badge" v-if="defaultAddress.address_id === address.id">
|
|
|
|
{{ trans('storefront::account.addresses.default') }}
|
|
|
|
</span>
|
|
|
|
|
2023-06-11 12:14:03 +00:00
|
|
|
<div class="address-card-data">
|
|
|
|
<span v-text="address.full_name"></span>
|
|
|
|
<span v-text="address.address_1"></span>
|
|
|
|
<span v-if="address.address_2" v-text="address.address_2"></span>
|
2023-12-03 14:07:47 +00:00
|
|
|
<span>@{{ address.city }}, @{{ address.state_name }} @{{ address.zip }}</span>
|
2023-06-11 12:14:03 +00:00
|
|
|
<span v-text="address.country_name"></span>
|
|
|
|
</div>
|
|
|
|
|
|
|
|
<div class="address-card-actions">
|
|
|
|
<button type="button" class="btn btn-edit-address" @click.stop="edit(address)">
|
|
|
|
{{ trans('storefront::account.addresses.edit') }}
|
|
|
|
</button>
|
|
|
|
|
|
|
|
<button type="button" class="btn btn-delete-address" @click.stop="remove(address)">
|
|
|
|
{{ trans('storefront::account.addresses.delete') }}
|
|
|
|
</button>
|
|
|
|
</div>
|
|
|
|
|
|
|
|
</address>
|
|
|
|
</div>
|
|
|
|
|
|
|
|
<div class="col-md-18">
|
2023-12-03 14:07:47 +00:00
|
|
|
<button
|
|
|
|
type="button"
|
|
|
|
class="btn btn-lg btn-default btn-add-new-address"
|
|
|
|
@click="formOpen = true"
|
|
|
|
>
|
2023-06-11 12:14:03 +00:00
|
|
|
{{ trans('storefront::account.addresses.add_new_address') }}
|
|
|
|
</button>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
|
|
|
|
<form @submit.prevent="save" @input="errors.clear($event.target.name)" v-else>
|
|
|
|
<div class="add-new-address-form">
|
|
|
|
<h4 class="section-title">
|
|
|
|
{{ trans('storefront::account.addresses.new_address') }}
|
|
|
|
</h4>
|
|
|
|
|
|
|
|
<div class="row">
|
|
|
|
<div class="col-md-9">
|
|
|
|
<div class="form-group">
|
|
|
|
<label for="first-name">
|
|
|
|
{{ trans('storefront::account.addresses.first_name') }}<span>*</span>
|
|
|
|
</label>
|
|
|
|
|
|
|
|
<input v-model="form.first_name" name="first_name" type="text" id="first-name"
|
|
|
|
class="form-control">
|
|
|
|
|
|
|
|
<span class="error-message" v-if="errors.has('first_name')"
|
|
|
|
v-text="errors.get('first_name')">
|
|
|
|
</span>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
|
|
|
|
<div class="col-md-9">
|
|
|
|
<div class="form-group">
|
|
|
|
<label for="last-name">
|
|
|
|
{{ trans('storefront::account.addresses.last_name') }}<span>*</span>
|
|
|
|
</label>
|
|
|
|
|
|
|
|
<input v-model="form.last_name" name="last_name" type="text" id="last-name"
|
|
|
|
class="form-control">
|
|
|
|
|
|
|
|
<span class="error-message" v-if="errors.has('last_name')"
|
|
|
|
v-text="errors.get('last_name')">
|
|
|
|
</span>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
|
|
|
|
<div class="col-md-18">
|
|
|
|
<div class="form-group">
|
|
|
|
<label for="address-1">
|
|
|
|
{{ trans('storefront::account.addresses.street_address') }}<span>*</span>
|
|
|
|
</label>
|
|
|
|
|
|
|
|
<input v-model="form.address_1" name="address_1" type="text" id="address-1"
|
|
|
|
placeholder="{{ trans('storefront::account.addresses.address_line_1') }}"
|
|
|
|
class="form-control">
|
|
|
|
|
|
|
|
<span class="error-message" v-if="errors.has('address_1')"
|
|
|
|
v-text="errors.get('address_1')">
|
|
|
|
</span>
|
|
|
|
</div>
|
|
|
|
|
|
|
|
<div class="form-group">
|
|
|
|
<input v-model="form.address_2" name="address_2" type="text" id="address-2"
|
|
|
|
placeholder="{{ trans('storefront::account.addresses.address_line_2') }}"
|
|
|
|
class="form-control">
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
|
|
|
|
<div class="col-md-9">
|
|
|
|
<div class="form-group">
|
|
|
|
<label for="city">
|
|
|
|
{{ trans('storefront::account.addresses.city') }}<span>*</span>
|
|
|
|
</label>
|
|
|
|
|
|
|
|
<input v-model="form.city" name="city" type="text" id="city"
|
|
|
|
class="form-control">
|
|
|
|
|
|
|
|
<span class="error-message" v-if="errors.has('city')" v-text="errors.get('city')">
|
|
|
|
</span>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
|
|
|
|
<div class="col-md-9">
|
|
|
|
<div class="form-group">
|
|
|
|
<label for="zip">
|
|
|
|
{{ trans('storefront::account.addresses.zip') }}<span>*</span>
|
|
|
|
</label>
|
|
|
|
|
|
|
|
<input v-model="form.zip" name="zip" type="text" id="zip"
|
|
|
|
class="form-control">
|
|
|
|
|
|
|
|
<span class="error-message" v-if="errors.has('zip')" v-text="errors.get('zip')">
|
|
|
|
</span>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
|
|
|
|
<div class="col-md-9">
|
|
|
|
<div class="form-group">
|
|
|
|
<label for="country">
|
|
|
|
{{ trans('storefront::account.addresses.country') }}<span>*</span>
|
|
|
|
</label>
|
|
|
|
|
2023-12-03 14:07:47 +00:00
|
|
|
<select
|
|
|
|
:value="form.country"
|
|
|
|
name="country"
|
|
|
|
id="country"
|
|
|
|
class="form-control arrow-black"
|
|
|
|
@change="changeCountry($event.target.value)"
|
|
|
|
>
|
|
|
|
<option v-for="(name, code) in countries" :value="code" v-text="name">
|
2023-06-11 12:14:03 +00:00
|
|
|
</option>
|
|
|
|
</select>
|
|
|
|
|
|
|
|
<span class="error-message" v-if="errors.has('country')"
|
|
|
|
v-text="errors.get('country')">
|
|
|
|
</span>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
|
|
|
|
<div class="col-md-9">
|
|
|
|
<div class="form-group">
|
|
|
|
<label for="state">
|
|
|
|
{{ trans('storefront::account.addresses.state') }}<span>*</span>
|
|
|
|
</label>
|
|
|
|
|
|
|
|
<input v-model="form.state" name="state" type="text" id="state"
|
|
|
|
class="form-control" v-if="hasNoStates">
|
|
|
|
|
|
|
|
<select v-model="form.state" name="state" id="state"
|
|
|
|
class="form-control arrow-black" v-else>
|
|
|
|
<option value="">
|
|
|
|
{{ trans('storefront::account.addresses.please_select') }}
|
|
|
|
</option>
|
|
|
|
|
|
|
|
<option v-for="(name, code) in states" :value="code" v-html="name">
|
|
|
|
</option>
|
|
|
|
</select>
|
|
|
|
|
|
|
|
<span class="error-message" v-if="errors.has('state')"
|
|
|
|
v-text="errors.get('state')">
|
|
|
|
</span>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
|
|
|
|
<div class="col-md-18">
|
2023-12-03 14:07:47 +00:00
|
|
|
<button
|
|
|
|
type="button"
|
|
|
|
class="btn btn-lg btn-default btn-cancel"
|
|
|
|
v-if="hasAddress"
|
|
|
|
@click="cancel"
|
|
|
|
>
|
2023-06-11 12:14:03 +00:00
|
|
|
{{ trans('storefront::account.addresses.cancel') }}
|
|
|
|
</button>
|
|
|
|
|
2023-12-03 14:07:47 +00:00
|
|
|
<button
|
|
|
|
type="submit"
|
|
|
|
class="btn btn-lg btn-primary btn-save-address"
|
|
|
|
:class="{ 'btn-loading': loading }"
|
|
|
|
>
|
2023-06-11 12:14:03 +00:00
|
|
|
{{ trans('storefront::account.addresses.save_address') }}
|
|
|
|
</button>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</form>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</my-addresses>
|
|
|
|
@endsection
|