Kaynağa Gözat

Timeshare - my weeks

master
Kobus 5 yıl önce
ebeveyn
işleme
12354c9b97

+ 4
- 0
src/App.vue Dosyayı Görüntüle

@@ -36,6 +36,10 @@ export default {
36 36
 hr {
37 37
   background-color: #60cbeb;
38 38
 }
39
+.my-btn {
40
+  margin: 2px;
41
+  color: #60cbeb;
42
+}
39 43
 .title-img {
40 44
   width: 800px;
41 45
   height: 400px;

+ 4
- 1
src/assets/Log.js Dosyayı Görüntüle

@@ -48,7 +48,10 @@ const items = {
48 48
     return localStorage.getItem('token') !== undefined && localStorage.getItem('token') !== null;
49 49
   },
50 50
   getUser() {
51
-    return localStorage.getItem('user');
51
+    return localStorage.getItem('user') ? JSON.parse(localStorage.getItem('user')) : {};
52
+  },
53
+  getPerson() {
54
+    return localStorage.getItem('person') ? JSON.parse(localStorage.getItem('person')) : {};
52 55
   },
53 56
 };
54 57
 export default items;

+ 1
- 1
src/components/processFlow/makeOffer.vue Dosyayı Görüntüle

@@ -21,7 +21,7 @@
21 21
         <div class="form-group row">
22 22
           <div class="col-md-6 col-lg-5 section-md-t3">
23 23
             <div class="title-box-d">
24
-              <h3 class="title-d">{{ item ? item.resortName : '' }}</h3>
24
+              <h3 class="title-d">{{ item ? item.resort.resortName : '' }}</h3>
25 25
             </div>
26 26
           </div>
27 27
         </div>

+ 43
- 8
src/components/shared/listView.vue Dosyayı Görüntüle

@@ -2,11 +2,9 @@
2 2
 /* eslint-disable guard-for-in */
3 3
 <template>
4 4
   <div>
5
-    <div class="container">
6
-      <div class="d-flex justify-content-between" v-if="!hideSearch">
7
-        <div class="p-2">
8
-          <input v-model="searchItem" class="form-control" placeholder="Search ..." />
9
-        </div>
5
+    <div class="d-flex justify-content-between" v-if="!hideSearch">
6
+      <div class="p-2">
7
+        <input v-model="searchItem" class="form-control" placeholder="Search ..." />
10 8
       </div>
11 9
     </div>
12 10
     <table id="table" class="table table-bordered table-hover">
@@ -15,6 +13,8 @@
15 13
           <th v-for="(column, c) in Columns" :key="c">
16 14
             <div @click="sortBy(column)">{{ column }}</div>
17 15
           </th>
16
+          <th v-if="editable"></th>
17
+          <th v-if="deleteable"></th>
18 18
         </tr>
19 19
       </thead>
20 20
       <tbody>
@@ -24,7 +24,16 @@
24 24
           class="text-left dnd-moved"
25 25
           @click="onRowClick(item)"
26 26
         >
27
-          <td v-for="(column, c) in Columns" :key="c">{{ item[column] }}</td>
27
+          <td
28
+            v-for="(column, c) in Columns"
29
+            :key="c"
30
+          >{{ isObject(item[column]) ? item[column].display : item[column] }}</td>
31
+          <td v-if="editable" class="my-width">
32
+            <button type="button" class="btn my-btn" @click="onEdit(item)">Edit</button>
33
+          </td>
34
+          <td v-if="deleteable" class="my-width">
35
+            <button type="button" class="btn my-btn" @click="onDelete(item)">Delete</button>
36
+          </td>
28 37
         </tr>
29 38
       </tbody>
30 39
     </table>
@@ -81,6 +90,15 @@ export default {
81 90
       default: false,
82 91
     },
83 92
     items: undefined,
93
+    editable: {
94
+      default: false,
95
+    },
96
+    deleteable: {
97
+      default: false,
98
+    },
99
+    columnsCount: {
100
+      default: 6,
101
+    },
84 102
   },
85 103
   data() {
86 104
     return {
@@ -94,6 +112,15 @@ export default {
94 112
     };
95 113
   },
96 114
   methods: {
115
+    isObject(item) {
116
+      return !!item && item.constructor === Object;
117
+    },
118
+    onEdit(item) {
119
+      this.$emit('onEdit', item);
120
+    },
121
+    onDelete(item) {
122
+      this.$emit('onDelete', item);
123
+    },
97 124
     onRowClick(item) {
98 125
       this.$emit('onRowClick', item);
99 126
     },
@@ -158,7 +185,9 @@ export default {
158 185
               !list.includes(Object.keys(item)[o])
159 186
               && !Array.isArray(Object.values(item)[o])
160 187
             ) {
161
-              list.push(Object.keys(item)[o]);
188
+              if (list.length < this.columnsCount) {
189
+                list.push(Object.keys(item)[o]);
190
+              }
162 191
             }
163 192
           }
164 193
         }
@@ -169,7 +198,7 @@ export default {
169 198
       const list = _.filter(this.items, item => Object.values(item).some(
170 199
           i => JSON.stringify(i)
171 200
               .toLowerCase()
172
-              .indexOf(this.searchItem) > -1,
201
+              .indexOf(this.searchItem.toLowerCase()) > -1,
173 202
         ),);
174 203
       return _.orderBy(list, this.sortKey, this.SortDirection);
175 204
     },
@@ -196,6 +225,12 @@ th[draggable] a {
196 225
   text-decoration: none;
197 226
   color: #333333;
198 227
 }
228
+.table > tbody > tr > td {
229
+  vertical-align: middle;
230
+}
231
+.my-width {
232
+  width: 20px;
233
+}
199 234
 .drag {
200 235
   background-color: rgba(0, 255, 0, 0.35);
201 236
   opacity: 0.25;

+ 1
- 1
src/components/shared/navBar.vue Dosyayı Görüntüle

@@ -63,7 +63,7 @@
63 63
                   <a
64 64
                     v-if="isLoggedIn"
65 65
                     class="dropdown-item cursor-pointer"
66
-                    @click="routerGoTo('/timeshare/sell')"
66
+                    @click="routerGoTo('/timeshare/myWeeks')"
67 67
                   >My Timeshare Weeks</a>
68 68
                 </div>
69 69
               </div>

+ 1
- 1
src/components/shared/searchTab.vue Dosyayı Görüntüle

@@ -143,7 +143,7 @@ export default {
143 143
     },
144 144
     Search() {
145 145
       if (this.selectedPropertyType === 'timeshare') {
146
-        this.$router.push('/timeshare/search/');
146
+        this.$router.push('/timesharesearch');
147 147
       } else {
148 148
         // this.$router.push('/property/search');
149 149
         this.$router.push({

+ 2
- 3
src/components/timeshare/buy/buyPage.vue Dosyayı Görüntüle

@@ -120,11 +120,10 @@ export default {
120 120
     };
121 121
   },
122 122
   mounted() {
123
-    console.log(4);
124 123
     this.init();
125 124
   },
126 125
   computed: {
127
-    ...mapState('timeshareBuy', ['detailedRegion', 'resort', 'availRegion']),
126
+    ...mapState('region', ['detailedRegion', 'resort', 'availRegion']),
128 127
     mapUrl() {
129 128
       return `http://maps.google.com/maps?q=${this.myMap}&z=${this.myZoom}&output=embed`;
130 129
     },
@@ -133,7 +132,7 @@ export default {
133 132
     },
134 133
   },
135 134
   methods: {
136
-    ...mapActions('timeshareBuy', [
135
+    ...mapActions('region', [
137 136
       'init',
138 137
       'getAvail',
139 138
       'getRegions',

+ 2
- 1
src/components/timeshare/buy/weekListComponent.vue Dosyayı Görüntüle

@@ -62,6 +62,7 @@ import { mapState, mapActions, mapGetters } from 'vuex';
62 62
 export default {
63 63
   props: {
64 64
     resortCode: undefined,
65
+    userId: undefined,
65 66
   },
66 67
   components: {},
67 68
   computed: {
@@ -79,7 +80,7 @@ export default {
79 80
   },
80 81
   methods: {
81 82
     View(item) {
82
-      this.$router.push(`/resort/${item.resort.resortCode}/${item.id}`);
83
+      this.$router.push(`/resort/${item.resort.resortCode}/${item.unitNumber}`);
83 84
     },
84 85
     ...mapActions('weekList', ['getWeeks', 'applyResortFilter']),
85 86
   },

+ 25
- 10
src/components/timeshare/myWeeksPage.vue Dosyayı Görüntüle

@@ -4,24 +4,39 @@
4 4
     <br />
5 5
     <br />
6 6
     <br />
7
-    <img
8
-      src="http://www.provision-sa.com:3000/Provision/UnivateProperties/src/branch/master/public/img/logos/UVProp.png"
9
-      height="200"
10
-      width="200"
11
-    />
12
-    {{getUser}}
13 7
     <br />
8
+    <div class="row">
9
+      <div class="offset-1 col-md-10">
10
+        <ListView :items="items" :editable="true" @onEdit="onEdit" />
11
+      </div>
12
+    </div>
14 13
   </div>
15 14
 </template>
16 15
 <script>
17
-import { mapState } from 'vuex';
16
+import { mapState, mapActions } from 'vuex';
18 17
 import log from '../../assets/Log';
18
+import ListView from '../shared/listView.vue';
19 19
 
20 20
 export default {
21
+  components: {
22
+    ListView,
23
+  },
24
+  data() {
25
+    return {
26
+      user: JSON.parse(log.getUser()),
27
+    };
28
+  },
29
+  mounted() {
30
+    console.log(this.user.id);
31
+    this.getItems(this.user.id);
32
+  },
21 33
   computed: {
22
-    ...mapState('myWeeks', ['test']),
23
-    getUser() {
24
-      return log.getUser();
34
+    ...mapState('myWeeks', ['items']),
35
+  },
36
+  methods: {
37
+    ...mapActions('myWeeks', ['getItems']),
38
+    onEdit(item) {
39
+      this.$router.push(`/timeshare/${item.id}`);
25 40
     },
26 41
   },
27 42
 };

+ 19
- 6
src/components/timeshare/resort/unitPage.vue Dosyayı Görüntüle

@@ -1,10 +1,12 @@
1 1
 <template>
2 2
   <!-- eslint-disable max-len -->
3 3
   <div class="my-container my-top">
4
+    <br />
5
+    <br />
4 6
     <div class="row">
5 7
       <div class="col-md-12 col-lg-8">
6 8
         <div class="title-box-d">
7
-          <h1 class="title-d my-title">{{week ? week.resortName : ''}}</h1>
9
+          <h1 class="title-d my-title">{{week ? week.resort.resortName : ''}}</h1>
8 10
         </div>
9 11
         <br />
10 12
       </div>
@@ -158,7 +160,7 @@
158 160
 </template>
159 161
 
160 162
 <script>
161
-import { mapState, mapActions } from 'vuex';
163
+import { mapState, mapActions, mapGetters } from 'vuex';
162 164
 import makeOffer from '../../processFlow/makeOffer.vue';
163 165
 import ResortImages from './resortImage.vue';
164 166
 
@@ -170,19 +172,30 @@ export default {
170 172
   },
171 173
   props: {
172 174
     resortCode: {},
173
-    weekId: {},
175
+    unitNumber: {},
174 176
   },
175 177
   mounted() {
176 178
     this.initResort(this.resortCode);
177
-    this.initWeek(this.weekId);
179
+    if (this.resortCode) {
180
+      this.applyResortFilter(this.resortCode);
181
+    }
182
+    this.getWeeks();
178 183
   },
179 184
   computed: {
180 185
     ...mapState('resort', ['resort', 'description', 'images']),
181
-    ...mapState('week', ['week']),
186
+
187
+    ...mapGetters({
188
+      weekById: 'weekList/weekById',
189
+    }),
190
+    week() {
191
+      return this.weekById(this.resortCode, this.unitNumber);
192
+    },
193
+    // ...mapState('week', ['currentWeek']),
182 194
   },
183 195
   methods: {
196
+    ...mapActions('weekList', ['getWeeks', 'applyResortFilter']),
184 197
     ...mapActions('resort', ['initResort']),
185
-    ...mapActions('week', ['initWeek']),
198
+    // ...mapActions('week', ['initWeek']),
186 199
     formatPrice(value) {
187 200
       if (value) {
188 201
         const val = (value / 1).toFixed(2);

+ 7
- 1
src/components/timeshare/sell/sellPage.vue Dosyayı Görüntüle

@@ -517,6 +517,11 @@ import Alert from '../../shared/alert.vue';
517 517
 
518 518
 export default {
519 519
   name: 'TimeshareToSell',
520
+  props: {
521
+    weekId: {
522
+      default: 0,
523
+    },
524
+  },
520 525
   components: {
521 526
     DetailIndividual,
522 527
     BankDetails,
@@ -524,7 +529,8 @@ export default {
524 529
     Alert,
525 530
   },
526 531
   created() {
527
-    this.initTimeshare();
532
+    console.log(46);
533
+    this.initTimeshare(this.weekId);
528 534
   },
529 535
   computed: {
530 536
     ...mapState('timeshare', [

+ 208
- 203
src/router/index.js Dosyayı Görüntüle

@@ -59,208 +59,213 @@ export default new Router({
59 59
       y: 0,
60 60
     };
61 61
   },
62
-  routes: [
63
-    {
64
-      path: '/',
65
-      name: 'Home',
66
-      component: HomePage,
67
-    },
68
-    {
69
-      path: '/about/us',
70
-      name: 'aboutus',
71
-      component: AboutUs,
72
-    },
73
-    {
74
-      path: '/about/timeshare',
75
-      name: 'abouttimeshare',
76
-      component: AboutTimeshare,
77
-    },
78
-    {
79
-      path: '/communication/template',
80
-      name: 'template',
81
-      component: TemplatePage,
82
-    },
83
-    {
84
-      path: '/timeshare/sell',
85
-      name: 'TimeshareSell',
86
-      component: TimeshareSell,
87
-    },
88
-    {
89
-      path: '/timeshare/buy',
90
-      name: 'TimeshareBuy',
91
-      component: TimeshareBuy,
92
-    },
93
-    {
94
-      path: '/timeshare/faq',
95
-      name: 'TimeshareFAQ',
96
-      component: TimeshareFAQ,
97
-    },
98
-    {
99
-      path: '/timeshare/myWeeks',
100
-      name: 'MyWeeks',
101
-      component: MyWeeksPage,
102
-    },
103
-    {
104
-      path: '/user/login',
105
-      name: 'Login',
106
-      component: Login,
107
-    },
108
-    {
109
-      path: '/user/updateProfileInfo',
110
-      name: 'UpdateInfo',
111
-      component: UpdateInfo,
112
-    },
113
-    {
114
-      path: '/user/register',
115
-      name: 'PrivateIndividual',
116
-      component: PrivateIndividual,
117
-    },
118
-    {
119
-      path: '/user/registeragency',
120
-      name: 'Agency',
121
-      component: Agency,
122
-    },
123
-    {
124
-      path: '/property/property/:id',
125
-      name: 'PropertyPage',
126
-      component: PropertyPage,
127
-    },
128
-    {
129
-      path: '/property/:propertyUsageType/search',
130
-      name: 'PropertySearch',
131
-      component: PropertySearch,
132
-    },
133
-    {
134
-      path: '/property/search',
135
-      name: 'PropertySearchTab',
136
-      component: PropertySearch,
137
-    },
138
-    {
139
-      path: '/property/new/:saleType',
140
-      name: 'PropertyNew',
141
-      component: PropertyCreate,
142
-    },
143
-    {
144
-      path: '/property/new/:propertyUsageType/:saleType',
145
-      name: 'PropertyNewFromSearch',
146
-      component: PropertyCreate,
147
-    },
148
-    {
149
-      path: '/property/edit',
150
-      name: 'PropertyEdit',
151
-      component: PropertyEdit,
152
-    },
153
-    {
154
-      path: '/property/admin/list/:by',
155
-      name: 'PropertyListAdmin',
156
-      component: PropertyList,
157
-    },
158
-    {
159
-      path: '/propertyTypes/list',
160
-      name: 'PropertyTypeList',
161
-      component: PropertyTypeList,
162
-    },
163
-    {
164
-      path: '/propertyType/new',
165
-      name: 'PropertyTypeNew',
166
-      component: PropertyType,
167
-    },
168
-    {
169
-      path: '/propertyType/:id',
170
-      name: 'PropertyTypeEdit',
171
-      component: PropertyType,
172
-    },
173
-    {
174
-      path: '/userDefinedGroups/list',
175
-      name: 'UserDefinedGroupsList',
176
-      component: UserDefinedGroups,
177
-    },
178
-    {
179
-      path: '/userDefinedGroups/userDefinedGroup/:id',
180
-      name: 'UserDefinedGroupEdit',
181
-      component: UserDefinedGroup,
182
-    },
183
-    {
184
-      path: '/userDefinedGroups/userDefinedGroup',
185
-      name: 'UserDefinedGroupNew',
186
-      component: UserDefinedGroup,
187
-    },
188
-    {
189
-      path: '/status/list',
190
-      name: 'StatusList',
191
-      component: Status,
192
-    },
193
-    {
194
-      path: '/status/timeshareAdmin',
195
-      name: 'TimeshareAdmin',
196
-      component: timeshareAdminPage,
197
-    },
198
-    {
199
-      path: '/status/tenderWeekAdmin',
200
-      name: 'TenderWeekAdmin',
201
-      component: tenderWeekAdminPage,
202
-    },
203
-    {
204
-      path: '/status/userManagementPage',
205
-      name: 'userManagementPage',
206
-      component: userManagementPage,
207
-    },
208
-    {
209
-      path: '/status/agentUserManagementPage',
210
-      name: 'agentManagementPage',
211
-      component: agentManagementPage,
212
-    },
213
-    {
214
-      path: '/status/changeLogPage',
215
-      name: 'changeLogPage',
216
-      component: changeLogPage,
217
-    },
218
-    {
219
-      path: '/unitConfiguration/list',
220
-      name: 'UnitConfiguration',
221
-      component: UnitConfiguration,
222
-    },
223
-    {
224
-      path: '/contactus',
225
-      name: 'ContactUs',
226
-      component: ContactUs,
227
-    },
228
-    {
229
-      path: '/privacypolicy',
230
-      name: 'PrivacyPolicy',
231
-      component: PrivacyPolicy,
232
-    },
233
-    {
234
-      path: '/resort/:resortCode',
235
-      name: 'ResortPage',
236
-      component: ResortPage,
237
-      props: true,
238
-    },
239
-    {
240
-      path: '/resort/:resortCode/:weekId',
241
-      name: 'UnitPage',
242
-      component: UnitPage,
243
-      props: true,
244
-    },
245
-    {
246
-      path: '/MakeOffer',
247
-      name: 'MakeOffer',
248
-      component: MakeOffer,
249
-    },
250
-    {
251
-      path: '/Offers',
252
-      name: 'Offers',
253
-      component: Offer,
254
-    },
255
-    {
256
-      path: '/timeshare/search',
257
-      name: 'TimeshareSearch',
258
-      component: TimeshareSearch,
259
-    },
260
-    {
261
-      path: '/searchLog',
262
-      name: 'SearchLog',
263
-      component: searchLog,
264
-    },
62
+  routes: [{
63
+    path: '/',
64
+    name: 'Home',
65
+    component: HomePage,
66
+  },
67
+  {
68
+    path: '/about/us',
69
+    name: 'aboutus',
70
+    component: AboutUs,
71
+  },
72
+  {
73
+    path: '/about/timeshare',
74
+    name: 'abouttimeshare',
75
+    component: AboutTimeshare,
76
+  },
77
+  {
78
+    path: '/communication/template',
79
+    name: 'template',
80
+    component: TemplatePage,
81
+  },
82
+  {
83
+    path: '/timeshare/sell',
84
+    name: 'TimeshareSell',
85
+    component: TimeshareSell,
86
+  },
87
+  {
88
+    path: '/timeshare/buy',
89
+    name: 'TimeshareBuy',
90
+    component: TimeshareBuy,
91
+  },
92
+  {
93
+    path: '/timeshare/faq',
94
+    name: 'TimeshareFAQ',
95
+    component: TimeshareFAQ,
96
+  },
97
+  {
98
+    path: '/timeshare/myWeeks',
99
+    name: 'MyWeeks',
100
+    component: MyWeeksPage,
101
+  },
102
+  {
103
+    path: '/user/login',
104
+    name: 'Login',
105
+    component: Login,
106
+  },
107
+  {
108
+    path: '/user/updateProfileInfo',
109
+    name: 'UpdateInfo',
110
+    component: UpdateInfo,
111
+  },
112
+  {
113
+    path: '/user/register',
114
+    name: 'PrivateIndividual',
115
+    component: PrivateIndividual,
116
+  },
117
+  {
118
+    path: '/user/registeragency',
119
+    name: 'Agency',
120
+    component: Agency,
121
+  },
122
+  {
123
+    path: '/property/property/:id',
124
+    name: 'PropertyPage',
125
+    component: PropertyPage,
126
+  },
127
+  {
128
+    path: '/property/:propertyUsageType/search',
129
+    name: 'PropertySearch',
130
+    component: PropertySearch,
131
+  },
132
+  {
133
+    path: '/property/search',
134
+    name: 'PropertySearchTab',
135
+    component: PropertySearch,
136
+  },
137
+  {
138
+    path: '/property/new/:saleType',
139
+    name: 'PropertyNew',
140
+    component: PropertyCreate,
141
+  },
142
+  {
143
+    path: '/property/new/:propertyUsageType/:saleType',
144
+    name: 'PropertyNewFromSearch',
145
+    component: PropertyCreate,
146
+  },
147
+  {
148
+    path: '/property/edit',
149
+    name: 'PropertyEdit',
150
+    component: PropertyEdit,
151
+  },
152
+  {
153
+    path: '/property/admin/list/:by',
154
+    name: 'PropertyListAdmin',
155
+    component: PropertyList,
156
+  },
157
+  {
158
+    path: '/propertyTypes/list',
159
+    name: 'PropertyTypeList',
160
+    component: PropertyTypeList,
161
+  },
162
+  {
163
+    path: '/propertyType/new',
164
+    name: 'PropertyTypeNew',
165
+    component: PropertyType,
166
+  },
167
+  {
168
+    path: '/propertyType/:id',
169
+    name: 'PropertyTypeEdit',
170
+    component: PropertyType,
171
+  },
172
+  {
173
+    path: '/userDefinedGroups/list',
174
+    name: 'UserDefinedGroupsList',
175
+    component: UserDefinedGroups,
176
+  },
177
+  {
178
+    path: '/userDefinedGroups/userDefinedGroup/:id',
179
+    name: 'UserDefinedGroupEdit',
180
+    component: UserDefinedGroup,
181
+  },
182
+  {
183
+    path: '/userDefinedGroups/userDefinedGroup',
184
+    name: 'UserDefinedGroupNew',
185
+    component: UserDefinedGroup,
186
+  },
187
+  {
188
+    path: '/status/list',
189
+    name: 'StatusList',
190
+    component: Status,
191
+  },
192
+  {
193
+    path: '/status/timeshareAdmin',
194
+    name: 'TimeshareAdmin',
195
+    component: timeshareAdminPage,
196
+  },
197
+  {
198
+    path: '/status/tenderWeekAdmin',
199
+    name: 'TenderWeekAdmin',
200
+    component: tenderWeekAdminPage,
201
+  },
202
+  {
203
+    path: '/status/userManagementPage',
204
+    name: 'userManagementPage',
205
+    component: userManagementPage,
206
+  },
207
+  {
208
+    path: '/status/agentUserManagementPage',
209
+    name: 'agentManagementPage',
210
+    component: agentManagementPage,
211
+  },
212
+  {
213
+    path: '/status/changeLogPage',
214
+    name: 'changeLogPage',
215
+    component: changeLogPage,
216
+  },
217
+  {
218
+    path: '/unitConfiguration/list',
219
+    name: 'UnitConfiguration',
220
+    component: UnitConfiguration,
221
+  },
222
+  {
223
+    path: '/contactus',
224
+    name: 'ContactUs',
225
+    component: ContactUs,
226
+  },
227
+  {
228
+    path: '/privacypolicy',
229
+    name: 'PrivacyPolicy',
230
+    component: PrivacyPolicy,
231
+  },
232
+  {
233
+    path: '/resort/:resortCode',
234
+    name: 'ResortPage',
235
+    component: ResortPage,
236
+    props: true,
237
+  },
238
+  {
239
+    path: '/resort/:resortCode/:unitNumber',
240
+    name: 'UnitPage',
241
+    component: UnitPage,
242
+    props: true,
243
+  },
244
+  {
245
+    path: '/timeshare/:weekId',
246
+    name: 'TimeshareSell',
247
+    component: TimeshareSell,
248
+    props: true,
249
+  },
250
+  {
251
+    path: '/MakeOffer',
252
+    name: 'MakeOffer',
253
+    component: MakeOffer,
254
+  },
255
+  {
256
+    path: '/Offers',
257
+    name: 'Offers',
258
+    component: Offer,
259
+  },
260
+  {
261
+    path: '/timesharesearch',
262
+    name: 'TimeshareSearch',
263
+    component: TimeshareSearch,
264
+  },
265
+  {
266
+    path: '/searchLog',
267
+    name: 'SearchLog',
268
+    component: searchLog,
269
+  },
265 270
   ],
266 271
 });

+ 2
- 2
src/store/index.js Dosyayı Görüntüle

@@ -5,7 +5,7 @@ import TimeshareModule from './modules/timeshare/timeshare';
5 5
 import UsersModule from './modules/users';
6 6
 import StatusModule from './modules/timeshare/status';
7 7
 import UnitConfigurationModule from './modules/timeshare/unitConfiguration';
8
-import TimeshareBuyModule from './modules/timeshare/buyPage';
8
+import RegionModule from './modules/timeshare/region';
9 9
 import SearchTabModule from './modules/searchTab';
10 10
 import ResortModule from './modules/timeshare/resort';
11 11
 import PropertyModule from './modules/property/property';
@@ -32,7 +32,7 @@ export default new Vuex.Store({
32 32
     users: UsersModule,
33 33
     status: StatusModule,
34 34
     unitConfiguration: UnitConfigurationModule,
35
-    timeshareBuy: TimeshareBuyModule,
35
+    region: RegionModule,
36 36
     searchTab: SearchTabModule,
37 37
     resort: ResortModule,
38 38
     property: PropertyModule,

+ 17
- 2
src/store/modules/timeshare/myWeeks.js Dosyayı Görüntüle

@@ -1,10 +1,25 @@
1
+import axios from 'axios';
2
+
1 3
 export default {
2 4
   namespaced: true,
3 5
   state: {
4 6
     test: 'kobus',
5 7
     items: [],
6 8
   },
7
-  mutations: {},
9
+  mutations: {
10
+    setItems(state, list) {
11
+      state.items = list;
12
+    },
13
+  },
8 14
   getters: {},
9
-  actions: {},
15
+  actions: {
16
+    getItems({
17
+      commit,
18
+    }, id) {
19
+      axios.get(`/api/timeshareweek/getMyWeek/${id}`).then(r => commit('setItems', r.data)).catch(
20
+        console
21
+          .error,
22
+      );
23
+    },
24
+  },
10 25
 };

src/store/modules/timeshare/buyPage.js → src/store/modules/timeshare/region.js Dosyayı Görüntüle

@@ -1,8 +1,6 @@
1 1
 /* eslint-disable no-restricted-syntax */
2 2
 /* eslint-disable guard-for-in */
3 3
 import axios from 'axios';
4
-import _ from 'lodash';
5
-import resort from './resort';
6 4
 
7 5
 export default {
8 6
   namespaced: true,
@@ -10,37 +8,45 @@ export default {
10 8
     regions: [],
11 9
     detailedRegion: [],
12 10
     availRegion: [],
13
-    resort: {},
11
+    initFlag: false,
14 12
   },
15 13
   mutations: {
16
-    clearAvail(state, avail) {
17
-      state.availRegion = [];
14
+    addItem(state, item) {
15
+      state[item.name].push(item.value);
18 16
     },
19
-    addAvail(state, avail) {
20
-      state.availRegion.push(avail);
21
-    },
22
-    setRegions(state, regions) {
23
-      state.regions = regions;
24
-    },
25
-    clearDetailed(state) {
26
-      state.detailedRegion = [];
27
-    },
28
-    addDetailed(state, detailed) {
29
-      state.detailedRegion.push(detailed);
30
-    },
31
-    setResort(state, resort) {
32
-      state.resort = resort;
17
+    setItem(state, item) {
18
+      state[item.name] = item.value;
33 19
     },
34 20
   },
35 21
   getters: {},
36 22
   actions: {
37 23
     init({
24
+      state,
25
+      commit,
26
+      dispatch,
27
+    }) {
28
+      if (!state.initFlag) {
29
+        commit('setItem', {
30
+          name: 'availRegion',
31
+          value: [],
32
+        });
33
+        dispatch('getAvail');
34
+        dispatch('getRegions');
35
+        commit('setItem', {
36
+          name: 'initFlag',
37
+          value: true,
38
+        });
39
+      }
40
+    },
41
+    forceInit({
38 42
       commit,
39 43
       dispatch,
40 44
     }) {
41
-      commit('clearAvail');
42
-      dispatch('getAvail');
43
-      dispatch('getRegions');
45
+      commit('setItem', {
46
+        name: 'initFlag',
47
+        value: false,
48
+      });
49
+      dispatch('init');
44 50
     },
45 51
     getAvail({
46 52
       commit,
@@ -75,7 +81,10 @@ export default {
75 81
             }
76 82
             newRegion.resorts.push(newResort);
77 83
           }
78
-          commit('addAvail', newRegion);
84
+          commit('addItem', {
85
+            name: 'availRegion',
86
+            value: newRegion,
87
+          });
79 88
         }
80 89
       }).catch(
81 90
         console
@@ -86,12 +95,18 @@ export default {
86 95
       commit,
87 96
       dispatch,
88 97
     }) {
89
-      commit('clearDetailed');
98
+      commit('setItem', {
99
+        name: 'detailedRegion',
100
+        value: [],
101
+      });
90 102
       axios.get(
91 103
         'https://www.tradeunipoint.com/unibackend/seam/resource/rest/products/regions/list/ZA/',
92 104
       )
93 105
         .then((result) => {
94
-          commit('setRegions', result.data);
106
+          commit('setItem', {
107
+            name: 'regions',
108
+            value: result.data,
109
+          });
95 110
           if (result.data) {
96 111
             for (const i in result.data) {
97 112
               const region = result.data[i];
@@ -101,18 +116,6 @@ export default {
101 116
         })
102 117
         .catch(console.error);
103 118
     },
104
-    getResort({
105
-      commit,
106
-    }, resortCode) {
107
-      axios.get(
108
-        `https://www.tradeunipoint.com/unibackend/seam/resource/rest/products/TRESORT/${
109
-          resortCode}`,
110
-      )
111
-        .then((result) => {
112
-          commit('setResort', result.data);
113
-        })
114
-        .catch(console.error);
115
-    },
116 119
     getDetailedRegion({
117 120
       commit,
118 121
     }, region) {
@@ -120,11 +123,14 @@ export default {
120 123
         axios
121 124
           .get(`https://www.tradeunipoint.com/unibackend/seam/resource/rest/products/resorts/${
122 125
             region.regionCode}/`)
123
-          .then(result => commit('addDetailed', {
124
-            id: region.id,
125
-            regionCode: region.regionCode,
126
-            regionName: region.regionName,
127
-            resorts: result.data,
126
+          .then(result => commit('addItem', {
127
+            name: 'detailedRegion',
128
+            value: {
129
+              id: region.id,
130
+              regionCode: region.regionCode,
131
+              regionName: region.regionName,
132
+              resorts: result.data,
133
+            },
128 134
           }))
129 135
           .catch(console.error);
130 136
       }

+ 20
- 22
src/store/modules/timeshare/timeshare.js Dosyayı Görüntüle

@@ -49,27 +49,8 @@ export default {
49 49
       mandate: undefined,
50 50
       status: undefined,
51 51
       owner: {
52
-        name: undefined,
53
-        surname: undefined,
54
-        idNumber: undefined,
55
-        companyRegNumber: undefined,
56
-        maritalStatus: undefined,
57
-        emailAddress: undefined,
58
-        cellNumber: undefined,
59
-        landlineNumber: undefined,
60
-        address: {
61
-          streetNumber: undefined,
62
-          streetName: undefined,
63
-          suburb: undefined,
64
-          city: undefined,
65
-          province: undefined,
66
-          postalCode: undefined,
67
-        },
68
-        bankingDetails: {
69
-          bank: undefined,
70
-          accountNumber: undefined,
71
-          accountHolder: undefined,
72
-        },
52
+        address: {},
53
+        bankingDetails: {},
73 54
       },
74 55
     },
75 56
   },
@@ -118,6 +99,9 @@ export default {
118 99
     displayResult(state) {
119 100
       state.result = 'Week has been added ^-^';
120 101
     },
102
+    setWeekDetail(state, week) {
103
+      state.sellItem = week;
104
+    },
121 105
   },
122 106
   getters: {
123 107
     getRegionCode(state) {
@@ -143,7 +127,7 @@ export default {
143 127
     initTimeshare({
144 128
       commit,
145 129
       dispatch,
146
-    }) {
130
+    }, timeshareId) {
147 131
       commit('setResortBedrooms', MyData.resortBedrooms);
148 132
       commit('setMaxSleep', MyData.maxBedrooms);
149 133
       commit('setBankedEntities', MyData.bankedEntities);
@@ -152,6 +136,20 @@ export default {
152 136
       dispatch('getAgencies');
153 137
       dispatch('getResorts');
154 138
       dispatch('getRegions');
139
+      if (timeshareId && timeshareId !== 0) {
140
+        dispatch('getWeekDetail', timeshareId);
141
+      }
142
+    },
143
+    getWeekDetail({
144
+      commit,
145
+    }, timeshareId) {
146
+      axios
147
+        .get(`api/timeshareweek/${timeshareId}`)
148
+        .then((result) => {
149
+          console.log(result.data);
150
+          commit('setWeekDetail', result.data);
151
+        })
152
+        .catch(console.error);
155 153
     },
156 154
     getSeasons({
157 155
       commit,

+ 6
- 7
src/store/modules/timeshare/week.js Dosyayı Görüntüle

@@ -6,22 +6,21 @@ import axios from 'axios';
6 6
 export default {
7 7
   namespaced: true,
8 8
   state: {
9
-    week: undefined,
9
+    currentWeek: undefined,
10 10
   },
11 11
   mutations: {
12 12
     setWeek(state, week) {
13
-      if (week.length > 0) {
14
-        state.week = week[0];
15
-      }
13
+      state.currentWeek = week;
16 14
     },
17 15
   },
18 16
   getters: {},
19 17
   actions: {
20 18
     initWeek({
21 19
       commit,
22
-    }, weekId) {
23
-      axios.get(`/api/timeshareweek/${weekId}`).then(r => commit('setWeek', r.data)).catch(console
24
-        .error);
20
+    }, week) {
21
+      commit('setWeek', week);
22
+      // axios.get(`/api/timeshareweek/${weekId}`).then(r => commit('setWeek', r.data)).catch(console
23
+      //  .error);
25 24
     },
26 25
   },
27 26
 };

+ 11
- 1
src/store/modules/timeshare/weekList.js Dosyayı Görüntüle

@@ -46,7 +46,6 @@ export default {
46 46
   },
47 47
   getters: {
48 48
     filteredWeeks: (state) => {
49
-      console.log(JSON.stringify(state.filter));
50 49
       let weekList = state.weeks;
51 50
       const {
52 51
         filter,
@@ -111,6 +110,17 @@ export default {
111 110
     getRegions(state, getters, rootState, rootGetters) {
112 111
       return rootGetters['timeshare/getRegionCode']('KK');
113 112
     },
113
+    weekById(state) {
114
+      return (resortCode, unitNumber) => {
115
+        const w = state.weeks.find(week => week.resort !== undefined && week.resort.resortCode
116
+          === resortCode && week.unitNumber === unitNumber);
117
+        console.log(resortCode, unitNumber);
118
+
119
+        if (w) {
120
+          return w;
121
+        }
122
+      };
123
+    },
114 124
   },
115 125
   actions: {
116 126
     applyResortFilter({

Loading…
İptal
Kaydet