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.

contentSection.vue 5.1KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197
  1. <template>
  2. <div class="container pt-5">
  3. <div class="row mb-8">
  4. <div class="col-md-6">
  5. <h3>{{ property.propertyName }}</h3>
  6. <p v-html="property.description"></p>
  7. <p>
  8. <strong>View by Appointment only!</strong>
  9. </p>
  10. <br />
  11. <p></p>
  12. <!-- To arrange a viewing contact Mynie:
  13. <div class="col-md-4">
  14. <a href="mailto:info@univateproperties.co.za">info@univateproperties.co.za</a><br />
  15. <a href="tel:0124921238">+27 (0) 12 492 1238</a>
  16. </div>-->
  17. </div>
  18. <div class="col-md-6">
  19. <div class="form-group row">
  20. <div class="form-group col-md-6 mb-4">
  21. <float-label>
  22. <input
  23. type="text"
  24. name="name"
  25. class="form-control"
  26. id="Unit"
  27. placeholder="Unit"
  28. data-rule="minlen:4"
  29. v-model="property.unit"
  30. disabled
  31. />
  32. </float-label>
  33. <div class="validation"></div>
  34. </div>
  35. <div class="form-group col-md-6">
  36. <float-label>
  37. <input
  38. type="text"
  39. name="name"
  40. class="form-control"
  41. id="Price"
  42. placeholder="Price"
  43. data-rule="minlen:4"
  44. v-model="property.price"
  45. disabled
  46. />
  47. </float-label>
  48. <div class="validation"></div>
  49. </div>
  50. <div class="form-group col-md-6">
  51. <float-label>
  52. <input
  53. type="text"
  54. name="name"
  55. class="form-control"
  56. id="Size"
  57. placeholder="Size"
  58. data-rule="minlen:4"
  59. v-model="size"
  60. disabled
  61. />
  62. </float-label>
  63. <div class="validation"></div>
  64. </div>
  65. <div class="form-group col-md-6 mb-4">
  66. <float-label>
  67. <input
  68. type="text"
  69. name="name"
  70. class="form-control"
  71. id="Suburb"
  72. placeholder="Suburb"
  73. data-rule="minlen:4"
  74. v-model="property.suburb"
  75. disabled
  76. />
  77. </float-label>
  78. <div class="validation"></div>
  79. </div>
  80. <div class="form-group col-md-12 mb-4">
  81. <float-label>
  82. <input
  83. type="text"
  84. name="name"
  85. class="form-control"
  86. id="Name"
  87. placeholder="Name"
  88. data-rule="minlen:4"
  89. v-model="name"
  90. />
  91. </float-label>
  92. <div class="validation"></div>
  93. </div>
  94. <div class="form-group col-md-12 mb-4">
  95. <float-label>
  96. <input
  97. type="text"
  98. name="name"
  99. class="form-control"
  100. id="ContactNumber"
  101. placeholder="ContactNumber"
  102. data-rule="minlen:4"
  103. v-model="contactNumber"
  104. />
  105. </float-label>
  106. <div class="validation"></div>
  107. </div>
  108. <div class="form-group col-md-12">
  109. <float-label>
  110. <input
  111. type="text"
  112. name="name"
  113. class="form-control"
  114. id="Email"
  115. placeholder="Email"
  116. data-rule="minlen:4"
  117. v-model="email"
  118. />
  119. </float-label>
  120. <div class="validation"></div>
  121. </div>
  122. </div>
  123. <div class="text-center">
  124. <button class="btn-solid-blue" @click="sendMail()">ENQUIRE NOW</button>
  125. </div>
  126. <div v-if="boolSent">
  127. <alert :text="alertMsg" :type="'SUCCESS'" />
  128. </div>
  129. </div>
  130. </div>
  131. </div>
  132. </template>
  133. <script>
  134. /* eslint-disable */
  135. import axios from "axios";
  136. import alert from "../../shared/alert";
  137. export default {
  138. components: {
  139. alert,
  140. },
  141. data() {
  142. return {
  143. alertMsg: "Sent! You can expect a reply soon!",
  144. name: null,
  145. email: null,
  146. contactNumber: null,
  147. property: null,
  148. message: null,
  149. boolSent: false,
  150. };
  151. },
  152. mounted() {
  153. this.boolSent = false;
  154. },
  155. props: {
  156. property: {},
  157. },
  158. methods: {
  159. async sendMail() {
  160. var mailObj = {
  161. toAddress: "jlouw365@gmail.com",
  162. fromAddress: "jlouw365@gmail.com",
  163. name: this.name,
  164. email: this.email,
  165. phone: this.contactNumber,
  166. property: this.property.id.toString(),
  167. message: this.message,
  168. };
  169. const response = await axios.post("/api/mail/1", mailObj);
  170. if (response.status === 200) {
  171. this.boolSent = true;
  172. } else {
  173. console.log("Error");
  174. }
  175. },
  176. countDownChanged(dismissCountDown) {
  177. this.dismissCountDown = dismissCountDown;
  178. },
  179. },
  180. created() {
  181. this.$emit("Loaded", true);
  182. },
  183. };
  184. </script>
  185. <style lang="scss" scoped></style>