소스 검색

Timeshare - changed so that buy only displays avail

master
Kobus 5 년 전
부모
커밋
8d9907baf3
3개의 변경된 파일78개의 추가작업 그리고 21개의 파일을 삭제
  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 파일 보기

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

+ 55
- 0
src/store/modules/timeshare/buyPage.js 파일 보기

9
   state: {
9
   state: {
10
     regions: [],
10
     regions: [],
11
     detailedRegion: [],
11
     detailedRegion: [],
12
+    availRegion: [],
12
     resort: {},
13
     resort: {},
13
   },
14
   },
14
   mutations: {
15
   mutations: {
16
+    clearAvail(state, avail) {
17
+      state.availRegion = [];
18
+    },
19
+    addAvail(state, avail) {
20
+      state.availRegion.push(avail);
21
+    },
15
     setRegions(state, regions) {
22
     setRegions(state, regions) {
16
       state.regions = regions;
23
       state.regions = regions;
17
     },
24
     },
27
   },
34
   },
28
   getters: {},
35
   getters: {},
29
   actions: {
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
     getRegions({
85
     getRegions({
31
       commit,
86
       commit,
32
       dispatch,
87
       dispatch,

+ 1
- 1
vue.config.js 파일 보기

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

Loading…
취소
저장