|
@@ -25,7 +25,7 @@ |
|
@@ -25,7 +25,7 @@ |
25
|
</view>
|
25
|
</view>
|
26
|
</view>
|
26
|
</view>
|
27
|
</u-sticky>
|
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
|
<view class="device-list">
|
29
|
<view class="device-list">
|
30
|
<view @click="openDeviceDetail(item.id, item.alarmStatus, item.lastOnlineTime, item.tbDeviceId)" class="list-item" v-for="item in list" :key="item.id">
|
30
|
<view @click="openDeviceDetail(item.id, item.alarmStatus, item.lastOnlineTime, item.tbDeviceId)" class="list-item" v-for="item in list" :key="item.id">
|
31
|
<view
|
31
|
<view
|
|
@@ -101,7 +101,6 @@ |
|
@@ -101,7 +101,6 @@ |
101
|
|
101
|
|
102
|
<script>
|
102
|
<script>
|
103
|
import fTabbar from '@/components/module/f-tabbar/f-tabbar';
|
103
|
import fTabbar from '@/components/module/f-tabbar/f-tabbar';
|
104
|
-import fNavbar from '@/components/module/f-navbar/f-navbar';
|
|
|
105
|
import FilterItem from './FilterItem.vue';
|
104
|
import FilterItem from './FilterItem.vue';
|
106
|
import MescrollMixin from '@/uni_modules/mescroll-uni/components/mescroll-uni/mescroll-mixins.js';
|
105
|
import MescrollMixin from '@/uni_modules/mescroll-uni/components/mescroll-uni/mescroll-mixins.js';
|
107
|
import { debounce } from '@/plugins/throttle.js';
|
106
|
import { debounce } from '@/plugins/throttle.js';
|
|
@@ -109,7 +108,6 @@ export default { |
|
@@ -109,7 +108,6 @@ export default { |
109
|
mixins: [MescrollMixin], // 使用mixin (在main.js注册全局组件)
|
108
|
mixins: [MescrollMixin], // 使用mixin (在main.js注册全局组件)
|
110
|
components: {
|
109
|
components: {
|
111
|
fTabbar,
|
110
|
fTabbar,
|
112
|
- fNavbar,
|
|
|
113
|
FilterItem
|
111
|
FilterItem
|
114
|
},
|
112
|
},
|
115
|
data() {
|
113
|
data() {
|
|
@@ -188,19 +186,27 @@ export default { |
|
@@ -188,19 +186,27 @@ export default { |
188
|
page: {
|
186
|
page: {
|
189
|
num: 0,
|
187
|
num: 0,
|
190
|
size: 10
|
188
|
size: 10
|
191
|
- }
|
189
|
+ },
|
|
|
190
|
+ deviceState: ''
|
192
|
};
|
191
|
};
|
193
|
},
|
192
|
},
|
194
|
- onLoad(e) {
|
193
|
+ async onLoad(options) {
|
195
|
// 隐藏原生的tabbar
|
194
|
// 隐藏原生的tabbar
|
196
|
uni.hideTabBar();
|
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
|
onShow() {
|
212
|
onShow() {
|
|
@@ -217,6 +223,7 @@ export default { |
|
@@ -217,6 +223,7 @@ export default { |
217
|
this.list = [];
|
223
|
this.list = [];
|
218
|
this.page.num = 1;
|
224
|
this.page.num = 1;
|
219
|
//联网加载数据
|
225
|
//联网加载数据
|
|
|
226
|
+ this.resetFilter();
|
220
|
this.loadData(this.page.num);
|
227
|
this.loadData(this.page.num);
|
221
|
},
|
228
|
},
|
222
|
|
229
|
|
|
@@ -224,39 +231,41 @@ export default { |
|
@@ -224,39 +231,41 @@ export default { |
224
|
upCallback() {
|
231
|
upCallback() {
|
225
|
//联网加载数据
|
232
|
//联网加载数据
|
226
|
this.page.num += 1;
|
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
|
params: httpData,
|
253
|
params: httpData,
|
240
|
custom: {
|
254
|
custom: {
|
241
|
load: false
|
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
|
openOrg() {
|
270
|
openOrg() {
|
262
|
uni.navigateTo({
|
271
|
uni.navigateTo({
|
|
@@ -264,7 +273,6 @@ export default { |
|
@@ -264,7 +273,6 @@ export default { |
264
|
});
|
273
|
});
|
265
|
},
|
274
|
},
|
266
|
close() {
|
275
|
close() {
|
267
|
- this.resetFilter();
|
|
|
268
|
this.show = false;
|
276
|
this.show = false;
|
269
|
},
|
277
|
},
|
270
|
openSearchDialog() {
|
278
|
openSearchDialog() {
|
|
@@ -371,4 +379,4 @@ export default { |
|
@@ -371,4 +379,4 @@ export default { |
371
|
}
|
379
|
}
|
372
|
}
|
380
|
}
|
373
|
}
|
381
|
}
|
374
|
-</style> |
382
|
+</style> |