fastbee/yack-mini/miniprogram/pages/mine/mine.js
2026-09-05 13:39:38 +08:00

130 lines
3.0 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/* 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
});
}
});