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.

resortPage.vue 6.1KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202
  1. <template>
  2. <div>
  3. <section>
  4. <section class="intro-single">
  5. <div class="container">
  6. <div class="row">
  7. <div class="col-md-12 col-lg-8">
  8. <div class="title-single-box">
  9. <h1 class="title-single" style="text-align:left;">{{resort.prName}}</h1>
  10. </div>
  11. </div>
  12. </div>
  13. </div>
  14. </section>
  15. <div class="myMargin">
  16. <div class="row">
  17. <div class="col-md-3">
  18. <h3>Filter Resort</h3>
  19. <form
  20. id="mainForm"
  21. method="POST"
  22. action="/filter"
  23. accept-charset="UTF-8"
  24. enctype="multipart/form-data"
  25. >
  26. <div class="form-group">
  27. <select class="form-control" name="season">
  28. <option value>
  29. <span style="color:white;">Season</span>
  30. </option>
  31. </select>
  32. </div>
  33. <div class="form-group">
  34. <select class="form-control" name="bedrooms">
  35. <option value>Bedrooms</option>
  36. </select>
  37. </div>
  38. <div class="form-group">
  39. <input
  40. class="form-control"
  41. type="number"
  42. step="any"
  43. id="minPrice"
  44. name="minPrice"
  45. placeholder="Minimum Price"
  46. />
  47. </div>
  48. <div class="form-group">
  49. <input
  50. class="form-control"
  51. type="number"
  52. step="any"
  53. id="maxPrice"
  54. name="maxPrice"
  55. placeholder="Maximum Price"
  56. />
  57. </div>
  58. <div class="form-group">
  59. <label>Filter Arrival Date From</label>
  60. <input type="date" class="form-control" name="arrivaldate" value />
  61. </div>
  62. <div class="form-group">
  63. <label>Filter Arrival Date To</label>
  64. <input type="date" class="form-control" name="arrivaldate" value />
  65. </div>
  66. <br />
  67. <button class="btn btn-b-n" type="submit">Search</button>
  68. </form>
  69. </div>
  70. <div class="col-md-9">
  71. <WeekList :resortCode="resortCode" />
  72. <div>
  73. <div class="btn btn-b-n" @click="routerGoTo('/timeshare/buy')">Back to Region</div>
  74. <hr />
  75. </div>
  76. {{description}}
  77. <hr />
  78. <div class="row mb-4">
  79. <div class="col-md-4">
  80. <img class="img-fluid" :src="image1" alt="Resort Image" />
  81. </div>
  82. <div class="col-md-4">
  83. <img class="img-fluid" :src="image2" alt="Resort Image" />
  84. </div>
  85. <div class="col-md-4">
  86. <img class="img-fluid" :src="image3" alt="Resort Image" />
  87. </div>
  88. </div>
  89. <div class="row">
  90. <div class="col-md-10 mb-4">
  91. <ul class="nav nav-tabs" id="myTab" role="tablist">
  92. <li class="nav-item">
  93. <a
  94. class="nav-link active"
  95. id="directions-tab"
  96. data-toggle="tab"
  97. href="#directions"
  98. role="tab"
  99. aria-controls="directions"
  100. aria-selected="false"
  101. >Directions</a>
  102. </li>
  103. <li class="nav-item">
  104. <a
  105. class="nav-link"
  106. id="resort-layout-tab"
  107. data-toggle="tab"
  108. href="#resort-layout"
  109. role="tab"
  110. aria-controls="resort-layout"
  111. aria-selected="true"
  112. >Resort Layout</a>
  113. </li>
  114. </ul>
  115. <div class="tab-content" id="myTabContent">
  116. <div
  117. class="tab-pane fade show active"
  118. id="directions"
  119. role="tabpanel"
  120. aria-labelledby="directions-tab"
  121. >
  122. <iframe
  123. :src="mapUrl"
  124. width="100%"
  125. height="450"
  126. frameborder="0"
  127. style="border:0"
  128. allowfullscreen
  129. ></iframe>
  130. <br />
  131. <small>
  132. <a
  133. :href="mapUrl"
  134. style="color:#60CBEB;text-align:left"
  135. target="_blank"
  136. >See map bigger</a>
  137. </small>
  138. </div>
  139. <div
  140. class="tab-pane fade"
  141. id="resort-layout"
  142. role="tabpanel"
  143. aria-labelledby="resort-layout-tab"
  144. >
  145. <img class="img-fluid" :src="layout" alt="Resort Layout" />
  146. </div>
  147. </div>
  148. </div>
  149. </div>
  150. </div>
  151. </div>
  152. </div>
  153. </section>
  154. </div>
  155. </template>
  156. <script>
  157. import { mapState, mapActions } from 'vuex';
  158. import WeekList from '../buy/weekListComponent.vue';
  159. export default {
  160. props: {
  161. resortCode: {},
  162. },
  163. components: {
  164. WeekList,
  165. },
  166. mounted() {
  167. this.initResort(this.resortCode);
  168. },
  169. computed: {
  170. ...mapState('resort', [
  171. 'resort',
  172. 'description',
  173. 'image1',
  174. 'image2',
  175. 'image3',
  176. 'layout',
  177. ]),
  178. mapUrl() {
  179. return this.resort
  180. ? `http://maps.google.com/maps?q=${this.resort.prLatitude},${this.resort.prLongitude}&z=15&output=embed`
  181. : '';
  182. },
  183. },
  184. methods: {
  185. ...mapActions('resort', ['initResort']),
  186. routerGoTo(goto) {
  187. this.$router.push(goto);
  188. },
  189. },
  190. };
  191. </script>
  192. <style>
  193. .myMargin {
  194. margin-left: 2%;
  195. margin-right: 2%;
  196. }
  197. </style>