From 24ca91d30a97445fc41737528cc65a50cbe4c729 Mon Sep 17 00:00:00 2001 From: Josh Dassinger Date: Thu, 30 May 2024 13:22:48 -0500 Subject: [PATCH] SSR-1290 Set previous selected when navigating back to vehicle-parts --- .../glass-part-question.vue | 30 ++++++++++++++----- 1 file changed, 22 insertions(+), 8 deletions(-) diff --git a/src/layouts/vehicle-parts/glass-part-question/glass-part-question.vue b/src/layouts/vehicle-parts/glass-part-question/glass-part-question.vue index 3caf7dda..9b517c88 100644 --- a/src/layouts/vehicle-parts/glass-part-question/glass-part-question.vue +++ b/src/layouts/vehicle-parts/glass-part-question/glass-part-question.vue @@ -51,6 +51,7 @@ import getCustomTransformValue from '@/constants/dynamictext-mapper'; import { defineRule } from 'vee-validate'; import { required } from '@/helpers/validation-rules'; import errorMessages from '@/constants/error-messages'; +import { useMainStore } from '@/store'; export default { name: 'glass-part-question', @@ -189,14 +190,8 @@ export default { if (this.partsForSelectedTint?.length > 0) { // Check if only a single part is present for the tint and set the v-model if it is. if (this.partsForSelectedTint?.length === 1) { - this.selectedPartNumber = { value: this.partsForSelectedTint[0].partNumber }; - - // //select element with matching partNumber - this.$nextTick(() => { - const radioInput = document.querySelector(`input[value=${this.selectedPartNumber}]`); - // Fire a click event on the input so the field is updated - radioInput?.click(); - }); + // select element with matching partNumber + this.updateSelectedPartNumber(this.partsForSelectedTint[0].partNumber); } else { this.selectedPartNumber = null; } @@ -209,10 +204,29 @@ export default { // Populate button-question model-value if parts data already exists in store if (this.modelValue !== undefined) { this.selectedTint = this.modelValue.color; + for (const tintPart of this.partsForSelectedTint) { + for (const glassPart of useMainStore().order.lineItems.glassParts) { + if (tintPart.partNumber === glassPart.partNumber) { + this.$nextTick(() => { + this.updateSelectedPartNumber(tintPart.partNumber); + }); + return; + } + } + } } }); }, + updateSelectedPartNumber(partNumber) { + this.selectedPartNumber = { value: partNumber }; + this.$nextTick(() => { + const radioInput = document.querySelector(`input[value=${this.selectedPartNumber}]`); + // Fire a click event on the input so the field is updated + radioInput?.click(); + }); + }, + replaceAllSpaceWithDash(str) { return String(str).replaceAll(' ', '-'); }