소스 검색

Timeshare changes to add

master
Kobus 5 년 전
부모
커밋
bf3382218d
2개의 변경된 파일61개의 추가작업 그리고 21개의 파일을 삭제
  1. 35
    17
      src/components/timeshare/sell/sellPage.vue
  2. 26
    4
      src/store/modules/timeshare/timeshare.js

+ 35
- 17
src/components/timeshare/sell/sellPage.vue 파일 보기

@@ -95,6 +95,23 @@
95 95
           <div class="container">
96 96
             <div class="col-md-12" style="text-align:left">
97 97
               <div class="form-group row">
98
+                <div class="col-md-6">
99
+                  <label>Region *</label>
100
+                  <div class="input-group mb-3">
101
+                    <div class="input-group-prepend">
102
+                      <span class="input-group-text" style="color: #60CBEB">
103
+                        <b>R</b>
104
+                      </span>
105
+                    </div>
106
+                    <select class="form-control" v-model="sellItem.region" @change="regionChange()">
107
+                      <option
108
+                        v-for="(region, r) in regions"
109
+                        :key="r"
110
+                        :value="region"
111
+                      >{{region.regionName}}</option>
112
+                    </select>
113
+                  </div>
114
+                </div>
98 115
                 <div class="col-md-6">
99 116
                   <label for="Resort Name">Resort Name *</label>
100 117
                   <div class="input-group mb-3">
@@ -250,19 +267,6 @@
250 267
                   </div>
251 268
                 </div>
252 269
               </div>
253
-              <div class="form-group row">
254
-                <div class="col-md-12">
255
-                  <label for="Owner">Owner *</label>
256
-                  <div class="input-group mb-3">
257
-                    <div class="input-group-prepend">
258
-                      <span class="input-group-text" style="color: #60CBEB">
259
-                        <b>O</b>
260
-                      </span>
261
-                    </div>
262
-                    <input class="form-control" type="text" name="owner" v-model="sellItem.owner" />
263
-                  </div>
264
-                </div>
265
-              </div>
266 270
 
267 271
               <div class="form-group row">
268 272
                 <div class="col-md-6">
@@ -476,7 +480,7 @@
476 480
                   type="number"
477 481
                   step="any"
478 482
                   name="sellingPrice"
479
-                  v-model="sellItem.sellingPrice"
483
+                  v-model="sellItem.sellPrice"
480 484
                 />
481 485
               </div>
482 486
             </div>
@@ -516,10 +520,10 @@
516 520
             </div>
517 521
           </div>
518 522
 
519
-          <button type="submit" class="btn btn-b-n btn-lg">Submit</button>
523
+          <div class="btn btn-b-n btn-lg" @click="submitSale()">Submit</div>
520 524
 
521 525
           <hr />
522
-          {{sellItem}}
526
+          <h1>{{result}}</h1>
523 527
           <hr />
524 528
 
525 529
           <p>* A listing fee of R380 including VAT is payable to list your timeshare week/module on the Uni-Vate website</p>
@@ -552,6 +556,7 @@ export default {
552 556
       'regions',
553 557
       'detailedRegion',
554 558
       'seasons',
559
+      'result',
555 560
       'resortBedrooms',
556 561
       'maxSleep',
557 562
       'bankedEntities',
@@ -564,6 +569,9 @@ export default {
564 569
     },
565 570
   },
566 571
   methods: {
572
+    submitSale() {
573
+      this.saveWeek(this.sellItem);
574
+    },
567 575
     previewFiles(event) {
568 576
       console.log(event.target.files);
569 577
     },
@@ -583,6 +591,11 @@ export default {
583 591
       this.sellItem.currentYearBanked = !this.sellItem.currentYearBanked;
584 592
     },
585 593
     resortChange() {
594
+      this.onResortChange({
595
+        resortName: this.sellItem.resort.resortName,
596
+        resortCode: this.sellItem.resort.resortCode,
597
+      });
598
+
586 599
       if (this.sellItem && this.sellItem.resort === 'Other') {
587 600
         this.sellItem.otherResortName = undefined;
588 601
         this.sellItem.otherResort = true;
@@ -591,7 +604,12 @@ export default {
591 604
         this.sellItem.otherResort = false;
592 605
       }
593 606
     },
594
-    ...mapActions('timeshare', ['initTimeshare']),
607
+    regionChange() {
608
+      this.sellItem.regionId = this.sellItem.region
609
+        ? this.sellItem.region.id
610
+        : 1;
611
+    },
612
+    ...mapActions('timeshare', ['initTimeshare', 'onResortChange', 'saveWeek']),
595 613
   },
596 614
 };
597 615
 </script>

+ 26
- 4
src/store/modules/timeshare/timeshare.js 파일 보기

@@ -1,6 +1,7 @@
1 1
 /* eslint-disable guard-for-in */
2 2
 /* eslint-disable no-restricted-syntax */
3 3
 import axios from 'axios';
4
+import _ from 'lodash';
4 5
 import MyData from '../../../assets/myData';
5 6
 import MaritalStatus from '../../../assets/staticData/maritalStatus';
6 7
 
@@ -17,6 +18,7 @@ export default {
17 18
     agencies: [],
18 19
     agents: [],
19 20
     maritalStatus: MaritalStatus,
21
+    result: undefined,
20 22
     sellItem: {
21 23
       referedByAgent: false,
22 24
       agentId: undefined,
@@ -24,6 +26,8 @@ export default {
24 26
       otherResort: false,
25 27
       otherResortName: undefined,
26 28
       resort: undefined,
29
+      resortCode: undefined,
30
+      resortName: undefined,
27 31
       regionId: undefined,
28 32
       season: undefined,
29 33
       module: undefined,
@@ -40,7 +44,7 @@ export default {
40 44
       originalPurchaseDate: undefined,
41 45
       arrivalDate: undefined,
42 46
       departureDate: undefined,
43
-      sellingPrice: undefined,
47
+      sellPrice: undefined,
44 48
       agentCommission: undefined,
45 49
       mandate: undefined,
46 50
       status: undefined,
@@ -100,6 +104,20 @@ export default {
100 104
     addDetailedRegion(state, detailedRegion) {
101 105
       state.detailedRegion.push(detailedRegion);
102 106
     },
107
+    changeResort(state, resort) {
108
+      for (const reg in state.detailedRegion) {
109
+        const region = state.detailedRegion[reg];
110
+        if (_.find(region.children, x => x.resortCode === resort.resortCode)) {
111
+          state.regionId = reg;
112
+          break;
113
+        }
114
+      }
115
+      state.sellItem.resortCode = resort.resortCode;
116
+      state.sellItem.resortName = resort.resortName;
117
+    },
118
+    displayResult(state, result) {
119
+      state.result = result;
120
+    },
103 121
   },
104 122
   getters: {
105 123
 
@@ -129,7 +147,6 @@ export default {
129 147
     getAgencies({
130 148
       commit,
131 149
     }) {
132
-      console.log(123);
133 150
       axios
134 151
         .get('/api/agency')
135 152
         .then(result => commit('setAgency', result.data))
@@ -185,13 +202,18 @@ export default {
185 202
         }
186 203
       }
187 204
     },
205
+    onResortChange({
206
+      commit,
207
+    }, resort) {
208
+      commit('changeResort', resort);
209
+    },
188 210
     saveWeek({
189 211
       commit,
190 212
     }, week) {
191 213
       axios
192 214
         .post('/api/timeshareweek', week)
193
-        .then(result => commit('addDetailedRegion', {
194
-          week,
215
+        .then(result => commit('displayResult', {
216
+          result,
195 217
         }))
196 218
         .catch(console.error);
197 219
     },

Loading…
취소
저장