diff --git a/src/constants/damage-locations-selected.js b/src/constants/damage-locations-selected.js new file mode 100644 index 000000000..827bbf57b --- /dev/null +++ b/src/constants/damage-locations-selected.js @@ -0,0 +1,7 @@ +const damageLocationsSelected = { + WINDSHIELD: "Windshield", + SIDEDOOR: "SideDoor", + REARWINDOW: "RearWindow", + }; + + export { damageLocationsSelected }; \ No newline at end of file diff --git a/src/layouts/reveal/reveal.vue b/src/layouts/reveal/reveal.vue index 18f0e499d..fdd371e68 100644 --- a/src/layouts/reveal/reveal.vue +++ b/src/layouts/reveal/reveal.vue @@ -51,7 +51,7 @@ export default { ); }, arePagePrerequisitesValid() { - return store.getters.lineItems.glassParts !== null; + return true; }, resetDependentState() { // Set diff --git a/src/layouts/vehicle-damage/vehicle-damage.vue b/src/layouts/vehicle-damage/vehicle-damage.vue index 006c87192..1fa6fe6c6 100644 --- a/src/layouts/vehicle-damage/vehicle-damage.vue +++ b/src/layouts/vehicle-damage/vehicle-damage.vue @@ -48,6 +48,7 @@ import store from "@/store"; import baseMixin from "@/mixins/base-mixin"; import { damageLocationsParts } from "@/constants/damage-locations-parts.js"; import { damageLocationsCms } from "@/constants/damage-locations-cms.js"; +import { damageLocationsSelected } from "@/constants/damage-locations-selected.js"; export default { @@ -106,13 +107,13 @@ export default { }, data(){ return { - selectedDamageLocations: [], + selectedDamageLocations: this.getDamageLocations(), sideDoorOptionsData: { selectedDoorSides: [], selectedDriverSideReplaceOptions: [], selectedPassengerSideReplaceOptions: [] }, - selectedWindshieldOptions: [], + selectedWindshieldOptions: this.getWindshieldOptions(), selectedRearReplaceOptions: [], } }, @@ -131,6 +132,60 @@ export default { ); }, + getDamageLocations() { + var glassSelections = []; + if (store.getters.damage.glassToReplace.some(glass => { return glass.location === damageLocationsParts.WINDSHIELD }) || + store.getters.damage.isRepair) { + glassSelections.push(damageLocationsSelected.WINDSHIELD); + } + if (store.getters.damage.glassToReplace.some(glass => { return glass.location === damageLocationsParts.DRIVER })) { + glassSelections.push(damageLocationsSelected.SIDEDOOR); + } + + if (store.getters.damage.glassToReplace.some(glass => { return glass.location === damageLocationsParts.PASSENGER })) { + glassSelections.push(damageLocationsSelected.SIDEDOOR); + } + + if (store.getters.damage.glassToReplace.some(glass => { return glass.location === damageLocationsParts.REAR })) { + glassSelections.push(damageLocationsSelected.REARWINDOW); + } + + return glassSelections; + }, + + getWindshieldOptions() { + var windShieldOptions = { selectedWindshieldDamageType: [], selectedWindshieldChipCount: [], selectedWindshieldReplaceOptions: []}; + + if (store.getters.damage.isRepair === undefined) return windshieldOptions; + + if (!store.getters.damage.isRepair) { + if (store.getters.damage.glassToReplace.some(glass => { return glass.location === damageLocationsParts.WINDSHIELD && + glass.name === "Single" })) { + windShieldOptions.selectedWindshieldDamageType.push("Replace"); + windShieldOptions.selectedWindshieldReplaceOptions.push("Single"); + } + + if (store.getters.damage.glassToReplace.some(glass => { return glass.location === damageLocationsParts.WINDSHIELD && + glass.name === "Driver" })) { + windShieldOptions.selectedWindshieldDamageType.push("Replace"); + windShieldOptions.selectedWindshieldReplaceOptions.push("Driver"); + } + + if (store.getters.damage.glassToReplace.some(glass => { return glass.location === damageLocationsParts.WINDSHIELD && + glass.name === "Passenger" })) { + windShieldOptions.selectedWindshieldDamageType.push("Replace"); + windShieldOptions.selectedWindshieldReplaceOptions.push("Passenger"); + } + } + + if (store.getters.damage.isRepair) { + windShieldOptions.selectedWindshieldDamageType.push("Repair"); + windShieldOptions.selectedWindshieldChipCount.push(store.getters.damage.numberOfChips); + } + + return windShieldOptions; + }, + async forwardButtonAction() { const windshieldChipCount = this.selectedWindshieldOptions.selectedWindshieldChipCount && this.isWindshieldDamageLocation ? this.selectedWindshieldOptions.selectedWindshieldChipCount[0] : null; @@ -171,7 +226,7 @@ export default { store.commit(this.storeMutations.UPDATE_PARTS, partsData.data.partsOrQuestions[0].parts); } - this.$router.navigateAfterSave(this.navigationScenarios.SELECTED_DAMAGE_WITH_SINGLE_PART, this.$route); + this.$router.navigate(this.navigationScenarios.SELECTED_DAMAGE_WITH_SINGLE_PART, this.$route); }, selectedGlassToReplace() { diff --git a/src/layouts/vehicle-damage/windshield-options/windshield-options.vue b/src/layouts/vehicle-damage/windshield-options/windshield-options.vue index ed214158e..f0020de43 100644 --- a/src/layouts/vehicle-damage/windshield-options/windshield-options.vue +++ b/src/layouts/vehicle-damage/windshield-options/windshield-options.vue @@ -70,7 +70,7 @@ export default ({ }, selectedWindshieldChipCountValues: { get: function() { - return this.selectedValues.selectedChipCount; + return this.selectedValues.selectedWindshieldChipCount; }, set: function(newValue) { this.selectedValues = this.getWindshieldOptions(this.selectedWindshieldDamageTypeValues, newValue, null);