Merge branch 'release/2023.12.07' into feature/CSR-1856
This commit is contained in:
commit
8d74711519
7 changed files with 47 additions and 26 deletions
|
|
@ -5,7 +5,7 @@
|
||||||
body {
|
body {
|
||||||
font-family: Roboto;
|
font-family: Roboto;
|
||||||
font-weight: 400;
|
font-weight: 400;
|
||||||
color: #4D5151;
|
color: #000;
|
||||||
margin: 0;
|
margin: 0;
|
||||||
background-color: white;
|
background-color: white;
|
||||||
padding: 8px;
|
padding: 8px;
|
||||||
|
|
@ -33,6 +33,7 @@ body .headerlinecontainer .headerline1 {
|
||||||
line-height: 32px;
|
line-height: 32px;
|
||||||
font-weight: 400;
|
font-weight: 400;
|
||||||
margin: 24px 0;
|
margin: 24px 0;
|
||||||
|
text-align: center;
|
||||||
}
|
}
|
||||||
body input,
|
body input,
|
||||||
body select {
|
body select {
|
||||||
|
|
@ -42,6 +43,8 @@ body input {
|
||||||
border-radius: 8px;
|
border-radius: 8px;
|
||||||
border: 1px solid #8E9292;
|
border: 1px solid #8E9292;
|
||||||
padding: 16px;
|
padding: 16px;
|
||||||
|
font-size: 16px;
|
||||||
|
color: #000;
|
||||||
}
|
}
|
||||||
body input:focus, body input:focus-visible {
|
body input:focus, body input:focus-visible {
|
||||||
box-shadow: 0 0 0 2.5px #1574a1;
|
box-shadow: 0 0 0 2.5px #1574a1;
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,7 @@
|
||||||
body {
|
body {
|
||||||
font-family: Roboto;
|
font-family: Roboto;
|
||||||
font-weight: 400;
|
font-weight: 400;
|
||||||
color: #4D5151;
|
color: #000;
|
||||||
margin: 0;
|
margin: 0;
|
||||||
background-color: white;
|
background-color: white;
|
||||||
padding: 8px;
|
padding: 8px;
|
||||||
|
|
@ -39,6 +39,7 @@ body {
|
||||||
line-height: 32px;
|
line-height: 32px;
|
||||||
font-weight: 400;
|
font-weight: 400;
|
||||||
margin: 24px 0;
|
margin: 24px 0;
|
||||||
|
text-align: center;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -51,6 +52,8 @@ body {
|
||||||
border-radius: 8px;
|
border-radius: 8px;
|
||||||
border: 1px solid #8E9292;
|
border: 1px solid #8E9292;
|
||||||
padding: 16px;
|
padding: 16px;
|
||||||
|
font-size: 16px;
|
||||||
|
color: #000;
|
||||||
&:focus,
|
&:focus,
|
||||||
&:focus-visible {
|
&:focus-visible {
|
||||||
box-shadow: 0 0 0 2.5px #1574a1;
|
box-shadow: 0 0 0 2.5px #1574a1;
|
||||||
|
|
|
||||||
|
|
@ -16,8 +16,7 @@
|
||||||
<div class="price-table">
|
<div class="price-table">
|
||||||
<div class="service-type">
|
<div class="service-type">
|
||||||
<textBlock :cmsWidgetName="servicePackageTitleWidget" />
|
<textBlock :cmsWidgetName="servicePackageTitleWidget" />
|
||||||
<span tabindex="0">
|
<span>
|
||||||
<span class="sr-only"> {{ screenReaderPackagePriceText }} </span>
|
|
||||||
{{ getFormattedAmount("", packagePrice) }}
|
{{ getFormattedAmount("", packagePrice) }}
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -64,40 +63,25 @@
|
||||||
<span v-else-if="cartItem == recycleFeeCartItem">
|
<span v-else-if="cartItem == recycleFeeCartItem">
|
||||||
{{ recycleFeeCartItem.name }}
|
{{ recycleFeeCartItem.name }}
|
||||||
</span>
|
</span>
|
||||||
<span tabindex="0"
|
<span>{{ getFormattedAmount(cartItem.category, cartItem.subTotal) }}</span>
|
||||||
><span class="sr-only">{{ screenReaderRecycleFeeText }}</span
|
|
||||||
>{{ getFormattedAmount(cartItem.category, cartItem.subTotal) }}</span
|
|
||||||
>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- Sub total, sales tax, total columns -->
|
<!-- Sub total, sales tax, total columns -->
|
||||||
<div class="sub-total">
|
<div class="sub-total">
|
||||||
<span>{{ subtotalText }}</span
|
<span>{{ subtotalText }}</span
|
||||||
><span tabindex="0"
|
><span>{{ getFormattedAmount("", subTotal) }}</span>
|
||||||
><span class="sr-only">{{ screenReaderSubTotalText }}</span
|
|
||||||
>{{ getFormattedAmount("", subTotal) }}</span
|
|
||||||
>
|
|
||||||
</div>
|
</div>
|
||||||
<div class="sales-tax">
|
<div class="sales-tax">
|
||||||
<span>{{ salesTaxText }}</span
|
<span>{{ salesTaxText }}</span
|
||||||
><span tabindex="0"
|
><span>{{ getFormattedAmount("", salesTax) }}</span>
|
||||||
><span class="sr-only">{{ screenReaderSalesTaxText }}</span
|
|
||||||
>{{ getFormattedAmount("", salesTax) }}</span
|
|
||||||
>
|
|
||||||
</div>
|
</div>
|
||||||
<div v-if="showAsPaid" class="amount-paid">
|
<div v-if="showAsPaid" class="amount-paid">
|
||||||
<span>{{ amountPaidText }}</span
|
<span>{{ amountPaidText }}</span
|
||||||
><span tabindex="0"
|
><span>{{ getFormattedAmount("", amountPaid) }}</span>
|
||||||
><span class="sr-only">{{ screenReaderAmountPaidText }}</span
|
|
||||||
>{{ getFormattedAmount("", amountPaid) }}</span
|
|
||||||
>
|
|
||||||
</div>
|
</div>
|
||||||
<div class="amount-due">
|
<div class="amount-due">
|
||||||
<span>{{ amountDueText }}</span
|
<span>{{ amountDueText }}</span
|
||||||
><span tabindex="0"
|
><span>{{ getFormattedAmount("", amountDue) }}</span>
|
||||||
><span class="sr-only">{{ screenReaderTotalAmountDueText }}</span
|
|
||||||
>{{ getFormattedAmount("", amountDue) }}</span
|
|
||||||
>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
||||||
|
|
@ -300,7 +300,7 @@ export default {
|
||||||
return serviceLocationReqs && scheduleReqs && customerReqs;
|
return serviceLocationReqs && scheduleReqs && customerReqs;
|
||||||
},
|
},
|
||||||
forwardButtonAction() {
|
forwardButtonAction() {
|
||||||
window.location.assign("//www.safelite.com/");
|
window.location.assign(location.protocol + "//" + location.host);
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
components: {
|
components: {
|
||||||
|
|
|
||||||
|
|
@ -532,7 +532,7 @@ export default {
|
||||||
}
|
}
|
||||||
|
|
||||||
cartItems.forEach((item) => {
|
cartItems.forEach((item) => {
|
||||||
if (item.name !== null) {
|
if (item.name !== null && item.category != "promos") {
|
||||||
lineItems.push(`${item.name}|${(item.salesTax + item.subTotal).toFixed(2)}|1`);
|
lineItems.push(`${item.name}|${(item.salesTax + item.subTotal).toFixed(2)}|1`);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
|
||||||
|
|
@ -252,6 +252,7 @@ export default {
|
||||||
this.$emit("updated-mobile-fee-part", mobileFeePart);
|
this.$emit("updated-mobile-fee-part", mobileFeePart);
|
||||||
this.$emit("updated-serviceability", serviceabilityDetails.data);
|
this.$emit("updated-serviceability", serviceabilityDetails.data);
|
||||||
this.$emit("updated-contains-military-base", zipCodeData.containsMilitaryBase);
|
this.$emit("updated-contains-military-base", zipCodeData.containsMilitaryBase);
|
||||||
|
this.$emit("updated-mobile-ctu", zipCodeData.zipCodeCtu);
|
||||||
|
|
||||||
// update the page level model
|
// update the page level model
|
||||||
this.$emit("update:modelValue", this.internalModel);
|
this.$emit("update:modelValue", this.internalModel);
|
||||||
|
|
|
||||||
|
|
@ -83,6 +83,7 @@
|
||||||
@updated-mobile-fee-part="setMobileFeePart"
|
@updated-mobile-fee-part="setMobileFeePart"
|
||||||
@updated-serviceability="setServiceabilityDetails"
|
@updated-serviceability="setServiceabilityDetails"
|
||||||
@updated-contains-military-base="setContainsMilitaryBase"
|
@updated-contains-military-base="setContainsMilitaryBase"
|
||||||
|
@updated-mobile-ctu="setCtuForMobile"
|
||||||
validationRules="mobile-location-required"
|
validationRules="mobile-location-required"
|
||||||
ref="mobileLocationQuestions"
|
ref="mobileLocationQuestions"
|
||||||
linkWidgetName="MobileLocationLinkWidget"
|
linkWidgetName="MobileLocationLinkWidget"
|
||||||
|
|
@ -128,6 +129,7 @@ import contentGroupModal from "@/fmg-components/content-group-modal/content-grou
|
||||||
|
|
||||||
// Supporting files
|
// Supporting files
|
||||||
import baseMixin from "@/mixins/base-mixin.js";
|
import baseMixin from "@/mixins/base-mixin.js";
|
||||||
|
import { AppointmentTypeStrings } from "@/constants/schedule-constants";
|
||||||
|
|
||||||
import { fetchCmsContentForPage } from "@/helpers/cms-content-helper";
|
import { fetchCmsContentForPage } from "@/helpers/cms-content-helper";
|
||||||
import { settleAllPromises } from "@/helpers/layout-helper";
|
import { settleAllPromises } from "@/helpers/layout-helper";
|
||||||
|
|
@ -374,6 +376,9 @@ export default {
|
||||||
this.zipContainsMilitaryBase = val;
|
this.zipContainsMilitaryBase = val;
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
setCtuForMobile(val) {
|
||||||
|
this.zipCodeCtu = val;
|
||||||
|
},
|
||||||
setMobileFeePart(mobileFeePart) {
|
setMobileFeePart(mobileFeePart) {
|
||||||
this.mobileFeePart = mobileFeePart;
|
this.mobileFeePart = mobileFeePart;
|
||||||
},
|
},
|
||||||
|
|
@ -472,6 +477,31 @@ export default {
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
async forwardButtonAction() {
|
async forwardButtonAction() {
|
||||||
|
// clear items not needed for appointmentType
|
||||||
|
if (this.selectedAppointmentType == AppointmentTypeStrings.IN_SHOP) {
|
||||||
|
// if we have a provider.zipCodeCtu that's different than the servicelocation.zipCodeCtu then they
|
||||||
|
// may have selected a shop in a different ctu. change the servicelocation zip/ctu if different
|
||||||
|
if (this.zipCodeCtu != this.selectedProvider.address.zipCodeCtu) {
|
||||||
|
this.zipCodeCtu = this.selectedProvider.address.zipCodeCtu;
|
||||||
|
this.zipCode = this.selectedProvider.address.zipCode;
|
||||||
|
}
|
||||||
|
|
||||||
|
this.city = null;
|
||||||
|
this.streetAddress = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (
|
||||||
|
this.selectedAppointmentType == AppointmentTypeStrings.MOBILE &&
|
||||||
|
this.selectedProvider &&
|
||||||
|
this.selectedProvider.address
|
||||||
|
) {
|
||||||
|
this.selectedProvider.address.streetAddress = null;
|
||||||
|
this.selectedProvider.address.city = null;
|
||||||
|
this.selectedProvider.address.state = null;
|
||||||
|
this.selectedProvider.address.zipCode = null;
|
||||||
|
this.selectedProvider.address.zipCodeCtu = null;
|
||||||
|
}
|
||||||
|
|
||||||
await this.dispatchStoreAction(
|
await this.dispatchStoreAction(
|
||||||
this.storeActions.SAVE_SERVICE_LOCATION,
|
this.storeActions.SAVE_SERVICE_LOCATION,
|
||||||
{
|
{
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue