Procházet zdrojové kódy

Added loading of tender weeks

master
Kobus před 5 roky
rodič
revize
737fc0dad0

binární
public/img/kloader.gif Zobrazit soubor


binární
public/img/loading.gif Zobrazit soubor


+ 15
- 5
src/components/timeshare/buy/weekListComponent.vue Zobrazit soubor

@@ -38,10 +38,20 @@
38 38
     </div>
39 39
     <div v-else>
40 40
       <div class="row">
41
-        <div class="col-md-12">
42
-          <hr />No Results Found
43
-          <hr />
41
+        <hr />
42
+        <div class="col-md-12" v-if="status !== '' && status !== undefined">
43
+          <b>{{status}}</b>
44 44
         </div>
45
+        <div class="col-md-12" v-if="status !== '' && status !== undefined">
46
+          <img
47
+            class="img-fluid"
48
+            src="/img/kloader.gif"
49
+            alt="UVProp logo"
50
+            style="width:400px;height:364px;"
51
+          />
52
+        </div>
53
+        <div v-else>No Results Found</div>
54
+        <hr />
45 55
       </div>
46 56
     </div>
47 57
   </div>
@@ -55,9 +65,10 @@ export default {
55 65
   },
56 66
   components: {},
57 67
   computed: {
58
-    ...mapState('weekList', ['weeks']),
68
+    ...mapState('weekList', ['weeks', 'status']),
59 69
     ...mapGetters({
60 70
       filteredWeeks: 'weekList/filteredWeeks',
71
+      getRegions: 'weekList/getRegions',
61 72
     }),
62 73
   },
63 74
   mounted() {
@@ -68,7 +79,6 @@ export default {
68 79
   },
69 80
   methods: {
70 81
     View(item) {
71
-      console.log(item);
72 82
       this.$router.push(`/resort/${item.resort.resortCode}/${item.id}`);
73 83
     },
74 84
     ...mapActions('weekList', ['getWeeks', 'applyResortFilter']),

+ 18
- 1
src/store/modules/timeshare/timeshare.js Zobrazit soubor

@@ -120,7 +120,24 @@ export default {
120 120
     },
121 121
   },
122 122
   getters: {
123
-
123
+    getRegionCode(state) {
124
+      return (value) => {
125
+        const reg = state.detailedRegion.find(region => region.children.some(resort => resort
126
+          .resortCode === value));
127
+        if (reg && reg.region) {
128
+          return reg.region.regionCode;
129
+        }
130
+        return '';
131
+      };
132
+    },
133
+    getResortName(state) {
134
+      return (value) => {
135
+        const res = state.resorts.find(resort => resort.resortCode === value);
136
+        if (res) {
137
+          return res.resortName;
138
+        }
139
+      };
140
+    },
124 141
   },
125 142
   actions: {
126 143
     initTimeshare({

+ 56
- 15
src/store/modules/timeshare/weekList.js Zobrazit soubor

@@ -1,3 +1,4 @@
1
+/* eslint-disable no-unused-expressions */
1 2
 /* eslint-disable eqeqeq */
2 3
 /* eslint-disable no-restricted-syntax */
3 4
 /* eslint-disable guard-for-in */
@@ -8,7 +9,9 @@ export default {
8 9
   namespaced: true,
9 10
   state: {
10 11
     weeks: [],
12
+    status: undefined,
11 13
     filter: {
14
+      status: undefined,
12 15
       region: undefined,
13 16
       resort: undefined,
14 17
       bedrooms: undefined,
@@ -21,11 +24,18 @@ export default {
21 24
     difFilter: undefined,
22 25
   },
23 26
   mutations: {
27
+    onLoading(state) {
28
+      state.status = 'Loading...';
29
+    },
30
+    onError(state) {
31
+      state.status = 'Error occurred getting data.';
32
+    },
24 33
     onClearFilter(state, filter) {
25 34
       state.filter[filter] = undefined;
26 35
     },
27 36
     setWeeks(state, weeks) {
28 37
       state.weeks = weeks;
38
+      state.status = '';
29 39
     },
30 40
     addWeek(state, week) {
31 41
       state.weeks.push(week);
@@ -41,7 +51,6 @@ export default {
41 51
       const {
42 52
         filter,
43 53
       } = state;
44
-      // console.log(JSON.stringify(weekList));
45 54
       if (filter) {
46 55
         if (filter.keyword) {
47 56
           const list = [];
@@ -49,8 +58,12 @@ export default {
49 58
             const item = weekList[i];
50 59
             for (const r in item) {
51 60
               const innerItem = item[r];
52
-              if (innerItem && JSON.stringify(innerItem).toLowerCase().includes(filter.keyword
53
-                .toLowerCase())) {
61
+              if (
62
+                innerItem
63
+                && JSON.stringify(innerItem)
64
+                  .toLowerCase()
65
+                  .includes(filter.keyword.toLowerCase())
66
+              ) {
54 67
                 list.push(item);
55 68
                 break;
56 69
               }
@@ -59,12 +72,16 @@ export default {
59 72
           weekList = list;
60 73
         }
61 74
         if (filter.region) {
62
-          weekList = _.filter(weekList, x => x.region && x.region.regionCode === filter.region
63
-            .regionCode);
75
+          weekList = _.filter(
76
+            weekList,
77
+            x => x.region && x.region.regionCode === filter.region.regionCode,
78
+          );
64 79
         }
65 80
         if (filter.resort) {
66
-          weekList = _.filter(weekList, x => x.resort.resortCode
67
-            && x.resort.resortCode === filter.resort.resortCode);
81
+          weekList = _.filter(
82
+            weekList,
83
+            x => x.resort.resortCode && x.resort.resortCode === filter.resort.resortCode,
84
+          );
68 85
         }
69 86
         if (filter.bedrooms) {
70 87
           weekList = _.filter(weekList, x => x.bedrooms && x.bedrooms == filter.bedrooms);
@@ -74,21 +91,25 @@ export default {
74 91
           minDate.setDate(minDate.getDate() - 7);
75 92
           const maxDate = new Date(filter.date);
76 93
           maxDate.setDate(maxDate.getDate() + 7);
77
-          weekList = _.filter(weekList, x => new Date(x.arrivalDate)
94
+          weekList = _.filter(
95
+            weekList,
96
+            x => new Date(x.arrivalDate)
78 97
             && new Date(x.departureDate)
79 98
             && new Date(x.arrivalDate) >= minDate
80
-            && new Date(x.arrivalDate) <= maxDate);
99
+            && new Date(x.arrivalDate) <= maxDate,
100
+          );
81 101
         }
82 102
         if (filter.minPrice && filter.minPrice !== 0) {
83
-          weekList = _.filter(weekList, x => x.sellPrice
84
-            && x.sellPrice >= filter.minPrice);
103
+          weekList = _.filter(weekList, x => x.sellPrice && x.sellPrice >= filter.minPrice);
85 104
         }
86 105
         if (filter.maxPrice && filter.maxPrice !== 0) {
87
-          weekList = _.filter(weekList, x => x.sellPrice
88
-            && x.sellPrice <= filter.maxPrice);
106
+          weekList = _.filter(weekList, x => x.sellPrice && x.sellPrice <= filter.maxPrice);
89 107
         }
90 108
       }
91
-      return weekList;
109
+      return _.sortBy((_.sortBy(weekList, 'arrivalDate')), 'resort.resortName');
110
+    },
111
+    getRegions(state, getters, rootState, rootGetters) {
112
+      return rootGetters['timeshare/getRegionCode']('KK');
92 113
     },
93 114
   },
94 115
   actions: {
@@ -101,10 +122,30 @@ export default {
101 122
     },
102 123
     getWeeks({
103 124
       commit,
125
+      rootGetters,
104 126
     }) {
127
+      commit('onLoading');
105 128
       axios
106 129
         .get('/api/timeshareweek')
107
-        .then(result => commit('setWeeks', result.data))
130
+        .then((result) => {
131
+          const arr2 = result.data.filter(x => x.region !== null);
132
+          const arr3 = result.data.filter(x => x.region === null);
133
+          for (const item in arr3) {
134
+            const myItem = arr3[item];
135
+            if (myItem !== undefined) {
136
+              const code = myItem.resort.resortCode;
137
+              myItem.region = {
138
+                regionName: rootGetters['timeshare/getRegionCode'](code),
139
+              };
140
+              myItem.resort = {
141
+                resortName: rootGetters['timeshare/getResortName'](code),
142
+                resortCode: code,
143
+              };
144
+              arr2.push(myItem);
145
+            }
146
+          }
147
+          commit('setWeeks', arr2);
148
+        })
108 149
         .catch(console.error);
109 150
     },
110 151
     clearFilter({

+ 4
- 0
vue.config.js Zobrazit soubor

@@ -5,6 +5,10 @@ module.exports = {
5 5
         target: 'http://192.168.6.188:5000',
6 6
         changeOrigin: true,
7 7
       },
8
+      '/nph-srep': {
9
+        target: 'http://www.unipoint-consoft.co.za',
10
+        changeOrigin: true,
11
+      },
8 12
     },
9 13
   },
10 14
 };

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