From 86add1e35885aa125dfbe90e666fddbcc7c8223a Mon Sep 17 00:00:00 2001 From: Adam Caouette Date: Thu, 28 Sep 2023 16:52:07 -0400 Subject: [PATCH] CSR-1383: add product tiles; some cart updates for CSR-1382 --- jest.config.js | 3 + .../button-question/button-question.vue | 6 + .../add-vaps-button/add-vaps-button.vue | 218 ++++++++++++++++++ .../add-vaps-modal-buttons.vue | 102 ++++++++ src/fmg-components/cart/cart.vue | 36 ++- src/helpers/service-package-helper.js | 2 - src/layouts/payment-method/payment-method.vue | 193 ++++------------ 7 files changed, 404 insertions(+), 156 deletions(-) create mode 100644 src/fmg-components/add-vaps-modal-buttons/add-vaps-button/add-vaps-button.vue create mode 100644 src/fmg-components/add-vaps-modal-buttons/add-vaps-modal-buttons.vue diff --git a/jest.config.js b/jest.config.js index 633a99e67..14d2d27d3 100644 --- a/jest.config.js +++ b/jest.config.js @@ -14,6 +14,9 @@ module.exports = { "!src/helpers/unit-test-helper.js", "!src/layouts/vehicle-damage/windshield-options/windshield-options.vue", "!src/layouts/reveal/**/*.vue", + "!src/layouts/payment-method/**/*.vue", + "!src/fmg-components/cart/**/*.vue", + "!src/fmg-components/add-vaps-modal-buttons/**/*.vue", "!src/ux-components/text-link/**/*.vue", "!src/layouts/vin-lookup/**/*.vue", //Temporary for Quote page testing "!src/common-components/funnel-header/menu-modal/**/*.vue", diff --git a/src/digital-components/button-question/button-question.vue b/src/digital-components/button-question/button-question.vue index 9636d1d25..ffbb8fd79 100644 --- a/src/digital-components/button-question/button-question.vue +++ b/src/digital-components/button-question/button-question.vue @@ -197,6 +197,12 @@ export default { classes += "flex-column"; } break; + case "addVapsButton": + classes = "row g-4 justify-content-center mb-2"; + if (this.isWide) { + classes += " flex-column"; + } + break; case "radio": classes = "ui-radio d-flex"; break; diff --git a/src/fmg-components/add-vaps-modal-buttons/add-vaps-button/add-vaps-button.vue b/src/fmg-components/add-vaps-modal-buttons/add-vaps-button/add-vaps-button.vue new file mode 100644 index 000000000..65f4da594 --- /dev/null +++ b/src/fmg-components/add-vaps-modal-buttons/add-vaps-button/add-vaps-button.vue @@ -0,0 +1,218 @@ + + + + + diff --git a/src/fmg-components/add-vaps-modal-buttons/add-vaps-modal-buttons.vue b/src/fmg-components/add-vaps-modal-buttons/add-vaps-modal-buttons.vue new file mode 100644 index 000000000..edfac624e --- /dev/null +++ b/src/fmg-components/add-vaps-modal-buttons/add-vaps-modal-buttons.vue @@ -0,0 +1,102 @@ + + + diff --git a/src/fmg-components/cart/cart.vue b/src/fmg-components/cart/cart.vue index 6df09f462..2384eb917 100644 --- a/src/fmg-components/cart/cart.vue +++ b/src/fmg-components/cart/cart.vue @@ -14,14 +14,18 @@
{{ packagePrice }}
-
+
{{ lineItem.name }} Remove
-
-
+
+
{{ lineItem.name }} Remove {{ lineItem.price }} @@ -122,7 +126,7 @@ export default { ...findLineItemsWithPartType(vapType, this.nullSafeAvailableLineItems) ); }); - console.log("VapsLineItems:", vapsLineItemsForSelectedPackage); + // console.log("VapsLineItems:", vapsLineItemsForSelectedPackage); return vapsLineItemsForSelectedPackage; }, }, @@ -174,15 +178,12 @@ export default { }; displayedPackageLineItems.push(packageLineItem); }); - console.log("What displayedPackageLineItems is", packageLineItems); + // console.log("What displayedPackageLineItems is", packageLineItems); return displayedPackageLineItems; }, displayedNonPackageLineItems() { const displayedNonPackageLineItems = []; - const possibleLineItems = [ - ...this.orderLineItems.vaps, - ...this.orderLineItems.supportingItems, - ]; + const possibleLineItems = [...this.vaps, ...this.supportingItems]; possibleLineItems?.forEach((item) => { let price = item.sellingPrice + item.kitPrice + item.laborAmount; const isAllowed = this.allowableLineItems?.findIndex((lineItem) => { @@ -207,13 +208,24 @@ export default { return displayedNonPackageLineItems; }, glassToReplace() { + if (!this.damage) { + return; + } return this.damage.glassToReplace; }, isRepair() { + if (!this.damage) { + return; + } return this.damage.isRepair; }, vaps() { - return this.orderLineItems?.vaps; + const vaps = this.orderLineItems?.vaps; + return vaps?.length > 0 ? vaps : []; + }, + supportingItems() { + const supportingItems = this.orderLineItems?.supportingItems; + return supportingItems?.length > 0 ? supportingItems : []; }, recycleLabel() { return "Recycling"; diff --git a/src/helpers/service-package-helper.js b/src/helpers/service-package-helper.js index 6da43c095..bf78371d8 100644 --- a/src/helpers/service-package-helper.js +++ b/src/helpers/service-package-helper.js @@ -211,7 +211,6 @@ export function getHighestRequiredTier(glassToReplace, availableLineItems, isRep export function getHighestFullySatisfiedTier(glassToReplace, availableLineItems, isRepair, vaps) { const packages = getAvailablePackages(glassToReplace, availableLineItems, isRepair); - console.log(glassToReplace); let highestSatisfiedPackage = packageNames.TIER_ONE; for (let i = 0; i < packages.length; i++) { @@ -224,7 +223,6 @@ export function getHighestFullySatisfiedTier(glassToReplace, availableLineItems, highestSatisfiedPackage = packages[i].packageName; } } - console.log(highestSatisfiedPackage); return highestSatisfiedPackage; } diff --git a/src/layouts/payment-method/payment-method.vue b/src/layouts/payment-method/payment-method.vue index 7924fb722..a99282a6a 100644 --- a/src/layouts/payment-method/payment-method.vue +++ b/src/layouts/payment-method/payment-method.vue @@ -1,63 +1,39 @@