소스 검색

ResortPage

master
Kobus 5 년 전
부모
커밋
f1e86dc3c4
2개의 변경된 파일107개의 추가작업 그리고 210개의 파일을 삭제
  1. 73
    178
      src/components/timeshare/resort/resortPage.vue
  2. 34
    32
      src/store/modules/timeshare/resort.js

+ 73
- 178
src/components/timeshare/resort/resortPage.vue 파일 보기

@@ -1,11 +1,7 @@
1 1
 <template>
2 2
   <!-- eslint-disable max-len -->
3 3
   <section>
4
-    <div class="container">
5
-      <br />
6
-      <br />
7
-      <br />
8
-      <br />
4
+    <div style="padding-left:200px;padding-right:200px;">
9 5
       <div class="row">
10 6
         <div class="col-md-12 col-lg-8">
11 7
           <div class="title-box-d">
@@ -13,12 +9,12 @@
13 9
           </div>
14 10
           <br />
15 11
         </div>
16
-        <div class="col-md-6 col-lg-6">
12
+        <div class="col-md-6 col-lg-6" v-if="images && images.length > 0">
17 13
           <div id="images" style="background-color:#efefef;padding:10px;">
18 14
             <div style="float:left;width:100%;height:70%" id="mainImage">
19 15
               <img
20 16
                 class="img-fluid"
21
-                :src="largeImg !== undefined ? largeImg : image1"
17
+                :src="imageX"
22 18
                 alt="Resort Image"
23 19
                 style="width: inherit;max-width:550px;max-height:412px;"
24 20
               />
@@ -26,24 +22,13 @@
26 22
             <div
27 23
               style="padding:5px;float:left;border-top:1px solid #dedede;border-right:1px solid #dedede;border-bottom:1px solid #dedede;background-color:white;width:100%;text-align:center;"
28 24
             >
29
-              <div style="float:left;margin-left:7px;cursor:pointer;cursor:hand;width:24%">
30
-                <a @click="changeImage(1)">
31
-                  <img class="productThumbnail" :src="image1" alt="Resort Image" />
32
-                </a>
33
-              </div>
34
-              <div style="float:left;margin-left:2px;cursor:pointer;cursor:hand;width:24%">
35
-                <a @click="changeImage(2)">
36
-                  <img :src="image2" alt="Resort Image" class="productThumbnail" />
37
-                </a>
38
-              </div>
39
-              <div style="float:left;margin-left:2px;cursor:pointer;cursor:hand;width:24%">
40
-                <a @click="changeImage(3)">
41
-                  <img :src="image3" alt="Resort Image" class="productThumbnail" />
42
-                </a>
43
-              </div>
44
-              <div style="float:left;margin-left:2px;cursor:pointer;cursor:hand;width:24%">
45
-                <a @click="changeImage(4)">
46
-                  <img :src="image4" alt="Resort Image" class="productThumbnail" />
25
+              <div
26
+                style="float:left;margin-left:2px;cursor:pointer;cursor:hand;width:24%"
27
+                v-for="(image, i) in images"
28
+                :key="i"
29
+              >
30
+                <a @click="changeImage(i)">
31
+                  <img class="productThumbnail" :src="image" alt="Resort Image" />
47 32
                 </a>
48 33
               </div>
49 34
             </div>
@@ -53,79 +38,67 @@
53 38
             <div id="unit" style="border: 1px solid #dbdbdb;background-color:#efefef;padding:10px;"></div>
54 39
           </div>
55 40
         </div>
56
-
57
-        <!-- <div class="row mb-4">
58
-          <div class="col-md-4">
59
-            <img class="img-fluid" :src="image1" alt="Resort Image" style="border-radius:10px" />
60
-          </div>
61
-          <div class="col-md-4">
62
-            <img class="img-fluid" :src="image2" alt="Resort Image" style="border-radius:10px" />
63
-          </div>
64
-          <div class="col-md-4">
65
-            <img class="img-fluid" :src="image3" alt="Resort Image" style="border-radius:10px" />
66
-          </div>
67
-        </div>-->
68
-        <!-- <div class="row"> -->
69
-        <!-- <div class="col-md-6 col-lg-6"> -->
70
-        <ul class="nav nav-tabs" id="myTab" role="tablist">
71
-          <li class="nav-item">
72
-            <a
73
-              class="nav-link active"
74
-              id="directions-tab"
75
-              data-toggle="tab"
76
-              href="#directions"
77
-              role="tab"
78
-              aria-controls="directions"
79
-              aria-selected="false"
80
-            >Directions</a>
81
-          </li>
82
-          <li class="nav-item">
83
-            <a
84
-              class="nav-link"
85
-              id="resort-layout-tab"
86
-              data-toggle="tab"
87
-              href="#resort-layout"
88
-              role="tab"
89
-              aria-controls="resort-layout"
90
-              aria-selected="true"
91
-            >Resort Layout</a>
92
-          </li>
93
-        </ul>
94
-        <div class="tab-content" id="myTabContent">
95
-          <div
96
-            class="tab-pane fade show active"
97
-            id="directions"
98
-            role="tabpanel"
99
-            aria-labelledby="directions-tab"
100
-          >
101
-            <iframe
102
-              :src="mapUrl"
103
-              width="150%"
104
-              height="300"
105
-              frameborder="0"
106
-              style="border:0"
107
-              allowfullscreen
108
-            ></iframe>
109
-            <br />
110
-
111
-            <small>
112
-              <a :href="mapUrl" style="color:#60CBEB;text-align:left" target="_blank">See map bigger</a>
113
-            </small>
114
-          </div>
115
-          <div
116
-            class="tab-pane fade"
117
-            id="resort-layout"
118
-            role="tabpanel"
119
-            aria-labelledby="resort-layout-tab"
120
-          >
121
-            <img class="img-fluid" :src="layout" alt="Resort Layout" />
41
+        <div class="col-md-6">
42
+          <ul class="nav nav-tabs" id="myTab" role="tablist">
43
+            <li class="nav-item">
44
+              <a
45
+                class="nav-link active"
46
+                id="directions-tab"
47
+                data-toggle="tab"
48
+                href="#directions"
49
+                role="tab"
50
+                aria-controls="directions"
51
+                aria-selected="false"
52
+              >Directions</a>
53
+            </li>
54
+            <li class="nav-item">
55
+              <a
56
+                class="nav-link"
57
+                id="resort-layout-tab"
58
+                data-toggle="tab"
59
+                href="#resort-layout"
60
+                role="tab"
61
+                aria-controls="resort-layout"
62
+                aria-selected="true"
63
+              >Resort Layout</a>
64
+            </li>
65
+          </ul>
66
+          <div class="tab-content" id="myTabContent">
67
+            <div
68
+              class="tab-pane fade show active"
69
+              id="directions"
70
+              role="tabpanel"
71
+              aria-labelledby="directions-tab"
72
+            >
73
+              <iframe
74
+                :src="mapUrl"
75
+                width="100%"
76
+                height="300"
77
+                frameborder="0"
78
+                style="border:0"
79
+                allowfullscreen
80
+              ></iframe>
81
+              <br />
82
+              <small>
83
+                <a
84
+                  :href="mapUrl"
85
+                  style="color:#60CBEB;text-align:left"
86
+                  target="_blank"
87
+                >See map bigger</a>
88
+              </small>
89
+            </div>
90
+            <div
91
+              class="tab-pane fade"
92
+              id="resort-layout"
93
+              role="tabpanel"
94
+              aria-labelledby="resort-layout-tab"
95
+            >
96
+              <img class="img-fluid" :src="layout" alt="Resort Layout" />
97
+            </div>
122 98
           </div>
123 99
         </div>
124
-        <!-- </div>
125
-        </div>-->
126 100
       </div>
127 101
     </div>
128
-
129 102
     <div class="myMargin">
130 103
       <div class="row">
131 104
         <div class="col-md-4">
@@ -140,68 +113,6 @@
140 113
           </div>
141 114
           {{description}}
142 115
           <hr />
143
-          <!-- <div class="row">
144
-            <div class="col-md-8">
145
-              <ul class="nav nav-tabs" id="myTab" role="tablist">
146
-                <li class="nav-item">
147
-                  <a
148
-                    class="nav-link active"
149
-                    id="directions-tab"
150
-                    data-toggle="tab"
151
-                    href="#directions"
152
-                    role="tab"
153
-                    aria-controls="directions"
154
-                    aria-selected="false"
155
-                  >Directions</a>
156
-                </li>
157
-                <li class="nav-item">
158
-                  <a
159
-                    class="nav-link"
160
-                    id="resort-layout-tab"
161
-                    data-toggle="tab"
162
-                    href="#resort-layout"
163
-                    role="tab"
164
-                    aria-controls="resort-layout"
165
-                    aria-selected="true"
166
-                  >Resort Layout</a>
167
-                </li>
168
-              </ul>
169
-              <div class="tab-content" id="myTabContent">
170
-                <div
171
-                  class="tab-pane fade show active"
172
-                  id="directions"
173
-                  role="tabpanel"
174
-                  aria-labelledby="directions-tab"
175
-                >
176
-                  <iframe
177
-                    :src="mapUrl"
178
-                    width="100%"
179
-                    height="450"
180
-                    frameborder="0"
181
-                    style="border:0"
182
-                    allowfullscreen
183
-                  ></iframe>
184
-                  <br />
185
-
186
-                  <small>
187
-                    <a
188
-                      :href="mapUrl"
189
-                      style="color:#60CBEB;text-align:left"
190
-                      target="_blank"
191
-                    >See map bigger</a>
192
-                  </small>
193
-                </div>
194
-                <div
195
-                  class="tab-pane fade"
196
-                  id="resort-layout"
197
-                  role="tabpanel"
198
-                  aria-labelledby="resort-layout-tab"
199
-                >
200
-                  <img class="img-fluid" :src="layout" alt="Resort Layout" />
201
-                </div>
202
-              </div>
203
-            </div>
204
-          </div>-->
205 116
         </div>
206 117
       </div>
207 118
     </div>
@@ -218,7 +129,7 @@ export default {
218 129
   },
219 130
   data() {
220 131
     return {
221
-      largeImg: undefined,
132
+      largeImg: 0,
222 133
     };
223 134
   },
224 135
   components: {
@@ -227,18 +138,12 @@ export default {
227 138
   },
228 139
   mounted() {
229 140
     this.initResort(this.resortCode);
230
-    this.largeImg = this.image1;
231 141
   },
232 142
   computed: {
233
-    ...mapState('resort', [
234
-      'resort',
235
-      'description',
236
-      'image1',
237
-      'image2',
238
-      'image3',
239
-      'image4',
240
-      'layout',
241
-    ]),
143
+    imageX() {
144
+      return this.images[this.largeImg];
145
+    },
146
+    ...mapState('resort', ['resort', 'description', 'images', 'layout']),
242 147
     mapUrl() {
243 148
       return this.resort
244 149
         ? `http://maps.google.com/maps?q=${this.resort.prLatitude},${this.resort.prLongitude}&z=15&output=embed`
@@ -250,18 +155,8 @@ export default {
250 155
     routerGoTo(goto) {
251 156
       this.$router.push(goto);
252 157
     },
253
-
254 158
     changeImage(number) {
255
-      console.log(number);
256
-      if (number === 2) {
257
-        this.largeImg = this.image2;
258
-      } else if (number === 3) {
259
-        this.largeImg = this.image3;
260
-      } else if (number === 4) {
261
-        this.largeImg = this.image4;
262
-      } else {
263
-        this.largeImg = this.image1;
264
-      }
159
+      this.largeImg = number;
265 160
     },
266 161
   },
267 162
 };

+ 34
- 32
src/store/modules/timeshare/resort.js 파일 보기

@@ -6,10 +6,7 @@ export default {
6 6
   namespaced: true,
7 7
   state: {
8 8
     resort: {},
9
-    image1: '',
10
-    image2: '',
11
-    image3: '',
12
-    image4: '',
9
+    images: [],
13 10
     layout: '',
14 11
     description: '',
15 12
   },
@@ -20,33 +17,24 @@ export default {
20 17
     setDescription(state, description) {
21 18
       state.description = description;
22 19
     },
20
+    addImage(state, image) {
21
+      state.images.push(`data:image/jpeg;base64,${image}`);
22
+    },
23 23
     clear(state) {
24 24
       state.resort = {};
25
-      state.image1 = '';
26
-      state.image2 = '';
27
-      state.image3 = '';
28
-      state.image4 = '';
25
+      state.images = [];
29 26
       state.layout = '';
30 27
     },
31
-    setImage1(state, image) {
32
-      state.image1 = `data:image/jpeg;base64,${image}`;
33
-    },
34
-    setImage2(state, image) {
35
-      state.image2 = `data:image/jpeg;base64,${image}`;
36
-    },
37
-    setImage3(state, image) {
38
-      state.image3 = `data:image/jpeg;base64,${image}`;
39
-    },
40
-    setImage4(state, image) {
41
-      state.image4 = `data:image/jpeg;base64,${image}`;
42
-    },
43 28
     setLayout(state, image) {
44 29
       state.layout = `data:image/jpeg;base64,${image}`;
45 30
     },
46 31
   },
47 32
   getters: {},
48 33
   actions: {
49
-    initResort({ commit, dispatch }, resortCode) {
34
+    initResort({
35
+      commit,
36
+      dispatch,
37
+    }, resortCode) {
50 38
       commit('clear');
51 39
       dispatch('getResort', resortCode);
52 40
       dispatch('getDescription', resortCode);
@@ -56,7 +44,9 @@ export default {
56 44
       dispatch('getImage4', resortCode);
57 45
       dispatch('getLayout', resortCode);
58 46
     },
59
-    getDescription({ commit }, resortCode) {
47
+    getDescription({
48
+      commit,
49
+    }, resortCode) {
60 50
       axios
61 51
         .get(
62 52
           `https://www.tradeunipoint.com/unibackend/seam/resource/rest/products/${resortCode}/dsc`,
@@ -66,7 +56,9 @@ export default {
66 56
         })
67 57
         .catch(console.error);
68 58
     },
69
-    getResort({ commit }, resortCode) {
59
+    getResort({
60
+      commit,
61
+    }, resortCode) {
70 62
       axios
71 63
         .get(
72 64
           `https://www.tradeunipoint.com/unibackend/seam/resource/rest/products/TRESORT/${resortCode}`,
@@ -76,39 +68,49 @@ export default {
76 68
         })
77 69
         .catch(console.error);
78 70
     },
79
-    getImage1({ commit }, resortCode) {
71
+    getImage1({
72
+      commit,
73
+    }, resortCode) {
80 74
       axios
81 75
         .get(
82 76
           `https://www.tradeunipoint.com/unibackend/seam/resource/rest/products/${resortCode}/image/1`,
83 77
         )
84
-        .then(result => commit('setImage1', result.data))
78
+        .then(result => commit('addImage', result.data))
85 79
         .catch(console.error);
86 80
     },
87
-    getImage2({ commit }, resortCode) {
81
+    getImage2({
82
+      commit,
83
+    }, resortCode) {
88 84
       axios
89 85
         .get(
90 86
           `https://www.tradeunipoint.com/unibackend/seam/resource/rest/products/${resortCode}/image/2`,
91 87
         )
92
-        .then(result => commit('setImage2', result.data))
88
+        .then(result => commit('addImage', result.data))
93 89
         .catch(console.error);
94 90
     },
95
-    getImage3({ commit }, resortCode) {
91
+    getImage3({
92
+      commit,
93
+    }, resortCode) {
96 94
       axios
97 95
         .get(
98 96
           `https://www.tradeunipoint.com/unibackend/seam/resource/rest/products/${resortCode}/image/3`,
99 97
         )
100
-        .then(result => commit('setImage3', result.data))
98
+        .then(result => commit('addImage', result.data))
101 99
         .catch(console.error);
102 100
     },
103
-    getImage4({ commit }, resortCode) {
101
+    getImage4({
102
+      commit,
103
+    }, resortCode) {
104 104
       axios
105 105
         .get(
106 106
           `https://www.tradeunipoint.com/unibackend/seam/resource/rest/products/${resortCode}/image/4`,
107 107
         )
108
-        .then(result => commit('setImage4', result.data))
108
+        .then(result => commit('addImage', result.data))
109 109
         .catch(console.error);
110 110
     },
111
-    getLayout({ commit }, resortCode) {
111
+    getLayout({
112
+      commit,
113
+    }, resortCode) {
112 114
       axios
113 115
         .get(
114 116
           `https://www.tradeunipoint.com/unibackend/seam/resource/rest/products/${resortCode}/layout`,

Loading…
취소
저장