Phone.vue 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. <!--
  2. CHamps de saisie d'un numéro de téléphone
  3. @see https://github.com/yogakurniawan/vue-tel-input-vuetify
  4. -->
  5. <template>
  6. <vue-tel-input-vuetify
  7. :field="field"
  8. :label="label"
  9. :value="data"
  10. @input="onChange"
  11. />
  12. </template>
  13. <script lang="ts">
  14. import { defineComponent } from '@nuxtjs/composition-api'
  15. export default defineComponent({
  16. props: {
  17. label: {
  18. type: String,
  19. required: false,
  20. default: ''
  21. },
  22. field: {
  23. type: String,
  24. required: false,
  25. default: null
  26. },
  27. type: {
  28. type: String,
  29. required: false,
  30. default: null
  31. },
  32. data: {
  33. type: [String, Number],
  34. required: false,
  35. default: null
  36. },
  37. readOnly: {
  38. type: Boolean,
  39. required: false
  40. },
  41. rules: {
  42. type: Array,
  43. required: false,
  44. default: () => []
  45. },
  46. error: {
  47. type: Boolean,
  48. required: false
  49. },
  50. errorMessage: {
  51. type: String,
  52. required: false,
  53. default: null
  54. }
  55. },
  56. setup (props) {
  57. return {
  58. label_field: props.label ?? props.field
  59. }
  60. },
  61. methods: {
  62. onChange (_, { number }) {
  63. this.$emit('update', number.e164, this.field)
  64. }
  65. }
  66. })
  67. </script>
  68. <style>
  69. input:read-only{
  70. color: #666 !important;
  71. }
  72. </style>