Plug into real stored values + new logic
This commit is contained in:
parent
64ab3afa78
commit
6b403ac340
2 changed files with 94 additions and 1 deletions
|
|
@ -7,11 +7,17 @@
|
|||
|
||||
<script>
|
||||
import reviewBlock from "@/layouts/review/review-block/review-block";
|
||||
import {
|
||||
getHighestFullySatisfiedTier,
|
||||
containsLineItemWithPartType,
|
||||
} from "@/helpers/service-package-helper";
|
||||
import { partTypeStrings } from "@/constants/part-type-strings";
|
||||
|
||||
export default {
|
||||
name: "service-package-review",
|
||||
props: {
|
||||
cmsWidgetName: String,
|
||||
availableLineItems: Array,
|
||||
},
|
||||
data() {
|
||||
return {};
|
||||
|
|
@ -23,12 +29,69 @@ export default {
|
|||
},
|
||||
computed: {
|
||||
displayContent() {
|
||||
return [
|
||||
...this.packageName,
|
||||
"-",
|
||||
...this.defaultPackageText,
|
||||
...this.frontWipersText,
|
||||
...this.rearWipersText,
|
||||
...this.rainDefenseText,
|
||||
];
|
||||
},
|
||||
packageName() {
|
||||
return [this.packageLevel];
|
||||
},
|
||||
defaultPackageText() {
|
||||
return [
|
||||
"New replacement windshield",
|
||||
"Expert installation and recalibration",
|
||||
"Nationwide lifetime warranty",
|
||||
];
|
||||
},
|
||||
hasFrontWiperVAPS() {
|
||||
return containsLineItemWithPartType(partTypeStrings.FRONT_WIPER, this.vaps);
|
||||
},
|
||||
hasRearWiperVAPS() {
|
||||
return containsLineItemWithPartType(partTypeStrings.REAR_WIPER, this.vaps);
|
||||
},
|
||||
hasRainDefenseVAPS() {
|
||||
return containsLineItemWithPartType(partTypeStrings.RAIN_DEFENSE, this.vaps);
|
||||
},
|
||||
packageLevel() {
|
||||
return getHighestFullySatisfiedTier(
|
||||
this.glassToReplace,
|
||||
this.availableLineItems,
|
||||
this.isRepair,
|
||||
this.vaps
|
||||
);
|
||||
},
|
||||
frontWipersText() {
|
||||
if (this.hasFrontWiperVAPS) {
|
||||
return ["New front wiper blades"];
|
||||
}
|
||||
return [];
|
||||
},
|
||||
rearWipersText() {
|
||||
if (this.hasRearWiperVAPS) {
|
||||
return ["New rear wiper blade"];
|
||||
}
|
||||
return [];
|
||||
},
|
||||
rainDefenseText() {
|
||||
if (this.hasRainDefenseVAPS) {
|
||||
return ["Rain Defense treatment"];
|
||||
}
|
||||
return [];
|
||||
},
|
||||
glassToReplace() {
|
||||
return this.$store.getters.order.damage.glassToReplace;
|
||||
},
|
||||
isRepair() {
|
||||
return this.$store.getters.order.damage.isRepair;
|
||||
},
|
||||
vaps() {
|
||||
return this.$store.getters.lineItems.vaps;
|
||||
},
|
||||
},
|
||||
components: {
|
||||
reviewBlock,
|
||||
|
|
|
|||
|
|
@ -55,6 +55,7 @@
|
|||
|
||||
<servicePackageReview
|
||||
cmsWidgetName="ServicePackageReviewWidget"
|
||||
:availableLineItems="availableLineItems"
|
||||
@edit-clicked="editServicePackage" />
|
||||
</div>
|
||||
|
||||
|
|
@ -83,12 +84,19 @@ import servicePackageReview from "@/layouts/review/review-sections/service-packa
|
|||
|
||||
import { fetchCmsContentForPage } from "@/helpers/cms-content-helper";
|
||||
import { settleAllPromises } from "@/helpers/layout-helper";
|
||||
import baseMixin from "@/mixins/base-mixin.js";
|
||||
import { storeActions } from "@/constants/store-actions";
|
||||
|
||||
export default {
|
||||
name: "review",
|
||||
async beforeRouteEnter(to, from, next) {
|
||||
// Call APIs
|
||||
const cmsContentPromise = fetchCmsContentForPage(to.query.fmgPage);
|
||||
// Get rain defense and wiper availability for package review section.
|
||||
const wipersPromise = baseMixin.methods.dispatchStoreAction(storeActions.GET_WIPERS);
|
||||
const rainDefensePromise = baseMixin.methods.dispatchStoreAction(
|
||||
storeActions.GET_RAIN_DEFENSE
|
||||
);
|
||||
|
||||
// Settle promises and get results
|
||||
const promiseResultMap = [
|
||||
|
|
@ -96,16 +104,30 @@ export default {
|
|||
resultKey: "cmsContent",
|
||||
promise: cmsContentPromise,
|
||||
},
|
||||
{
|
||||
resultKey: "wipers",
|
||||
promise: wipersPromise,
|
||||
},
|
||||
{
|
||||
resultKey: "rainDefense",
|
||||
promise: rainDefensePromise,
|
||||
},
|
||||
];
|
||||
|
||||
const resultMap = await settleAllPromises(promiseResultMap);
|
||||
|
||||
next((vm) => {
|
||||
vm.setCmsContent(resultMap.cmsContent);
|
||||
|
||||
vm.availableWipers = resultMap.wipers;
|
||||
vm.availableRainDefense = [resultMap.rainDefense];
|
||||
});
|
||||
},
|
||||
data() {
|
||||
return {};
|
||||
return {
|
||||
availableWipers: null,
|
||||
availableRainDefense: null,
|
||||
};
|
||||
},
|
||||
methods: {
|
||||
arePagePrerequisitesValid() {
|
||||
|
|
@ -143,6 +165,14 @@ export default {
|
|||
damageInfo() {
|
||||
return this.$store.getters.damage;
|
||||
},
|
||||
availableLineItems() {
|
||||
return [
|
||||
...(this.$store.getters.lineItems.glassParts ?? []),
|
||||
...(this.$store.getters.lineItems.supportingItems ?? []),
|
||||
...(this.availableWipers ?? []),
|
||||
...(this.availableRainDefense ?? []),
|
||||
];
|
||||
},
|
||||
},
|
||||
components: {
|
||||
funnelHeader,
|
||||
|
|
|
|||
Loading…
Reference in a new issue