Browse Source

Timeshare changes to add

master
Kobus 5 years ago
parent
commit
bf3382218d
2 changed files with 61 additions and 21 deletions
  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 View File

95
           <div class="container">
95
           <div class="container">
96
             <div class="col-md-12" style="text-align:left">
96
             <div class="col-md-12" style="text-align:left">
97
               <div class="form-group row">
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
                 <div class="col-md-6">
115
                 <div class="col-md-6">
99
                   <label for="Resort Name">Resort Name *</label>
116
                   <label for="Resort Name">Resort Name *</label>
100
                   <div class="input-group mb-3">
117
                   <div class="input-group mb-3">
250
                   </div>
267
                   </div>
251
                 </div>
268
                 </div>
252
               </div>
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
               <div class="form-group row">
271
               <div class="form-group row">
268
                 <div class="col-md-6">
272
                 <div class="col-md-6">
476
                   type="number"
480
                   type="number"
477
                   step="any"
481
                   step="any"
478
                   name="sellingPrice"
482
                   name="sellingPrice"
479
-                  v-model="sellItem.sellingPrice"
483
+                  v-model="sellItem.sellPrice"
480
                 />
484
                 />
481
               </div>
485
               </div>
482
             </div>
486
             </div>
516
             </div>
520
             </div>
517
           </div>
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
           <hr />
525
           <hr />
522
-          {{sellItem}}
526
+          <h1>{{result}}</h1>
523
           <hr />
527
           <hr />
524
 
528
 
525
           <p>* A listing fee of R380 including VAT is payable to list your timeshare week/module on the Uni-Vate website</p>
529
           <p>* A listing fee of R380 including VAT is payable to list your timeshare week/module on the Uni-Vate website</p>
552
       'regions',
556
       'regions',
553
       'detailedRegion',
557
       'detailedRegion',
554
       'seasons',
558
       'seasons',
559
+      'result',
555
       'resortBedrooms',
560
       'resortBedrooms',
556
       'maxSleep',
561
       'maxSleep',
557
       'bankedEntities',
562
       'bankedEntities',
564
     },
569
     },
565
   },
570
   },
566
   methods: {
571
   methods: {
572
+    submitSale() {
573
+      this.saveWeek(this.sellItem);
574
+    },
567
     previewFiles(event) {
575
     previewFiles(event) {
568
       console.log(event.target.files);
576
       console.log(event.target.files);
569
     },
577
     },
583
       this.sellItem.currentYearBanked = !this.sellItem.currentYearBanked;
591
       this.sellItem.currentYearBanked = !this.sellItem.currentYearBanked;
584
     },
592
     },
585
     resortChange() {
593
     resortChange() {
594
+      this.onResortChange({
595
+        resortName: this.sellItem.resort.resortName,
596
+        resortCode: this.sellItem.resort.resortCode,
597
+      });
598
+
586
       if (this.sellItem && this.sellItem.resort === 'Other') {
599
       if (this.sellItem && this.sellItem.resort === 'Other') {
587
         this.sellItem.otherResortName = undefined;
600
         this.sellItem.otherResortName = undefined;
588
         this.sellItem.otherResort = true;
601
         this.sellItem.otherResort = true;
591
         this.sellItem.otherResort = false;
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
 </script>
615
 </script>

+ 26
- 4
src/store/modules/timeshare/timeshare.js View File

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

Loading…
Cancel
Save