From df3cdebf2e528ead5dd46a0212d10fe3d861b50d Mon Sep 17 00:00:00 2001 From: CarlNation Date: Mon, 11 May 2026 09:08:47 -0400 Subject: [PATCH] CASH-2468 policy info fields saved to store CASH-2468 policy info fields saved to store --- src/constants/error-messages.js | 4 + .../date-picker-popup/date-picker-popup.vue | 20 +- src/layouts/policy-info/policy-info.vue | 182 +++++++++++++++++- src/store/index.js | 11 ++ 4 files changed, 214 insertions(+), 3 deletions(-) diff --git a/src/constants/error-messages.js b/src/constants/error-messages.js index 6899c2aec..b5cbde3fa 100644 --- a/src/constants/error-messages.js +++ b/src/constants/error-messages.js @@ -44,6 +44,10 @@ const errorMessages = { DAMAGE_TYPES_REQUIRED: "How damage occurred is required", ZIP_CODE_REQUIRED: "Please enter your ZIP code", ZIP_CODE_FORMAT: "Zip must be 5 digits", + DATE_OF_BIRTH_REQUIRED: "Please enter your date of birth", + LOSS_TIME_REQUIRED: "Please enter your loss time", + LOSS_LOCATION_REQUIRED: "Please select your loss location", + SUBROGATION_REQUIRED: "Please make a selection", }; export { errorMessages }; diff --git a/src/digital-components/date-picker-popup/date-picker-popup.vue b/src/digital-components/date-picker-popup/date-picker-popup.vue index 7f3e109ac..ea24197bc 100644 --- a/src/digital-components/date-picker-popup/date-picker-popup.vue +++ b/src/digital-components/date-picker-popup/date-picker-popup.vue @@ -26,7 +26,8 @@ :min-date="minDate" :max-date="maxDate" :auto-apply="autoApply" - :text-input="textInput" + :text-input="resolvedTextInput" + :hide-input-icon="textInputOnly" :prevent-min-max-navigation="preventMinMaxNavigation" :teleport="true" :aria-labels="{ input: questionText }" @@ -107,6 +108,12 @@ export default { type: Boolean, default: false, }, + // Force manual entry: text input enabled, calendar popup never opens + // and the calendar icon is hidden. + textInputOnly: { + type: Boolean, + default: false, + }, preventMinMaxNavigation: { type: Boolean, default: false, @@ -155,7 +162,7 @@ export default { questionText() { if (!this.cmsWidgetName) return ""; const text = this.getCmsContent - ? this.getCmsContent(this.cmsWidgetName, "BodyText") + ? this.getCmsContent(this.cmsWidgetName, "QuestionText") : ""; return this.addOptionalText ? `${text} (optional)` : text; }, @@ -193,6 +200,15 @@ export default { clearable: this.clearable, }; }, + // Forwarded to VueDatePicker's `text-input` prop. When `textInputOnly` + // is set, force text input on AND tell the picker never to open its + // menu (so focus/click on the input is a no-op visually). + resolvedTextInput() { + if (this.textInputOnly) { + return { enabled: true, openMenu: false }; + } + return this.textInput; + }, }, methods: { onDateChange(newValue) { diff --git a/src/layouts/policy-info/policy-info.vue b/src/layouts/policy-info/policy-info.vue index bb860ee5e..f89e5db09 100644 --- a/src/layouts/policy-info/policy-info.vue +++ b/src/layouts/policy-info/policy-info.vue @@ -28,6 +28,40 @@ inputId="policyNumber" validationRules="policy-number-required" /> + + + + + + + + + + + + { vm.setCmsContent(resultMap.cmsContent); vm.clientConfig = resultMap.clientConfig; + debugLog(`clientConfig::${clientConfigPageName}`, JSON.stringify(vm.clientConfig)); }); }, @@ -256,6 +409,27 @@ export default { getCityFromStore() { return store.getters.order.policy.city; }, + getDateOfBirthFromStore() { + return store.getters.order.policy.dateOfBirth; + }, + getLastNameFromStore() { + return store.getters.order.policy.lastName; + }, + getStreetAddressFromStore() { + return store.getters.order.policy.streetAddress; + }, + getLossTimeFromStore() { + return store.getters.order.policy.lossTime; + }, + getSubrogationSelectedValueFromStore() { + return store.getters.order.policy.subrogation; + }, + getMorePolicyQuestionsFromStore() { + return store.getters.order.policy.morePolicyQuestions ?? []; + }, + getLossLocationFromStore() { + return store.getters.order.policy.lossLocation; + }, backButtonAction() { this.$router.navigateWithoutSaving( this.navigationScenarios.CLICKED_BACK, @@ -273,6 +447,12 @@ export default { state: this.policyState, city: this.city, morePolicyQuestions: this.morePolicyQuestions, + lossLocation: this.lossLocation, + lossTime: this.lossTime, + lastName: this.lastName, + dateOfBirth: this.dateOfBirth, + subrogation: this.subrogationSelectedValue, + streetAddress: this.streetAddress, }, false ); diff --git a/src/store/index.js b/src/store/index.js index a794d702d..9f06b76cc 100644 --- a/src/store/index.js +++ b/src/store/index.js @@ -182,6 +182,11 @@ const getDefaultState = () => { city: null, state: null, zipCode: null, + dateOfBirth: null, + lossTime: null, + lossLocation: null, + lastName: null, + subrogation: null, }, schedule: { date: null, @@ -559,6 +564,12 @@ export const mutations = { state.order.policy.phoneNumber = insuranceDetails.phoneNumber; state.order.policy.phoneExtension = insuranceDetails.phoneExtension; state.order.policy.morePolicyQuestions = insuranceDetails.morePolicyQuestions; + state.order.policy.dateOfBirth = insuranceDetails.dateOfBirth; + state.order.policy.lossTime = insuranceDetails.lossTime; + state.order.policy.lastName = insuranceDetails.lastName; + state.order.policy.lossLocation = insuranceDetails.lossLocation; + state.order.policy.subrogation = insuranceDetails.subrogation; + state.order.policy.streetAddress = insuranceDetails.streetAddress; } }, updateDamageDetails(state, damageDetails) {