LoginStepOnePanel.vue 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. <template>
  2. <q-card-section class="full-width">
  3. <div class="text-text">
  4. <span class="text-weight-medium">{{ $t('common.terms.email') }}</span>
  5. </div>
  6. <q-input
  7. v-model="email"
  8. no-error-icon
  9. outlined
  10. rounded
  11. class="bg-surface q-mt-sm"
  12. input-class="text-text"
  13. :placeholder="$t('common.terms.email')"
  14. hide-bottom-space
  15. :rules="!phone ? [inputRules.requiredHideMessage, inputRules.email] : []"
  16. lazy-rules
  17. :bottom-slots="false"
  18. />
  19. <div class="col-12 row q-py-lg">
  20. <div class="col-5 q-my-auto">
  21. <q-separator class="q-my-sm bg-grey-4" />
  22. </div>
  23. <span class="col text-center text-text">{{ $t('common.ui.misc.or') }}</span>
  24. <div class="col-5 q-my-auto">
  25. <q-separator class="q-my-sm bg-grey-4" />
  26. </div>
  27. </div>
  28. <div class="text-text">
  29. <span class="text-weight-medium">{{ $t('common.terms.phone') }}</span>
  30. <span class="text-weight-light">{{ ' (' + $t('common.terms.celular') + ')' }}</span>
  31. </div>
  32. <q-input
  33. v-model="phone"
  34. no-error-icon
  35. class="bg-surface q-mt-sm"
  36. :placeholder="$t('common.terms.phone')"
  37. input-class="text-text"
  38. hide-bottom-space
  39. :rules="!email ? [inputRules.requiredHideMessage, inputRules.email] : []"
  40. lazy-rules
  41. mask="(##) #####-####"
  42. :bottom-slots="false"
  43. />
  44. </q-card-section>
  45. </template>
  46. <script setup>
  47. import { useInputRules } from 'src/composables/useInputRules';
  48. const email = defineModel('email', { type: String, required: true });
  49. const phone = defineModel('phone', { type: String, required: true });
  50. const { inputRules } = useInputRules();
  51. </script>