LoginStepOnePanel.vue 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. <template>
  2. <q-card-section class="full-width">
  3. <div class="text-text">
  4. <span class="fontbold font12">{{ $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 font12 fontmedium"
  13. :placeholder="$t('common.terms.email')"
  14. hide-bottom-space
  15. :rules="!phone ? [inputRules.requiredHideMessage, inputRules.email] : [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 font12 fontmedium">{{ $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="fontbold font12">{{ $t('common.terms.phone') }}</span>
  30. <span class="fontlight font12">{{ ' (' + $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, validatePhone] : [validatePhone]"
  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. const validatePhone = (value) => {
  52. if (!value) return true;
  53. return value.replace(/\D/g, '').length >= 10 || 'Telefone inválido';
  54. };
  55. </script>