DigitalConsumer.FixMyGlass/src/layouts/vehicle-year/year-question/year-question.vue

60 lines
1.4 KiB
Vue

<template>
<buttonQuestion
class="radioQuestion"
isOverflowScrollable
selectingInitiatesLoad
:questionText="questionText"
:answers="years"
groupName="Choose Vehicle Year"
textPosition="text-start"
v-model="selectedValueAsArray"
isRequired=true
/>
</template>
<script>
import buttonQuestion from "@/common-components/button-question/button-question";
// Supporting files
import { storeActions } from "@/constants/store-actions.js";
import baseMixin from "@/mixins/base-mixin.js";
export default {
name: "year-question",
data() {
return {
questionText: null,
years: Array,
};
},
props: {
modelValue: String,
},
emits: ['update:modelValue'],
components: {
buttonQuestion,
},
computed: {
selectedValueAsArray: {
get: function() {
const modelValueAsArray = this.modelValue ? [this.modelValue] : [];
return modelValueAsArray;
},
set: function(newValue) {
const newValueAsScalar = newValue && newValue.length > 0 ? newValue[0] : null;
this.$emit("update:modelValue", newValueAsScalar);
}
}
},
methods: {
loadInitialData() {
return baseMixin.methods.dispatchNonBlockingStoreAction(
storeActions.GET_VEHICLE_YEARS,
{}
);
},
initializeComponent(cmsContent, initialData) {
this.questionText = cmsContent.QuestionText;
this.years = initialData;
},
},
};
</script>