Procházet zdrojové kódy

Changes to add Latest 3 proeprties

master
George Williams před 5 roky
rodič
revize
abc6824ad1

+ 22
- 213
src/components/home/propertySection.vue Zobrazit soubor

@@ -8,225 +8,34 @@
8 8
               <div class="title-box">
9 9
                 <h2 class="title-a">Latest Properties</h2>
10 10
               </div>
11
-              <div class="title-link">
12
-                <router-link to="/timeshare/buy">
13
-                  All Properties
14
-                  <span class="ion-ios-arrow-forward" style="color:#60CBEB"></span>
15
-                </router-link>
16
-              </div>
17
-            </div>
18
-          </div>
19
-        </div>
20
-        <div id="property-carousel" class="owl-carousel owl-theme">
21
-          <div class="carousel-item-b">
22
-            <div class="card-box-a card-shadow">
23
-              <div class="img-box-a">
24
-                <img src="img/property-6.jpg" alt class="img-a img-fluid" />
25
-              </div>
26
-              <div class="card-overlay">
27
-                <div class="card-overlay-a-content">
28
-                  <div class="card-header-a">
29
-                    <h2 class="card-title-a">
30
-                      <a href="property-single.html">
31
-                        206 Mount
32
-                        <br />Olive Road Two
33
-                      </a>
34
-                    </h2>
35
-                  </div>
36
-                  <div class="card-body-a">
37
-                    <div class="price-box d-flex">
38
-                      <span class="price-a">rent | $ 12.000</span>
39
-                    </div>
40
-                    <a href="#" class="link-a">
41
-                      Click here to view
42
-                      <span class="ion-ios-arrow-forward"></span>
43
-                    </a>
44
-                  </div>
45
-                  <div class="card-footer-a">
46
-                    <ul class="card-info d-flex justify-content-around">
47
-                      <li>
48
-                        <h4 class="card-info-title">Area</h4>
49
-                        <span>
50
-                          340m
51
-                          <sup>2</sup>
52
-                        </span>
53
-                      </li>
54
-                      <li>
55
-                        <h4 class="card-info-title">Beds</h4>
56
-                        <span>2</span>
57
-                      </li>
58
-                      <li>
59
-                        <h4 class="card-info-title">Baths</h4>
60
-                        <span>4</span>
61
-                      </li>
62
-                      <li>
63
-                        <h4 class="card-info-title">Garages</h4>
64
-                        <span>1</span>
65
-                      </li>
66
-                    </ul>
67
-                  </div>
68
-                </div>
69
-              </div>
70
-            </div>
71
-          </div>
72
-          <div class="carousel-item-b">
73
-            <div class="card-box-a card-shadow">
74
-              <div class="img-box-a">
75
-                <img src="img/property-3.jpg" alt class="img-a img-fluid" />
76
-              </div>
77
-              <div class="card-overlay">
78
-                <div class="card-overlay-a-content">
79
-                  <div class="card-header-a">
80
-                    <h2 class="card-title-a">
81
-                      <a href="property-single.html">
82
-                        157 West
83
-                        <br />Central Park
84
-                      </a>
85
-                    </h2>
86
-                  </div>
87
-                  <div class="card-body-a">
88
-                    <div class="price-box d-flex">
89
-                      <span class="price-a">rent | $ 12.000</span>
90
-                    </div>
91
-                    <a href="property-single.html" class="link-a">
92
-                      Click here to view
93
-                      <span class="ion-ios-arrow-forward"></span>
94
-                    </a>
95
-                  </div>
96
-                  <div class="card-footer-a">
97
-                    <ul class="card-info d-flex justify-content-around">
98
-                      <li>
99
-                        <h4 class="card-info-title">Area</h4>
100
-                        <span>
101
-                          340m
102
-                          <sup>2</sup>
103
-                        </span>
104
-                      </li>
105
-                      <li>
106
-                        <h4 class="card-info-title">Beds</h4>
107
-                        <span>2</span>
108
-                      </li>
109
-                      <li>
110
-                        <h4 class="card-info-title">Baths</h4>
111
-                        <span>4</span>
112
-                      </li>
113
-                      <li>
114
-                        <h4 class="card-info-title">Garages</h4>
115
-                        <span>1</span>
116
-                      </li>
117
-                    </ul>
118
-                  </div>
119
-                </div>
120
-              </div>
121
-            </div>
122
-          </div>
123
-          <div class="carousel-item-b">
124
-            <div class="card-box-a card-shadow">
125
-              <div class="img-box-a">
126
-                <img src="img/property-7.jpg" alt class="img-a img-fluid" />
127
-              </div>
128
-              <div class="card-overlay">
129
-                <div class="card-overlay-a-content">
130
-                  <div class="card-header-a">
131
-                    <h2 class="card-title-a">
132
-                      <a href="property-single.html">
133
-                        245 Azabu
134
-                        <br />Nishi Park let
135
-                      </a>
136
-                    </h2>
137
-                  </div>
138
-                  <div class="card-body-a">
139
-                    <div class="price-box d-flex">
140
-                      <span class="price-a">rent | $ 12.000</span>
141
-                    </div>
142
-                    <a href="property-single.html" class="link-a">
143
-                      Click here to view
144
-                      <span class="ion-ios-arrow-forward"></span>
145
-                    </a>
146
-                  </div>
147
-                  <div class="card-footer-a">
148
-                    <ul class="card-info d-flex justify-content-around">
149
-                      <li>
150
-                        <h4 class="card-info-title">Area</h4>
151
-                        <span>
152
-                          340m
153
-                          <sup>2</sup>
154
-                        </span>
155
-                      </li>
156
-                      <li>
157
-                        <h4 class="card-info-title">Beds</h4>
158
-                        <span>2</span>
159
-                      </li>
160
-                      <li>
161
-                        <h4 class="card-info-title">Baths</h4>
162
-                        <span>4</span>
163
-                      </li>
164
-                      <li>
165
-                        <h4 class="card-info-title">Garages</h4>
166
-                        <span>1</span>
167
-                      </li>
168
-                    </ul>
169
-                  </div>
170
-                </div>
171
-              </div>
172
-            </div>
173
-          </div>
174
-          <div class="carousel-item-b">
175
-            <div class="card-box-a card-shadow">
176
-              <div class="img-box-a">
177
-                <img src="img/property-10.jpg" alt class="img-a img-fluid" />
178
-              </div>
179
-              <div class="card-overlay">
180
-                <div class="card-overlay-a-content">
181
-                  <div class="card-header-a">
182
-                    <h2 class="card-title-a">
183
-                      <a href="property-single.html">
184
-                        204 Montal
185
-                        <br />South Bela Two
186
-                      </a>
187
-                    </h2>
188
-                  </div>
189
-                  <div class="card-body-a">
190
-                    <div class="price-box d-flex">
191
-                      <span class="price-a">rent | $ 12.000</span>
192
-                    </div>
193
-                    <a href="property-single.html" class="link-a">
194
-                      Click here to view
195
-                      <span class="ion-ios-arrow-forward"></span>
196
-                    </a>
197
-                  </div>
198
-                  <div class="card-footer-a">
199
-                    <ul class="card-info d-flex justify-content-around">
200
-                      <li>
201
-                        <h4 class="card-info-title">Area</h4>
202
-                        <span>
203
-                          340m
204
-                          <sup>2</sup>
205
-                        </span>
206
-                      </li>
207
-                      <li>
208
-                        <h4 class="card-info-title">Beds</h4>
209
-                        <span>2</span>
210
-                      </li>
211
-                      <li>
212
-                        <h4 class="card-info-title">Baths</h4>
213
-                        <span>4</span>
214
-                      </li>
215
-                      <li>
216
-                        <h4 class="card-info-title">Garages</h4>
217
-                        <span>1</span>
218
-                      </li>
219
-                    </ul>
220
-                  </div>
221
-                </div>
222
-              </div>
223 11
             </div>
224 12
           </div>
225 13
         </div>
14
+        <propertyCard
15
+          v-if="latestProperties.length > 0"
16
+          name="propertyholder"
17
+          :properties="latestProperties"
18
+        />
226 19
       </div>
227 20
     </section>
228 21
   </div>
229 22
 </template>
230 23
 <script>
231
-export default {};
24
+import { mapState, mapActions } from 'vuex';
25
+import propertyCard from '../property/propertyCard.vue';
26
+
27
+export default {
28
+  components: {
29
+    propertyCard,
30
+  },
31
+  computed: {
32
+    ...mapState('property', ['latestProperties']),
33
+  },
34
+  methods: {
35
+    ...mapActions('property', ['searchLatestProperties']),
36
+  },
37
+  mounted() {
38
+    this.searchLatestProperties();
39
+  },
40
+};
232 41
 </script>

+ 1
- 1
src/components/property/propertyCard.vue Zobrazit soubor

@@ -76,7 +76,7 @@
76 76
 <script>
77 77
 export default {
78 78
   props: {
79
-    properties: Object,
79
+    properties: { type: Array, default: () => [] },
80 80
   },
81 81
 };
82 82
 </script>

+ 11
- 1
src/store/modules/property/property.js Zobrazit soubor

@@ -28,6 +28,7 @@ export default {
28 28
     propertyOverviewFields: [],
29 29
     propertyFields: [],
30 30
     properties: [],
31
+    latestProperties: [],
31 32
   },
32 33
   mutations: {
33 34
     setProperty(state, property) {
@@ -57,6 +58,9 @@ export default {
57 58
     updateSearch(state, propertySearch) {
58 59
       state.properties = propertySearch;
59 60
     },
61
+    setLatestProperties(state, properties) {
62
+      state.latestProperties = properties;
63
+    },
60 64
   },
61 65
   getters: {},
62 66
   actions: {
@@ -117,9 +121,15 @@ export default {
117 121
     },
118 122
     searchPropertiesKeyword({ commit }, item) {
119 123
       axios
120
-        .get(`http://localhost:57260/Property/Property/Search/Keyword/${item.keyword}`)
124
+        .get(`http://localhost:57260/Property/Property/Search/${item.keyword}`)
121 125
         .then(response => commit('updateSearch', response.data))
122 126
         .catch(console.error);
123 127
     },
128
+    searchLatestProperties({ commit }) {
129
+      axios
130
+        .get('http://localhost:57260/property/property/latestProperties')
131
+        .then(response => commit('setLatestProperties', response.data))
132
+        .catch(console.error);
133
+    },
124 134
   },
125 135
 };

Načítá se…
Zrušit
Uložit