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

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