WIP
This commit is contained in:
parent
5b6474fa48
commit
ffd829cee9
2 changed files with 83 additions and 13 deletions
|
|
@ -22,7 +22,7 @@
|
||||||
<textLink
|
<textLink
|
||||||
ref="removeLink"
|
ref="removeLink"
|
||||||
linkType="text"
|
linkType="text"
|
||||||
text="showMoreShopsLinkText"
|
:text="removeLinkText"
|
||||||
href="#!"
|
href="#!"
|
||||||
@click-event="removeItem(lineItem)" />
|
@click-event="removeItem(lineItem)" />
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -35,7 +35,7 @@
|
||||||
<textLink
|
<textLink
|
||||||
ref="removeLink"
|
ref="removeLink"
|
||||||
linkType="text"
|
linkType="text"
|
||||||
text="showMoreShopsLinkText"
|
text="removeLinkText"
|
||||||
href="#!"
|
href="#!"
|
||||||
@click-event="removeItem(lineItem)" />
|
@click-event="removeItem(lineItem)" />
|
||||||
<span>{{ lineItem.price }}</span>
|
<span>{{ lineItem.price }}</span>
|
||||||
|
|
@ -45,7 +45,10 @@
|
||||||
><span>{{ recycleFee }}</span>
|
><span>{{ recycleFee }}</span>
|
||||||
</div>
|
</div>
|
||||||
<!-- Sub total, sales tax, total columns -->
|
<!-- Sub total, sales tax, total columns -->
|
||||||
<div class="sub-total"><span>Subtotal</span><span>$320</span></div>
|
<div class="sub-total">
|
||||||
|
<span>Subtotal</span>
|
||||||
|
<span>{{ subTotal }}</span>
|
||||||
|
</div>
|
||||||
<div class="sales-tax"><span>Sales tax</span><span>$1</span></div>
|
<div class="sales-tax"><span>Sales tax</span><span>$1</span></div>
|
||||||
<div class="amount-due"><span>Amount due</span><span>$321</span></div>
|
<div class="amount-due"><span>Amount due</span><span>$321</span></div>
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -63,10 +66,12 @@ import {
|
||||||
} from "@/helpers/service-package-helper";
|
} from "@/helpers/service-package-helper";
|
||||||
import textLink from "@/ux-components/text-link/text-link";
|
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";
|
||||||
|
import { deepClone } from "@/helpers/object-helper";
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: "modal",
|
name: "modal",
|
||||||
props: {
|
props: {
|
||||||
|
modelValue: Object,
|
||||||
damage: Object,
|
damage: Object,
|
||||||
servicePackageOptionsCmsName: String,
|
servicePackageOptionsCmsName: String,
|
||||||
availableLineItems: Object,
|
availableLineItems: Object,
|
||||||
|
|
@ -76,7 +81,6 @@ export default {
|
||||||
return {
|
return {
|
||||||
isActive: false,
|
isActive: false,
|
||||||
packageWithVAPS: false,
|
packageWithVAPS: false,
|
||||||
amountDue: this.getAmountDue(),
|
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
|
@ -130,6 +134,7 @@ export default {
|
||||||
...findLineItemsWithPartType(vapType, this.availableLineItems)
|
...findLineItemsWithPartType(vapType, this.availableLineItems)
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
return vapsLineItemsForSelectedPackage;
|
return vapsLineItemsForSelectedPackage;
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|
@ -167,9 +172,18 @@ export default {
|
||||||
return packagePriceString;
|
return packagePriceString;
|
||||||
// return (packagePriceString.length > 0) ? packagePriceString : "Test String";
|
// return (packagePriceString.length > 0) ? packagePriceString : "Test String";
|
||||||
},
|
},
|
||||||
|
// cartItems: {
|
||||||
|
// get: function () {
|
||||||
|
// return this.answersToDisplay;
|
||||||
|
// },
|
||||||
|
// set: function (newValue) {
|
||||||
|
|
||||||
|
// },
|
||||||
|
// },
|
||||||
displayedPackageLineItems() {
|
displayedPackageLineItems() {
|
||||||
const displayedPackageLineItems = [];
|
const displayedPackageLineItems = [];
|
||||||
const packageLineItems = this.getVapsLineItemsForSelectedPackage(this.packageLevel);
|
const packageLineItems = this.getVapsLineItemsForSelectedPackage(this.packageLevel);
|
||||||
|
|
||||||
// TODO Determine if we could get the same list from this.lineItems?
|
// TODO Determine if we could get the same list from this.lineItems?
|
||||||
packageLineItems?.forEach((item) => {
|
packageLineItems?.forEach((item) => {
|
||||||
let price = item.sellingPrice + item.kitPrice + item.laborAmount;
|
let price = item.sellingPrice + item.kitPrice + item.laborAmount;
|
||||||
|
|
@ -181,6 +195,7 @@ export default {
|
||||||
};
|
};
|
||||||
displayedPackageLineItems.push(packageLineItem);
|
displayedPackageLineItems.push(packageLineItem);
|
||||||
});
|
});
|
||||||
|
|
||||||
return displayedPackageLineItems;
|
return displayedPackageLineItems;
|
||||||
},
|
},
|
||||||
displayedNonPackageLineItems() {
|
displayedNonPackageLineItems() {
|
||||||
|
|
@ -244,12 +259,63 @@ export default {
|
||||||
// }
|
// }
|
||||||
return true;
|
return true;
|
||||||
},
|
},
|
||||||
|
removeLinkText() {
|
||||||
|
// TODO: retrieve from CMS
|
||||||
|
return "Remove";
|
||||||
|
},
|
||||||
|
cartLineItems() {
|
||||||
|
const cartLineItems = [];
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
const glassParts = this.lineItems.glassParts?.flat();
|
||||||
|
if (glassParts) {
|
||||||
|
glassParts.forEach((glassPart) => {
|
||||||
|
cartLineItems.push(glassPart);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
const supportingItems = this.lineItems.supportingItems;
|
||||||
|
if (supportingItems) {
|
||||||
|
supportingItems.forEach((supportingItem) => {
|
||||||
|
cartLineItems.push(supportingItem);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
const vaps = this.lineItems.vaps;
|
||||||
|
if (vaps) {
|
||||||
|
vaps.forEach((vap) => {
|
||||||
|
cartLineItems.push(vap);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
return cartLineItems;
|
||||||
|
},
|
||||||
|
subTotal() {
|
||||||
|
let subTotal = 0;
|
||||||
|
const pricedLineItems = this.cartLineItems.filter(i => Object.hasOwn(i, "sellingPrice"));
|
||||||
|
|
||||||
|
pricedLineItems.forEach((lineItem) => {
|
||||||
|
|
||||||
|
subTotal += (lineItem.sellingPrice ?? 0) +
|
||||||
|
(lineItem.kitPrice ?? 0) +
|
||||||
|
(lineItem.laborAmount ?? 0);
|
||||||
|
});
|
||||||
|
return subTotal + this.getVapsPrice(this.packageLevel);
|
||||||
|
},
|
||||||
|
salesTax() {
|
||||||
|
return "$2.50";
|
||||||
|
},
|
||||||
|
amountDue() {
|
||||||
|
return this.getAmountDue();
|
||||||
|
},
|
||||||
},
|
},
|
||||||
components: {
|
components: {
|
||||||
textBlock,
|
textBlock,
|
||||||
textLink,
|
textLink,
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="scss">
|
<style lang="scss">
|
||||||
|
|
|
||||||
|
|
@ -124,6 +124,13 @@ export default {
|
||||||
async beforeRouteEnter(to, from, next) {
|
async beforeRouteEnter(to, from, next) {
|
||||||
// Call APIs
|
// Call APIs
|
||||||
const cmsContentPromise = fetchCmsContentForPage(to.query.fmgPage);
|
const cmsContentPromise = fetchCmsContentForPage(to.query.fmgPage);
|
||||||
|
|
||||||
|
const supportingItemsPromise = baseMixin.methods.dispatchStoreActionWithLogging(
|
||||||
|
storeActions.GET_SUPPORTING_ITEMS,
|
||||||
|
null,
|
||||||
|
"payment-method"
|
||||||
|
);
|
||||||
|
|
||||||
const wipersPromise = baseMixin.methods.dispatchStoreActionWithLogging(
|
const wipersPromise = baseMixin.methods.dispatchStoreActionWithLogging(
|
||||||
storeActions.GET_WIPERS,
|
storeActions.GET_WIPERS,
|
||||||
null,
|
null,
|
||||||
|
|
@ -135,13 +142,6 @@ export default {
|
||||||
null,
|
null,
|
||||||
"payment-method"
|
"payment-method"
|
||||||
);
|
);
|
||||||
console.log("rainDefensePromise: ", rainDefensePromise);
|
|
||||||
|
|
||||||
const supportingItemsPromise = baseMixin.methods.dispatchStoreActionWithLogging(
|
|
||||||
storeActions.GET_SUPPORTING_ITEMS,
|
|
||||||
null,
|
|
||||||
"payment-method"
|
|
||||||
);
|
|
||||||
|
|
||||||
const promiseResultMap = [
|
const promiseResultMap = [
|
||||||
{
|
{
|
||||||
|
|
@ -181,7 +181,9 @@ export default {
|
||||||
"payment-method",
|
"payment-method",
|
||||||
false
|
false
|
||||||
);
|
);
|
||||||
const lineItems = store.getters.lineItems;
|
|
||||||
|
|
||||||
|
const lineItems = store.getters.order.lineItems;
|
||||||
|
|
||||||
const cartItems = [...glassParts, ...lineItems.supportingItems, ...lineItems.vaps]; // TOBEREMOVED BY AJC IN CSR-1384
|
const cartItems = [...glassParts, ...lineItems.supportingItems, ...lineItems.vaps]; // TOBEREMOVED BY AJC IN CSR-1384
|
||||||
|
|
||||||
|
|
@ -197,7 +199,6 @@ export default {
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
cartItems: [], // TOBEREMOVED BY AJC IN CSR-1384
|
cartItems: [], // TOBEREMOVED BY AJC IN CSR-1384
|
||||||
|
|
||||||
lineItems: [],
|
lineItems: [],
|
||||||
availableLineItems: [],
|
availableLineItems: [],
|
||||||
displayPaypalAlert: this.getPaypalAlert(),
|
displayPaypalAlert: this.getPaypalAlert(),
|
||||||
|
|
@ -205,6 +206,9 @@ export default {
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
getLineItemsFromStore() {
|
||||||
|
return store.getters.order.lineItems;
|
||||||
|
},
|
||||||
arePagePrerequisitesValid() {
|
arePagePrerequisitesValid() {
|
||||||
// Line Items
|
// Line Items
|
||||||
const packageReqs = !!store.getters.order.lineItems.supportingItems;
|
const packageReqs = !!store.getters.order.lineItems.supportingItems;
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue