Ви не можете вибрати більше 25 тем Теми мають розпочинатися з літери або цифри, можуть містити дефіси (-) і не повинні перевищувати 35 символів.

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245
  1. <template>
  2. <!-- eslint-disable max-len -->
  3. <div style="padding-left:30px; padding-right:30px; padding-bottom:30px;">
  4. <div v-if="!isLoggedIn">
  5. <div class="container col-md-10">
  6. <p class="alert myError">Please Login to add a property</p>
  7. </div>
  8. <button
  9. type="button"
  10. class="btn btn-b-n"
  11. style="width: 150px; height:40px;"
  12. data-dismiss="modal"
  13. >
  14. OK
  15. </button>
  16. </div>
  17. <div v-else>
  18. <div v-if="!isSaved">
  19. <br />
  20. <div v-if="isProperty">
  21. <div class="form-group row">
  22. <div style="text-align:left">
  23. <div class="title-box-d">
  24. <h3 class="title-d">{{ item.shortDescription }}</h3>
  25. </div>
  26. </div>
  27. </div>
  28. <div class="form-group row">
  29. <div class="col-md-12" style="text-align:left">
  30. <div v-html="item.description"></div>
  31. </div>
  32. </div>
  33. </div>
  34. <div v-if="!isProperty">
  35. <div class="form-group row">
  36. <div style="text-align:left">
  37. <div class="intro-content">
  38. <h2>{{ item.resort.resortName ? item.resort.resortName : item.resort }}</h2>
  39. </div>
  40. </div>
  41. </div>
  42. <div class="form-group row">
  43. <div class="col-md-12">
  44. <label for="resortunit">Unit:</label>
  45. <h5>{{ item.unitNumber }}</h5>
  46. </div>
  47. <div class="col-md-12">
  48. <label for="resortWeek">Module / Week Number:</label>
  49. <h5>{{ item.weekNumber }}</h5>
  50. </div>
  51. </div>
  52. </div>
  53. <div class="form-group row">
  54. <div class="col-md-12">
  55. <label>Current Price:</label>
  56. <h4>{{ item.sellPrice | toCurrency }}</h4>
  57. </div>
  58. <div class="col-md-12">
  59. <label>Offer:</label>
  60. <input
  61. class="form-control"
  62. type="number"
  63. step="any"
  64. id="minPrice"
  65. name="minPrice"
  66. v-model="item.offer"
  67. :disabled="!isMakeOffer"
  68. />
  69. </div>
  70. </div>
  71. <div class="form-group row">
  72. <div class="col-md-12">
  73. <label>Comments</label>
  74. <textarea
  75. class="form-control editor form-control-lg form-control-a"
  76. name="description"
  77. v-model="item.comment"
  78. :disabled="!isMakeOffer"
  79. ></textarea>
  80. </div>
  81. </div>
  82. <div class="form-group row">
  83. <div class="col-md-12">
  84. <p>
  85. *Occupation for the current year is not guaranteed, Uni-Vate Properties will confirm
  86. upon reply.
  87. </p>
  88. </div>
  89. </div>
  90. </div>
  91. <div v-if="!isSaved" class="container">
  92. <div class="row">
  93. <div algin="center" class="col">
  94. <button v-if="isMakeOffer" type="button" @click="SendOffer()" class="btn-solid-blue">
  95. Send Offer
  96. </button>
  97. <button
  98. v-if="!isMakeOffer && !isDecline && canEdit"
  99. type="submit"
  100. @click="Accept()"
  101. class="btn btn-b-n"
  102. style="width: 150px; height:40px;"
  103. >
  104. Accept
  105. </button>
  106. <button
  107. v-if="!isMakeOffer && !isDecline && canEdit"
  108. type="button"
  109. @click="Decline()"
  110. class="btn btn-b-n"
  111. style="width: 150px; height:40px;"
  112. >
  113. Decline
  114. </button>
  115. </div>
  116. </div>
  117. </div>
  118. <div v-if="isDecline || item.statusCode === 'E3'" class="form-group row">
  119. <div class="col-md-12">
  120. <br />
  121. <label>Decline Reason</label>
  122. <textarea
  123. class="form-control editor form-control-lg form-control-a"
  124. name="description"
  125. v-model="item.declineReason"
  126. :disabled="item.statusCode === 'E3'"
  127. ></textarea>
  128. </div>
  129. </div>
  130. <button
  131. v-if="isDecline"
  132. type="button"
  133. @click="Complete()"
  134. class="btn btn-b-n"
  135. style="width: 150px; height:40px;"
  136. >
  137. Complete
  138. </button>
  139. <div v-if="isSaved">
  140. <div class="form-group row">
  141. <br />
  142. <div class="container col-md-10">
  143. <p :class="[isInfo ? 'alert myInfo' : 'alert myWarning']">{{ message }}</p>
  144. </div>
  145. </div>
  146. <button
  147. v-if="isSaved"
  148. type="button"
  149. class="btn btn-b-n"
  150. style="width: 150px; height:40px;"
  151. data-dismiss="modal"
  152. >
  153. OK
  154. </button>
  155. </div>
  156. </div>
  157. </div>
  158. </template>
  159. <script>
  160. /* eslint-disable */
  161. import { mapState, mapActions } from "vuex";
  162. import Log from "../../assets/Log";
  163. export default {
  164. name: "MakeOffer",
  165. props: {
  166. isMakeOffer: Boolean,
  167. isProperty: Boolean,
  168. canEdit: Boolean,
  169. item: Object,
  170. bidId: Number,
  171. updateItem: Function
  172. },
  173. data() {
  174. return {
  175. isDecline: false,
  176. isSaved: false,
  177. message: "",
  178. isInfo: true,
  179. isLoggedIn: Log.isLoggedIn()
  180. };
  181. },
  182. methods: {
  183. ...mapActions("bid", ["getTemplate", "saveBid", "acceptBid", "declineBid"]),
  184. SendOffer() {
  185. //alert("Under Development");
  186. this.bidItem.id = 0;
  187. this.bidItem.amount = this.item.offer;
  188. this.bidItem.comment = this.item.comment;
  189. if (this.isProperty) {
  190. this.bidItem.propertyId = this.item.id;
  191. } else {
  192. this.bidItem.timeshareWeekId = this.item.id;
  193. if (this.item.isTender) {
  194. this.bidItem.tenderWeek = this.item;
  195. }
  196. }
  197. this.saveBid(this.bidItem);
  198. this.isSaved = true;
  199. this.isInfo = true;
  200. this.message = "Offer was submitted.";
  201. },
  202. Accept() {
  203. this.acceptBid(this.item.id);
  204. this.isSaved = true;
  205. this.message = "Offer Accepted.";
  206. this.isInfo = true;
  207. },
  208. Decline() {
  209. this.isDecline = true;
  210. },
  211. Complete() {
  212. this.isDecline = false;
  213. const decline = {
  214. id: this.item.id,
  215. comment: this.item.declineReason
  216. };
  217. this.declineBid(decline);
  218. this.isSaved = true;
  219. this.message = "Offer Declined.";
  220. this.isInfo = false;
  221. }
  222. },
  223. computed: {
  224. ...mapState("bid", ["bidItem"])
  225. },
  226. mounted() {
  227. this.getTemplate();
  228. },
  229. watch: {
  230. item() {
  231. this.isSaved = false;
  232. this.canEdit = this.item.statusCode === "E1";
  233. }
  234. }
  235. };
  236. </script>
  237. <style lang="scss" scoped></style>