|
|
@ -2,63 +2,45 @@ |
|
|
<form action="#" method="POST" class="px-3 transition-all duration-300 mx-auto w-[960px]" @submit.prevent="submit"> |
|
|
<form action="#" method="POST" class="px-3 transition-all duration-300 mx-auto w-[960px]" @submit.prevent="submit"> |
|
|
<carousel v-model="innerStep" :per-page="1" :mouse-drag="false" :pagination-enabled="false" class=""> |
|
|
<carousel v-model="innerStep" :per-page="1" :mouse-drag="false" :pagination-enabled="false" class=""> |
|
|
<slide :key="0" class="py-16 px-8"> |
|
|
<slide :key="0" class="py-16 px-8"> |
|
|
<div> |
|
|
|
|
|
<div class="text-center font-semibold text-gray-700 text-sm">Frage 1</div> |
|
|
<div class="text-center font-semibold text-gray-700 text-sm">Frage 1</div> |
|
|
<heading>Welche <span class="text-primary">Immobilie</span><br />möchten Sie verkaufen?</heading> |
|
|
<heading>Welche <span class="text-primary">Immobilie</span><br />möchten Sie verkaufen?</heading> |
|
|
<radio-grid id="category" v-model="value.category" class="mt-8" :options="categories"></radio-grid> |
|
|
<radio-grid id="category" v-model="value.category" class="mt-8" :options="categories"></radio-grid> |
|
|
<pagination v-model="innerStep" class="mt-5" :prev="false" :nextable="value.category !== null"> |
|
|
<pagination v-model="innerStep" class="mt-5" :prev="false" :nextable="value.category !== null"> |
|
|
</pagination> |
|
|
</pagination> |
|
|
</div> |
|
|
|
|
|
</slide> |
|
|
</slide> |
|
|
|
|
|
|
|
|
<!-- ********************************* Haus ********************************** --> |
|
|
<!-- ********************************* Haus ********************************** --> |
|
|
<slide v-if="value.category == 'Haus'" :key="1" class="py-16 px-8"> |
|
|
<slide v-if="value.category == 'Haus'" :key="1" class="py-16 px-8"> |
|
|
<div> |
|
|
|
|
|
<div class="text-center font-semibold text-gray-700 text-sm">Frage 2</div> |
|
|
<div class="text-center font-semibold text-gray-700 text-sm">Frage 2</div> |
|
|
<heading>Wie ist die gesamte<br /><span class="text-primary">Grundstücksfläche</span> des Hauses? |
|
|
|
|
|
</heading> |
|
|
|
|
|
<radio-grid id="house_plot_area" v-model="value.plot_area" class="mt-8" |
|
|
|
|
|
:options="plotAreas"></radio-grid> |
|
|
|
|
|
|
|
|
<heading>Wie ist die gesamte<br /><span class="text-primary">Grundstücksfläche</span> des Hauses?</heading> |
|
|
|
|
|
<radio-grid id="house_plot_area" v-model="value.plot_area" class="mt-8" :options="plotAreas"></radio-grid> |
|
|
<pagination v-model="innerStep" class="mt-5" :nextable="value.plot_area !== null"></pagination> |
|
|
<pagination v-model="innerStep" class="mt-5" :nextable="value.plot_area !== null"></pagination> |
|
|
</div> |
|
|
|
|
|
</slide> |
|
|
</slide> |
|
|
<slide v-if="value.category == 'Haus'" :key="2" class="py-16 px-8"> |
|
|
<slide v-if="value.category == 'Haus'" :key="2" class="py-16 px-8"> |
|
|
<div> |
|
|
|
|
|
<div class="text-center font-semibold text-gray-700 text-sm">Frage 3</div> |
|
|
<div class="text-center font-semibold text-gray-700 text-sm">Frage 3</div> |
|
|
<heading>Wie ist die gesamte<br /><span class="text-primary">Wohnfläche</span> des Hauses?</heading> |
|
|
<heading>Wie ist die gesamte<br /><span class="text-primary">Wohnfläche</span> des Hauses?</heading> |
|
|
<radio-grid id="house_living_area" v-model="value.living_area" class="mt-8" |
|
|
<radio-grid id="house_living_area" v-model="value.living_area" class="mt-8" |
|
|
:options="livingAreas"></radio-grid> |
|
|
:options="livingAreas"></radio-grid> |
|
|
<pagination v-model="innerStep" class="mt-5" :nextable="value.living_area !== null"></pagination> |
|
|
<pagination v-model="innerStep" class="mt-5" :nextable="value.living_area !== null"></pagination> |
|
|
</div> |
|
|
|
|
|
</slide> |
|
|
</slide> |
|
|
<slide v-if="value.category == 'Haus'" :key="3" class="py-16 px-8"> |
|
|
<slide v-if="value.category == 'Haus'" :key="3" class="py-16 px-8"> |
|
|
<div> |
|
|
|
|
|
<div class="text-center font-semibold text-gray-700 text-sm">Frage 4</div> |
|
|
<div class="text-center font-semibold text-gray-700 text-sm">Frage 4</div> |
|
|
<heading>Wie viele<br /><span class="text-primary">Zimmer</span> hat das Haus?</heading> |
|
|
<heading>Wie viele<br /><span class="text-primary">Zimmer</span> hat das Haus?</heading> |
|
|
<radio-grid id="house_number_of_rooms" v-model="value.number_of_floors" class="mt-8" |
|
|
<radio-grid id="house_number_of_rooms" v-model="value.number_of_floors" class="mt-8" |
|
|
:options="numbersOfRooms"></radio-grid> |
|
|
:options="numbersOfRooms"></radio-grid> |
|
|
<pagination v-model="innerStep" class="mt-5" :nextable="value.number_of_floors !== null"></pagination> |
|
|
<pagination v-model="innerStep" class="mt-5" :nextable="value.number_of_floors !== null"></pagination> |
|
|
</div> |
|
|
|
|
|
</slide> |
|
|
</slide> |
|
|
<slide v-if="value.category == 'Haus'" :key="4" class="py-16 px-8"> |
|
|
<slide v-if="value.category == 'Haus'" :key="4" class="py-16 px-8"> |
|
|
<div> |
|
|
|
|
|
<div class="text-center font-semibold text-gray-700 text-sm">Frage 5</div> |
|
|
<div class="text-center font-semibold text-gray-700 text-sm">Frage 5</div> |
|
|
<heading>Wann wurde das<br />Haus <span class="text-primary">erbaut?</span></heading> |
|
|
<heading>Wann wurde das<br />Haus <span class="text-primary">erbaut?</span></heading> |
|
|
<!-- |
|
|
|
|
|
<veeno :pipsy="pipsy" :tooltips="tooltips" :step="1" :handles="[1950]" class="w-4/5 mx-auto mt-10" |
|
|
|
|
|
:range="range" v-model="value.construction_year" /> |
|
|
|
|
|
--> |
|
|
|
|
|
|
|
|
<slider :min="1900" :max="maxYear" v-model="value.construction_year" class="slider-custom"> </slider> |
|
|
<pagination v-model="innerStep" class="mt-24"></pagination> |
|
|
<pagination v-model="innerStep" class="mt-24"></pagination> |
|
|
</div> |
|
|
|
|
|
</slide> |
|
|
</slide> |
|
|
<slide v-if="value.category == 'Haus'" :key="5" class="py-16 px-8"> |
|
|
<slide v-if="value.category == 'Haus'" :key="5" class="py-16 px-8"> |
|
|
<div> |
|
|
|
|
|
<div class="text-center font-semibold text-gray-700 text-sm">Frage 6</div> |
|
|
<div class="text-center font-semibold text-gray-700 text-sm">Frage 6</div> |
|
|
<heading>Wie ist der<br /><span class="text-primary">Zustand</span> des Hauses?</heading> |
|
|
<heading>Wie ist der<br /><span class="text-primary">Zustand</span> des Hauses?</heading> |
|
|
<radio-grid id="house_condition" v-model="value.condition" class="mt-8" |
|
|
|
|
|
:options="conditions"></radio-grid> |
|
|
|
|
|
|
|
|
<radio-grid id="house_condition" v-model="value.condition" class="mt-8" :options="conditions"></radio-grid> |
|
|
<pagination v-model="innerStep" class="mt-5" :nextable="value.condition !== null"></pagination> |
|
|
<pagination v-model="innerStep" class="mt-5" :nextable="value.condition !== null"></pagination> |
|
|
</div> |
|
|
|
|
|
</slide> |
|
|
</slide> |
|
|
|
|
|
|
|
|
<!-- ********************************* Gewerbe ********************************** --> |
|
|
<!-- ********************************* Gewerbe ********************************** --> |
|
|
@ -174,7 +156,7 @@ |
|
|
|
|
|
|
|
|
<slide v-if="value.category" :key="slideCount[value.category] + 1"> |
|
|
<slide v-if="value.category" :key="slideCount[value.category] + 1"> |
|
|
<div |
|
|
<div |
|
|
class="w-full h-full bg-white shadow-2xl ring-1 ring-gray-900/5 rounded-xl grid grid-cols-1 sm:grid-cols-[1fr_250px] grid-rows-[10rem_1fr] gap-6 overflow-hidden bg-gradient-to-bl from-white via-white to-black/10"> |
|
|
|
|
|
|
|
|
class="w-full h-full bg-white ring-1 ring-gray-900/5 rounded-xl grid grid-cols-1 sm:grid-cols-[1fr_250px] grid-rows-[10rem_1fr] gap-6 overflow-hidden bg-gradient-to-bl from-white via-white to-black/10"> |
|
|
<div class="bg-green-200 w-40 h-40 flex justify-center items-center [clip-path:circle(70%_at_30%_30%)]"> |
|
|
<div class="bg-green-200 w-40 h-40 flex justify-center items-center [clip-path:circle(70%_at_30%_30%)]"> |
|
|
<svg class="w-24 h-24 text-green-400 relative -left-3 -top-3" xmlns="http://www.w3.org/2000/svg" |
|
|
<svg class="w-24 h-24 text-green-400 relative -left-3 -top-3" xmlns="http://www.w3.org/2000/svg" |
|
|
viewBox="0 0 20 20" fill="currentColor"> |
|
|
viewBox="0 0 20 20" fill="currentColor"> |
|
|
@ -221,7 +203,7 @@ |
|
|
|
|
|
|
|
|
<script> |
|
|
<script> |
|
|
import Heading from './components/Heading.vue'; |
|
|
import Heading from './components/Heading.vue'; |
|
|
import veeno from 'veeno'; |
|
|
|
|
|
|
|
|
import Slider from '@vueform/slider'; |
|
|
import wNumb from 'wnumb'; |
|
|
import wNumb from 'wnumb'; |
|
|
import 'nouislider/distribute/nouislider.min.css'; |
|
|
import 'nouislider/distribute/nouislider.min.css'; |
|
|
import axios from 'axios'; |
|
|
import axios from 'axios'; |
|
|
@ -230,7 +212,7 @@ import dayjs from 'dayjs'; |
|
|
export default { |
|
|
export default { |
|
|
components: { |
|
|
components: { |
|
|
Heading, |
|
|
Heading, |
|
|
veeno, |
|
|
|
|
|
|
|
|
Slider, |
|
|
}, |
|
|
}, |
|
|
data: function () { |
|
|
data: function () { |
|
|
return { |
|
|
return { |
|
|
@ -241,20 +223,8 @@ export default { |
|
|
'Grundstück': 3, |
|
|
'Grundstück': 3, |
|
|
}, |
|
|
}, |
|
|
finished: true, |
|
|
finished: true, |
|
|
tooltips: [wNumb({ decimals: 0 })], |
|
|
|
|
|
pipsy: { |
|
|
|
|
|
mode: 'steps', |
|
|
|
|
|
density: 1, |
|
|
|
|
|
filter: function (value) { |
|
|
|
|
|
return value % 50 === 0 ? 1 : 0; |
|
|
|
|
|
}, |
|
|
|
|
|
format: wNumb({ |
|
|
|
|
|
decimals: 0, |
|
|
|
|
|
}), |
|
|
|
|
|
}, |
|
|
|
|
|
range: { min: [1800, 1], max: [dayjs().year(), 1] }, |
|
|
|
|
|
value: { |
|
|
value: { |
|
|
category: null, |
|
|
|
|
|
|
|
|
category: 'Haus', |
|
|
living_area: null, |
|
|
living_area: null, |
|
|
plot_area: null, |
|
|
plot_area: null, |
|
|
construction_year: null, |
|
|
construction_year: null, |
|
|
@ -270,7 +240,7 @@ export default { |
|
|
source: 'Deine Immobilienbewertung', |
|
|
source: 'Deine Immobilienbewertung', |
|
|
datenschutz: false, |
|
|
datenschutz: false, |
|
|
}, |
|
|
}, |
|
|
innerStep: 0, |
|
|
|
|
|
|
|
|
innerStep: 4, |
|
|
categories: [ |
|
|
categories: [ |
|
|
{ key: 'Haus', label: 'Haus', icon: 'category-house' }, |
|
|
{ key: 'Haus', label: 'Haus', icon: 'category-house' }, |
|
|
{ key: 'Grundstück', label: 'Grundstück', icon: 'category-plot' }, |
|
|
{ key: 'Grundstück', label: 'Grundstück', icon: 'category-plot' }, |
|
|
@ -363,6 +333,11 @@ export default { |
|
|
furnishings: [{ label: 'einfach' }, { label: 'gepflegt' }, { label: 'sehr gut' }, { label: 'luxuriös' }], |
|
|
furnishings: [{ label: 'einfach' }, { label: 'gepflegt' }, { label: 'sehr gut' }, { label: 'luxuriös' }], |
|
|
}; |
|
|
}; |
|
|
}, |
|
|
}, |
|
|
|
|
|
computed: { |
|
|
|
|
|
maxYear() { |
|
|
|
|
|
return dayjs().add(1, 'year').get('year'); |
|
|
|
|
|
} |
|
|
|
|
|
}, |
|
|
methods: { |
|
|
methods: { |
|
|
setCategoryId(id) { |
|
|
setCategoryId(id) { |
|
|
this.value.category = id; |
|
|
this.value.category = id; |
|
|
@ -381,8 +356,3 @@ export default { |
|
|
}; |
|
|
}; |
|
|
</script> |
|
|
</script> |
|
|
|
|
|
|
|
|
<style scoped> |
|
|
|
|
|
.radio-grid { |
|
|
|
|
|
display: grid; |
|
|
|
|
|
grid-gap: 1rem; |
|
|
|
|
|
}</style> |
|
|
|
|
|
|