diff --git a/src/constants/error-messages.js b/src/constants/error-messages.js index 3fcd5848..11e1d050 100644 --- a/src/constants/error-messages.js +++ b/src/constants/error-messages.js @@ -37,7 +37,12 @@ const errorMessages = { POLICYHOLDER_FIRST_NAME_REQUIRED: "Please enter the policyholder first name", POLICYHOLDER_LAST_NAME_REQUIRED: "Please enter the policyholder last name", - ACKNOWLEDGEMENT_REQUIRED: "You must agree to the terms to continue" + ACKNOWLEDGEMENT_REQUIRED: "You must agree to the terms to continue", + + YEAR_REQUIRED: "Please select your vehicle year", + MAKE_REQUIRED: "Please select your vehicle make", + MODEL_REQUIRED: "Please select your vehicle model", + STYLE_REQUIRED: "Please select your vehicle style" }; diff --git a/src/layouts/entry-page/entry-page.vue b/src/layouts/entry-page/entry-page.vue index 8fa467d5..4f06bb03 100644 --- a/src/layouts/entry-page/entry-page.vue +++ b/src/layouts/entry-page/entry-page.vue @@ -147,6 +147,11 @@ this.mainStore.issConfig.disabledFields.policyNumber = true; break; + case "policyzipcode": + this.mainStore.order.policy.policyZipCode = value; + this.mainStore.issConfig.disabledFields.policyZipCode = true; + break; + case "lossdate": // NOTE: May need some date parsing logic in here depending on client. this.mainStore.order.policy.dateOfLoss = value; @@ -167,7 +172,7 @@ break; } } - }, + } }, computed:{ }, diff --git a/src/layouts/service-location/service-location.vue b/src/layouts/service-location/service-location.vue index eac6e7ec..5b42579c 100644 --- a/src/layouts/service-location/service-location.vue +++ b/src/layouts/service-location/service-location.vue @@ -3,7 +3,7 @@
- +
diff --git a/src/layouts/vehicle-damage/vehicle-damage.vue b/src/layouts/vehicle-damage/vehicle-damage.vue index f01ff4a4..5106203c 100644 --- a/src/layouts/vehicle-damage/vehicle-damage.vue +++ b/src/layouts/vehicle-damage/vehicle-damage.vue @@ -95,9 +95,12 @@ export default { name: "vehicle-damage", mixins: [BaseFormMixin], async beforeRouteEnter(to, from, next) { + + const store = useMainStore(); + // Call APIs const cmsContentPromise = fetchCmsContentForPage(to.query.issPage); - const damageOptionsPromise = useMainStore().getDamageOptions(useMainStore().order.vehicle.carId); + const damageOptionsPromise = store.getDamageOptions(store.order.vehicle.carId); // Settle promises and get results const promiseResultMap = [ diff --git a/src/layouts/vehicle-parts/vehicle-parts.vue b/src/layouts/vehicle-parts/vehicle-parts.vue index 08caf800..83d4077f 100644 --- a/src/layouts/vehicle-parts/vehicle-parts.vue +++ b/src/layouts/vehicle-parts/vehicle-parts.vue @@ -108,7 +108,7 @@ data() { }, computed: { isForwardActionDisabled() { - return this.selectedGlassPartNumbers.length !== this.PartsFromApi.partsOrQuestions.length + return this.selectedGlassPartNumbers?.length !== this.PartsFromApi.partsOrQuestions?.length }, selectedGlassPartNumbers() { // Compile all selected parts from the page. @@ -124,7 +124,7 @@ computed: { const partsData = this.PartsFromApi; // Map API result data, to vehicle-parts data structure - const mappedData = partsData.partsOrQuestions.map((g) => { + const mappedData = partsData.partsOrQuestions?.map((g) => { return { glassName: g.glassName, glassLocation: g.glassLocation, diff --git a/src/layouts/vehicle-selection/make-question/make-question.vue b/src/layouts/vehicle-selection/make-question/make-question.vue new file mode 100644 index 00000000..1ab0e45d --- /dev/null +++ b/src/layouts/vehicle-selection/make-question/make-question.vue @@ -0,0 +1,76 @@ + + + diff --git a/src/layouts/vehicle-selection/model-question/model-question.vue b/src/layouts/vehicle-selection/model-question/model-question.vue new file mode 100644 index 00000000..e1cb2a75 --- /dev/null +++ b/src/layouts/vehicle-selection/model-question/model-question.vue @@ -0,0 +1,77 @@ + + + diff --git a/src/layouts/vehicle-selection/style-question/style-question.vue b/src/layouts/vehicle-selection/style-question/style-question.vue new file mode 100644 index 00000000..b957d923 --- /dev/null +++ b/src/layouts/vehicle-selection/style-question/style-question.vue @@ -0,0 +1,76 @@ + + + diff --git a/src/layouts/vehicle-selection/vehicle-selection.vue b/src/layouts/vehicle-selection/vehicle-selection.vue new file mode 100644 index 00000000..cb53c2ea --- /dev/null +++ b/src/layouts/vehicle-selection/vehicle-selection.vue @@ -0,0 +1,183 @@ + + + diff --git a/src/layouts/vehicle-selection/year-question/year-question.vue b/src/layouts/vehicle-selection/year-question/year-question.vue new file mode 100644 index 00000000..97ba0090 --- /dev/null +++ b/src/layouts/vehicle-selection/year-question/year-question.vue @@ -0,0 +1,63 @@ + + + \ No newline at end of file diff --git a/src/layouts/welcome-page/welcome-page.vue b/src/layouts/welcome-page/welcome-page.vue index 1d9d2703..74ebdb6a 100644 --- a/src/layouts/welcome-page/welcome-page.vue +++ b/src/layouts/welcome-page/welcome-page.vue @@ -5,7 +5,7 @@
-
+
-
+
+ ref="policyZip" + validationRules="policy-zip-required|policy-zip-format" />
@@ -152,51 +154,49 @@