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.

searchTab.vue 5.3KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171
  1. <template>
  2. <!-- eslint-disable max-len -->
  3. <div class="box-collapse">
  4. <div class="title-box-d">
  5. <h3 class="title-d">Search</h3>
  6. </div>
  7. <span class="close-box-collapse right-boxed ion-ios-close"></span>
  8. <div class="box-collapse-wrap">
  9. <form class="form-a">
  10. <div class="row">
  11. <div class="col-md-12 mb-2">
  12. <div class="form-group">
  13. <label for="Type">Keyword</label>
  14. <input
  15. type="text"
  16. class="form-control form-control-lg form-control-a"
  17. placeholder="Keyword"
  18. v-model="keyword"
  19. />
  20. </div>
  21. </div>
  22. <div class="col-md-12">
  23. <ul class="nav nav-pills-a nav-pills mb-3 section-t3" id="pills-tab" role="tablist">
  24. <li class="nav-item">
  25. <a
  26. class="nav-link active"
  27. id="pills-video-tab"
  28. data-toggle="pill"
  29. href="#pills-video"
  30. role="tab"
  31. aria-controls="pills-video"
  32. aria-selected="true"
  33. v-on:click="updateType('Timeshare')"
  34. >Timeshare</a>
  35. </li>
  36. <li class="nav-item">
  37. <a
  38. class="nav-link"
  39. id="pills-plans-tab"
  40. data-toggle="pill"
  41. href="#pills-plans"
  42. role="tab"
  43. aria-controls="pills-plans"
  44. aria-selected="false"
  45. v-on:click="updateType('Residential')"
  46. >Residential</a>
  47. </li>
  48. <li class="nav-item">
  49. <a
  50. class="nav-link"
  51. id="pills-map-tab"
  52. data-toggle="pill"
  53. href="#pills-map"
  54. role="tab"
  55. aria-controls="pills-map"
  56. aria-selected="false"
  57. v-on:click="updateType('Commercial')"
  58. >Commercial</a>
  59. </li>
  60. </ul>
  61. <div class="tab-content" id="pills-tabContent">
  62. <div
  63. class="tab-pane fade show active"
  64. id="pills-video"
  65. role="tabpanel"
  66. aria-labelledby="pills-video-tab"
  67. >
  68. <timeshareSearch />
  69. </div>
  70. <div
  71. class="tab-pane fade"
  72. id="pills-plans"
  73. role="tabpanel"
  74. aria-labelledby="pills-plans-tab"
  75. >
  76. <propertySearch
  77. propertyType="Residential"
  78. @TypeSelectedUpdated="TypeSelectedUpdated"
  79. @ProvinceSelectedUpdated="ProvinceSelectedUpdated"
  80. @CitySelectedUpdated="CitySelectedUpdated"
  81. @SuburbSelectedUpdated="SuburbSelectedUpdated"
  82. @PropertyTypeSelectedUpdated="PropertyTypeSelectedUpdated"
  83. />
  84. </div>
  85. <div
  86. class="tab-pane fade"
  87. id="pills-map"
  88. role="tabpanel"
  89. aria-labelledby="pills-map-tab"
  90. >
  91. <propertySearch
  92. propertyType="Commercial"
  93. @TypeSelectedUpdated="TypeSelectedUpdated"
  94. @ProvinceSelectedUpdated="ProvinceSelectedUpdated"
  95. @CitySelectedUpdated="CitySelectedUpdated"
  96. @SuburbSelectedUpdated="SuburbSelectedUpdated"
  97. @PropertyTypeSelectedUpdated="PropertyTypeSelectedUpdated"
  98. />
  99. </div>
  100. </div>
  101. </div>
  102. {{selectedPropertyType}}
  103. <div class="col-md-12">
  104. <button type="submit" class="btn btn-b-n" @click="Search">Search</button>
  105. </div>
  106. </div>
  107. </form>
  108. </div>
  109. </div>
  110. </template>
  111. <script>
  112. import propertySearch from '../property/propertySearchFields.vue';
  113. import timeshareSearch from '../timeshare/searchTimeshare.vue';
  114. export default {
  115. components: {
  116. propertySearch,
  117. timeshareSearch,
  118. },
  119. data() {
  120. return {
  121. selectedPropertyType: 'timeshare',
  122. selectedType: '',
  123. selectedProvince: '',
  124. selectedCity: '',
  125. selectedSuburb: '',
  126. selectedPropType: '',
  127. keyword: '',
  128. };
  129. },
  130. methods: {
  131. updateType(item) {
  132. this.selectedPropertyType = item;
  133. },
  134. TypeSelectedUpdated(item) {
  135. this.selectedType = item;
  136. },
  137. PropertyTypeSelectedUpdated(item) {
  138. this.selectedPropType = item;
  139. },
  140. ProvinceSelectedUpdated(item) {
  141. this.selectedProvince = item;
  142. },
  143. CitySelectedUpdated(item) {
  144. this.selectedCity = item;
  145. },
  146. SuburbSelectedUpdated(item) {
  147. this.selectedSuburb = item;
  148. },
  149. Search() {
  150. if (this.selectedPropertyType === 'timeshare') {
  151. this.$router.push('/timeshare/search/');
  152. } else {
  153. this.$router.push({
  154. path: '/property/search',
  155. query: {
  156. type: this.selectedType,
  157. propertyType: this.selectedPropertyType,
  158. province: this.selectedProvince,
  159. city: this.selectedCity,
  160. suburb: this.selectedSuburb,
  161. propType: this.selectedPropType,
  162. keyword: this.keyword,
  163. },
  164. });
  165. }
  166. },
  167. },
  168. };
  169. </script>