130 lines
3.0 KiB
JavaScript
130 lines
3.0 KiB
JavaScript
/* pages/mine/mine.js */
|
||
const storage = require('../../utils/storage.js');
|
||
const { mqttClient } = require('../../services/mqtt-client.js');
|
||
const { bleService } = require('../../services/ble.js');
|
||
|
||
Page({
|
||
data: {
|
||
userInfo: null,
|
||
mqttStatus: '未连接',
|
||
mqttStatusColor: '#999',
|
||
bleStatus: '未初始化',
|
||
bleStatusColor: '#999',
|
||
pendingCount: 0,
|
||
appVersion: '1.0.0'
|
||
},
|
||
|
||
onLoad() {
|
||
this.loadUserInfo();
|
||
this.checkStatus();
|
||
},
|
||
|
||
onShow() {
|
||
// 每次显示页面时刷新状态
|
||
this.checkStatus();
|
||
},
|
||
|
||
// 加载用户信息
|
||
loadUserInfo() {
|
||
const userInfo = storage.getUserInfo();
|
||
this.setData({ userInfo });
|
||
},
|
||
|
||
// 检查连接状态
|
||
checkStatus() {
|
||
// MQTT 状态
|
||
const mqttState = mqttClient.getState();
|
||
let mqttStatus = '未连接';
|
||
let mqttStatusColor = '#999';
|
||
if (mqttState.connected) {
|
||
mqttStatus = '已连接';
|
||
mqttStatusColor = '#52c41a';
|
||
} else if (mqttState.connecting) {
|
||
mqttStatus = '连接中';
|
||
mqttStatusColor = '#1890ff';
|
||
}
|
||
|
||
// 蓝牙状态
|
||
const bleState = bleService.getState();
|
||
let bleStatus = '未初始化';
|
||
let bleStatusColor = '#999';
|
||
if (bleState.connected) {
|
||
bleStatus = '已连接设备';
|
||
bleStatusColor = '#52c41a';
|
||
} else if (bleState.adapterAvailable) {
|
||
bleStatus = '蓝牙已开启';
|
||
bleStatusColor = '#1890ff';
|
||
} else if (bleState.adapterAvailable === false) {
|
||
bleStatus = '蓝牙未开启';
|
||
bleStatusColor = '#ff4d4f';
|
||
}
|
||
|
||
// 离线缓存数量
|
||
const pendingData = storage.getPendingData();
|
||
const pendingCount = pendingData ? pendingData.length : 0;
|
||
|
||
this.setData({
|
||
mqttStatus,
|
||
mqttStatusColor,
|
||
bleStatus,
|
||
bleStatusColor,
|
||
pendingCount
|
||
});
|
||
},
|
||
|
||
// 清除缓存
|
||
clearCache() {
|
||
wx.showModal({
|
||
title: '提示',
|
||
content: '确定要清除缓存吗?这将清除所有离线数据。',
|
||
success: (res) => {
|
||
if (res.confirm) {
|
||
storage.clearPendingData();
|
||
wx.showToast({
|
||
title: '清除成功',
|
||
icon: 'success'
|
||
});
|
||
this.checkStatus();
|
||
}
|
||
}
|
||
});
|
||
},
|
||
|
||
// 退出登录
|
||
logout() {
|
||
wx.showModal({
|
||
title: '提示',
|
||
content: '确定要退出登录吗?',
|
||
success: (res) => {
|
||
if (res.confirm) {
|
||
// 断开 MQTT 连接
|
||
if (mqttClient.isConnected()) {
|
||
mqttClient.disconnect();
|
||
}
|
||
|
||
// 断开蓝牙连接
|
||
if (bleService.isConnected()) {
|
||
bleService.disconnect();
|
||
}
|
||
|
||
// 清除所有本地数据
|
||
storage.clearAll();
|
||
|
||
// 跳转到登录页
|
||
wx.reLaunch({
|
||
url: '/pages/login/login'
|
||
});
|
||
}
|
||
}
|
||
});
|
||
},
|
||
|
||
// 关于我们
|
||
showAbout() {
|
||
wx.showModal({
|
||
title: '岩安测控网关',
|
||
content: '版本:' + this.data.appVersion + '\n\n轻量化蓝牙网关,采集 BLE 设备数据透传上报至 yack 平台。',
|
||
showCancel: false
|
||
});
|
||
}
|
||
}); |