Modal.vue 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. <template>
  2. <div class="modal modal-otp" v-bind:class="{ 'is-active': isActive }">
  3. <div class="modal-background" @click.stop="closeModal"></div>
  4. <div class="modal-content">
  5. <section class="section">
  6. <div class="columns is-centered">
  7. <div class="column is-three-quarters">
  8. <div class="box has-text-centered has-background-black-ter is-shadowless">
  9. <slot></slot>
  10. </div>
  11. </div>
  12. </div>
  13. </section>
  14. </div>
  15. <div class="fullscreen-footer">
  16. <!-- Close button -->
  17. <label class="button is-dark is-rounded" @click.stop="closeModal">
  18. {{ $t('commons.close') }}
  19. </label>
  20. </div>
  21. </div>
  22. </template>
  23. <script>
  24. export default {
  25. name: 'Modal',
  26. props: {
  27. value: Boolean,
  28. },
  29. computed: {
  30. isActive: {
  31. get () {
  32. return this.value
  33. },
  34. set (value) {
  35. this.$emit('input', value)
  36. }
  37. }
  38. },
  39. methods: {
  40. closeModal: function(event) {
  41. if (event) {
  42. this.isActive = false
  43. this.$parent.$emit('modalClose')
  44. }
  45. }
  46. }
  47. }
  48. </script>