List scroll and function structure updates
This commit is contained in:
parent
ed32135565
commit
e4fd449942
7 changed files with 91 additions and 70 deletions
|
|
@ -1,15 +1,23 @@
|
||||||
<template>
|
<template>
|
||||||
<div>
|
<div class="select-car overflow-hidden">
|
||||||
<baseTemplate :currentCarInfo="year" neededCarInfo="What make is your vehicle?" :backFunction="goBack">
|
<div class="select-car-form rounded text-center">
|
||||||
<carAttributes :attritbutes="makes" :selectAttribute="selectMake" />
|
<Header
|
||||||
</baseTemplate>
|
:text="year"
|
||||||
|
/>
|
||||||
|
<radioQuestion
|
||||||
|
questionText="What is the make of your vehicle?"
|
||||||
|
:answers="makes"
|
||||||
|
:chooseAnswer="selectMake"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import baseTemplate from "@/commonComponents/baseTemplate/baseTemplate";
|
import radioQuestion from "@/commonComponents/radioQuestion/radioQuestion";
|
||||||
import carAttributes from "@/commonComponents/carAttributes/carAttributes";
|
import Header from "@/uxComponents/header/header";
|
||||||
import globalMethods from "@/global-methods";
|
import store from "@/store";
|
||||||
|
import router from "@/router";
|
||||||
import {
|
import {
|
||||||
mapState
|
mapState
|
||||||
} from "vuex";
|
} from "vuex";
|
||||||
|
|
@ -21,9 +29,11 @@ export default {
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
selectMake(make) {
|
selectMake(make) {
|
||||||
const listButtons = document.querySelectorAll('.list-button');
|
this.dispatchNonBlockingStoreAction("selectMake", { make: make }).then( (response) => {
|
||||||
globalMethods.disableItems(listButtons);
|
const models = response;
|
||||||
this.dispatchNonBlockingStoreAction("selectMake", { make: make })
|
store.commit('updateMake', {make, models});
|
||||||
|
router.push(`/select-model?year=${store.year}&make=${make}`);
|
||||||
|
});
|
||||||
},
|
},
|
||||||
goBack() {
|
goBack() {
|
||||||
this.$store.state.slideTransition = "slide_reverse";
|
this.$store.state.slideTransition = "slide_reverse";
|
||||||
|
|
@ -31,8 +41,8 @@ export default {
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
components: {
|
components: {
|
||||||
baseTemplate,
|
radioQuestion,
|
||||||
carAttributes,
|
Header,
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
|
|
|
||||||
|
|
@ -1,19 +1,23 @@
|
||||||
<template>
|
<template>
|
||||||
<div>
|
<div class="select-car overflow-hidden">
|
||||||
<baseTemplate
|
<div class="select-car-form rounded text-center">
|
||||||
:currentCarInfo="year + ' ' + make"
|
<Header
|
||||||
:neededCarInfo="'What is the model of your ' + make + '?'"
|
:text="year + ' ' + make"
|
||||||
:backFunction="goBack"
|
/>
|
||||||
>
|
<radioQuestion
|
||||||
<carAttributes :attritbutes="models" :selectAttribute="selectModel" />
|
:questionText="'What is the model of your ' + make + '?'"
|
||||||
</baseTemplate>
|
:answers="models"
|
||||||
|
:chooseAnswer="selectModel"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import baseTemplate from "@/commonComponents/baseTemplate/baseTemplate";
|
import radioQuestion from "@/commonComponents/radioQuestion/radioQuestion";
|
||||||
import carAttributes from "@/commonComponents/carAttributes/carAttributes";
|
import Header from "@/uxComponents/header/header";
|
||||||
import globalMethods from "@/global-methods";
|
import store from "@/store";
|
||||||
|
import router from "@/router";
|
||||||
import { mapState } from "vuex";
|
import { mapState } from "vuex";
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
|
|
@ -23,18 +27,20 @@ export default {
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
selectModel(model) {
|
selectModel(model) {
|
||||||
const listButtons = document.querySelectorAll('.list-button');
|
this.dispatchNonBlockingStoreAction("selectModel", { model: model }).then( (response) => {
|
||||||
globalMethods.disableItems(listButtons);
|
const styles = response;
|
||||||
this.dispatchNonBlockingStoreAction("selectModel", { model: model })
|
store.commit("updateModel", { model, styles });
|
||||||
|
router.push(`/select-style?year=${store.year}&make=${store.make}&model=${model}`);
|
||||||
|
});
|
||||||
},
|
},
|
||||||
goBack() {
|
goBack() {
|
||||||
this.$store.state.slideTransition = "slide_reverse";
|
this.$store.state.slideTransition = "slide_reverse";
|
||||||
this.$router.push(`/select-make?year=${this.$store.state.year}`);
|
this.$router.push(`/select-make?year=${store.year}`);
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
components: {
|
components: {
|
||||||
baseTemplate,
|
radioQuestion,
|
||||||
carAttributes,
|
Header,
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
|
|
|
||||||
|
|
@ -1,19 +1,23 @@
|
||||||
<template>
|
<template>
|
||||||
<div>
|
<div class="select-car overflow-hidden">
|
||||||
<baseTemplate
|
<div class="select-car-form rounded text-center">
|
||||||
:currentCarInfo="year + ' ' + make + ' ' + model"
|
<Header
|
||||||
:neededCarInfo="'What style is your ' + model + '?'"
|
:text="year + ' ' + make + ' ' + model"
|
||||||
:backFunction="goBack"
|
/>
|
||||||
>
|
<radioQuestion
|
||||||
<carAttributes :attritbutes="styles" :selectAttribute="selectStyle" />
|
:questionText="'What style is your ' + model + '?'"
|
||||||
</baseTemplate>
|
:answers="styles"
|
||||||
|
:chooseAnswer="selectStyle"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import baseTemplate from "@/commonComponents/baseTemplate/baseTemplate";
|
import radioQuestion from "@/commonComponents/radioQuestion/radioQuestion";
|
||||||
import carAttributes from "@/commonComponents/carAttributes/carAttributes";
|
import Header from "@/uxComponents/header/header";
|
||||||
import globalMethods from "@/global-methods";
|
import store from "@/store";
|
||||||
|
import router from "@/router";
|
||||||
import { mapState } from "vuex";
|
import { mapState } from "vuex";
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
|
|
@ -23,20 +27,21 @@ export default {
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
selectStyle(style) {
|
selectStyle(style) {
|
||||||
const listButtons = document.querySelectorAll('.list-button');
|
store.commit("updateStyle", { style });
|
||||||
globalMethods.disableItems(listButtons);
|
router.push(
|
||||||
this.dispatchNonBlockingStoreAction("selectStyle", { style: style })
|
`/select-damage?year=${store.year}&make=${store.make}&model=${store.model}&style=${style}`
|
||||||
|
);
|
||||||
},
|
},
|
||||||
goBack() {
|
goBack() {
|
||||||
this.$store.state.slideTransition = "slide_reverse";
|
this.$store.state.slideTransition = "slide_reverse";
|
||||||
this.$router.push(
|
this.$router.push(
|
||||||
`/select-model?year=${this.$store.state.year}&make=${this.$store.state.make}`
|
`/select-model?year=${store.year}&make=${store.make}`
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
components: {
|
components: {
|
||||||
baseTemplate,
|
radioQuestion,
|
||||||
carAttributes,
|
Header,
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
|
|
|
||||||
|
|
@ -1 +1,9 @@
|
||||||
test.todo('some test to be written in the future');
|
import { shallowMount } from '@vue/test-utils';
|
||||||
|
import SelectYear from './SelectYear';
|
||||||
|
|
||||||
|
test('SelectYear', () => {
|
||||||
|
// render the component
|
||||||
|
const wrapper = shallowMount(SelectYear, {
|
||||||
|
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
@ -1,6 +1,7 @@
|
||||||
<template>
|
<template>
|
||||||
<div class="select-car overflow-hidden">
|
<div class="select-car">
|
||||||
<div class="select-car-form rounded text-center">
|
<div class="select-car-form rounded text-center">
|
||||||
|
|
||||||
<Header
|
<Header
|
||||||
:text="pageHeader.Text"
|
:text="pageHeader.Text"
|
||||||
/>
|
/>
|
||||||
|
|
@ -21,9 +22,10 @@ import globalMethods from "@/global-methods";
|
||||||
import axios from "axios";
|
import axios from "axios";
|
||||||
import store from "@/store";
|
import store from "@/store";
|
||||||
import router from "@/router";
|
import router from "@/router";
|
||||||
|
import { mapState } from "vuex";
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: "SelectCar",
|
name: "SelectYear",
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
years: [],
|
years: [],
|
||||||
|
|
@ -31,7 +33,13 @@ export default {
|
||||||
radioQuestion: {}
|
radioQuestion: {}
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
|
computed: {
|
||||||
|
...mapState(["slideTransition", "carImg", "blurImg", "style"]),
|
||||||
|
},
|
||||||
mounted() {
|
mounted() {
|
||||||
|
const headerHeight = document.querySelector('.select-car-form').offsetHeight + 75;
|
||||||
|
document.querySelector('.car_list').style.padding = `0 0 ${headerHeight}px 0`;
|
||||||
|
|
||||||
globalMethods.callHttpClient({
|
globalMethods.callHttpClient({
|
||||||
method: endpoints.GetYears.method,
|
method: endpoints.GetYears.method,
|
||||||
endpoint: endpoints.GetYears.url,
|
endpoint: endpoints.GetYears.url,
|
||||||
|
|
|
||||||
|
|
@ -64,18 +64,13 @@ export default createStore({
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
selectMake({ commit, state }, { make }) {
|
selectMake({ commit, state }, { make }) {
|
||||||
globalMethods.callHttpClient({
|
return globalMethods.callHttpClient({
|
||||||
method: endpoints.GetModels.method,
|
method: endpoints.GetModels.method,
|
||||||
endpoint: endpoints.GetModels.url,
|
endpoint: endpoints.GetModels.url,
|
||||||
payload:{
|
payload:{
|
||||||
"Year": state.year,
|
"Year": state.year,
|
||||||
"Make": make
|
"Make": make
|
||||||
}
|
}
|
||||||
})
|
|
||||||
.then( (response) => {
|
|
||||||
const models = response;
|
|
||||||
commit("updateMake", { make, models });
|
|
||||||
router.push(`/select-model?year=${state.year}&make=${make}`);
|
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
selectModel({ commit, state }, { model }) {
|
selectModel({ commit, state }, { model }) {
|
||||||
|
|
@ -87,19 +82,8 @@ export default createStore({
|
||||||
"Make": state.make,
|
"Make": state.make,
|
||||||
"Model": model
|
"Model": model
|
||||||
}
|
}
|
||||||
})
|
|
||||||
.then( (response) => {
|
|
||||||
const styles = response;
|
|
||||||
commit("updateModel", { model, styles });
|
|
||||||
router.push(`/select-style?year=${state.year}&make=${state.make}&model=${model}`);
|
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
selectStyle({ commit, state }, { style }) {
|
|
||||||
commit("updateStyle", { style });
|
|
||||||
router.push(
|
|
||||||
`/select-damage?year=${state.year}&make=${state.make}&model=${state.model}&style=${style}`
|
|
||||||
);
|
|
||||||
},
|
|
||||||
getRouteInfo(context, { relativeUrl }) {
|
getRouteInfo(context, { relativeUrl }) {
|
||||||
return globalMethods.callHttpClient({
|
return globalMethods.callHttpClient({
|
||||||
method: endpoints.GetRouteInfoEndpoint.method,
|
method: endpoints.GetRouteInfoEndpoint.method,
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,7 @@
|
||||||
|
|
||||||
.car_list {
|
.car_list {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
height: calc(100% - 1rem);
|
height: 100%;
|
||||||
width: calc(100% - 1rem);
|
width: calc(100% - 1rem);
|
||||||
overflow-y: scroll;
|
overflow-y: scroll;
|
||||||
overflow-x: hidden;
|
overflow-x: hidden;
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue