| <template> |
| <div class="page-title"> |
| <h1>{{ title }}</h1> |
| <p v-if="description">{{ description }}</p> |
| </div> |
| </template> |
| |
| <script> |
| import i18n from '@/i18n'; |
| export default { |
| name: 'PageTitle', |
| props: { |
| description: { |
| type: String, |
| default: '', |
| }, |
| }, |
| data() { |
| return { |
| title: this.$route.meta.title, |
| }; |
| }, |
| created() { |
| let title = this.$route.name; |
| let i = 1; |
| if (title) { |
| while (i < this.$route.name.split('-').length) { |
| let index = title.search('-'); |
| title = title.replace( |
| '-' + title.charAt(index + 1), |
| title.charAt(index + 1).toUpperCase(), |
| ); |
| i++; |
| } |
| this.title = i18n.t('appPageTitle.' + title); |
| document.title = this.title; |
| } |
| }, |
| }; |
| </script> |
| |
| <style lang="scss" scoped> |
| .page-title { |
| margin-bottom: $spacer * 2; |
| } |
| p { |
| max-width: 72ch; |
| } |
| </style> |