Merge branch 'develop' into feature/CSR-1392

This commit is contained in:
CarlNation 2023-10-06 11:07:50 -04:00
commit 4a665a9b2a
3 changed files with 55 additions and 18 deletions

View file

@ -20,7 +20,7 @@ import addVapsButton from "./add-vaps-button/add-vaps-button";
export default { export default {
name: "add-vaps-modal-buttons", name: "add-vaps-modal-buttons",
props: { props: {
cart: Object, cartItems: Object,
rainDefenseItem: Object, rainDefenseItem: Object,
wiperItems: Object, wiperItems: Object,
vapsTilesCmsName: String, vapsTilesCmsName: String,
@ -43,14 +43,14 @@ export default {
return this.showAddRainDefense || this.showAddWipers; return this.showAddRainDefense || this.showAddWipers;
}, },
showAddRainDefense() { showAddRainDefense() {
// if it's not found in the cart // if not found in the cart
return !this.cart.some((vap) => { return !this.cartItems.some((vap) => {
return vap.partType === "RAIN DEFENSE"; return vap.partType === "RAIN DEFENSE";
}); });
}, },
showAddWipers() { showAddWipers() {
// if it's not found in the cart // if not found in the cart
return !this.cart.some((vap) => { return !this.cartItems.some((vap) => {
return vap.partType.includes(" WIPER"); return vap.partType.includes(" WIPER");
}); });
}, },

View file

@ -19,7 +19,12 @@
:key="i" :key="i"
:class="[this.displayedPackageLineItems ? 'vaps' : '']"> :class="[this.displayedPackageLineItems ? 'vaps' : '']">
<span>{{ lineItem.name }}</span> <span>{{ lineItem.name }}</span>
<span><a href="#">Remove</a></span> <textLink
ref="removeLink"
linkType="text"
text="showMoreShopsLinkText"
href="#!"
@click-event="removeItem(lineItem)" />
</div> </div>
<hr style="background: red" /> <hr style="background: red" />
<div <div
@ -27,7 +32,12 @@
:key="i" :key="i"
:class="[this.displayedNonPackageLineItems ? 'vaps' : '']"> :class="[this.displayedNonPackageLineItems ? 'vaps' : '']">
<span>{{ lineItem.name }}</span> <span>{{ lineItem.name }}</span>
<span><a href="#">Remove</a></span> <textLink
ref="removeLink"
linkType="text"
text="showMoreShopsLinkText"
href="#!"
@click-event="removeItem(lineItem)" />
<span>{{ lineItem.price }}</span> <span>{{ lineItem.price }}</span>
</div> </div>
<div v-if="hasRecycleLineItem"> <div v-if="hasRecycleLineItem">
@ -55,6 +65,7 @@ import {
findLineItemsWithPartType, findLineItemsWithPartType,
} from "@/helpers/service-package-helper"; } from "@/helpers/service-package-helper";
import reviewBlock from "@/layouts/review/review-block/review-block"; import reviewBlock from "@/layouts/review/review-block/review-block";
import textLink from "@/ux-components/text-link/text-link";
import textBlock from "@/digital-components/text-block/text-block"; import textBlock from "@/digital-components/text-block/text-block";
export default { export default {
@ -63,7 +74,7 @@ export default {
headerCmsWidgetName: String, headerCmsWidgetName: String,
servicePackageOptionsCmsName: String, servicePackageOptionsCmsName: String,
damage: Object, damage: Object,
orderLineItems: Object, storeLineItems: Object,
availableLineItems: Object, availableLineItems: Object,
allowableCartItems: Object, allowableCartItems: Object,
}, },
@ -110,7 +121,9 @@ export default {
return price; return price;
}, },
//START HERE removeItem(item) {
this.$emit("cart-remove", item);
},
getVapsLineItemsForSelectedPackage(packageName) { getVapsLineItemsForSelectedPackage(packageName) {
const packageContentTypes = getPackageContents( const packageContentTypes = getPackageContents(
this.glassToReplace, this.glassToReplace,
@ -167,7 +180,7 @@ export default {
displayedPackageLineItems() { displayedPackageLineItems() {
const displayedPackageLineItems = []; const displayedPackageLineItems = [];
const packageLineItems = this.getVapsLineItemsForSelectedPackage(this.packageLevel); const packageLineItems = this.getVapsLineItemsForSelectedPackage(this.packageLevel);
//TO DO Could we get the same list from this.orderLineItems? //TO DO Could we get the same list from this.storeLineItems?
packageLineItems?.forEach((item) => { packageLineItems?.forEach((item) => {
let price = item.sellingPrice + item.kitPrice + item.laborAmount; let price = item.sellingPrice + item.kitPrice + item.laborAmount;
const packageLineItem = { const packageLineItem = {
@ -220,11 +233,11 @@ export default {
return this.damage.isRepair; return this.damage.isRepair;
}, },
vaps() { vaps() {
const vaps = this.orderLineItems?.vaps; const vaps = this.storeLineItems?.vaps;
return vaps?.length > 0 ? vaps : []; return vaps?.length > 0 ? vaps : [];
}, },
supportingItems() { supportingItems() {
const supportingItems = this.orderLineItems?.supportingItems; const supportingItems = this.storeLineItems?.supportingItems;
return supportingItems?.length > 0 ? supportingItems : []; return supportingItems?.length > 0 ? supportingItems : [];
}, },
recycleLabel() { recycleLabel() {
@ -248,6 +261,7 @@ export default {
}, },
components: { components: {
textBlock, textBlock,
textLink,
}, },
}; };
</script> </script>

View file

@ -17,9 +17,10 @@
<cart <cart
:damage="damageInfo" :damage="damageInfo"
:orderLineItems="orderLineItems" :storeLineItems="storeLineItems"
:availableLineItems="cartItems" :availableLineItems="cartItems"
servicePackageOptionsCmsName="ServicePackageTitle" /> servicePackageOptionsCmsName="ServicePackageTitle"
@cart-remove="cartRemove" />
<div> <div>
<alert <alert
@ -32,7 +33,7 @@
</div> </div>
<add-vaps-modal-buttons <add-vaps-modal-buttons
:cart="cartItems" :cartItems="cartItems"
:wiperItems="availableWipers" :wiperItems="availableWipers"
:rainDefenseItem="availableRainDefense" :rainDefenseItem="availableRainDefense"
vapsTilesCmsName="VapsProductTiles" /> vapsTilesCmsName="VapsProductTiles" />
@ -163,15 +164,20 @@ export default {
"payment-method", "payment-method",
false false
); );
const storeLineItems = store.getters.lineItems;
const cartItems = [
...storeLineItems.glassParts,
...storeLineItems.supportingItems,
...storeLineItems.vaps,
];
// Call the "next" function to complete the transition to this page. // Call the "next" function to complete the transition to this page.
next((vm) => { next((vm) => {
vm.setCmsContent(resultMap.cmsContent); vm.setCmsContent(resultMap.cmsContent);
vm.pricedGlassParts = clonedGlassParts;
vm.supportingItems = resultMap.supportingItems;
vm.availableLineItems = pricingResults; vm.availableLineItems = pricingResults;
vm.availableWipers = resultMap.wipers; vm.availableWipers = resultMap.wipers;
vm.availableRainDefense = resultMap.rainDefense; vm.availableRainDefense = resultMap.rainDefense;
vm.cartItems = cartItems;
}); });
}, },
data() { data() {
@ -195,6 +201,22 @@ export default {
vapsItemsSelectedAction(vapsItemsSelected) { vapsItemsSelectedAction(vapsItemsSelected) {
this.cartItems = vapsItemsSelected; this.cartItems = vapsItemsSelected;
}, },
// TODO (as part of CSR-1384) enable adding to the cart
// vapsItemsSelectedAction(vapsItemsSelected) {
// this.cartItems = vapsItemsSelected;
// },
cartRemove(item) {
const matchedIndices = [];
this.cartItems.forEach((cartItem, i) => {
if (cartItem.partType === item.partType) {
console.log("adding this to matchedIndices: ", i);
matchedIndices.push(i);
}
});
this.cartItems = this.cartItems.filter((cartItem, index) => {
return cartItem.partType !== item.partType;
});
},
backButtonAction() { backButtonAction() {
this.dispatchStoreAction(storeActions.SAVE_PIA_ERROR_CODE, null, false); this.dispatchStoreAction(storeActions.SAVE_PIA_ERROR_CODE, null, false);
this.$router.navigateWithoutSaving(this.navigationScenarios.CLICKED_BACK, this.$route); this.$router.navigateWithoutSaving(this.navigationScenarios.CLICKED_BACK, this.$route);
@ -245,7 +267,8 @@ export default {
damageInfo() { damageInfo() {
return this.$store.getters.damage; return this.$store.getters.damage;
}, },
orderLineItems() { storeLineItems() {
// console.log("storeLineItems, aka lineItems from store: ", this.$store.getters.lineItems)
return this.$store.getters.lineItems; return this.$store.getters.lineItems;
}, },
}, },