From 8a39ff798925a18c4710470ae74dc09fd9e6608e Mon Sep 17 00:00:00 2001 From: David Back Date: Wed, 26 Apr 2023 08:18:12 -0400 Subject: [PATCH] SSR-316 and SSR-289. Please keep in mind that prices are present but incorrect. Also note that in cases of very short view height, tall modals appear underneath the header hamburger menu. This is endemic to all such situations, and not specific to these cards. --- src/global-methods.js | 2 +- .../service-package-question.vue | 64 ++++--------------- .../service-package-radio.vue | 17 ++--- .../service-packages/service-packages.vue | 61 ++++++++++++++---- src/router/router-constants/routing-table.js | 4 +- src/store/index.js | 16 +++-- 6 files changed, 85 insertions(+), 79 deletions(-) diff --git a/src/global-methods.js b/src/global-methods.js index 3f7e75b8..92e31d54 100644 --- a/src/global-methods.js +++ b/src/global-methods.js @@ -21,7 +21,7 @@ export default { url: cfDistroUrl + endpoint, data: payloadAndAnalyticsData, crossDomain: true, - responseType: {}, + responseType: 'json', headers: headers, }) .then((response) => { diff --git a/src/layouts/service-packages/service-package-question/service-package-question.vue b/src/layouts/service-packages/service-package-question/service-package-question.vue index ede27160..1a44ba9b 100644 --- a/src/layouts/service-packages/service-package-question/service-package-question.vue +++ b/src/layouts/service-packages/service-package-question/service-package-question.vue @@ -24,6 +24,7 @@ }; export default { name: 'servicePackageQuestion', + emits: ['vapsItemsSelected'], props: { cmsWidgetName: String, groupName: String, @@ -34,16 +35,10 @@ data() { return { servicePackageRadio: servicePackageRadio, - selectedPackageName: null + selectedPackageName: packageNames.TIER_ONE }; }, watch: { - availableLineItems() { - const store = useMainStore(); - if (this.allGlassPartsAndSupportingItemsHavePrices(store.order.lineItems)) { - this.selectDefaultPackage(); - } - }, selectedPackageName(newValue) { const VapsProductsInSelectedPackage = this.getVapsLineItemsForSelectedPackage(newValue); this.$emit('vapsItemsSelected', VapsProductsInSelectedPackage); @@ -51,10 +46,14 @@ }, computed: { nullSafeAvailableLineItems() { + if (this.availableLineItems?.lineItems) { + return this.availableLineItems.lineItems; + } + return this.availableLineItems ?? []; }, servicePackageAnswers() { - if (!this.cmsWidgetName) return {}; + if (!this.cmsWidgetName) return []; const cmsAnswersContent = [ { Name: 'TierOne', @@ -84,6 +83,9 @@ )); return modifiedAnswers; }, + isRecalibrationOnOrder() { + return this.lineItemsContainsPartType(partTypeStrings.RECALIBRATION); + }, frontWipersApplicableForTierTwo() { const store = useMainStore(); const frontWipersAreAvailable = this.lineItemsContainsPartType( @@ -205,50 +207,6 @@ }); return vapsPrice; }, - selectDefaultPackage() { - const store = useMainStore(); - const vapsFromStore = store.lineItems.vaps; - let lowestTierForPackage = packageNames.TIER_ONE; - if (vapsFromStore?.length > 0) { - vapsFromStore.every((vapsItem) => { - let lowestTierForThisItem = this.getLowestTierForThisItem(vapsItem); - if (lowestTierForThisItem === packageNames.TIER_THREE) { - lowestTierForPackage = packageNames.TIER_THREE; - return false; - } else if (lowestTierForThisItem === packageNames.TIER_TWO) { - lowestTierForPackage = packageNames.TIER_TWO; - return true; - } else { - return true; - } - }); - } - this.selectedPackageName = lowestTierForPackage; - }, - allGlassPartsAndSupportingItemsHavePrices(lineItems) { - if (lineItems?.glassParts) { - for (let i = 0; i < lineItems.glassParts.length; i++) { - if (this.priceIsNullOrZero(lineItems.glassParts[i])) { - return false; - } - } - } - if (lineItems?.supportingItems) { - for (let i = 0; i < lineItems.supportingItems.length; i++) { - if (this.priceIsNullOrZero(lineItems.supportingItems[i])) { - return false; - } - } - } - return true; - }, - priceIsNullOrZero(lineItem) { - return ( - (lineItem.kitPrice == null || lineItem.kitPrice == 0) && - (lineItem.laborAmount == null || lineItem.laborAmount == 0) && - (lineItem.sellingPrice == null || lineItem.sellingPrice == 0) - ); - }, getLowestTierForThisItem(vapsItem) { let lowestTierForThisItem = null; switch (vapsItem.partType) { @@ -345,7 +303,7 @@ return !!glassLocationMatches.length; }, getTotalLineItemPrice(lineItem) { - return lineItem.kitPrice + lineItem.laborAmount + lineItem.sellingPrice + return lineItem.kitPrice + lineItem.laborAmount + lineItem.sellingPrice; } }, components: { diff --git a/src/layouts/service-packages/service-package-question/service-package-radio/service-package-radio.vue b/src/layouts/service-packages/service-package-question/service-package-radio/service-package-radio.vue index c32dd9d3..fbf3f111 100644 --- a/src/layouts/service-packages/service-package-question/service-package-radio/service-package-radio.vue +++ b/src/layouts/service-packages/service-package-question/service-package-radio/service-package-radio.vue @@ -1,5 +1,5 @@