CSR-296: add back glass replace options question
This commit is contained in:
parent
c906c2e9c9
commit
6526dbbbad
4 changed files with 37 additions and 18 deletions
|
|
@ -121,6 +121,7 @@ export default {
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
mounted(){
|
mounted(){
|
||||||
|
// UPDATE SELECTEDVALUES IF ONLY ONE ANSWER
|
||||||
if(Array.isArray(this.answers) && this.answers.length === 1) {
|
if(Array.isArray(this.answers) && this.answers.length === 1) {
|
||||||
const newSelectedValues = this.selectedValues;
|
const newSelectedValues = this.selectedValues;
|
||||||
newSelectedValues.push(typeof(this.answers[0]) === 'object' ? this.answers[0].Name : this.answers[0]);
|
newSelectedValues.push(typeof(this.answers[0]) === 'object' ? this.answers[0].Name : this.answers[0]);
|
||||||
|
|
|
||||||
|
|
@ -2,9 +2,9 @@
|
||||||
<transition name="fade">
|
<transition name="fade">
|
||||||
<div class="replace-options-question">
|
<div class="replace-options-question">
|
||||||
<buttonQuestion
|
<buttonQuestion
|
||||||
v-if="isAvailable && answersToDisplay.length > 1"
|
v-if="isAvailable && answersToDisplay.length > 0"
|
||||||
:questionText="questionText"
|
:questionText="questionText"
|
||||||
isMultiSelect
|
:isMultiSelect="isMultiSelect"
|
||||||
:answers="answersToDisplay"
|
:answers="answersToDisplay"
|
||||||
:groupName="groupName"
|
:groupName="groupName"
|
||||||
buttonType="listCard"
|
buttonType="listCard"
|
||||||
|
|
@ -42,6 +42,7 @@ export default ({
|
||||||
filterByVehicleCategory: Boolean,
|
filterByVehicleCategory: Boolean,
|
||||||
groupName: String,
|
groupName: String,
|
||||||
modelValue: Array,
|
modelValue: Array,
|
||||||
|
isMultiSelect: Boolean,
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
initializeComponent(cmsContent, replaceOptions){
|
initializeComponent(cmsContent, replaceOptions){
|
||||||
|
|
@ -60,11 +61,11 @@ export default ({
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
answersToDisplay(){
|
answersToDisplay(){
|
||||||
return Array.isArray(this.answersFromCms)
|
return Array.isArray(this.answersFromCms)
|
||||||
? this.answersFromCms.filter(ans =>
|
? this.answersFromCms.filter(ans =>
|
||||||
{
|
{
|
||||||
const name = ans.Name.split('-');
|
const name = ans.Name.split('-');
|
||||||
return this.filterByVehicleCategory ? name[0].toUpperCase() === store.getters.vehicle.category : name[0].toUpperCase() === store.getters.vehicle.category && this.replaceOptions.includes(name[1])
|
return this.filterByVehicleCategory ? name[0].toUpperCase() === store.getters.vehicle.category && this.replaceOptions.includes(name[1]) : this.replaceOptions.includes(ans.Name);
|
||||||
})
|
})
|
||||||
: [];
|
: [];
|
||||||
},
|
},
|
||||||
|
|
|
||||||
|
|
@ -3,8 +3,25 @@
|
||||||
<funnelHeader ref="funnelHeader" />
|
<funnelHeader ref="funnelHeader" />
|
||||||
<vehicleBanner ref="vehicleBanner" :displayGenericVehicleImage=false />
|
<vehicleBanner ref="vehicleBanner" :displayGenericVehicleImage=false />
|
||||||
<funnelSubHeader ref="funnelSubHeader" />
|
<funnelSubHeader ref="funnelSubHeader" />
|
||||||
<damageLocationQuestion ref="damageLocation" v-model="selectedDamageLocations" groupName="DamageLocationQuestion" />
|
<damageLocationQuestion
|
||||||
<replaceOptionsQuestion ref="driverSideOptions" isAvailable v-model="driverSideOptionsData" groupName="DriverSideReplaceOptionsQuestion" />
|
ref="damageLocation"
|
||||||
|
v-model="selectedDamageLocations"
|
||||||
|
groupName="DamageLocationQuestion"
|
||||||
|
/>
|
||||||
|
<replaceOptionsQuestion
|
||||||
|
ref="driverSideOptions"
|
||||||
|
isAvailable
|
||||||
|
isMultiSelect
|
||||||
|
filterByVehicleCategory
|
||||||
|
v-model="driverSideOptionsData"
|
||||||
|
groupName="DriverSideReplaceOptionsQuestion"
|
||||||
|
/>
|
||||||
|
<replaceOptionsQuestion
|
||||||
|
ref="backGlassOptions"
|
||||||
|
isAvailable
|
||||||
|
v-model="selectedRearReplaceOptions"
|
||||||
|
groupName="BackGlassReplaceOptionsQuestion"
|
||||||
|
/>
|
||||||
<funnelFooter ref="funnelFooter" @back-clicked="backButtonAction" />
|
<funnelFooter ref="funnelFooter" @back-clicked="backButtonAction" />
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
@ -62,11 +79,14 @@ export default {
|
||||||
vm.$refs.funnelSubHeader.initializeComponent(
|
vm.$refs.funnelSubHeader.initializeComponent(
|
||||||
resultMap.cmsContent.FunnelSubHeaderWidget
|
resultMap.cmsContent.FunnelSubHeaderWidget
|
||||||
);
|
);
|
||||||
|
vm.$refs.damageLocation.initializeComponent(
|
||||||
|
resultMap.cmsContent.DamageLocationQuestion, resultMap.damageOptions
|
||||||
|
);
|
||||||
vm.$refs.driverSideOptions.initializeComponent(
|
vm.$refs.driverSideOptions.initializeComponent(
|
||||||
resultMap.cmsContent.DriverSideReplaceOptionsQuestion, resultMap.damageOptions.driverSideOptions.availableReplacementOptions
|
resultMap.cmsContent.DriverSideReplaceOptionsQuestion, resultMap.damageOptions.driverSideOptions.availableReplacementOptions
|
||||||
);
|
);
|
||||||
vm.$refs.damageLocation.initializeComponent(
|
vm.$refs.backGlassOptions.initializeComponent(
|
||||||
resultMap.cmsContent.DamageLocationQuestion, resultMap.damageOptions
|
resultMap.cmsContent.RearReplaceOptionsQuestion, resultMap.damageOptions.backGlassOptions.availableReplacementOptions
|
||||||
);
|
);
|
||||||
vm.$refs.funnelFooter.initializeComponent(
|
vm.$refs.funnelFooter.initializeComponent(
|
||||||
resultMap.cmsContent.FunnelFooterWidget
|
resultMap.cmsContent.FunnelFooterWidget
|
||||||
|
|
@ -77,6 +97,7 @@ export default {
|
||||||
return {
|
return {
|
||||||
selectedDamageLocations: [],
|
selectedDamageLocations: [],
|
||||||
driverSideOptionsData: [],
|
driverSideOptionsData: [],
|
||||||
|
selectedRearReplaceOptions: [],
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
|
|
||||||
|
|
@ -74,16 +74,6 @@ export default {
|
||||||
validationRules: String,
|
validationRules: String,
|
||||||
selectedButtonIDs: [Array, String],
|
selectedButtonIDs: [Array, String],
|
||||||
},
|
},
|
||||||
data(){
|
|
||||||
return {
|
|
||||||
checkValue: Boolean,
|
|
||||||
}
|
|
||||||
},
|
|
||||||
created(){
|
|
||||||
if(this.selectedButtonIDs){
|
|
||||||
this.checkValue = this.isMultiSelect ? this.selectedButtonIDs.includes(this.buttonID) : this.selectedButtonIDs[0];
|
|
||||||
}
|
|
||||||
},
|
|
||||||
computed: {
|
computed: {
|
||||||
getLabelClasses() {
|
getLabelClasses() {
|
||||||
if (this.isWide) {
|
if (this.isWide) {
|
||||||
|
|
@ -96,6 +86,12 @@ export default {
|
||||||
return "flex-column pt-4 pb-2";
|
return "flex-column pt-4 pb-2";
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
checkValue() {
|
||||||
|
if(this.selectedButtonIDs){
|
||||||
|
return this.isMultiSelect ? this.selectedButtonIDs.includes(this.buttonID) : this.selectedButtonIDs[0];
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
},
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
handleCheckChange(newValue, oldValue){
|
handleCheckChange(newValue, oldValue){
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue