Merge branch 'develop' into feature/CSR-1392
This commit is contained in:
commit
4a665a9b2a
3 changed files with 55 additions and 18 deletions
|
|
@ -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");
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
|
||||||
|
|
@ -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>
|
||||||
|
|
|
||||||
|
|
@ -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;
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue