Files
xiaomubiao-master/DEBUG_QB303.md
2026-05-22 16:13:20 +08:00

161 lines
4.6 KiB
Markdown
Raw Permalink 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.

# QB303 数据调试指南
## 🔍 问题分析
您的QB303测试数据能够发送但在面板中没有显示。我已经添加了详细的调试信息来帮助排查问题。
## 🛠️ 调试步骤
### 1. 在浏览器控制台运行增强版测试函数
```javascript
testQB303Data()
```
这个函数现在会输出详细的调试信息:
- ✅ 处理前的设备列表状态
- ✅ 发送的测试数据
- ✅ 处理后的设备列表状态
- ✅ localStorage中的数据
### 2. 检查关键变量
运行以下命令检查关键变量的状态:
```javascript
// 检查其他装备列表
console.log('otherEquipmentList:', window.otherEquipmentList || 'undefined')
// 检查设备总数
console.log('otherEquipmentCount:', window.otherEquipmentCount || 'undefined')
// 检查当前激活的设备选项卡
console.log('activeDeviceTab:', window.activeDeviceTab || 'undefined')
// 检查本地存储
console.log('localStorage data:', localStorage.getItem("index-otherEquipmentList"))
```
### 3. 检查UI显示状态
```javascript
// 检查其他装备选项卡是否激活
const activeTab = document.querySelector('.device-tab.active');
console.log('激活的选项卡:', activeTab?.textContent || 'none');
// 检查其他装备面板是否可见
const otherPanel = document.querySelector('[v-if="activeDeviceTab === \'otherEquipment\'"]');
console.log('其他装备面板:', otherPanel ? '存在' : '不存在');
// 检查设备列表容器
const deviceList = document.querySelector('.device-list-scroll');
console.log('设备列表容器:', deviceList ? '存在' : '不存在');
```
## 🐛 可能的问题原因
### 1. Vue 响应式问题
如果数据更新了但UI没有反应可能是Vue响应式的问题
```javascript
// 强制触发响应式更新
if (window.vue3ForceUpdate) {
window.vue3ForceUpdate();
}
```
### 2. 选项卡切换问题
确保您在"其他装备"选项卡上:
```javascript
// 切换到其他装备选项卡
const otherTab = document.querySelector('[onclick*="otherEquipment"]');
if (otherTab) {
otherTab.click();
console.log('已切换到其他装备选项卡');
}
```
### 3. 数据格式问题
检查数据是否符合预期格式:
```javascript
// 检查最后一个添加的设备
const devices = JSON.parse(localStorage.getItem("index-otherEquipmentList") || '[]');
const lastDevice = devices[devices.length - 1];
console.log('最后添加的设备:', lastDevice);
// 验证必要字段
if (lastDevice) {
console.log('设备ID:', lastDevice.equipmentId);
console.log('设备类型:', lastDevice.equipmentType);
console.log('在线状态:', lastDevice.online_status);
console.log('位置信息:', lastDevice.latitude, lastDevice.longitude);
}
```
## 🔧 修复建议
### 如果数据正确但UI不显示
1. **检查Vue组件绑定**
```javascript
// 在Vue DevTools中检查组件状态
// 或者在控制台检查
console.log('Vue组件实例:', document.querySelector('#app').__vue__);
```
2. **手动触发重新渲染**
```javascript
// 如果有Vue实例引用
if (window.vueInstance) {
window.vueInstance.$forceUpdate();
}
```
3. **清除缓存重新加载**
```javascript
// 清除localStorage并重新初始化
localStorage.removeItem("index-otherEquipmentList");
location.reload();
```
## 📋 预期输出示例
`testQB303Data()`正常工作时,您应该看到类似以下的输出:
```
==== 测试QB303设备数据 ====
当前其他装备列表长度: 0
当前其他装备列表内容: []
接收到消息
{version: '1.0', timestamp: 1757294937210, data: {…}, biz_code: 'qb303_device_status'}
收到QB303设备状态数据: {version: '1.0', timestamp: 1757294937210, data: {…}, biz_code: 'qb303_device_status'}
解析的QB303设备数据: {equipmentId: '2', equipmentType: 'QB303设备', category: '平台设备', ...}
新的QB303设备 2 已添加
发送QB303测试数据: {version: '1.0', timestamp: 1757294937210, data: {…}, biz_code: 'qb303_device_status'}
QB303设备数据已发送请检查其他装备列表
处理后其他装备列表长度: 1
处理后其他装备列表内容: [{equipmentId: '2', equipmentType: 'QB303设备', ...}]
其他装备设备总数: 1
localStorage数据: [{"equipmentId":"2","equipmentType":"QB303设备",...}]
```
## ⚡ 快速修复命令
如果遇到问题,请依次运行这些命令:
```javascript
// 1. 清理并重新测试
localStorage.removeItem("index-otherEquipmentList");
testQB303Data();
// 2. 检查选项卡
document.querySelector('[data-tab="otherEquipment"]')?.click();
// 3. 强制刷新数据
setTimeout(() => location.reload(), 1000);
```
请运行这些调试命令并告诉我输出结果,这样我就能确定具体的问题所在。