Showing
2 changed files
with
47 additions
and
39 deletions
... | ... | @@ -25,7 +25,7 @@ |
25 | 25 | </view> |
26 | 26 | </view> |
27 | 27 | </u-sticky> |
28 | - <mescroll-body ref="mescrollRef" @init="mescrollInit" :upOption="upOption" :down="downOption" @down="downCallback" @up="upCallback"> | |
28 | + <mescroll-body ref="mescrollRef" @init="mescrollInit" :up="upOption" :down="downOption" @down="downCallback" @up="upCallback"> | |
29 | 29 | <view class="device-list"> |
30 | 30 | <view @click="openDeviceDetail(item.id, item.alarmStatus, item.lastOnlineTime, item.tbDeviceId)" class="list-item" v-for="item in list" :key="item.id"> |
31 | 31 | <view |
... | ... | @@ -101,7 +101,6 @@ |
101 | 101 | |
102 | 102 | <script> |
103 | 103 | import fTabbar from '@/components/module/f-tabbar/f-tabbar'; |
104 | -import fNavbar from '@/components/module/f-navbar/f-navbar'; | |
105 | 104 | import FilterItem from './FilterItem.vue'; |
106 | 105 | import MescrollMixin from '@/uni_modules/mescroll-uni/components/mescroll-uni/mescroll-mixins.js'; |
107 | 106 | import { debounce } from '@/plugins/throttle.js'; |
... | ... | @@ -109,7 +108,6 @@ export default { |
109 | 108 | mixins: [MescrollMixin], // 使用mixin (在main.js注册全局组件) |
110 | 109 | components: { |
111 | 110 | fTabbar, |
112 | - fNavbar, | |
113 | 111 | FilterItem |
114 | 112 | }, |
115 | 113 | data() { |
... | ... | @@ -188,19 +186,27 @@ export default { |
188 | 186 | page: { |
189 | 187 | num: 0, |
190 | 188 | size: 10 |
191 | - } | |
189 | + }, | |
190 | + deviceState: '' | |
192 | 191 | }; |
193 | 192 | }, |
194 | - onLoad(e) { | |
193 | + async onLoad(options) { | |
195 | 194 | // 隐藏原生的tabbar |
196 | 195 | uni.hideTabBar(); |
197 | - console.log('e', e); | |
198 | - if (e.type !== undefined) { | |
199 | - console.log(123) | |
200 | - const statusT = JSON.parse(e.type); | |
201 | - this.loadData(1, { | |
202 | - deviceState: statusT | |
196 | + const { deviceState } = options; | |
197 | + this.deviceState = deviceState; | |
198 | + if (deviceState) { | |
199 | + this.deviceStatus.forEach(item => { | |
200 | + item.type === deviceState ? (item.checked = true) : (item.checked = false); | |
203 | 201 | }); |
202 | + await this.loadData(1, { | |
203 | + deviceState | |
204 | + }); | |
205 | + } else { | |
206 | + await this.loadData(1); | |
207 | + } | |
208 | + if (!this.list.length) { | |
209 | + this.mescroll.showEmpty(); | |
204 | 210 | } |
205 | 211 | }, |
206 | 212 | onShow() { |
... | ... | @@ -217,6 +223,7 @@ export default { |
217 | 223 | this.list = []; |
218 | 224 | this.page.num = 1; |
219 | 225 | //联网加载数据 |
226 | + this.resetFilter(); | |
220 | 227 | this.loadData(this.page.num); |
221 | 228 | }, |
222 | 229 | |
... | ... | @@ -224,39 +231,41 @@ export default { |
224 | 231 | upCallback() { |
225 | 232 | //联网加载数据 |
226 | 233 | this.page.num += 1; |
227 | - this.loadData(this.page.num); | |
234 | + const deviceState = this.deviceStatus.find(item => item.checked); | |
235 | + const alarmStatus = this.alarmStatus.find(item => item.checked); | |
236 | + const deviceType = this.typeStatus.find(item => item.checked); | |
237 | + this.loadData(this.page.num, { | |
238 | + deviceState: deviceState.type ? deviceState.type : undefined, | |
239 | + deviceType: deviceType.type ? deviceType.type : undefined, | |
240 | + alarmStatus: alarmStatus.type === '0' || alarmStatus.type === '1' ? alarmStatus.type : undefined | |
241 | + }); | |
228 | 242 | }, |
229 | 243 | |
230 | 244 | //获取设备 |
231 | - loadData(pageNo, params = {}) { | |
232 | - let httpData = { | |
233 | - page: pageNo, | |
234 | - pageSize: 10, | |
235 | - ...params | |
236 | - }; | |
237 | - uni.$u.http | |
238 | - .get('/yt/device', { | |
245 | + async loadData(pageNo, params = {}) { | |
246 | + try { | |
247 | + let httpData = { | |
248 | + page: pageNo, | |
249 | + pageSize: 10, | |
250 | + ...params | |
251 | + }; | |
252 | + const { total, items } = await uni.$u.http.get('/yt/device', { | |
239 | 253 | params: httpData, |
240 | 254 | custom: { |
241 | 255 | load: false |
242 | 256 | } |
243 | - }) | |
244 | - .then(res => { | |
245 | - this.total = res.total; | |
246 | - uni.stopPullDownRefresh(); | |
247 | - console.log('获取后端数据', res); | |
248 | - //方法一(推荐): 后台接口有返回列表的总页数 totalPage | |
249 | - this.mescroll.endByPage(res.items.length, res.total); //必传参数(当前页的数据个数, 总页数) | |
250 | - if (pageNo == 1) { | |
251 | - this.list = res.items; | |
252 | - } else { | |
253 | - this.list = this.list.concat(res.items); | |
254 | - } | |
255 | - }) | |
256 | - .catch(() => { | |
257 | - //联网失败, 结束加载 | |
258 | - this.mescroll.endErr(); | |
259 | 257 | }); |
258 | + this.total = total; | |
259 | + uni.stopPullDownRefresh(); | |
260 | + this.mescroll.endByPage(items.length, total); //必传参数(当前页的数据个数, 总页数) | |
261 | + if (pageNo == 1) { | |
262 | + this.list = items; | |
263 | + } else { | |
264 | + this.list = this.list.concat(items); | |
265 | + } | |
266 | + } catch { | |
267 | + this.mescroll.endErr(); | |
268 | + } | |
260 | 269 | }, |
261 | 270 | openOrg() { |
262 | 271 | uni.navigateTo({ |
... | ... | @@ -264,7 +273,6 @@ export default { |
264 | 273 | }); |
265 | 274 | }, |
266 | 275 | close() { |
267 | - this.resetFilter(); | |
268 | 276 | this.show = false; |
269 | 277 | }, |
270 | 278 | openSearchDialog() { |
... | ... | @@ -371,4 +379,4 @@ export default { |
371 | 379 | } |
372 | 380 | } |
373 | 381 | } |
374 | -</style> | |
382 | +</style> | ... | ... |