소스 검색

EnquireNow & Styling

master
30117125 4 년 전
부모
커밋
e2e8d3350e

+ 27
- 4
src/components/admin/misc/termsConditions.vue 파일 보기

@@ -8,22 +8,31 @@
8 8
           </div>
9 9
         </div>
10 10
       </div>
11
+
11 12
       <div class="row">
12 13
         <div class="col-md-6">
13 14
           <label for="version" class="uniSelectLabel">Version:</label>
14 15
           <input name="version" type="text" v-model="version" class="mt-5 mb-3 ml-2" />
15 16
         </div>
16 17
         <div class="col-md-6 mt-5">
17
-          <p style="float:right">Last Modified: {{ terms.modified | toDate }}</p>
18
+          <p style="float:right">Last Modified: {{ getModiefiedDate }}</p>
18 19
         </div>
19 20
       </div>
20 21
       <div class="row">
21 22
         <div class="col">
22 23
           <vue-editor v-model="termsInput" :editor-toolbar="customToolbar" />
24
+        </div>
25
+      </div>
26
+      <div class="row">
27
+        <div class="col-md-2 mt-3">
23 28
           <button @click="saveTerms()" class="btn-solid-blue">Save</button>
24 29
         </div>
30
+        <div v-if="updated" class="col mt-3">
31
+          <alert :text="'Terms and Contidtions Updated!!'" :type="'SUCCESS'" />
32
+        </div>
25 33
       </div>
26 34
     </div>
35
+    <div v-if="wait" id="preloader"></div>
27 36
   </main>
28 37
 </template>
29 38
 
@@ -31,15 +40,19 @@
31 40
 /* eslint-disable */
32 41
 import { VueEditor } from "vue2-editor";
33 42
 import { mapActions, mapGetters, mapState } from "vuex";
43
+import alert from "../../shared/alert";
34 44
 
35 45
 export default {
36 46
   components: {
37
-    VueEditor
47
+    VueEditor,
48
+    alert
38 49
   },
39 50
   data() {
40 51
     return {
41 52
       termsInput: "",
42 53
       version: "",
54
+      updated: false,
55
+      wait: true,
43 56
       customToolbar: [
44 57
         [{ header: [false, 1, 2, 3, 4, 5, 6] }],
45 58
         ["bold", "italic", "underline", "strike"],
@@ -60,17 +73,27 @@ export default {
60 73
         termsConditions: this.termsInput,
61 74
         version: this.version
62 75
       };
63
-      this.setTerms(termsObj);
76
+      this.setTerms(termsObj).then(() => {
77
+        this.updated = true;
78
+        this.$router.go();
79
+      });
64 80
     },
65 81
     async populateTerms() {
66 82
       await this.retrieveTerms();
67 83
       this.version = this.terms.version;
68 84
       this.termsInput = this.terms.termsConditions;
85
+      setTimeout(() => {
86
+        this.wait = false;
87
+      }, 500);
69 88
     }
70 89
   },
71 90
   computed: {
72 91
     ...mapGetters("termsConditions", ["getTermsAndConditions"]),
73
-    ...mapState("termsConditions", ["terms"])
92
+    ...mapState("termsConditions", ["terms"]),
93
+    getModiefiedDate() {
94
+      var date = new Date(this.terms.modified);
95
+      return date.getDate() + " / " + (date.getMonth() + 1) + " / " + date.getFullYear();
96
+    }
74 97
   }
75 98
 };
76 99
 </script>

+ 73
- 105
src/components/admin/status/timeshareAdminPage.vue 파일 보기

@@ -10,75 +10,70 @@
10 10
           </div>
11 11
         </div>
12 12
       </div>
13
-    </div>
14
-
15
-    <div class="row">
16
-      <div class="offset-1 col-md-6">
17
-        <div class="form-group col-md-3">
18
-                <div class="input-group">
19
-                  <label
20
-                    class="uniSelectLabel"
21
-                    for="weekInfoRegionSelect"
22
-                  >REGION</label>
23
-
24
-                  <select
25
-                    id="weekInfoRegionSelect"
26
-                    class="form-control uniSelect"
27
-                    @change="regionChange()"
28
-                    style="font-size: 15px"
29
-                  >
30
-                    <option
31
-                      v-for="(region, r) in regions"
32
-                      :key="r"
33
-                      :value="region"
34
-                    >{{ region.regionName }}</option>
35
-                  </select>
36
-                </div>
37
-                <div class="validation"></div>
38
-              </div>
39
-
40
-                  <div class="form-group col-md-3">
41
-                <div class="input-group">
42
-                  <label
43
-                    class="uniSelectLabel"
44
-                    for="weekInfoResortSelect"
45
-                  >RESORT NAME</label>
46
-
47
-                  <select
48
-                    id="weekInfoResortSelect"
49
-                    class="form-control uniSelect"
50
-                    @change="resortChange()"
51
-                  >
52
-                    <option value="Other">Other</option>
53
-                    <option
54
-                      v-for="(resort, r) in resorts"
55
-                      :key="r"
56
-                      :value="resort"
57
-                    >{{ resort.resortName }}</option>
58
-                  </select>
59
-                </div>
60
-                  </div>
61
-
62
-                  <div class="form-group col-md-3">
63
-                <label class="uniSelectLabel" for="region">SEASON</label>
64
-
65
-                <select
66
-                  class="form-control uniSelect"
67
-                  name="region"
68
-                  id="region">
69
-                  <option v-for="(season, r) in seasons" :key="r">{{ season.name }}</option>
70
-                </select>
71
-                <div class="validation"></div>
72
-              </div>
73
-
74
-              <div class="form-group col-md-3">
75
-                <label class="uniSlectLabel">STATUS</label>
76
-                <select class="form-control uniSelect"
77
-                        name="status">
78
-                </select>
79
-              </div>
80
-              <button type="button"> Filter</button>
81
-        <!-- <button
13
+      <div class="row">
14
+        <div class="col-md-3">
15
+          <float-label label="REGION">
16
+            <select
17
+              id="weekInfoRegionSelect"
18
+              class="form-control uniSelect"
19
+              @change="regionChange()"
20
+              style="font-size: 15px"
21
+            >
22
+              <option v-for="(region, r) in regions" :key="r" :value="region">{{
23
+                region.regionName
24
+              }}</option>
25
+            </select>
26
+          </float-label>
27
+        </div>
28
+        <div class="col-md-3">
29
+          <float-label label="RESORT NAME">
30
+            <select
31
+              id="weekInfoResortSelect"
32
+              class="form-control uniSelect"
33
+              @change="resortChange()"
34
+            >
35
+              <option value="Other">Other</option>
36
+              <option v-for="(resort, r) in resorts" :key="r" :value="resort">{{
37
+                resort.resortName
38
+              }}</option>
39
+            </select>
40
+          </float-label>
41
+        </div>
42
+        <div class="col-md-3">
43
+          <float-label label="SEASON">
44
+            <select class="form-control uniSelect" name="region" id="region">
45
+              <option v-for="(season, r) in seasons" :key="r">{{ season.name }}</option>
46
+            </select>
47
+          </float-label>
48
+        </div>
49
+        <div class="col-md-3">
50
+          <float-label label="STATUS">
51
+            <select class="form-control uniSelect" name="status"> </select>
52
+          </float-label>
53
+        </div>
54
+      </div>
55
+      <div class="row">
56
+        <div class="col">
57
+          <button style="float:right" class="btn-solid-blue" type="button">Filter</button>
58
+        </div>
59
+      </div>
60
+      <div class="row">
61
+        <div class="col-md-12">
62
+          <ListView
63
+            :items="getNeedsVerify"
64
+            :editable="true"
65
+            :deleteable="true"
66
+            :showCustomAction="true"
67
+            :CustomActionHeading="'Publish'"
68
+            @onRowClick="onRowClick"
69
+            @onClearSelected="onClearSelected"
70
+            @onEdit="onEdit"
71
+            :showNew="false"
72
+          />
73
+        </div>
74
+      </div>
75
+      <!-- <div class="offset-1 col-md-6">
76
+        <button
82 77
           type="button"
83 78
           :class="{
84 79
             'form-control btn btn-primary ': 1 === 1,
@@ -89,22 +84,9 @@
89 84
           @click="onVerify()"
90 85
         >
91 86
           {{ ButtonMessage }}
92
-        </button> -->
93
-        <!-- <div>{{ Message }}</div> -->
94
-      </div>
95
-      <div class="offset-1 col-md-10">
96
-        <ListView
97
-          :items="getNeedsVerify"
98
-          :editable="true"
99
-          :deleteable="true"
100
-          :showCustomAction="true"
101
-          :CustomActionHeading="'Publish'"
102
-          @onRowClick="onRowClick"
103
-          @onClearSelected="onClearSelected"
104
-          @onEdit="onEdit"
105
-          :showNew="false"
106
-        />
107
-      </div>
87
+        </button> 
88
+        <div>{{ Message }}</div>
89
+      </div> -->
108 90
     </div>
109 91
   </main>
110 92
 </template>
@@ -130,22 +112,13 @@ export default {
130 112
     this.initTimeshare(0);
131 113
   },
132 114
   computed: {
133
-        ...mapState("timeshare", [
134
-      "resorts",
135
-      "regions",
136
-      "seasons",
137
-    ]),
115
+    ...mapState("timeshare", ["resorts", "regions", "seasons"]),
138 116
     ...mapState("individual", ["indiv"]),
139 117
     filteredResort() {
140 118
       let list = [];
141
-      if (
142
-        this.sellItem &&
143
-        this.sellItem.region &&
144
-        this.sellItem.region.regionCode
145
-      ) {
119
+      if (this.sellItem && this.sellItem.region && this.sellItem.region.regionCode) {
146 120
         const item = this.detailedRegion.find(
147
-          (region) =>
148
-            region.region.regionCode === this.sellItem.region.regionCode
121
+          region => region.region.regionCode === this.sellItem.region.regionCode
149 122
         );
150 123
         if (item) {
151 124
           list = item.children;
@@ -153,7 +126,7 @@ export default {
153 126
       } else {
154 127
         list = this.resorts;
155 128
       }
156
-      return _.sortBy(list, (x) => x.resortName);
129
+      return _.sortBy(list, x => x.resortName);
157 130
     },
158 131
     SelectedItems() {
159 132
       const selectedArray = [];
@@ -191,12 +164,7 @@ export default {
191 164
   methods: {
192 165
     ...mapActions("myWeeks", ["getItems", "verifyWeek"]),
193 166
     ...mapActions("alert", ["success"]),
194
-     ...mapActions("timeshare", [
195
-      "initTimeshare",
196
-      "onResortChange",
197
-      "saveWeek",
198
-      "getBlankWeek",
199
-    ]),
167
+    ...mapActions("timeshare", ["initTimeshare", "onResortChange", "saveWeek", "getBlankWeek"]),
200 168
     onVerify() {
201 169
       if (this.selectedItems.length > 0) {
202 170
         for (const i in this.selectedItems) {
@@ -218,7 +186,7 @@ export default {
218 186
     },
219 187
     onClearSelected() {
220 188
       this.selectedItems = [];
221
-    },
189
+    }
222 190
     //   onDelete(item) {
223 191
     //   this.deleteListing(item.id);
224 192
     // },

+ 16
- 15
src/components/misc/bondCaclculator.vue 파일 보기

@@ -2,23 +2,23 @@
2 2
   <div>
3 3
     <h2 id="modal-bondcal">Bond Calculator</h2>
4 4
     <p>Calculate the value of the property you could buy</p>
5
-    <input
6
-      type="text"
7
-      class="form-control mb-2"
8
-      name="income"
9
-      v-currency="{ currency: ['ZAR', null, { prefix: 'R' }][2] }"
10
-      id="gross-income"
11
-      placeholder="Gross Monthly Household Income"
5
+    <currency-input
6
+      onClick="this.setSelectionRange(0, this.value.length)"
7
+      name="price"
8
+      :value="value"
9
+      @input="value = $event"
12 10
       v-model="amount"
13
-    />
14
-    <input
15
-      type="text"
11
+      id="gross-income"
16 12
       class="form-control mb-2"
13
+    />
14
+    <currency-input
15
+      onClick="this.setSelectionRange(0, this.value.length)"
17 16
       name="deposit"
18
-      v-currency="{ currency: ['ZAR', null, { prefix: 'R' }][2] }"
19
-      id="deposit"
20
-      placeholder="Deposit Amount – May be Required"
17
+      :value="value"
18
+      @input="value = $event"
21 19
       v-model="deposit"
20
+      id="gross-income"
21
+      class="form-control mb-2"
22 22
     />
23 23
     <div class="slidecontainer mt-4">
24 24
       <input type="range" min="5" max="30" value="10" class="slider" id="myRange" v-model="term" />
@@ -80,12 +80,13 @@ export default {
80 80
   },
81 81
   computed: {
82 82
     totalMonthlyPayment() {
83
-      var rate = this.calcRate;
83
+      var rate = this.rate / 100 / 12;
84 84
       var years = this.term * 12;
85 85
       var topPart = rate * Math.pow(1 + rate, years);
86 86
       var bottomPart = Math.pow(1 + rate, years) - 1;
87 87
 
88
-      var netAmnt = parseFloat(this.amount) - parseFloat(this.deposit);
88
+      var netAmnt = this.amount - this.deposit;
89
+
89 90
       var bond = (netAmnt * topPart) / bottomPart;
90 91
       if (isNaN(bond)) {
91 92
         return 0;

+ 0
- 22
src/components/property/commercial/enquireNow/enquirenow.vue 파일 보기

@@ -1,22 +0,0 @@
1
-<template>
2
-  <div>
3
-    <carouselSection />
4
-    <main id="main" style="margin-top:-20px;padding-bottom:50px">
5
-      <contentSection />
6
-    </main>
7
-  </div>
8
-</template>
9
-
10
-<script>
11
-/* eslint-disable */
12
-import carouselSection from "./carouselSection";
13
-import contentSection from "./contentSection";
14
-export default {
15
-  components: {
16
-    carouselSection,
17
-    contentSection
18
-  }
19
-};
20
-</script>
21
-
22
-<style lang="scss" scoped></style>

+ 8
- 1
src/components/property/commercial/singleView/contentSection.vue 파일 보기

@@ -95,7 +95,14 @@
95 95
               </div>
96 96
             </div>
97 97
           </div>
98
+
98 99
           <div class="mt-5" v-html="property.description"></div>
100
+          <router-link
101
+            style="float:right"
102
+            class="btn-solid-blue mt-3"
103
+            :to="{ name: 'EnquireNow', params: { id: $route.params.id } }"
104
+            >MORE INFO...</router-link
105
+          >
99 106
           <h4 v-if="property.video !== null" class="mt-5">Video Tour</h4>
100 107
           <iframe
101 108
             v-if="property.video !== null"
@@ -134,7 +141,7 @@
134 141
                     </div>
135 142
                   </td>
136 143
                   <td>
137
-                    <router-link class="btn-solid-blue" to="/EnquireNow">MORE INFO</router-link>
144
+                    
138 145
                   </td>
139 146
                 </tr>
140 147
               </tbody>

src/components/property/commercial/enquireNow/carouselSection.vue → src/components/property/enquireNow/carouselSection.vue 파일 보기

@@ -20,12 +20,7 @@
20 20
       style="margin-top:-50px"
21 21
       :responsive="{ 0: { items: 1, nav: false }, 600: { items: 1, nav: false } }"
22 22
     >
23
-      <img class="item" src="/img/intro-carousel/home-1.jpg" alt="" />
24
-      <img class="item" src="/img/intro-carousel/home-2.jpg" alt="" />
25
-      <img class="item" src="/img/intro-carousel/home-3.jpg" alt="" />
26
-      <img class="item" src="/img/intro-carousel/home-4.jpg" alt="" />
27
-      <img class="item" src="/img/intro-carousel/home-5.jpg" alt="" />
28
-      <img class="item" src="/img/intro-carousel/home-6.jpg" alt="" />
23
+      <img class="item" v-for="(image, i) in images" :key="i" :src="image" />
29 24
     </carousel>
30 25
 
31 26
     <div id="intro-carousel" class="owl-carousel"></div>
@@ -39,6 +34,9 @@ import carousel from "vue-owl-carousel";
39 34
 export default {
40 35
   components: {
41 36
     carousel
37
+  },
38
+  props: {
39
+    images: {}
42 40
   }
43 41
 };
44 42
 </script>

src/components/property/commercial/enquireNow/contentSection.vue → src/components/property/enquireNow/contentSection.vue 파일 보기

@@ -2,30 +2,21 @@
2 2
   <div class="container pt-5">
3 3
     <div class="row mb-8">
4 4
       <div class="col-md-6">
5
-        <h3>Mooikloof Office Park</h3>
6
-        <p>
7
-          The cream of the crop, no costs were spared on the finishing touches of this beautiful
8
-          office. This 160m2 office is ideally situated in Pretoria East in the hub of business
9
-          expansion for Pretoria. Two superb, air-conditioned ground floor units divided only by
10
-          glass and completed with two small recording studios. The Space is currently used for
11
-          corporate boardroom and training centre functions and can accommodate up to 25 delegates.
12
-          Stunning finishes y interior designer complete the unit with style and class. The perfect
13
-          address and office for the established professional for the training centre of your
14
-          dreams!
15
-        </p>
5
+        <h3>{{ property.propertyName }}</h3>
6
+        <p v-html="property.description"></p>
16 7
         <p><strong>View by Appointment only!</strong></p>
17 8
         <br />
18 9
         <p></p>
19
-        To arrange a viewing contact Mynie:
10
+        <!-- To arrange a viewing contact Mynie:
20 11
         <div class="col-md-4">
21 12
           <a href="mailto:info@univateproperties.co.za">info@univateproperties.co.za</a><br />
22 13
           <a href="tel:0124921238">+27 (0) 12 492 1238</a>
23
-        </div>
14
+        </div> -->
24 15
       </div>
25 16
       <div class="col-md-6">
26
-        <form>
27
-          <div class="form-group row">
28
-            <div class="form-group col-md-6">
17
+        <div class="form-group row">
18
+          <div class="form-group col-md-6 mb-4">
19
+            <float-label>
29 20
               <input
30 21
                 type="text"
31 22
                 name="name"
@@ -33,11 +24,15 @@
33 24
                 id="Unit"
34 25
                 placeholder="Unit"
35 26
                 data-rule="minlen:4"
36
-                v-model="Unit"
27
+                v-model="property.unit"
28
+                disabled
37 29
               />
38
-              <div class="validation"></div>
39
-            </div>
40
-            <div class="form-group col-md-6">
30
+            </float-label>
31
+
32
+            <div class="validation"></div>
33
+          </div>
34
+          <div class="form-group col-md-6">
35
+            <float-label>
41 36
               <input
42 37
                 type="text"
43 38
                 name="name"
@@ -45,11 +40,15 @@
45 40
                 id="Price"
46 41
                 placeholder="Price"
47 42
                 data-rule="minlen:4"
48
-                v-model="Price"
43
+                v-model="property.price"
44
+                disabled
49 45
               />
50
-              <div class="validation"></div>
51
-            </div>
52
-            <div class="form-group col-md-6">
46
+            </float-label>
47
+
48
+            <div class="validation"></div>
49
+          </div>
50
+          <div class="form-group col-md-6">
51
+            <float-label>
53 52
               <input
54 53
                 type="text"
55 54
                 name="name"
@@ -57,11 +56,15 @@
57 56
                 id="Size"
58 57
                 placeholder="Size"
59 58
                 data-rule="minlen:4"
60
-                v-model="Size"
59
+                v-model="size"
60
+                disabled
61 61
               />
62
-              <div class="validation"></div>
63
-            </div>
64
-            <div class="form-group col-md-6">
62
+            </float-label>
63
+
64
+            <div class="validation"></div>
65
+          </div>
66
+          <div class="form-group col-md-6 mb-4">
67
+            <float-label>
65 68
               <input
66 69
                 type="text"
67 70
                 name="name"
@@ -69,11 +72,15 @@
69 72
                 id="Suburb"
70 73
                 placeholder="Suburb"
71 74
                 data-rule="minlen:4"
72
-                v-model="Suburb"
75
+                v-model="property.suburb"
76
+                disabled
73 77
               />
74
-              <div class="validation"></div>
75
-            </div>
76
-            <div class="form-group col-md-12">
78
+            </float-label>
79
+
80
+            <div class="validation"></div>
81
+          </div>
82
+          <div class="form-group col-md-12 mb-4">
83
+            <float-label>
77 84
               <input
78 85
                 type="text"
79 86
                 name="name"
@@ -81,11 +88,14 @@
81 88
                 id="Name"
82 89
                 placeholder="Name"
83 90
                 data-rule="minlen:4"
84
-                v-model="Name"
91
+                v-model="name"
85 92
               />
86
-              <div class="validation"></div>
87
-            </div>
88
-            <div class="form-group col-md-12">
93
+            </float-label>
94
+
95
+            <div class="validation"></div>
96
+          </div>
97
+          <div class="form-group col-md-12 mb-4">
98
+            <float-label>
89 99
               <input
90 100
                 type="text"
91 101
                 name="name"
@@ -93,11 +103,14 @@
93 103
                 id="ContactNumber"
94 104
                 placeholder="ContactNumber"
95 105
                 data-rule="minlen:4"
96
-                v-model="ContactNumber"
106
+                v-model="contactNumber"
97 107
               />
98
-              <div class="validation"></div>
99
-            </div>
100
-            <div class="form-group col-md-12">
108
+            </float-label>
109
+
110
+            <div class="validation"></div>
111
+          </div>
112
+          <div class="form-group col-md-12">
113
+            <float-label>
101 114
               <input
102 115
                 type="text"
103 116
                 name="name"
@@ -107,16 +120,17 @@
107 120
                 data-rule="minlen:4"
108 121
                 v-model="email"
109 122
               />
110
-              <div class="validation"></div>
111
-            </div>
112
-          </div>
113
-          <div class="text-center">
114
-            <button class="btn-solid-blue" @click="sendMail()">ENQUIRE NOW</button>
115
-          </div>
116
-          <div v-if="boolSent">
117
-            <alert :text="alertMsg" :type="'SUCCESS'" />
123
+            </float-label>
124
+
125
+            <div class="validation"></div>
118 126
           </div>
119
-        </form>
127
+        </div>
128
+        <div class="text-center">
129
+          <button class="btn-solid-blue" @click="sendMail()">ENQUIRE NOW</button>
130
+        </div>
131
+        <div v-if="boolSent">
132
+          <alert :text="alertMsg" :type="'SUCCESS'" />
133
+        </div>
120 134
       </div>
121 135
     </div>
122 136
   </div>
@@ -125,7 +139,7 @@
125 139
 <script>
126 140
 /* eslint-disable */
127 141
 import axios from "axios";
128
-import alert from "../../../shared/alert";
142
+import alert from "../../shared/alert";
129 143
 
130 144
 export default {
131 145
   components: {
@@ -136,7 +150,7 @@ export default {
136 150
       alertMsg: "Sent! You can expect a reply soon!",
137 151
       name: null,
138 152
       email: null,
139
-      phone: null,
153
+      contactNumber: null,
140 154
       property: null,
141 155
       message: null,
142 156
       boolSent: false
@@ -145,15 +159,18 @@ export default {
145 159
   mounted() {
146 160
     this.boolSent = false;
147 161
   },
162
+  props: {
163
+    property: {}
164
+  },
148 165
   methods: {
149 166
     async sendMail() {
150 167
       var mailObj = {
151
-        toAddress: "lenes@provision-sa.com",
168
+        toAddress: "jlouw365@gmail.com",
152 169
         fromAddress: "jlouw365@gmail.com",
153 170
         name: this.name,
154 171
         email: this.email,
155
-        phone: this.phone,
156
-        property: this.property,
172
+        phone: this.contactNumber,
173
+        property: this.property.id.toString(),
157 174
         message: this.message
158 175
       };
159 176
 

+ 46
- 0
src/components/property/enquireNow/enquirenow.vue 파일 보기

@@ -0,0 +1,46 @@
1
+<template>
2
+  <div>
3
+    <carouselSection v-if="propertyImages.length > 0" :images="propertyImages" />
4
+    <main id="main" style="margin-top:-20px;padding-bottom:50px">
5
+      <contentSection :property="property" />
6
+    </main>
7
+  </div>
8
+</template>
9
+
10
+<script>
11
+/* eslint-disable */
12
+import { mapState, mapActions } from "vuex";
13
+import carouselSection from "./carouselSection";
14
+import contentSection from "./contentSection";
15
+export default {
16
+  components: {
17
+    carouselSection,
18
+    contentSection
19
+  },
20
+  async mounted() {
21
+    await this.getProperty(this.$route.params.id);
22
+    await this.getPropertyImages(this.$route.params.id);
23
+    this.mayEditProperty(this.$route.params.id);
24
+  },
25
+  computed: {
26
+    ...mapState("property", ["property", "propertyImages"]),
27
+    ...mapState("propertyEdit", ["mayEdit"])
28
+  },
29
+  methods: {
30
+    ...mapActions("property", ["getProperty", "getPropertyImages", "clearPropertyImages"]),
31
+    ...mapActions("propertyEdit", ["mayEditProperty"]),
32
+    formatPrice(value) {
33
+      const val = (value / 1).toFixed(2);
34
+      return val.toString().replace(/\B(?=(\d{3})+(?!\d))/g, " ");
35
+    },
36
+    formatAddress(value) {
37
+      if (value !== "") {
38
+        return `${value}<br/>`;
39
+      }
40
+      return "";
41
+    }
42
+  }
43
+};
44
+</script>
45
+
46
+<style lang="scss" scoped></style>

+ 9
- 3
src/components/property/residential/singleView/contentSection.vue 파일 보기

@@ -5,7 +5,7 @@
5 5
         <div class="col-md-4">
6 6
           <div class="resPortfolioSection">
7 7
             <iframe
8
-              v-if="property.video != ''"
8
+              v-if="property.video != null"
9 9
               width="100%"
10 10
               src="https://www.youtube.com/embed/watch_popup?v=qKgHJYzWtVA"
11 11
               frameborder="0"
@@ -92,6 +92,12 @@
92 92
             </div>
93 93
           </div>
94 94
           <div>
95
+            <router-link
96
+              style="float:right"
97
+              class="btn-solid-blue mt-3"
98
+              :to="{ name: 'EnquireNow', params: { id: $route.params.id } }"
99
+              >MORE INFO...</router-link
100
+            >
95 101
             <h4>Property Features</h4>
96 102
 
97 103
             <div v-for="(data, i) in property.displayData" :key="i" class="row my-3">
@@ -103,9 +109,9 @@
103 109
               </div>
104 110
             </div>
105 111
           </div>
106
-          <h4 v-if="property.video != ''" class="mt-5">Video Tour</h4>
112
+          <h4 v-if="property.video != null" class="mt-5">Video Tour</h4>
107 113
           <iframe
108
-            v-if="property.video != ''"
114
+            v-if="property.video != null"
109 115
             width="100%"
110 116
             src="https://www.youtube.com/embed/watch_popup?v=qKgHJYzWtVA"
111 117
             frameborder="0"

+ 11
- 15
src/components/shared/listView.vue 파일 보기

@@ -2,9 +2,11 @@
2 2
 <template>
3 3
   <div>
4 4
     <div style="height:5px"></div>
5
-    <div class="d-flex justify-content-between table-title">
5
+    <div class="d-flex justify-content-between ">
6 6
       <div class="p-2" v-if="!hideSearch">
7
-        <input v-model="searchItem" class="form-control" placeholder="Search...." />
7
+        <float-label>
8
+          <input v-model="searchItem" class="form-control uniInput mt-3" placeholder="Search...." />
9
+        </float-label>
8 10
       </div>
9 11
       <div class="p-2" v-if="title">
10 12
         <h2>{{ title }}</h2>
@@ -12,23 +14,19 @@
12 14
       <div class="p-2">
13 15
         <div class="d-flex flex-row">
14 16
           <div class="p2" v-if="showColumnChooser">
15
-            <div
16
-              class="btn btn-primary myBackground btn-width cursor-pointer"
17
-              data-toggle="modal"
18
-              data-target="#myModal"
19
-            >
17
+            <div class="btn-solid-blue cursor-pointer" data-toggle="modal" data-target="#myModal">
20 18
               Column Chooser
21 19
             </div>
22 20
             <div class="col-md-12">
23 21
               <div id="myModal" class="modal fade" role="dialog">
24
-                <div class="modal-dialog modal-lg">
22
+                <div class="modal-dialog modal-lg" style="width:500px">
25 23
                   <!-- Modal content-->
26 24
                   <div class="modal-content">
27 25
                     <div class="modal-header">
28 26
                       <h5>Column Chooser</h5>
29 27
                       <button type="button" class="close" data-dismiss="modal">&times;</button>
30 28
                     </div>
31
-                    <div style="margin-left:50px; margin-right:50px;margin-bottom:50px;">
29
+                    <div style="margin-bottom:50px;">
32 30
                       <ListViewControl :items="allColumn" @checkItem="checkItem" />
33 31
                     </div>
34 32
                   </div>
@@ -37,15 +35,12 @@
37 35
             </div>
38 36
           </div>
39 37
           <div class="p2" v-if="selectedItems.length > 0">
40
-            <div
41
-              class="btn btn-primary myBackground btn-width cursor-pointer"
42
-              @click="onClearSelected()"
43
-            >
38
+            <div class="btn-solid-blue cursor-pointer" @click="onClearSelected()">
44 39
               Clear Selected
45 40
             </div>
46 41
           </div>
47 42
           <div class="p2" v-if="showNew">
48
-            <div class="btn btn-primary myBackground btn-width cursor-pointer" @click="onNew()">
43
+            <div class="btn-solid-blue cursor-pointer" @click="onNew()">
49 44
               New
50 45
             </div>
51 46
           </div>
@@ -56,6 +51,7 @@
56 51
     <div v-if="items && items.length > 0" class="table-responsive">
57 52
       <table
58 53
         id="table"
54
+        class="table table-striped"
59 55
         :class="{ 'table table-hover': 1 === 1, 'table-sm': compact, 'table-bordered': bordered }"
60 56
       >
61 57
         <thead>
@@ -94,7 +90,7 @@
94 90
             <th v-if="deleteable"></th>
95 91
           </tr>
96 92
         </thead>
97
-        <tbody class="my-table">
93
+        <tbody class="table">
98 94
           <tr
99 95
             v-for="(item, i) in DisplayItems"
100 96
             :key="i"

+ 15
- 14
src/components/shared/listViewControl.vue 파일 보기

@@ -1,12 +1,15 @@
1 1
 <template>
2 2
   <div class="container">
3
-    <div class="offset-3 col-md-6">
4
-      <input v-model="searchItem" class="form-control" placeholder="Search...." />
3
+    <div class="row">
4
+      <div class="col-md-12">
5
+        <input v-model="searchItem" class="form-control" placeholder="Search...." />
6
+      </div>
5 7
     </div>
8
+
6 9
     <hr />
7 10
     <div class="row">
8
-      <div v-for="item in items" :key="item" class="col-md-4">
9
-        <div :class="{'inSearch': isInSelected(item)}">
11
+      <div v-for="item in items" :key="item" class="col-md-6">
12
+        <div :class="{ inSearch: isInSelected(item) }">
10 13
           <CheckItem :title="item.column" :show="item.show" @checkItem="checkItem" />
11 14
         </div>
12 15
       </div>
@@ -14,34 +17,32 @@
14 17
   </div>
15 18
 </template>
16 19
 <script>
17
-import CheckItem from './checkItem.vue';
20
+import CheckItem from "./checkItem.vue";
18 21
 
19 22
 export default {
20 23
   components: {
21
-    CheckItem,
24
+    CheckItem
22 25
   },
23 26
   data() {
24 27
     return {
25
-      searchItem: undefined,
28
+      searchItem: undefined
26 29
     };
27 30
   },
28 31
   props: {
29
-    items: undefined,
32
+    items: undefined
30 33
   },
31 34
   methods: {
32 35
     isInSelected(i) {
33 36
       if (this.searchItem && this.searchItem.length > 0) {
34
-        return (
35
-          i.column.toLowerCase().indexOf(this.searchItem.toLowerCase()) > -1
36
-        );
37
+        return i.column.toLowerCase().indexOf(this.searchItem.toLowerCase()) > -1;
37 38
       }
38 39
       return false;
39 40
     },
40 41
     checkItem(column, show) {
41
-      this.$emit('checkItem', column, show);
42
-    },
42
+      this.$emit("checkItem", column, show);
43
+    }
43 44
   },
44
-  computed: {},
45
+  computed: {}
45 46
 };
46 47
 </script>
47 48
 <style>

+ 1
- 2
src/components/shared/navBar.vue 파일 보기

@@ -50,8 +50,7 @@
50 50
                       Commercial
51 51
                     </a>
52 52
                     <ul style="margin-top:-10px; text-align:left" :class="commercialClass">
53
-                      <li>
54
-                        
53
+                      <li>                     
55 54
                       </li>
56 55
                       <hr />
57 56
                       <li>

+ 1
- 1
src/components/timeshare/myWeeksPage.vue 파일 보기

@@ -17,7 +17,7 @@
17 17
         <button
18 18
           type="button"
19 19
           :class="{
20
-            'form-control btn btn-primary ': 1 === 1,
20
+            'form-control btn-solid-blue ': 1 === 1,
21 21
             'my-disable':
22 22
               !(selectedItems.length == 1) ||
23 23
               !items[selectedItems] ||

+ 2
- 2
src/router/index.js 파일 보기

@@ -83,7 +83,7 @@ import LandingPage from "../components/marketing/landingPage.vue";
83 83
 import LandingPageWeek from "../components/marketing/landingPageWeek.vue";
84 84
 import MarketingPage from "../components/marketing/clientView.vue";
85 85
 import MarketingPageExp from "../components/marketing/landingPageExpired.vue";
86
-import EnquireNow from "../components/property/commercial/enquireNow/enquirenow.vue";
86
+import EnquireNow from "../components/property/enquireNow/enquirenow.vue";
87 87
 import MyWeeksEdit from "../components/admin/status/editTimeShareAdminPage.vue";
88 88
 
89 89
 Vue.use(Router);
@@ -449,7 +449,7 @@ export default new Router({
449 449
       component: MarketingPageExp
450 450
     },
451 451
     {
452
-      path: "/EnquireNow",
452
+      path: "/EnquireNow/:id",
453 453
       name: "EnquireNow",
454 454
       component: EnquireNow
455 455
     },

+ 7
- 3
src/store/modules/misc/termsConditions.js 파일 보기

@@ -20,9 +20,13 @@ export default {
20 20
       });
21 21
     },
22 22
     async setTerms({ commit }, terms) {
23
-      await axios.post("api/tc/", terms).then(res => {
24
-        commit("newTermsAndConditions", res.data);
25
-      });
23
+      const response = await axios.post("api/tc/", terms);
24
+      if (response.status === 200) {
25
+        commit("newTermsAndConditions", response.data);
26
+        return Promise.resolve();
27
+      } else {
28
+        return Promise.reject();
29
+      }
26 30
     }
27 31
   }
28 32
 };

Loading…
취소
저장