Explorar el Código

Timeshare - changed so that buy only displays avail

master
Kobus hace 5 años
padre
commit
8d9907baf3
Se han modificado 3 ficheros con 78 adiciones y 21 borrados
  1. 22
    20
      src/components/timeshare/buy/buyPage.vue
  2. 55
    0
      src/store/modules/timeshare/buyPage.js
  3. 1
    1
      vue.config.js

+ 22
- 20
src/components/timeshare/buy/buyPage.vue Ver fichero

@@ -16,7 +16,6 @@
16 16
             <h3 class="sinse-title">Timeshare To Buy</h3>
17 17
           </div>
18 18
         </div>
19
-
20 19
         <div class="container col-md-10">
21 20
           <br />
22 21
           <div class="row">
@@ -43,25 +42,25 @@
43 42
           <div class="row mb-4">
44 43
             <div class="container col-md-4">
45 44
               <div class="accordion" id="accordionExample">
46
-                <div class="card" v-for="(region, r) in regions" :key="r">
45
+                <div class="card" v-for="(region, r) in availRegion" :key="r">
47 46
                   <a
48 47
                     class="mb-0 color-text-a"
49 48
                     data-toggle="collapse"
50
-                    :data-target="'#collapse' + region.id"
49
+                    :data-target="'#collapse' + region.regionCode"
51 50
                     aria-expanded="false"
52
-                    :aria-controls="'collapse' + region.id"
51
+                    :aria-controls="'collapse' + region.regionCode"
52
+                    @mouseover="updateMapProvince(region.regionName)"
53 53
                   >
54
-                    <div :id="'header' + region.id">
54
+                    <div :id="'header' + region.regionCode">
55 55
                       <h5
56 56
                         class="btn btn-link font-weight-bold color-b"
57
-                        @mouseover="updateMapProvince(region.regionName)"
58
-                      >{{ region.regionName }}</h5>
57
+                      >{{ region.regionName + ' (' + region.available + ')' }}</h5>
59 58
                     </div>
60 59
                   </a>
61 60
                   <div
62
-                    :id="'collapse' + region.id"
61
+                    :id="'collapse' + region.regionCode"
63 62
                     class="collapse"
64
-                    :aria-labelledby="'header' + region.id"
63
+                    :aria-labelledby="'header' + region.regionCode"
65 64
                     data-parent="#accordionExample"
66 65
                   >
67 66
                     <div class="card-body">
@@ -70,8 +69,8 @@
70 69
                           class="cursor-pointer"
71 70
                           href="#"
72 71
                           @click="routerGoTo('/resort/' + resort.resortCode)"
73
-                          @mouseover="updateMap(resort.resortCode)"
74
-                        >{{resort.resortName}}</a>
72
+                          @mouseover="updateMap(resort)"
73
+                        >{{resort.resortName + ' (' + resort.available + ')'}}</a>
75 74
                         <br />
76 75
                       </p>
77 76
                     </div>
@@ -125,12 +124,12 @@ export default {
125 124
     };
126 125
   },
127 126
   mounted() {
128
-    this.getRegions();
127
+    console.log(4);
128
+    this.init();
129 129
   },
130 130
   computed: {
131
-    ...mapState('timeshareBuy', ['detailedRegion', 'resort']),
131
+    ...mapState('timeshareBuy', ['detailedRegion', 'resort', 'availRegion']),
132 132
     mapUrl() {
133
-      // return 'http://maps.google.com/maps/place/Gauteng/';
134 133
       return `http://maps.google.com/maps?q=${this.myMap}&z=${this.myZoom}&output=embed`;
135 134
     },
136 135
     regions() {
@@ -138,15 +137,18 @@ export default {
138 137
     },
139 138
   },
140 139
   methods: {
141
-    ...mapActions('timeshareBuy', ['getRegions', 'getResort']),
140
+    ...mapActions('timeshareBuy', [
141
+      'init',
142
+      'getAvail',
143
+      'getRegions',
144
+      'getResort',
145
+    ]),
142 146
     routerGoTo(goTo) {
143 147
       this.$router.push(goTo);
144 148
     },
145
-    updateMap(resortCode) {
146
-      this.myMap = 'SouthAfrice';
147
-      this.getResort(resortCode);
148
-      // `http://maps.google.com/maps?q=${this.resort.prLatitude},${this.resort.prLongitude}&z=7&output=embed`;
149
-      this.myMap = `${this.resort.prLatitude},${this.resort.prLongitude}`;
149
+    updateMap(resort) {
150
+      this.myMap = 'SouthAfrica';
151
+      this.myMap = `${resort.lat},${resort.long}`;
150 152
       this.myZoom = 10;
151 153
     },
152 154
     updateMapProvince(province) {

+ 55
- 0
src/store/modules/timeshare/buyPage.js Ver fichero

@@ -9,9 +9,16 @@ export default {
9 9
   state: {
10 10
     regions: [],
11 11
     detailedRegion: [],
12
+    availRegion: [],
12 13
     resort: {},
13 14
   },
14 15
   mutations: {
16
+    clearAvail(state, avail) {
17
+      state.availRegion = [];
18
+    },
19
+    addAvail(state, avail) {
20
+      state.availRegion.push(avail);
21
+    },
15 22
     setRegions(state, regions) {
16 23
       state.regions = regions;
17 24
     },
@@ -27,6 +34,54 @@ export default {
27 34
   },
28 35
   getters: {},
29 36
   actions: {
37
+    init({
38
+      commit,
39
+      dispatch,
40
+    }) {
41
+      commit('clearAvail');
42
+      dispatch('getAvail');
43
+      dispatch('getRegions');
44
+    },
45
+    getAvail({
46
+      commit,
47
+    }) {
48
+      axios.get('/api/timeshareweek/getAvailResort').then((r) => {
49
+        for (const reg in r.data) {
50
+          const newRegion = {};
51
+          newRegion.regionCode = r.data[reg].regionCode;
52
+          newRegion.regionName = r.data[reg].regionName;
53
+          newRegion.available = r.data[reg].available;
54
+          newRegion.resorts = [];
55
+          for (const res in r.data[reg].resorts) {
56
+            const newResort = {
57
+              resortCode: '',
58
+              resortName: '',
59
+              lat: 0,
60
+              long: 0,
61
+            };
62
+            newResort.resortCode = r.data[reg].resorts[res].resortCode;
63
+            newResort.resortName = r.data[reg].resorts[res].resortName;
64
+            newResort.available = r.data[reg].resorts[res].available;
65
+            if (r.data[reg].resorts[res]) {
66
+              axios.get(
67
+                `https://www.tradeunipoint.com/unibackend/seam/resource/rest/products/TRESORT/${
68
+                  r.data[reg].resorts[res].resortCode}`,
69
+              )
70
+                .then((result) => {
71
+                  newResort.lat = result.data.prLatitude;
72
+                  newResort.long = result.data.prLongitude;
73
+                })
74
+                .catch(console.error);
75
+            }
76
+            newRegion.resorts.push(newResort);
77
+          }
78
+          commit('addAvail', newRegion);
79
+        }
80
+      }).catch(
81
+        console
82
+          .error,
83
+      );
84
+    },
30 85
     getRegions({
31 86
       commit,
32 87
       dispatch,

+ 1
- 1
vue.config.js Ver fichero

@@ -2,7 +2,7 @@ module.exports = {
2 2
   devServer: {
3 3
     proxy: {
4 4
       '/api': {
5
-        target: 'http://192.168.6.188:5000',
5
+        target: 'http://localhost:57260',
6 6
         changeOrigin: true,
7 7
       },
8 8
     },

Loading…
Cancelar
Guardar