+
+
-
+
-
-
-
-
+ :availableLineItems="cartItems"
+ servicePackageOptionsCmsName="ServicePackageTitle" />
-
+
-
-
-
-
-
-
-
-
-
-
-
+
-
-
@@ -69,57 +45,35 @@ import funnelHeader from "@/fmg-components/funnel-header/funnel-header";
import navbar from "@/fmg-components/nav-bar/nav-bar";
import funnelSubHeader from "@/fmg-components/funnel-sub-header/funnel-sub-header";
import loadingModal from "@/fmg-components/loading-modal/loading-modal.vue";
-
-import vehicleReview from "@/layouts/review/review-sections/vehicle-review/vehicle-review";
-import damageReview from "@/layouts/review/review-sections/damage-review/damage-review";
-import servicePackageReview from "@/layouts/review/review-sections/service-package-review/service-package-review";
-import serviceLocationReview from "@/layouts/review/review-sections/service-location-review/service-location-review";
import cart from "@/fmg-components/cart/cart";
+import addVapsModalButtons from "@/fmg-components/add-vaps-modal-buttons/add-vaps-modal-buttons";
import baseMixin from "@/mixins/base-mixin.js";
-import vehicleQuestionsMixin from "../../mixins/vehicle-questions-mixin";
import { settleAllPromises } from "@/helpers/layout-helper";
import { storeActions } from "@/constants/store-actions";
import store from "@/store";
import { fetchCmsContentForPage } from "@/helpers/cms-content-helper";
-import { required } from "@/helpers/validation-rules";
-import { errorMessages } from "@/constants/error-messages";
-import { Form, defineRule } from "vee-validate";
-import { navigateToHeritageFunnel } from "@/helpers/heritage-integration/navigation-helper";
-import { applicationConfig } from "@/constants/application-config";
-
-defineRule("option-required", required(errorMessages.OPTION_REQUIRED));
-
-const ALLOWABLE_CART_ITEMS = [
- {
- partType: "FRONT WIPER",
- isRemovable: true,
- },
- {
- partType: "REAR WIPER",
- isRemovable: true,
- },
- {
- partType: "RAIN DEFENSE",
- isRemovable: true,
- },
- {
- partType: "RECYCLE FEE",
- isRemovable: false,
- }
-]
+import { Form } from "vee-validate";
export default {
name: "paymentMethod",
async beforeRouteEnter(to, from, next) {
// Call APIs
const cmsContentPromise = fetchCmsContentForPage(to.query.fmgPage);
- const wipersPromise = baseMixin.methods.dispatchStoreAction(storeActions.GET_WIPERS);
- const rainDefensePromise = baseMixin.methods.dispatchStoreAction(
- storeActions.GET_RAIN_DEFENSE
+ const wipersPromise = baseMixin.methods.dispatchStoreActionWithLogging(
+ storeActions.GET_WIPERS,
+ null,
+ "payment-method"
);
- const supportingItemsPromise = baseMixin.methods.dispatchStoreAction(
- storeActions.GET_SUPPORTING_ITEMS
+ const rainDefensePromise = baseMixin.methods.dispatchStoreActionWithLogging(
+ storeActions.GET_RAIN_DEFENSE,
+ null,
+ "payment-method"
+ );
+ const supportingItemsPromise = baseMixin.methods.dispatchStoreActionWithLogging(
+ storeActions.GET_SUPPORTING_ITEMS,
+ null,
+ "payment-method"
);
const promiseResultMap = [
@@ -151,12 +105,12 @@ export default {
...resultMap.wipers,
...clonedGlassParts,
];
- console.log("Available Line Items", availableLineItems);
- const pricingResults = await baseMixin.methods.dispatchStoreAction(
+ const pricingResults = await baseMixin.methods.dispatchStoreActionWithLogging(
storeActions.PRICE_ORDER_ITEMS_AND_SAVE_SERVER_DATA,
{
availableLineItems: availableLineItems,
},
+ "payment-method",
false
);
@@ -166,13 +120,15 @@ export default {
vm.pricedGlassParts = clonedGlassParts;
vm.supportingItems = resultMap.supportingItems;
vm.availableLineItems = pricingResults;
- vm.isInsuranceSelected = vm.getDefaultIsInsuranceSelectedValue(vm.availableLineItems);
+ vm.availableWipers = resultMap.wipers;
+ vm.availableRainDefense = resultMap.rainDefense;
});
},
data() {
return {
- isInsuranceSelected: null,
- selectedVaps: null,
+ cartItems: [],
+ availableWipers: null,
+ availableRainDefense: null,
availableLineItems: null,
supportingItems: null,
pricedGlassParts: null,
@@ -180,34 +136,10 @@ export default {
},
methods: {
arePagePrerequisitesValid() {
- return (
- store.getters.order.serviceLocation.zipCode &&
- store.getters.order.serviceLocation.zipCodeCtu &&
- (store.getters.order.damage.isRepair ||
- (store.getters.order.lineItems?.glassParts != null &&
- store.getters.order.lineItems.glassParts.length > 0)) &&
- store.getters.order.referralNumber?.length !== 6
- );
- },
- getDefaultIsInsuranceSelectedValue(availableLineItems) {
- // Override if coming back from QuoteDetails. Remove override after Quote release
- const isInsuranceOverrideValue = this.$route.query?.isInsurance;
-
- const defaultIsInsuranceSelectedValue = this.$store.getters.order.payment.isInsurance;
- if (isInsuranceOverrideValue != null) {
- return isInsuranceOverrideValue == "true";
- } else if (defaultIsInsuranceSelectedValue != null) {
- return defaultIsInsuranceSelectedValue;
- } else {
- return availableLineItems
- ? baseMixin.methods.getTierOnePackagePrice(
- baseMixin.methods.filterOutFees(availableLineItems)
- ) > 300
- : null;
- }
+ return true;
},
vapsItemsSelectedAction(vapsItemsSelected) {
- this.selectedVaps = vapsItemsSelected;
+ this.cartItems = vapsItemsSelected;
},
backButtonAction() {},
forwardButtonAction() {
@@ -215,27 +147,12 @@ export default {
},
},
computed: {
- subHeaderTitle() {
- return this.getCmsContent("FunnelSubHeaderWidget", "HeaderText");
- },
- subHeaderBody() {
- return this.getCmsContent("FunnelSubHeaderWidget", "BodyText");
- },
- forwardButtonText() {
- return this.getCmsContent("FunnelFooterWidget", "ForwardButtonText");
- },
- vehicleInfo() {
- return this.$store.getters.vehicle;
- },
damageInfo() {
return this.$store.getters.damage;
},
orderLineItems() {
return this.$store.getters.lineItems;
},
- serviceLocationInfo() {
- return this.$store.getters.order.serviceLocation;
- },
},
components: {
funnelHeader,
@@ -243,16 +160,8 @@ export default {
funnelSubHeader,
Form,
loadingModal,
- // servicePackageReview,
- serviceLocationReview,
- vehicleReview,
- damageReview,
cart,
+ addVapsModalButtons,
},
};
-