Merge branch 'release/2025.07.31' into nation/CASH-1225
This commit is contained in:
commit
30a12ca7ca
3 changed files with 38 additions and 15 deletions
|
|
@ -1103,7 +1103,6 @@ export default {
|
||||||
this.resetWaitlist();
|
this.resetWaitlist();
|
||||||
this.preSelectedDate = null;
|
this.preSelectedDate = null;
|
||||||
this.shopProviderData = shopQuestionPopUpData.shopProviderData;
|
this.shopProviderData = shopQuestionPopUpData.shopProviderData;
|
||||||
this.setServiceabilityDetails(shopQuestionPopUpData.serviceabilityDetails);
|
|
||||||
const selectedProvider = this.shopProviderData.shopProviders.find((shopProvider) => {
|
const selectedProvider = this.shopProviderData.shopProviders.find((shopProvider) => {
|
||||||
return shopProvider.providerNumber === shopQuestionPopUpData.selectedProviderNumber;
|
return shopProvider.providerNumber === shopQuestionPopUpData.selectedProviderNumber;
|
||||||
});
|
});
|
||||||
|
|
@ -1591,17 +1590,26 @@ export default {
|
||||||
if (newProvider) {
|
if (newProvider) {
|
||||||
this.selectedProvider = newProvider;
|
this.selectedProvider = newProvider;
|
||||||
this.initializeDatePicker();
|
this.initializeDatePicker();
|
||||||
|
} else if (this.appointmentType === this.appointmentTypeStrings.MOBILE) {
|
||||||
|
this.selectedProvider = {
|
||||||
|
providerNumber: this.shopProviderData.mobileProviderNumber.toString(),
|
||||||
|
address: {
|
||||||
|
streetAddress: null,
|
||||||
|
city: null,
|
||||||
|
state: null,
|
||||||
|
zipCode: null,
|
||||||
|
zipCodeCtu: null,
|
||||||
|
},
|
||||||
|
};
|
||||||
} else if (
|
} else if (
|
||||||
// use closest shopProvider if none exists
|
|
||||||
!this.selectedProvider?.address?.streetAddress &&
|
!this.selectedProvider?.address?.streetAddress &&
|
||||||
this.shopProviderData?.shopProviders
|
this.shopProviderData?.shopProviders?.length
|
||||||
) {
|
) {
|
||||||
this.selectedProvider = this.shopProviderData.shopProviders[0];
|
this.selectedProvider = this.shopProviderData.shopProviders[0];
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
handleZipCodeChange(newZipCode) {
|
handleZipCodeChange(newZipCode) {
|
||||||
this.resetMobileLocation();
|
this.resetMobileLocation();
|
||||||
this.appointmentTypeFromAppointmentTypeQuestion = null;
|
|
||||||
|
|
||||||
getShopProviderData(newZipCode.zipCode).then((result) => {
|
getShopProviderData(newZipCode.zipCode).then((result) => {
|
||||||
this.shopProviderData = result.data;
|
this.shopProviderData = result.data;
|
||||||
|
|
@ -1627,6 +1635,7 @@ export default {
|
||||||
this.updateFooterButtonText();
|
this.updateFooterButtonText();
|
||||||
if (newAppointmentType === AppointmentTypeStrings.MOBILE) {
|
if (newAppointmentType === AppointmentTypeStrings.MOBILE) {
|
||||||
this.appointmentType = AppointmentTypeStrings.MOBILE;
|
this.appointmentType = AppointmentTypeStrings.MOBILE;
|
||||||
|
this.updateSelectedProvider();
|
||||||
} else if (newAppointmentType) {
|
} else if (newAppointmentType) {
|
||||||
if (this.selectedTimeSlotInfo?.timeSlot?.routeCode) {
|
if (this.selectedTimeSlotInfo?.timeSlot?.routeCode) {
|
||||||
// update appointmentType based on routeCode to determine if it should be dropoff or inshop
|
// update appointmentType based on routeCode to determine if it should be dropoff or inshop
|
||||||
|
|
@ -1643,6 +1652,7 @@ export default {
|
||||||
this.appointmentType = null;
|
this.appointmentType = null;
|
||||||
}
|
}
|
||||||
this.selectedDate = this.getSelectedDate();
|
this.selectedDate = this.getSelectedDate();
|
||||||
|
this.setDisplayWaitList();
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
watch: {
|
watch: {
|
||||||
|
|
|
||||||
|
|
@ -7,7 +7,8 @@
|
||||||
:answers="answersForDropOffQuestion"
|
:answers="answersForDropOffQuestion"
|
||||||
isRequired
|
isRequired
|
||||||
insertOrLabelBeforeFinalOption
|
insertOrLabelBeforeFinalOption
|
||||||
groupName="chooseDropOffOrInshop">
|
groupName="chooseDropOffOrInshop"
|
||||||
|
validationRules="time-slot-required">
|
||||||
<div>
|
<div>
|
||||||
<alert
|
<alert
|
||||||
v-if="shouldDisplayDropOffAlert"
|
v-if="shouldDisplayDropOffAlert"
|
||||||
|
|
@ -40,7 +41,7 @@
|
||||||
v-if="supplementalInformationBlock"
|
v-if="supplementalInformationBlock"
|
||||||
v-html="supplementalInformationBlock" />
|
v-html="supplementalInformationBlock" />
|
||||||
<div
|
<div
|
||||||
v-if="hasWaitListExperiment && displayWaitListFeature"
|
v-if="hasWaitListExperiment && displayWaitListFeature && selectedDate"
|
||||||
class="mt-5 bg-light rounded waitlist">
|
class="mt-5 bg-light rounded waitlist">
|
||||||
<textBlock
|
<textBlock
|
||||||
cmsWidgetName="WaitListLabelWidget"
|
cmsWidgetName="WaitListLabelWidget"
|
||||||
|
|
@ -53,7 +54,10 @@
|
||||||
v-model="waitListRequested"
|
v-model="waitListRequested"
|
||||||
@click="waitListChecked" />
|
@click="waitListChecked" />
|
||||||
</div>
|
</div>
|
||||||
<div v-if="waitListRequested" class="rounded waitlist-success" ref="waitlistSuccessMessage">
|
<div
|
||||||
|
v-if="waitListRequested && displayWaitList"
|
||||||
|
class="rounded waitlist-success"
|
||||||
|
ref="waitlistSuccessMessage">
|
||||||
<img :src="waitListSuccessImage" class="success-image" />
|
<img :src="waitListSuccessImage" class="success-image" />
|
||||||
<span v-html="waitListSuccessText" class="success-text"></span>
|
<span v-html="waitListSuccessText" class="success-text"></span>
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -183,6 +187,7 @@ export default {
|
||||||
let appointmentTypeCmsWidgetName;
|
let appointmentTypeCmsWidgetName;
|
||||||
|
|
||||||
if (
|
if (
|
||||||
|
this.selectedDate == null ||
|
||||||
this.appointmentType === AppointmentTypeStrings.IN_SHOP_OR_DROP_OFF ||
|
this.appointmentType === AppointmentTypeStrings.IN_SHOP_OR_DROP_OFF ||
|
||||||
this.appointmentType === AppointmentTypeStrings.IN_SHOP ||
|
this.appointmentType === AppointmentTypeStrings.IN_SHOP ||
|
||||||
this.appointmentType === AppointmentTypeStrings.DROP_OFF
|
this.appointmentType === AppointmentTypeStrings.DROP_OFF
|
||||||
|
|
@ -440,6 +445,8 @@ export default {
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
this.resetSelectedTimeSlotIfDateChange(timeSlotsForSelectedDate);
|
||||||
|
|
||||||
return availableTimeSlots;
|
return availableTimeSlots;
|
||||||
},
|
},
|
||||||
getPremiumAppointmentTimeSlot(timeSlotData) {
|
getPremiumAppointmentTimeSlot(timeSlotData) {
|
||||||
|
|
@ -535,6 +542,20 @@ export default {
|
||||||
successMessageElement.scrollIntoView({ behavior: "smooth" });
|
successMessageElement.scrollIntoView({ behavior: "smooth" });
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
resetSelectedTimeSlotIfDateChange(timeSlotsForSelectedDate) {
|
||||||
|
if (this.selectedRouteCode) {
|
||||||
|
const selectedRouteCodeString = this.selectedRouteCode.replace(
|
||||||
|
PREMIUM_TIME_SLOT_ID_FLAG,
|
||||||
|
""
|
||||||
|
);
|
||||||
|
const matchingTimeSlot = timeSlotsForSelectedDate.find((slot) => {
|
||||||
|
return slot.id === selectedRouteCodeString;
|
||||||
|
});
|
||||||
|
if (!matchingTimeSlot) {
|
||||||
|
this.selectedRouteCode = null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
},
|
},
|
||||||
watch: {
|
watch: {
|
||||||
waitListRequested(newVal) {
|
waitListRequested(newVal) {
|
||||||
|
|
|
||||||
|
|
@ -310,16 +310,8 @@ export default {
|
||||||
const selectedProvider = this.shopProviders.find(
|
const selectedProvider = this.shopProviders.find(
|
||||||
(provider) => provider.providerNumber == this.localSelectedProviderNumber
|
(provider) => provider.providerNumber == this.localSelectedProviderNumber
|
||||||
);
|
);
|
||||||
const serviceZipCode = selectedProvider.address.zipCode;
|
|
||||||
|
|
||||||
// retrieve serviceability details
|
|
||||||
const serviceabilityDetails = await getServiceabilityDetails(
|
|
||||||
serviceZipCode,
|
|
||||||
null,
|
|
||||||
"service-location"
|
|
||||||
);
|
|
||||||
const shopQuestionPopUpData = {
|
const shopQuestionPopUpData = {
|
||||||
serviceabilityDetails: serviceabilityDetails.data,
|
|
||||||
zipCodeData: this.zipCodeData,
|
zipCodeData: this.zipCodeData,
|
||||||
shopProviderData: this.localShopProviderData,
|
shopProviderData: this.localShopProviderData,
|
||||||
selectedProviderNumber: this.localSelectedProviderNumber,
|
selectedProviderNumber: this.localSelectedProviderNumber,
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue