You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

154 lines
3.8 KiB

2 years ago
  1. <template>
  2. <div>
  3. <div class="element tw-mt-[16px]">
  4. <ElementInputNew
  5. :input="{
  6. id: 'FirstName',
  7. label: 'First Name',
  8. required: false,
  9. type: 'text',
  10. }"
  11. :validation="validation.first_name"
  12. @change="formData.first_name = $event"
  13. ></ElementInputNew>
  14. </div>
  15. <div class="element tw-mt-[16px]">
  16. <ElementInputNew
  17. :input="{
  18. id: 'LastName',
  19. label: 'Last Name',
  20. required: false,
  21. type: 'text',
  22. }"
  23. :validation="validation.last_name"
  24. @change="formData.last_name = $event"
  25. >
  26. </ElementInputNew>
  27. </div>
  28. <div class="element tw-mt-[16px]">
  29. <ElementInputNew
  30. :input="{
  31. id: 'Email',
  32. label: 'Email',
  33. required: false,
  34. type: 'email',
  35. }"
  36. :validation="validation.email"
  37. @change="formData.email = $event"
  38. >
  39. </ElementInputNew>
  40. </div>
  41. <div class="element tw-mt-[16px]">
  42. <ElementInputNew
  43. :input="{
  44. id: 'Phone',
  45. label: 'Phone',
  46. required: false,
  47. type: 'text',
  48. }"
  49. :validation="validation.phone_number"
  50. @change="formData.phone_number = $event"
  51. >
  52. </ElementInputNew>
  53. </div>
  54. </div>
  55. </template>
  56. <script>
  57. import ElementInputNew from "@/components/newComponent/form/ElementInputNew";
  58. import is from "is_js";
  59. export default {
  60. name: "Contact",
  61. components: {
  62. ElementInputNew,
  63. is,
  64. },
  65. data() {
  66. return {
  67. formData: {
  68. first_name: "",
  69. last_name: "",
  70. email: "",
  71. country_code: "",
  72. phone_number: "",
  73. },
  74. validation: {
  75. first_name: true,
  76. last_name: true,
  77. email: true,
  78. phone_number: true,
  79. },
  80. errors: null,
  81. };
  82. },
  83. mounted() {},
  84. methods: {
  85. reset() {
  86. this.formData = {
  87. first_name: "",
  88. last_name: "",
  89. email: "",
  90. country_code: "",
  91. phone_number: "",
  92. };
  93. },
  94. save() {
  95. this.validators();
  96. if (this.validators()) {
  97. const patchData = JSON.parse(JSON.stringify(this.formData));
  98. // this.$axios
  99. // .post(
  100. // `/member/contacts?jwt=${
  101. // this.$auth.$storage.getUniversal("jwt").token
  102. // }`,
  103. // patchData
  104. // )
  105. // .then((result) => {
  106. // if (result.status == 200) {
  107. // this.$emit("update", true);
  108. // this.reset();
  109. // this.$modal.hide("add-contact-modal");
  110. // }
  111. // })
  112. // .catch((err) => {
  113. // console.log(err);
  114. // });
  115. }
  116. },
  117. validators() {
  118. // if (is.empty(this.formData.first_name)) {
  119. // this.validation.first_name = false;
  120. // } else {
  121. // this.validation.first_name = true;
  122. // }
  123. // if (is.empty(this.formData.last_name)) {
  124. // this.validation.last_name = false;
  125. // } else {
  126. // this.validation.last_name = true;
  127. // }
  128. // if (is.empty(this.formData.email) || is.not.email(this.formData.email)) {
  129. // this.validation.email = false;
  130. // } else {
  131. // this.validation.email = true;
  132. // }
  133. // if (
  134. // is.empty(this.formData.phone_number) &&
  135. // is.number(this.formData.phone_number)
  136. // ) {
  137. // this.validation.phone_number = false;
  138. // } else {
  139. // this.validation.phone_number = true;
  140. // }
  141. // this.errors = Object.entries(this.validation).filter(
  142. // (e) => e[1] == false
  143. // );
  144. // if (this.errors.length > 0) {
  145. // return false;
  146. // } else {
  147. // return true;
  148. // }
  149. },
  150. },
  151. };
  152. </script>
  153. <style lang="scss" scoped>
  154. </style>