소스 검색

Timeshare - my weeks

master
Kobus 5 년 전
부모
커밋
12354c9b97

+ 4
- 0
src/App.vue 파일 보기

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

+ 4
- 1
src/assets/Log.js 파일 보기

48
     return localStorage.getItem('token') !== undefined && localStorage.getItem('token') !== null;
48
     return localStorage.getItem('token') !== undefined && localStorage.getItem('token') !== null;
49
   },
49
   },
50
   getUser() {
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
 export default items;
57
 export default items;

+ 1
- 1
src/components/processFlow/makeOffer.vue 파일 보기

21
         <div class="form-group row">
21
         <div class="form-group row">
22
           <div class="col-md-6 col-lg-5 section-md-t3">
22
           <div class="col-md-6 col-lg-5 section-md-t3">
23
             <div class="title-box-d">
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
             </div>
25
             </div>
26
           </div>
26
           </div>
27
         </div>
27
         </div>

+ 43
- 8
src/components/shared/listView.vue 파일 보기

2
 /* eslint-disable guard-for-in */
2
 /* eslint-disable guard-for-in */
3
 <template>
3
 <template>
4
   <div>
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
       </div>
8
       </div>
11
     </div>
9
     </div>
12
     <table id="table" class="table table-bordered table-hover">
10
     <table id="table" class="table table-bordered table-hover">
15
           <th v-for="(column, c) in Columns" :key="c">
13
           <th v-for="(column, c) in Columns" :key="c">
16
             <div @click="sortBy(column)">{{ column }}</div>
14
             <div @click="sortBy(column)">{{ column }}</div>
17
           </th>
15
           </th>
16
+          <th v-if="editable"></th>
17
+          <th v-if="deleteable"></th>
18
         </tr>
18
         </tr>
19
       </thead>
19
       </thead>
20
       <tbody>
20
       <tbody>
24
           class="text-left dnd-moved"
24
           class="text-left dnd-moved"
25
           @click="onRowClick(item)"
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
         </tr>
37
         </tr>
29
       </tbody>
38
       </tbody>
30
     </table>
39
     </table>
81
       default: false,
90
       default: false,
82
     },
91
     },
83
     items: undefined,
92
     items: undefined,
93
+    editable: {
94
+      default: false,
95
+    },
96
+    deleteable: {
97
+      default: false,
98
+    },
99
+    columnsCount: {
100
+      default: 6,
101
+    },
84
   },
102
   },
85
   data() {
103
   data() {
86
     return {
104
     return {
94
     };
112
     };
95
   },
113
   },
96
   methods: {
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
     onRowClick(item) {
124
     onRowClick(item) {
98
       this.$emit('onRowClick', item);
125
       this.$emit('onRowClick', item);
99
     },
126
     },
158
               !list.includes(Object.keys(item)[o])
185
               !list.includes(Object.keys(item)[o])
159
               && !Array.isArray(Object.values(item)[o])
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
       const list = _.filter(this.items, item => Object.values(item).some(
198
       const list = _.filter(this.items, item => Object.values(item).some(
170
           i => JSON.stringify(i)
199
           i => JSON.stringify(i)
171
               .toLowerCase()
200
               .toLowerCase()
172
-              .indexOf(this.searchItem) > -1,
201
+              .indexOf(this.searchItem.toLowerCase()) > -1,
173
         ),);
202
         ),);
174
       return _.orderBy(list, this.sortKey, this.SortDirection);
203
       return _.orderBy(list, this.sortKey, this.SortDirection);
175
     },
204
     },
196
   text-decoration: none;
225
   text-decoration: none;
197
   color: #333333;
226
   color: #333333;
198
 }
227
 }
228
+.table > tbody > tr > td {
229
+  vertical-align: middle;
230
+}
231
+.my-width {
232
+  width: 20px;
233
+}
199
 .drag {
234
 .drag {
200
   background-color: rgba(0, 255, 0, 0.35);
235
   background-color: rgba(0, 255, 0, 0.35);
201
   opacity: 0.25;
236
   opacity: 0.25;

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

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

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

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

+ 2
- 3
src/components/timeshare/buy/buyPage.vue 파일 보기

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

+ 2
- 1
src/components/timeshare/buy/weekListComponent.vue 파일 보기

62
 export default {
62
 export default {
63
   props: {
63
   props: {
64
     resortCode: undefined,
64
     resortCode: undefined,
65
+    userId: undefined,
65
   },
66
   },
66
   components: {},
67
   components: {},
67
   computed: {
68
   computed: {
79
   },
80
   },
80
   methods: {
81
   methods: {
81
     View(item) {
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
     ...mapActions('weekList', ['getWeeks', 'applyResortFilter']),
85
     ...mapActions('weekList', ['getWeeks', 'applyResortFilter']),
85
   },
86
   },

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

4
     <br />
4
     <br />
5
     <br />
5
     <br />
6
     <br />
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
     <br />
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
   </div>
13
   </div>
15
 </template>
14
 </template>
16
 <script>
15
 <script>
17
-import { mapState } from 'vuex';
16
+import { mapState, mapActions } from 'vuex';
18
 import log from '../../assets/Log';
17
 import log from '../../assets/Log';
18
+import ListView from '../shared/listView.vue';
19
 
19
 
20
 export default {
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
   computed: {
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 파일 보기

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

+ 7
- 1
src/components/timeshare/sell/sellPage.vue 파일 보기

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

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

59
       y: 0,
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 파일 보기

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

+ 17
- 2
src/store/modules/timeshare/myWeeks.js 파일 보기

1
+import axios from 'axios';
2
+
1
 export default {
3
 export default {
2
   namespaced: true,
4
   namespaced: true,
3
   state: {
5
   state: {
4
     test: 'kobus',
6
     test: 'kobus',
5
     items: [],
7
     items: [],
6
   },
8
   },
7
-  mutations: {},
9
+  mutations: {
10
+    setItems(state, list) {
11
+      state.items = list;
12
+    },
13
+  },
8
   getters: {},
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 파일 보기

1
 /* eslint-disable no-restricted-syntax */
1
 /* eslint-disable no-restricted-syntax */
2
 /* eslint-disable guard-for-in */
2
 /* eslint-disable guard-for-in */
3
 import axios from 'axios';
3
 import axios from 'axios';
4
-import _ from 'lodash';
5
-import resort from './resort';
6
 
4
 
7
 export default {
5
 export default {
8
   namespaced: true,
6
   namespaced: true,
10
     regions: [],
8
     regions: [],
11
     detailedRegion: [],
9
     detailedRegion: [],
12
     availRegion: [],
10
     availRegion: [],
13
-    resort: {},
11
+    initFlag: false,
14
   },
12
   },
15
   mutations: {
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
   getters: {},
21
   getters: {},
36
   actions: {
22
   actions: {
37
     init({
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
       commit,
42
       commit,
39
       dispatch,
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
     getAvail({
51
     getAvail({
46
       commit,
52
       commit,
75
             }
81
             }
76
             newRegion.resorts.push(newResort);
82
             newRegion.resorts.push(newResort);
77
           }
83
           }
78
-          commit('addAvail', newRegion);
84
+          commit('addItem', {
85
+            name: 'availRegion',
86
+            value: newRegion,
87
+          });
79
         }
88
         }
80
       }).catch(
89
       }).catch(
81
         console
90
         console
86
       commit,
95
       commit,
87
       dispatch,
96
       dispatch,
88
     }) {
97
     }) {
89
-      commit('clearDetailed');
98
+      commit('setItem', {
99
+        name: 'detailedRegion',
100
+        value: [],
101
+      });
90
       axios.get(
102
       axios.get(
91
         'https://www.tradeunipoint.com/unibackend/seam/resource/rest/products/regions/list/ZA/',
103
         'https://www.tradeunipoint.com/unibackend/seam/resource/rest/products/regions/list/ZA/',
92
       )
104
       )
93
         .then((result) => {
105
         .then((result) => {
94
-          commit('setRegions', result.data);
106
+          commit('setItem', {
107
+            name: 'regions',
108
+            value: result.data,
109
+          });
95
           if (result.data) {
110
           if (result.data) {
96
             for (const i in result.data) {
111
             for (const i in result.data) {
97
               const region = result.data[i];
112
               const region = result.data[i];
101
         })
116
         })
102
         .catch(console.error);
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
     getDetailedRegion({
119
     getDetailedRegion({
117
       commit,
120
       commit,
118
     }, region) {
121
     }, region) {
120
         axios
123
         axios
121
           .get(`https://www.tradeunipoint.com/unibackend/seam/resource/rest/products/resorts/${
124
           .get(`https://www.tradeunipoint.com/unibackend/seam/resource/rest/products/resorts/${
122
             region.regionCode}/`)
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
           .catch(console.error);
135
           .catch(console.error);
130
       }
136
       }

+ 20
- 22
src/store/modules/timeshare/timeshare.js 파일 보기

49
       mandate: undefined,
49
       mandate: undefined,
50
       status: undefined,
50
       status: undefined,
51
       owner: {
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
     displayResult(state) {
99
     displayResult(state) {
119
       state.result = 'Week has been added ^-^';
100
       state.result = 'Week has been added ^-^';
120
     },
101
     },
102
+    setWeekDetail(state, week) {
103
+      state.sellItem = week;
104
+    },
121
   },
105
   },
122
   getters: {
106
   getters: {
123
     getRegionCode(state) {
107
     getRegionCode(state) {
143
     initTimeshare({
127
     initTimeshare({
144
       commit,
128
       commit,
145
       dispatch,
129
       dispatch,
146
-    }) {
130
+    }, timeshareId) {
147
       commit('setResortBedrooms', MyData.resortBedrooms);
131
       commit('setResortBedrooms', MyData.resortBedrooms);
148
       commit('setMaxSleep', MyData.maxBedrooms);
132
       commit('setMaxSleep', MyData.maxBedrooms);
149
       commit('setBankedEntities', MyData.bankedEntities);
133
       commit('setBankedEntities', MyData.bankedEntities);
152
       dispatch('getAgencies');
136
       dispatch('getAgencies');
153
       dispatch('getResorts');
137
       dispatch('getResorts');
154
       dispatch('getRegions');
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
     getSeasons({
154
     getSeasons({
157
       commit,
155
       commit,

+ 6
- 7
src/store/modules/timeshare/week.js 파일 보기

6
 export default {
6
 export default {
7
   namespaced: true,
7
   namespaced: true,
8
   state: {
8
   state: {
9
-    week: undefined,
9
+    currentWeek: undefined,
10
   },
10
   },
11
   mutations: {
11
   mutations: {
12
     setWeek(state, week) {
12
     setWeek(state, week) {
13
-      if (week.length > 0) {
14
-        state.week = week[0];
15
-      }
13
+      state.currentWeek = week;
16
     },
14
     },
17
   },
15
   },
18
   getters: {},
16
   getters: {},
19
   actions: {
17
   actions: {
20
     initWeek({
18
     initWeek({
21
       commit,
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 파일 보기

46
   },
46
   },
47
   getters: {
47
   getters: {
48
     filteredWeeks: (state) => {
48
     filteredWeeks: (state) => {
49
-      console.log(JSON.stringify(state.filter));
50
       let weekList = state.weeks;
49
       let weekList = state.weeks;
51
       const {
50
       const {
52
         filter,
51
         filter,
111
     getRegions(state, getters, rootState, rootGetters) {
110
     getRegions(state, getters, rootState, rootGetters) {
112
       return rootGetters['timeshare/getRegionCode']('KK');
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
   actions: {
125
   actions: {
116
     applyResortFilter({
126
     applyResortFilter({

Loading…
취소
저장