| | |
| | | v-if="fieldDisplayDevice === 'ALL' |
| | | || fieldDisplayDevice === currentDevice"> |
| | | <div class="pam-field__label"> |
| | | <div class="pam-field__title"><i :class="fieldIcon"></i>{{ fieldLabel }}</div> |
| | | <div class="pam-field__title" :style="{ 'font-size': fieldLabelSize }"><i :class="fieldIcon"></i>{{ fieldLabel }}</div> |
| | | </div> |
| | | <p class="pam-field__content"> |
| | | <slot></slot> |
| | |
| | | |
| | | <script lang="ts"> |
| | | import { Vue, Component, Prop } from 'vue-property-decorator'; |
| | | import { isMobileDevice } from '~/assets/ts/device'; |
| | | |
| | | import UtilsService from '~/shared/services/utils.service'; |
| | | |
| | | @Component |
| | | export default class UiField extends Vue { |
| | | |
| | | @Prop() span!: number; |
| | | @Prop() icon!: string; |
| | | @Prop() label!: string; |
| | | @Prop() content!: string; |
| | | @Prop() displayDevice!: 'MOBILE' | 'DESKTOP' | 'ALL'; |
| | | @Prop() |
| | | span!: number; |
| | | |
| | | @Prop() |
| | | icon!: string; |
| | | |
| | | @Prop() |
| | | label!: string; |
| | | |
| | | @Prop() |
| | | content!: string; |
| | | |
| | | @Prop() |
| | | labelSize?: number; |
| | | |
| | | @Prop() |
| | | displayDevice!: 'MOBILE' | 'DESKTOP' | 'ALL'; |
| | | |
| | | currentDevice: 'MOBILE' | 'DESKTOP' = 'MOBILE'; |
| | | |
| | | ////////////////////////////////////////////////////////////////// |
| | | |
| | | mounted(): void { |
| | | this.currentDevice = isMobileDevice() ? 'MOBILE' : 'DESKTOP'; |
| | | this.currentDevice = UtilsService.isMobileDevice() ? 'MOBILE' : 'DESKTOP'; |
| | | } |
| | | |
| | | get fieldSpan(): number { |
| | |
| | | return this.displayDevice || 'ALL'; |
| | | } |
| | | |
| | | get fieldLabelSize(): string { |
| | | return (this.labelSize || 16) + 'px'; |
| | | } |
| | | |
| | | } |
| | | </script> |
| | | |
| | | |
| | | <style lang="scss" scoped> |
| | | .pam-field { |
| | | display: flex; |
| | | display : flex; |
| | | flex-direction: column; |
| | | .pam-field__label { |
| | | display: flex; |
| | | align-items: center; |
| | | display : flex; |
| | | .pam-icon { |
| | | font-size: 12px; |
| | | } |
| | | .pam-field__title { |
| | | font-size: 16px; |
| | | font-weight: bold; |
| | | display: flex; |
| | | align-items: center; |
| | | display : flex; |
| | | font-weight: bold; |
| | | } |
| | | } |
| | | .pam-field__content { |
| | | padding-top: 10px; |
| | | display : flex; |
| | | // padding-top: 10px; |
| | | white-space: pre-line; |
| | | line-height: 1.5; |
| | | } |
| | | } |
| | | </style> |