Merge pull request #126 from Safelite/feature/SSR-220

Feature/ssr 220
This commit is contained in:
Kulbhushan Kaushik 2023-01-19 08:23:55 -05:00 committed by GitHub
commit 70e441bce2
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 37 additions and 18 deletions

View file

@ -9,7 +9,7 @@
<textboxQuestion
inputId="policyNumberField"
cmsWidgetName="PolicyNumberQuestion"
v-model="policyNumber"
v-model="welcomePageModel.policyNumber"
isRequired
ref="policyNumber"
disableAutoFill
@ -21,7 +21,7 @@
<textboxQuestion
type="date"
cmsWidgetName="DateOfLossQuestion"
v-model="dateOfLoss"
v-model="welcomePageModel.dateOfLoss"
inputId="dateOfLossField"
isRequired
ref="dateOfLoss"
@ -41,7 +41,7 @@
<div class="col">
<dropdownQuestion
cmsWidgetName="DamageCauseQuestion"
v-model="damageCause"
v-model="welcomePageModel.damageCause"
ref="damageCause"
inputId="damageCauseQuestionField"
:options="DamageCauseOptions"
@ -55,7 +55,7 @@
<textboxQuestion
inputId="damageCityField"
cmsWidgetName="DamageCityQuestion"
v-model="damageCity"
v-model="welcomePageModel.damageCity"
isRequired
ref="damageCity"
disableAutoFill
@ -66,7 +66,7 @@
<div class="col">
<dropdownQuestion
cmsWidgetName="DamageStateQuestion"
v-model="damageState"
v-model="welcomePageModel.damageState"
ref="state"
inputId="8fdf9dc2e13e430eb57529499dceb3eb"
:options="stateOptions"
@ -79,7 +79,7 @@
<div class="row mt-4">
<buttonQuestion
cmsWidgetName="GlassOnlyQuestion"
v-model="isDamageGlassOnly"
v-model="welcomePageModel.isDamageGlassOnly"
inputId = "isDamageGlassOnly"
:answers="DamageGlassOnlyOptions"
:questionText="DamageGlassOnlyQuestion"
@ -94,7 +94,7 @@
<textboxQuestion
inputId="phoneNumberField"
cmsWidgetName="PhoneNumberQuestion"
v-model="phoneNumber"
v-model="welcomePageModel.phoneNumber"
validationRules="phone-number-required|phone-number-format"
isRequired
ref="phoneNumber"
@ -107,7 +107,7 @@
<textboxQuestion
inputId="emailField"
cmsWidgetName="EmailAddressQuestion"
v-model="email"
v-model="welcomePageModel.email"
ref="email"
validationRules="email-address-required|email-address-format"
isRequired
@ -145,6 +145,7 @@
import { required, regex } from "@/helpers/validation-rules";
import { errorMessages } from "@/constants/error-messages";
import BaseFormMixin from '@/mixins/base-form-mixin.js';
import { useMainStore } from '@/store';
//define validation rules
defineRule("loss-date-required", required(errorMessages.LOSS_DATE_REQUIRED));
@ -176,8 +177,8 @@
mixins: [BaseFormMixin],
data() {
return {
welcomePageModel: {
policyNumber: "",
policyZipCode: "",
dateOfLoss: "",
damageCause: "",
damageState: "",
@ -185,8 +186,13 @@
isDamageGlassOnly: "",
phoneNumber: "",
email: ""
},
};
},
setup() {
const mainStore = useMainStore();
return { mainStore };
},
async beforeRouteEnter(to, from, next)
{
// Call APIs
@ -210,6 +216,7 @@
methods:
{
async forwardButtonAction() {
this.mainStore.updatePolicyData(this.welcomePageModel);
return this.navigateForward();
},
@ -299,14 +306,6 @@
};
},
},
welcomePageModel: {
get: function () {
return this.modelValue;
},
set: function (newValue) {
this.$emit("update:modelValue", newValue);
},
},
},
components: {
siteHeader,

View file

@ -41,6 +41,16 @@ const getDefaultState = () => {
moldingQuestionAnswers: null,
capabilityQuestionAnswers: null,
},
policy: {
policyNumber: null,
dateOfLoss: null,
damageCause: null,
damageState: null,
damageCity: null,
isDamageGlassOnly: null,
phoneNumber: null,
email: null,
},
customer: {
address: {
streetAddress: null,
@ -635,7 +645,17 @@ export const useMainStore = defineStore({
updatePageData(pageData) {
this.applicationUser.pageData[pageData.page] = pageData.data;
},
updatePolicyData(welcomePageModel)
{
this.order.policy.policyNumber = welcomePageModel?.policyNumber;
this.order.policy.dateOfLoss = welcomePageModel?.dateOfLoss;
this.order.policy.damageCause = welcomePageModel?.damageCause;
this.order.policy.damageState = welcomePageModel?.damageState;
this.order.policy.damageCity = welcomePageModel?.damageCity;
this.order.policy.isDamageGlassOnly = welcomePageModel?.isDamageGlassOnly;
this.order.policy.phoneNumber = welcomePageModel?.phoneNumber;
this.order.policy.email = welcomePageModel?.email;
},
savePartQuestionAnswers(partQuestionAnswersArray) {
// if part question answers have changed, reset subsequent question answers
const sortedPreviousResultsArray = sortArrayOfObjectsByPropertyValue(