Files
vuefilemanager/resources/js/views/Index/DynamicPage.vue
2020-07-09 10:56:17 +02:00

100 lines
2.3 KiB
Vue

<template>
<div class="landing-page">
<!--Navigation-->
<Navigation class="page-wrapper small"/>
<!--Page content-->
<div class="page-wrapper small">
<!--Headline-->
<PageTitle
class="headline"
:title="page.data.attributes.title"
></PageTitle>
<!--Content-->
<div class="page-content" v-html="page.data.attributes.content_formatted"></div>
</div>
<!--Footer-->
<PageFooter/>
</div>
</template>
<script>
import PageTitle from '@/components/Index/Components/PageTitle'
import PageFooter from '@/components/Index/IndexPageFooter'
import Navigation from '@/components/Index/IndexNavigation'
import {mapGetters} from 'vuex'
import axios from 'axios'
export default {
name: 'DynamicPage',
components: {
PageFooter,
Navigation,
PageTitle,
},
computed: {
...mapGetters(['config']),
},
data() {
return {
isLoading: false,
page: undefined,
}
},
watch: {
$route(to, from) {
this.getPage()
}
},
methods: {
getPage() {
axios.get('/api/page/' + this.$route.params.slug)
.then(response => {
this.page = response.data
this.$scrollTop()
})
}
},
created() {
this.getPage()
}
}
</script>
<style lang="scss" scoped>
@import '@assets/vue-file-manager/_landing-page';
@import '@assets/vue-file-manager/_variables';
@import '@assets/vue-file-manager/_mixins';
.headline {
padding-top: 70px;
padding-bottom: 50px;
}
.page-content {
/deep/ p {
@include font-size(20);
font-weight: 500;
line-height: 1.65;
padding-bottom: 30px;
}
}
@media (prefers-color-scheme: dark) {
}
@media only screen and (max-width: 960px) {
.headline {
padding-top: 50px;
padding-bottom: 30px;
}
}
</style>