소스 검색

Google map on buy page

master
Kobus 5 년 전
부모
커밋
7e751d4bbe
4개의 변경된 파일122개의 추가작업 그리고 129개의 파일을 삭제
  1. 2
    72
      package-lock.json
  2. 1
    1
      package.json
  3. 102
    56
      src/components/timeshare/buy/buyPage.vue
  4. 17
    0
      src/store/modules/timeshare/buyPage.js

+ 2
- 72
package-lock.json 파일 보기

3400
         "randomfill": "^1.0.3"
3400
         "randomfill": "^1.0.3"
3401
       }
3401
       }
3402
     },
3402
     },
3403
-    "css": {
3404
-      "version": "2.2.4",
3405
-      "resolved": "https://registry.npmjs.org/css/-/css-2.2.4.tgz",
3406
-      "integrity": "sha512-oUnjmWpy0niI3x/mPL8dVEI1l7MnG3+HHyRPHf+YFSbK+svOhXpmSOcDURUh2aOCgl2grzrOPt1nHLuCVFULLw==",
3407
-      "requires": {
3408
-        "inherits": "^2.0.3",
3409
-        "source-map": "^0.6.1",
3410
-        "source-map-resolve": "^0.5.2",
3411
-        "urix": "^0.1.0"
3412
-      },
3413
-      "dependencies": {
3414
-        "source-map": {
3415
-          "version": "0.6.1",
3416
-          "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
3417
-          "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="
3418
-        }
3419
-      }
3420
-    },
3421
     "css-color-names": {
3403
     "css-color-names": {
3422
       "version": "0.0.4",
3404
       "version": "0.0.4",
3423
       "resolved": "https://registry.npmjs.org/css-color-names/-/css-color-names-0.0.4.tgz",
3405
       "resolved": "https://registry.npmjs.org/css-color-names/-/css-color-names-0.0.4.tgz",
3473
         }
3455
         }
3474
       }
3456
       }
3475
     },
3457
     },
3476
-    "css-parse": {
3477
-      "version": "2.0.0",
3478
-      "resolved": "https://registry.npmjs.org/css-parse/-/css-parse-2.0.0.tgz",
3479
-      "integrity": "sha1-pGjuZnwW2BzPBcWMONKpfHgNv9Q=",
3480
-      "requires": {
3481
-        "css": "^2.0.0"
3482
-      }
3483
-    },
3484
     "css-select": {
3458
     "css-select": {
3485
       "version": "2.0.2",
3459
       "version": "2.0.2",
3486
       "resolved": "https://registry.npmjs.org/css-select/-/css-select-2.0.2.tgz",
3460
       "resolved": "https://registry.npmjs.org/css-select/-/css-select-2.0.2.tgz",
8228
       "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==",
8202
       "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==",
8229
       "dev": true
8203
       "dev": true
8230
     },
8204
     },
8231
-    "object-path": {
8232
-      "version": "0.11.4",
8233
-      "resolved": "https://registry.npmjs.org/object-path/-/object-path-0.11.4.tgz",
8234
-      "integrity": "sha1-NwrnUvvzfePqcKhhwju6iRVpGUk="
8235
-    },
8236
     "object-visit": {
8205
     "object-visit": {
8237
       "version": "1.0.1",
8206
       "version": "1.0.1",
8238
       "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz",
8207
       "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz",
10246
     "sax": {
10215
     "sax": {
10247
       "version": "1.2.4",
10216
       "version": "1.2.4",
10248
       "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz",
10217
       "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz",
10249
-      "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw=="
10218
+      "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==",
10219
+      "dev": true
10250
     },
10220
     },
10251
     "schema-utils": {
10221
     "schema-utils": {
10252
       "version": "0.4.7",
10222
       "version": "0.4.7",
11061
         }
11031
         }
11062
       }
11032
       }
11063
     },
11033
     },
11064
-    "stylus": {
11065
-      "version": "0.54.7",
11066
-      "resolved": "https://registry.npmjs.org/stylus/-/stylus-0.54.7.tgz",
11067
-      "integrity": "sha512-Yw3WMTzVwevT6ZTrLCYNHAFmanMxdylelL3hkWNgPMeTCpMwpV3nXjpOHuBXtFv7aiO2xRuQS6OoAdgkNcSNug==",
11068
-      "requires": {
11069
-        "css-parse": "~2.0.0",
11070
-        "debug": "~3.1.0",
11071
-        "glob": "^7.1.3",
11072
-        "mkdirp": "~0.5.x",
11073
-        "safer-buffer": "^2.1.2",
11074
-        "sax": "~1.2.4",
11075
-        "semver": "^6.0.0",
11076
-        "source-map": "^0.7.3"
11077
-      },
11078
-      "dependencies": {
11079
-        "debug": {
11080
-          "version": "3.1.0",
11081
-          "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
11082
-          "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
11083
-          "requires": {
11084
-            "ms": "2.0.0"
11085
-          }
11086
-        },
11087
-        "ms": {
11088
-          "version": "2.0.0",
11089
-          "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
11090
-          "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
11091
-        },
11092
-        "semver": {
11093
-          "version": "6.3.0",
11094
-          "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
11095
-          "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw=="
11096
-        },
11097
-        "source-map": {
11098
-          "version": "0.7.3",
11099
-          "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz",
11100
-          "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ=="
11101
-        }
11102
-      }
11103
-    },
11104
     "stylus-loader": {
11034
     "stylus-loader": {
11105
       "version": "3.0.2",
11035
       "version": "3.0.2",
11106
       "resolved": "https://registry.npmjs.org/stylus-loader/-/stylus-loader-3.0.2.tgz",
11036
       "resolved": "https://registry.npmjs.org/stylus-loader/-/stylus-loader-3.0.2.tgz",

+ 1
- 1
package.json 파일 보기

38
     "vue-cli-plugin-vuetify": "^0.5.0",
38
     "vue-cli-plugin-vuetify": "^0.5.0",
39
     "vue-template-compiler": "^2.6.10"
39
     "vue-template-compiler": "^2.6.10"
40
   }
40
   }
41
-}
41
+}

+ 102
- 56
src/components/timeshare/buy/buyPage.vue 파일 보기

13
     </section>
13
     </section>
14
     <div class="container">
14
     <div class="container">
15
       <div class="row">
15
       <div class="row">
16
-        <div class="col-md-8 offset-md-0">
17
-          <div class="row">
18
-            <div class="col-md-8" style="text-align:left;">
19
-              <p>
20
-                The resorts have been listed in their relevant provinces.
21
-                Please select the resort for which you would like to view
22
-                the available weeks and then select the weeks that interest
23
-                you on the resort page.
24
-              </p>
25
-              <p>
26
-                Arrival and departure dates are indicated but please note
27
-                that these dates may vary annually.
28
-              </p>
29
-              <p>
30
-                As with any property related sale, upon purchasing the holiday
31
-                of your choice, there will be a transfer fee payable for the
32
-                change of ownership. This fee will depend on the relevant resort
33
-                or managing agent.
34
-              </p>
35
-            </div>
36
-          </div>
16
+        <div class="col-md-12 text-left">
17
+          <p>
18
+            The resorts have been listed in their relevant provinces.
19
+            Please select the resort for which you would like to view
20
+            the available weeks and then select the weeks that interest
21
+            you on the resort page.
22
+          </p>
23
+          <p>
24
+            Arrival and departure dates are indicated but please note
25
+            that these dates may vary annually.
26
+          </p>
27
+          <p>
28
+            As with any property related sale, upon purchasing the holiday
29
+            of your choice, there will be a transfer fee payable for the
30
+            change of ownership. This fee will depend on the relevant resort
31
+            or managing agent.
32
+          </p>
33
+        </div>
34
+      </div>
37
 
35
 
38
-          <div class="row mb-4">
39
-            <div class="col-md-8">
40
-              <div class="accordion" id="accordionExample">
41
-                <div class="card" v-for="(region, r) in regions" :key="r">
42
-                  <a
43
-                    class="btn btn-b-n"
44
-                    type="button"
45
-                    data-toggle="collapse"
46
-                    :data-target="'#collapse' + region.id"
47
-                    aria-expanded="false"
48
-                    :aria-controls="'collapse' + region.id"
49
-                  >
50
-                    <div :id="'header' + region.id">
51
-                      <h5 class="mb-0">{{ region.regionName }}</h5>
52
-                    </div>
53
-                  </a>
54
-                  <div
55
-                    :id="'collapse' + region.id"
56
-                    class="collapse"
57
-                    :aria-labelledby="'header' + region.id"
58
-                    data-parent="#accordionExample"
59
-                  >
60
-                    <div class="card-body">
61
-                      <p class="mb-0" v-for="(resort, i) in region.resorts" :key="i">
62
-                        <a
63
-                          class="cursor-pointer"
64
-                          href="#"
65
-                          @click="routerGoTo('/resort/' + resort.resortCode)"
66
-                        >{{resort.resortName}}</a>
67
-                        <br />
68
-                      </p>
69
-                    </div>
70
-                  </div>
36
+      <div class="row mb-4">
37
+        <div class="col-md-4">
38
+          <div class="accordion" id="accordionExample">
39
+            <div class="card" v-for="(region, r) in regions" :key="r">
40
+              <a
41
+                class="btn btn-b-n"
42
+                type="button"
43
+                data-toggle="collapse"
44
+                :data-target="'#collapse' + region.id"
45
+                aria-expanded="false"
46
+                :aria-controls="'collapse' + region.id"
47
+              >
48
+                <div :id="'header' + region.id">
49
+                  <h5 class="mb-0">{{ region.regionName }}</h5>
50
+                </div>
51
+              </a>
52
+              <div
53
+                :id="'collapse' + region.id"
54
+                class="collapse"
55
+                :aria-labelledby="'header' + region.id"
56
+                data-parent="#accordionExample"
57
+              >
58
+                <div class="card-body">
59
+                  <p class="mb-0" v-for="(resort, i) in region.resorts" :key="i">
60
+                    <a
61
+                      class="cursor-pointer"
62
+                      href="#"
63
+                      @click="routerGoTo('/resort/' + resort.resortCode)"
64
+                      @mouseover="getResort(resort.resortCode)"
65
+                    >{{resort.resortName}}</a>
66
+                    <br />
67
+                  </p>
71
                 </div>
68
                 </div>
72
               </div>
69
               </div>
73
             </div>
70
             </div>
74
           </div>
71
           </div>
75
         </div>
72
         </div>
73
+        <div class="col-md-8">
74
+          <div class="tab-content" id="myTabContent">
75
+            <div
76
+              class="tab-pane fade show active"
77
+              id="directions"
78
+              role="tabpanel"
79
+              aria-labelledby="directions-tab"
80
+            >
81
+              <iframe
82
+                :src="mapUrl"
83
+                width="100%"
84
+                height="450"
85
+                frameborder="0"
86
+                style="border:0"
87
+                allowfullscreen
88
+              ></iframe>
89
+              <br />
90
+
91
+              <small>
92
+                <a
93
+                  :href="mapUrl"
94
+                  style="color:#60CBEB;text-align:left"
95
+                  target="_blank"
96
+                >See map bigger</a>
97
+              </small>
98
+            </div>
99
+            <div
100
+              class="tab-pane fade"
101
+              id="resort-layout"
102
+              role="tabpanel"
103
+              aria-labelledby="resort-layout-tab"
104
+            >
105
+              <img class="img-fluid" :src="layout" alt="Resort Layout" />
106
+            </div>
107
+          </div>
108
+        </div>
76
       </div>
109
       </div>
77
     </div>
110
     </div>
78
   </section>
111
   </section>
86
     this.getRegions();
119
     this.getRegions();
87
   },
120
   },
88
   computed: {
121
   computed: {
89
-    ...mapState('timeshareBuy', ['detailedRegion']),
122
+    ...mapState('timeshareBuy', ['detailedRegion', 'resort']),
123
+    mapUrl() {
124
+      return (
125
+        'http://maps.google.com/maps?q='
126
+        + this.resort.prLatitude
127
+        + ', '
128
+        + this.resort.prLongitude
129
+        + '&z=15&output=embed'
130
+      );
131
+    },
90
     regions() {
132
     regions() {
91
       return _.sortBy(this.detailedRegion, r => r.regionName);
133
       return _.sortBy(this.detailedRegion, r => r.regionName);
92
     },
134
     },
93
   },
135
   },
94
   methods: {
136
   methods: {
95
-    ...mapActions('timeshareBuy', ['getRegions']),
137
+    ...mapActions('timeshareBuy', ['getRegions', 'getResort']),
96
     routerGoTo(goTo) {
138
     routerGoTo(goTo) {
97
       this.$router.push(goTo);
139
       this.$router.push(goTo);
98
     },
140
     },
141
+    updateMap(resortCode) {
142
+      this.getGPS(resortCode);
143
+      alert(resortCode);
144
+    },
99
   },
145
   },
100
 };
146
 };
101
 </script>
147
 </script>

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

2
 /* eslint-disable guard-for-in */
2
 /* eslint-disable guard-for-in */
3
 import axios from 'axios';
3
 import axios from 'axios';
4
 import _ from 'lodash';
4
 import _ from 'lodash';
5
+import resort from './resort';
5
 
6
 
6
 export default {
7
 export default {
7
   namespaced: true,
8
   namespaced: true,
8
   state: {
9
   state: {
9
     regions: [],
10
     regions: [],
10
     detailedRegion: [],
11
     detailedRegion: [],
12
+    resort: {},
11
   },
13
   },
12
   mutations: {
14
   mutations: {
13
     setRegions(state, regions) {
15
     setRegions(state, regions) {
19
     addDetailed(state, detailed) {
21
     addDetailed(state, detailed) {
20
       state.detailedRegion.push(detailed);
22
       state.detailedRegion.push(detailed);
21
     },
23
     },
24
+    setResort(state, resort) {
25
+      state.resort = resort;
26
+    },
22
   },
27
   },
23
   getters: {},
28
   getters: {},
24
   actions: {
29
   actions: {
41
         })
46
         })
42
         .catch(console.error);
47
         .catch(console.error);
43
     },
48
     },
49
+    getResort({
50
+      commit,
51
+    }, resortCode) {
52
+      axios.get(
53
+        `https://www.tradeunipoint.com/unibackend/seam/resource/rest/products/TRESORT/${
54
+          resortCode}`,
55
+      )
56
+        .then((result) => {
57
+          commit('setResort', result.data);
58
+        })
59
+        .catch(console.error);
60
+    },
44
     getDetailedRegion({
61
     getDetailedRegion({
45
       commit,
62
       commit,
46
     }, region) {
63
     }, region) {

Loading…
취소
저장