From e6e9c92f2fdd73b22dad069411deba0eca532887 Mon Sep 17 00:00:00 2001 From: Adam Caouette Date: Tue, 1 Mar 2022 09:16:18 -0500 Subject: [PATCH 01/48] CSR-319: implement full validation on form-test --- .../button-question/button-question.vue | 2 + src/layouts/form-test/form-test.vue | 68 ++++++++++++++----- .../damage-location-question.vue | 1 - .../replace-options-question.vue | 49 +++++++------ .../side-door-options/side-door-options.vue | 46 +++++++++++-- src/layouts/vehicle-damage/vehicle-damage.vue | 10 +++ .../windshield-chip-count-question.vue | 21 +++++- .../windshield-damage-type-question.vue | 42 +++++++++--- .../windshield-options/windshield-options.vue | 37 +++++++++- .../list-button-horizontal.vue | 33 +++++---- src/ux-components/list-button/list-button.vue | 34 ++++++---- src/ux-components/list-card/list-card.vue | 44 +++++++++--- 12 files changed, 297 insertions(+), 90 deletions(-) diff --git a/src/common-components/button-question/button-question.vue b/src/common-components/button-question/button-question.vue index c828f9ff9..f7b11e3b3 100644 --- a/src/common-components/button-question/button-question.vue +++ b/src/common-components/button-question/button-question.vue @@ -122,6 +122,7 @@ export default { }, methods: { handleCheckedChanged(val) { + console.log('BQ handleCheckedChanged, val: ', val) if(this.isMultiSelect && this.selectedValues) { // Add or remove item to array of data to emit if(Array.isArray(this.selectedValues)) { @@ -132,6 +133,7 @@ export default { } else { this.selectedValues = [val.value]; } + console.log('BQ handleCheckedChanged, this.selectedValues is now: ', this.selectedValues) }, }, components: { diff --git a/src/layouts/form-test/form-test.vue b/src/layouts/form-test/form-test.vue index f12abb261..a06faf10d 100644 --- a/src/layouts/form-test/form-test.vue +++ b/src/layouts/form-test/form-test.vue @@ -15,23 +15,31 @@ groupName="DamageLocationQuestion" /> + { + if (!value || value.length < 1) { + return "Please select rear window type"; + } + return true; +}); export default { name: "form-test", @@ -110,12 +124,19 @@ export default { vm.$refs.funnelSubHeader.initializeComponent( resultMap.cmsContent.FunnelSubHeaderWidget ); - vm.$refs.driverSideOptions.initializeComponent( - resultMap.cmsContent.DriverSideReplaceOptionsQuestion, resultMap.damageOptions.driverSideOptions.availableReplacementOptions - ); vm.$refs.damageLocation.initializeComponent( resultMap.cmsContent.DamageLocationQuestion, resultMap.damageOptions ); + vm.$refs.sideDoorOptions.initializeComponent( + resultMap.cmsContent.SideDoorSideQuestion, resultMap.cmsContent.DriverSideReplaceOptionsQuestion, resultMap.cmsContent.PassengerSideReplaceOptionsQuestion, resultMap.damageOptions.driverSideOptions.availableReplacementOptions, resultMap.damageOptions.passengerSideOptions.availableReplacementOptions + ); + vm.$refs.windshieldOptions.initializeComponent( + resultMap.cmsContent.WindshieldDamageTypeQuestion, resultMap.cmsContent.WindshieldChipCountQuestion, + resultMap.cmsContent.WindshieldReplaceOptionsQuestion, resultMap.damageOptions.windshieldOptions.availableReplacementOptions + ); + vm.$refs.backGlassOptions.initializeComponent( + resultMap.cmsContent.RearReplaceOptionsQuestion, resultMap.damageOptions.backGlassOptions.availableReplacementOptions + ); vm.$refs.funnelFooter.initializeComponent( resultMap.cmsContent.FunnelFooterWidget ); @@ -124,14 +145,29 @@ export default { data(){ return { selectedDamageLocations: [], - driverSideOptionsData: [], + sideDoorOptionsData: { + selectedDoorSides: [], + selectedDriverSideReplacOptions: [], + selectedPassengerSideReplaceOptions: [] + }, + selectedWindshieldOptions: [], + selectedRearReplaceOptions: [], } }, + computed: { + isRearWindowDamageLocation() { + return this.selectedDamageLocations.some(selectedDamages => + { + return selectedDamages.toUpperCase() === "REARWINDOW"; + }); + }, + }, components: { Form, funnelHeader, vehicleBanner, funnelSubHeader, + sideDoorOptions, damageLocationQuestion, replaceOptionsQuestion, funnelFooter, diff --git a/src/layouts/vehicle-damage/damage-location-question/damage-location-question.vue b/src/layouts/vehicle-damage/damage-location-question/damage-location-question.vue index 89b3244e3..07f6612ae 100644 --- a/src/layouts/vehicle-damage/damage-location-question/damage-location-question.vue +++ b/src/layouts/vehicle-damage/damage-location-question/damage-location-question.vue @@ -9,7 +9,6 @@ v-model="selectedValues" validationRules="damage-location-required" /> - diff --git a/src/layouts/vehicle-damage/replace-options-question/replace-options-question.vue b/src/layouts/vehicle-damage/replace-options-question/replace-options-question.vue index 978cf6b41..bc42364d2 100644 --- a/src/layouts/vehicle-damage/replace-options-question/replace-options-question.vue +++ b/src/layouts/vehicle-damage/replace-options-question/replace-options-question.vue @@ -1,6 +1,6 @@