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.

sellPage.vue 22KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611
  1. <template>
  2. <!-- eslint-disable max-len -->
  3. <div class="container">
  4. <div class="row">
  5. <div class="col-md-12">
  6. <div class="col-sm-12">
  7. <div class="about-img-box">
  8. <img
  9. src="img/sell2.jpg"
  10. alt="Timeshare To Sell"
  11. class="img-fluid"
  12. style="width:800px;height:400px;"
  13. />
  14. </div>
  15. <div class="sinse-box">
  16. <h3 class="sinse-title">
  17. Timeshare To Sell
  18. <span></span>
  19. </h3>
  20. </div>
  21. </div>
  22. <br />
  23. <div>
  24. <div class="container col-md-10">
  25. <div class="myWell">
  26. <h4>Week Information</h4>
  27. </div>
  28. <div style="float: right;" class="btn btn-link color-b">
  29. <router-link to="LinkToBeSelected">
  30. Bulk Weeks Upload
  31. <span class="ion-ios-arrow-forward" style="color:#60CBEB"></span>
  32. </router-link>
  33. </div>
  34. </div>
  35. <br />
  36. <br />
  37. <p>* You need to be logged in to submit your listing. Please register and log in if you have not done so already.</p>
  38. <hr />
  39. </div>
  40. </div>
  41. </div>
  42. <div class="row mb-4">
  43. <div class="container col-md-10">
  44. <form
  45. id="mainForm"
  46. method="POST"
  47. action="/to-sell"
  48. accept-charset="UTF-8"
  49. enctype="multipart/form-data"
  50. >
  51. <div class="form-group row">
  52. <div class="col-md-4">
  53. <label>Were you referred by an agent?</label>
  54. <br />
  55. <div class="form-check form-check-inline">
  56. <input
  57. class="form-check-input radiogroup"
  58. type="radio"
  59. value="true"
  60. :checked="refAgent"
  61. @change="changeRef"
  62. />
  63. <label class="form-check-label" for="referedBy">Yes</label>
  64. </div>
  65. <div class="form-check form-check-inline">
  66. <input
  67. class="form-check-input radiogroup"
  68. type="radio"
  69. value="false"
  70. :checked="!refAgent"
  71. @change="changeRef"
  72. />
  73. <label class="form-check-label" for="referedBy">No</label>
  74. </div>
  75. </div>
  76. <div class="col-md-4" v-if="refAgent">
  77. <label for="Name of Agency">Agency</label>
  78. <select class="form-control" id="Agency" name="agency" v-model="sellItem.agency">
  79. <option v-for="(item, i) in agencies" :key="i">{{item.agencyName}}</option>
  80. </select>
  81. </div>
  82. <div class="col-md-4" v-if="refAgent">
  83. <label for="Name of Agent">Agent</label>
  84. <select class="form-control" id="agent" name="agent" v-model="sellItem.agent">
  85. <option v-for="(item, i) in agents" :key="i">{{item.name}}</option>
  86. </select>
  87. </div>
  88. </div>
  89. <div class="container">
  90. <div class="col-md-12" style="text-align:left">
  91. <div class="form-group row">
  92. <div class="col-md-6">
  93. <label for="Resort Name">Resort Name</label>
  94. <div class="input-group mb-3">
  95. <div class="input-group-prepend">
  96. <span class="input-group-text" style="color: #60CBEB">
  97. <b>RN</b>
  98. </span>
  99. </div>
  100. <select
  101. class="form-control"
  102. id="resort"
  103. name="resort"
  104. v-model="sellItem.resort"
  105. @change="resortChange()"
  106. >
  107. <option value="Other">Other</option>
  108. <option
  109. v-for="(resort, r) in resorts"
  110. :key="r"
  111. :value="resort"
  112. >{{resort.resortName}}</option>
  113. </select>
  114. </div>
  115. </div>
  116. <div class="col-md-6">
  117. <label for="* If other" v-if="sellItem.otherResort">Name of resort</label>
  118. <div class="input-group mb-3">
  119. <div class="input-group-prepend">
  120. <span
  121. class="input-group-text"
  122. style="color: #60CBEB"
  123. v-if="sellItem.otherResort"
  124. >
  125. <b>RN</b>
  126. </span>
  127. </div>
  128. <input
  129. class="form-control"
  130. v-if="sellItem.otherResort"
  131. placeholder="* If other"
  132. type="text"
  133. name="other"
  134. v-model="sellItem.otherResortName"
  135. />
  136. </div>
  137. <label for="Region" v-if="sellItem.otherResort">Province</label>
  138. <div class="input-group mb-3">
  139. <div class="input-group-prepend">
  140. <span
  141. class="input-group-text"
  142. style="color: #60CBEB"
  143. v-if="sellItem.otherResort"
  144. >
  145. <b>P</b>
  146. </span>
  147. </div>
  148. <select
  149. class="form-control"
  150. v-if="sellItem.otherResort"
  151. name="region"
  152. id="region"
  153. v-model="sellItem.region"
  154. >
  155. <option v-for="(region, r) in regions" :key="r">{{region.regionName}}</option>
  156. </select>
  157. </div>
  158. </div>
  159. </div>
  160. <div class="form-group row">
  161. <div class="col-md-6">
  162. <label for="Unit number">Unit Number</label>
  163. <div class="input-group mb-3">
  164. <div class="input-group-prepend">
  165. <span class="input-group-text" style="color: #60CBEB">
  166. <b>U#</b>
  167. </span>
  168. </div>
  169. <input
  170. class="form-control"
  171. type="text"
  172. name="unit"
  173. v-model="sellItem.unitNumber"
  174. />
  175. </div>
  176. </div>
  177. <div class="col-md-6">
  178. <label for="Module">Module / Week Number</label>
  179. <div class="input-group mb-3">
  180. <div class="input-group-prepend">
  181. <span class="input-group-text" style="color: #60CBEB">
  182. <b>M</b>
  183. </span>
  184. </div>
  185. <input class="form-control" type="text" name="module" v-model="sellItem.module" />
  186. </div>
  187. </div>
  188. </div>
  189. <div class="form-group row">
  190. <div class="col-md-6">
  191. <label for="Season">Season</label>
  192. <div class="input-group mb-3">
  193. <div class="input-group-prepend">
  194. <span class="input-group-text" style="color: #60CBEB">
  195. <b>S</b>
  196. </span>
  197. </div>
  198. <select class="form-control" name="season" v-model="sellItem.season">
  199. <option v-for="(season, r) in seasons" :key="r">{{season.name}}</option>
  200. </select>
  201. </div>
  202. </div>
  203. <div class="col-md-6">
  204. <label for="Bedrooms">Bedrooms</label>
  205. <div class="input-group mb-3">
  206. <div class="input-group-prepend">
  207. <span class="input-group-text" style="color: #60CBEB">
  208. <b>Bed</b>
  209. </span>
  210. </div>
  211. <select class="form-control" name="bedrooms" v-model="sellItem.bedrooms">
  212. <option v-for="(item, i) in resortBedrooms" :key="i">{{item}}</option>
  213. </select>
  214. </div>
  215. </div>
  216. <div class="col-md-6">
  217. <label for="Sleeps maximum">Sleep max</label>
  218. <div class="input-group mb-3">
  219. <div class="input-group-prepend">
  220. <span class="input-group-text" style="color: #60CBEB">
  221. <b>Max</b>
  222. </span>
  223. </div>
  224. <select class="form-control" name="sleeps" v-model="sellItem.maxSleep">
  225. <option v-for="(item, i) in maxSleep" :key="i">{{item}}</option>
  226. </select>
  227. </div>
  228. </div>
  229. <div class="col-md-6">
  230. <label for="Levy">Levy Amount</label>
  231. <div class="input-group mb-3">
  232. <div class="input-group-prepend">
  233. <span class="input-group-text" style="color: #60CBEB">
  234. <b>R</b>
  235. </span>
  236. </div>
  237. <input
  238. class="form-control"
  239. type="number"
  240. step="any"
  241. name="levy"
  242. v-model="sellItem.levyAmount"
  243. />
  244. </div>
  245. </div>
  246. </div>
  247. <div class="form-group row">
  248. <div class="col-md-12">
  249. <label for="Owner">Owner</label>
  250. <div class="input-group mb-3">
  251. <div class="input-group-prepend">
  252. <span class="input-group-text" style="color: #60CBEB">
  253. <b>O</b>
  254. </span>
  255. </div>
  256. <input class="form-control" type="text" name="owner" v-model="sellItem.owner" />
  257. </div>
  258. </div>
  259. </div>
  260. <div class="form-group row">
  261. <div class="col-md-6">
  262. <p>Has your week been spacebanked for the current year?</p>
  263. <div class="form-check">
  264. <input
  265. class="form-check-input"
  266. type="radio"
  267. name="spacebankedyear"
  268. id="spacebankedyearyes"
  269. value="Yes"
  270. @change="changeCurrentBanked"
  271. :checked="sellItem.currentYearBanked"
  272. />
  273. <label class="form-check-label" for="spacebankedyearyes">Yes</label>
  274. </div>
  275. <div class="form-check">
  276. <input
  277. class="form-check-input"
  278. type="radio"
  279. name="spacebankedyear"
  280. id="spacebankedyearno"
  281. value="No"
  282. :checked="!sellItem.currentYearBanked"
  283. @change="changeCurrentBanked"
  284. />
  285. <label class="form-check-label" for="spacebankedyearno">No</label>
  286. </div>
  287. </div>
  288. <div class="col-md-6">
  289. <label
  290. for="If yes, please confirm with whom"
  291. v-if="sellItem.currentYearBanked"
  292. >Please confirm with whom</label>
  293. <select
  294. class="form-control"
  295. name="spacebankOwner"
  296. v-if="sellItem.currentYearBanked"
  297. v-model="sellItem.bankedWith"
  298. >
  299. <option v-for="(item, i) in bankedEntities" :key="i">{{item}}</option>
  300. </select>
  301. </div>
  302. </div>
  303. </div>
  304. <div class="col-md-6">
  305. <label
  306. for="If yes, please confirm with whom"
  307. v-if="sellItem.currentYearBanked"
  308. >Please confirm with whom</label>
  309. <select
  310. class="form-control"
  311. name="spacebankOwner"
  312. v-if="sellItem.currentYearBanked"
  313. v-model="sellItem.bankedWith"
  314. >
  315. <option v-for="(item, i) in bankedEntities" :key="i">{{item}}</option>
  316. </select>
  317. </div>
  318. <DetailIndividual :owner="sellItem.owner" />
  319. <hr />
  320. <Address :address="sellItem.owner" />
  321. <hr />
  322. <BankDetails :bankingDetails="sellItem.owner.bankingDetails" />
  323. <hr />
  324. </div>
  325. <hr />
  326. <br />
  327. <div class="myWell">
  328. <h4>Share transfer information</h4>
  329. </div>
  330. <br />
  331. <tr>
  332. <td>1. With respect to my timeshare module/week, I confirm that:</td>
  333. </tr>
  334. <div class="form-group row" style="text-align:left">
  335. <label
  336. for="name"
  337. class="col-form-label col-md-8"
  338. >1.1 All levy amounts for the current cycle have been paid in full</label>
  339. <div class="col-md-4">
  340. <div class="form-check form-check-inline">
  341. <input
  342. class="form-check-input"
  343. type="radio"
  344. name="paid"
  345. value="Yes"
  346. :checked="sellItem.leviesPaidInFull"
  347. @change="changeLeviesPaidInFull()"
  348. />
  349. <label class="form-check-label" for="paid">Yes</label>
  350. </div>
  351. <div class="form-check form-check-inline">
  352. <input
  353. class="form-check-input"
  354. type="radio"
  355. name="paid"
  356. value="No"
  357. :checked="!sellItem.leviesPaidInFull"
  358. @change="changeLeviesPaidInFull()"
  359. />
  360. <label class="form-check-label" for="paid">No</label>
  361. </div>
  362. </div>
  363. </div>
  364. <hr />
  365. <div class="form-group row" style="text-align:left">
  366. <label
  367. for="name"
  368. class="col-form-label col-md-8"
  369. >1.2 My week is placed for rental this year</label>
  370. <div class="col-md-4">
  371. <div class="form-check form-check-inline">
  372. <input
  373. class="form-check-input"
  374. type="radio"
  375. name="rental"
  376. value="Yes"
  377. :checked="sellItem.weekPlacedForRental"
  378. @change="changeWeekPlacedForRental()"
  379. />
  380. <label class="form-check-label" for="paidyes">Yes</label>
  381. </div>
  382. <div class="form-check form-check-inline">
  383. <input
  384. class="form-check-input"
  385. type="radio"
  386. name="rental"
  387. value="No"
  388. :checked="!sellItem.weekPlacedForRental"
  389. @change="changeWeekPlacedForRental()"
  390. />
  391. <label class="form-check-label" for="paidno">No</label>
  392. </div>
  393. </div>
  394. </div>
  395. <hr />
  396. <div class="form-group row" style="text-align:left">
  397. <label
  398. for="name"
  399. class="col-form-label col-md-8"
  400. >1.3 I/We bought the timeshare module/week on the following date:</label>
  401. <div class="col-md-4">
  402. <input
  403. type="date"
  404. class="form-control"
  405. name="date"
  406. v-model="sellItem.originalPurchaseDate"
  407. />
  408. </div>
  409. </div>
  410. <hr />
  411. <div class="form-group row" style="text-align:left">
  412. <label
  413. for="name"
  414. class="col-form-label col-md-8"
  415. >1.4 The purchase price for which I/we bought timeshare module/week was:</label>
  416. <div class="col-md-4">
  417. <div class="input-group mb-3">
  418. <div class="input-group-prepend">
  419. <span class="input-group-text" style="color: #60CBEB">
  420. <b>R</b>
  421. </span>
  422. </div>
  423. <input
  424. class="form-control"
  425. type="number"
  426. step="any"
  427. name="purchasePrice"
  428. v-model="sellItem.originalPurchasePrice"
  429. />
  430. </div>
  431. </div>
  432. </div>
  433. <hr />
  434. <div class="form-group row" style="text-align:left">
  435. <label
  436. for="name"
  437. class="col-form-label col-md-8"
  438. >1.5 I/We bought the timeshare module/week for the following dates for the current year:</label>
  439. <div class="col-md-4">
  440. Arrival Date :
  441. <input
  442. type="date"
  443. class="form-control"
  444. name="occupationDate1"
  445. v-model="sellItem.arrivalDate"
  446. />
  447. Departure Date :
  448. <input
  449. type="date"
  450. class="form-control"
  451. name="occupationDate2"
  452. v-model="sellItem.departureDate"
  453. />
  454. </div>
  455. </div>
  456. <hr />
  457. <div class="form-group row" style="text-align:left">
  458. <label
  459. for="name"
  460. class="col-form-label col-md-8"
  461. >1.6 The selling price for the timeshare module/week for which I/we want to sell is: (Including Vat)</label>
  462. <div class="col-md-4">
  463. <div class="input-group mb-3">
  464. <div class="input-group-prepend">
  465. <span class="input-group-text" style="color: #60CBEB">
  466. <b>R</b>
  467. </span>
  468. </div>
  469. <input
  470. class="form-control"
  471. type="number"
  472. step="any"
  473. name="sellingPrice"
  474. v-model="sellItem.sellingPrice"
  475. />
  476. </div>
  477. </div>
  478. </div>
  479. <hr />
  480. <div class="form-group row" style="text-align:left">
  481. <label
  482. for="name"
  483. class="col-form-label col-md-8"
  484. >1.7 Estate agent’s commission agreed to (state Rand value)</label>
  485. <div class="col-md-4">
  486. <div class="input-group mb-3">
  487. <div class="input-group-prepend">
  488. <span class="input-group-text" style="color: #60CBEB">
  489. <b>R</b>
  490. </span>
  491. </div>
  492. <input
  493. class="form-control"
  494. type="number"
  495. step="any"
  496. name="commission"
  497. v-model="sellItem.agentCommission"
  498. />
  499. </div>
  500. </div>
  501. </div>
  502. <hr />
  503. <div class="form-group row" style="text-align:left">
  504. <label for="name" class="col-form-label col-md-8">1.8 Mandate to sell timeshare</label>
  505. <div class="col-md-4">
  506. <input class="btn btn-b-n" type="file" name="mandate" />
  507. </div>
  508. </div>
  509. <button type="submit" class="btn btn-b-n btn-lg">Submit</button>
  510. <hr />
  511. <p>* A listing fee of R380 including VAT is payable to list your timeshare week/module on the Uni-Vate website</p>
  512. <br />
  513. <br />
  514. <p style="text-align:center;">
  515. To rent your week out
  516. <a href="https://www.tradeunipoint.com/" target="_blank">click here</a>
  517. </p>
  518. </form>
  519. </div>
  520. </div>
  521. </div>
  522. </template>
  523. <script>
  524. import { mapState, mapActions } from 'vuex';
  525. import DetailIndividual from '../../user/timeshareIndividual.vue';
  526. import BankDetails from '../../shared/bankAccount.vue';
  527. import Address from '../../misc/address.vue';
  528. export default {
  529. name: 'TimeshareToSell',
  530. components: { DetailIndividual, BankDetails, Address },
  531. created() {
  532. this.initTimeshare();
  533. },
  534. computed: {
  535. ...mapState('timeshare', [
  536. 'resorts',
  537. 'regions',
  538. 'detailedRegion',
  539. 'seasons',
  540. 'resortBedrooms',
  541. 'maxSleep',
  542. 'bankedEntities',
  543. 'sellItem',
  544. 'agencies',
  545. 'agents',
  546. ]),
  547. refAgent() {
  548. return this.sellItem && this.sellItem.referedByAgent;
  549. },
  550. },
  551. methods: {
  552. previewFiles(event) {
  553. console.log(event.target.files);
  554. },
  555. changeRef() {
  556. this.sellItem.agent = undefined;
  557. this.sellItem.agency = undefined;
  558. this.sellItem.referedByAgent = !this.sellItem.referedByAgent;
  559. },
  560. changeLeviesPaidInFull() {
  561. this.sellItem.leviesPaidInFull = !this.sellItem.leviesPaidInFull;
  562. },
  563. changeWeekPlacedForRental() {
  564. this.sellItem.weekPlacedForRental = !this.sellItem.weekPlacedForRental;
  565. },
  566. changeCurrentBanked() {
  567. this.sellItem.bankedWith = undefined;
  568. this.sellItem.currentYearBanked = !this.sellItem.currentYearBanked;
  569. },
  570. resortChange() {
  571. if (this.sellItem && this.sellItem.resort === 'Other') {
  572. this.sellItem.otherResortName = undefined;
  573. this.sellItem.otherResort = true;
  574. } else {
  575. this.sellItem.otherResortName = undefined;
  576. this.sellItem.otherResort = false;
  577. }
  578. },
  579. ...mapActions('timeshare', ['initTimeshare']),
  580. },
  581. };
  582. </script>
  583. <style>
  584. .myWell {
  585. width: 100%;
  586. background-color: #60cbeb;
  587. border-radius: 6px;
  588. padding: 5px;
  589. margin: 3px;
  590. }
  591. </style>