diff --git a/App.vue b/App.vue index 742be3b..17e4368 100644 --- a/App.vue +++ b/App.vue @@ -26,6 +26,7 @@ // uni.removeStorageSync(val); // } // }); + // uni.clearStorageSync(); //以上代码仅在开发时使用,否则会出现不可预知的问题。 uni.getSystemInfo({success:function(res){ diff --git a/config/index.js b/config/index.js index a0bcd76..dfb50b2 100644 --- a/config/index.js +++ b/config/index.js @@ -5,14 +5,14 @@ const config = { BASE_URL: 'http://192.168.110.56:8000', API_PREFIX: '', // MQTT 配置 - MQTT_HOST: '47.120.79.150', + MQTT_HOST: 'www.cnxhyc.com', MQTT_PORT: 8083, MQTT_USERNAME: 'admin', MQTT_PASSWORD: '#YtvpSfCNG' }, // 生产环境 production: { - BASE_URL: 'https://www.cnxhyc.com/jingquan', + BASE_URL: 'https://www.cnxhyc.com/jq', API_PREFIX: '', // MQTT 配置 MQTT_HOST: 'www.cnxhyc.com', diff --git a/pages/6170/deviceControl/index.vue b/pages/6170/deviceControl/index.vue index 31b2306..a5e8c61 100644 --- a/pages/6170/deviceControl/index.vue +++ b/pages/6170/deviceControl/index.vue @@ -48,7 +48,9 @@ 设备状态 - {{ deviceInfo.onlineStatus === 0 ? '离线' : '在线' }} + + {{ deviceInfo.onlineStatus === 0 ? '离线' : deviceInfo.onlineStatus === 2 ? '故障' : '在线' }} + 定位信息 diff --git a/pages/common/index/index.vue b/pages/common/index/index.vue index 9a8962a..b65e4e4 100644 --- a/pages/common/index/index.vue +++ b/pages/common/index/index.vue @@ -23,55 +23,59 @@ 位置 发送信息 - - - - - - - - - - - 设备:{{ item.deviceName }} - - ID:{{ - item.deviceImei }} - - ID:{{ item.deviceMac }} - - 在线 - - - 离线 - - 电量:{{ item.battery || '0' }}% - - + + + + + + + + - - 报警中 - - 已连接 - 未连接 + + 设备:{{ item.deviceName }} + + ID:{{ + item.deviceImei }} + + ID:{{ item.deviceMac }} + + 在线 + + + 离线 + + 故障 + + 电量:{{ item.battery || '0' }}% + - - - - - - - 加载中... - 没有更多数据了 - - + + 报警中 + + 已连接 + 未连接 + + + + + + + + + 加载中... + 没有更多数据了 + + @@ -207,23 +211,25 @@ auto: false }, upOption: { - auto: false, - noMoreSize: 1, - offset: 80, - empty: { - tip: '暂无相关数据' - } + auto: false, + noMoreSize: 0, + offset: 50, + isLock: false, + empty: { + tip: '暂无数据', + hideScroll: false + } }, - page: 1, // 当前页码 - size: 10, // 每页条数 + size: 12, // 每页条数 total: 0, // 总数据量 loadedCount: 0, loading: false, finished: false, deviceId: '', deviceName: "", //重命名 - activeTabInfo: '' + activeTabInfo: '', + mescrollHeight: 0, } }, methods: { @@ -234,39 +240,34 @@ downCallback() { const currentDeviceType = this.activeTabInfo?.id === '' ? undefined : this.activeTabInfo?.id; const tempList = [...this.deviceList]; - // 重置分页参数 this.page = 1; this.finished = false; this.loadedCount = 0; - + this.total = 0; // 重置总数 this.getData(currentDeviceType) .then(() => { - this.mescroll.endDownScroll(true); }) .catch(() => { - this.deviceList = tempList; this.mescroll.endDownScroll(false); }); }, // 上拉加载 upCallback() { - // 防止重复加载 - if (this.finished || this.loading) { + if (this.loading) { this.mescroll.endUpScroll(false); return; } const currentDeviceType = this.activeTabInfo?.id === '' ? undefined : this.activeTabInfo?.id; this.getData(currentDeviceType) .then(() => { - const hasMore = this.loadedCount < this.total; - console.log(`上拉加载 - 已加载: ${this.loadedCount}, 总数: ${this.total}, 是否还有更多: ${hasMore}`); + // 如果本次加载的数据量为0,则说明没有更多数据 + const hasMore = this.deviceList.length > 0 && this.deviceList.length % this.size === 0; this.mescroll.endUpScroll(hasMore); }) .catch(() => { - // 失败时回退页码 this.page--; this.mescroll.endUpScroll(false); }); @@ -329,54 +330,48 @@ this.page = 1; this.finished = false; this.loadedCount = 0; - + this.total = 0; // 重置总数 const deviceType = tab.id === '' ? undefined : tab.id; + this.$nextTick(() => { + this.getSystemInfoSyncH(); + }); this.getData(deviceType); - if (this.mescroll) { this.mescroll.resetUpScroll(); } }, - // 获取设备列表 - 核心修复 + // 获取设备列表 getData(deviceType = '') { return new Promise((resolve, reject) => { if (this.loading || this.finished) { reject('正在加载或已无更多数据'); return; } - this.loading = true; let data = { pageNum: this.page, pageSize: this.size, deviceType: deviceType } - deviceInfo(data).then((res) => { if (res.code == 200) { - // 第一页加载时初始化总数据量 - if (this.page === 1) { - this.total = res.total; - this.loadedCount = 0; // 重置计数 - console.log(`第1页加载 - 总数据量: ${this.total}`); - } const newDevices = res.rows.map(device => ({ ...device, showConfirm: false })); - this.loadedCount += newDevices.length; - console.log(`第${this.page}页加载 - 新增: ${newDevices.length}, 累计: ${this.loadedCount}`); - // 数据累加 if (this.page === 1) { + this.total = Number(res.total) || 0; this.deviceList = newDevices; + this.loadedCount = newDevices.length; } else { this.deviceList = [...this.deviceList, ...newDevices]; + this.loadedCount += newDevices.length; } - // 关键:正确判断是否加载完成 - if (this.loadedCount >= this.total || newDevices.length < this.size) { + const hasMoreData = this.loadedCount < this.total; + if (!hasMoreData) { this.finished = true; - console.log(`加载完成 - 已加载${this.loadedCount}/${this.total}`); - } else { + } + if (hasMoreData) { this.page++; } resolve(); @@ -384,7 +379,6 @@ reject(res.msg || '获取数据失败'); } }).catch((err) => { - console.error('获取设备列表失败:', err); reject(err); }).finally(() => { this.loading = false; @@ -564,7 +558,8 @@ onIntall() { this.page = 1; this.finished = false; - this.loadedCount = 0; // 重置计数 + this.loadedCount = 0; + this.total = 0; const deviceType = this.activeTabInfo?.id === '' ? undefined : this.activeTabInfo?.id; this.getData(deviceType); setTimeout(() => { @@ -594,8 +589,19 @@ }) .filter(Boolean); }, + // 动态计算屏幕高度 + getSystemInfoSyncH() { + const sysInfo = uni.getSystemInfoSync(); + const tabBarHeight = 80; + const sendBarHeight = 60; + const padding = 60; + const totalTopHeight = (this.navBarHeight) + (tabBarHeight + sendBarHeight + padding) * (sysInfo + .screenWidth / 750); + this.mescrollHeight = sysInfo.screenHeight - totalTopHeight; + } }, onLoad() { + this.getSystemInfoSyncH() this.getTab() this.onIntall() uni.$on('refreshDeviceList', () => { @@ -974,4 +980,4 @@ width: 16px; height: 16px; } - + \ No newline at end of file