mqtt消息记录优化,控制台页面样式优化

This commit is contained in:
2025-05-23 11:47:59 +08:00
parent 49f1220310
commit 021f9f0e0d
6 changed files with 337 additions and 301 deletions

View File

@@ -1,3 +1,67 @@
## 2024-08-09 (全局样式优化 - 内容区域背景)
- **目标**: 为所有认证后页面的主要内容区域设置统一的淡灰色背景和内边距,以提升视觉一致性。
- **问题**: 之前 `bg-gray-100` 和特定内边距仅应用于部分页面如管理员控制台其他页面如MQTT日志页面未使用此背景。
- **解决方案**:
- 修改 `charging_web_app/src/app/(authenticated)/layout.tsx` 文件。
-`<main>` 元素的类名从 `"flex-grow container mx-auto p-4 sm:p-6 lg:p-8"` 修改为 `"flex-grow container mx-auto bg-gray-100 py-8 px-4 md:px-6 lg:px-8"`
- 这使得所有通过 `AuthenticatedLayout` 渲染的子页面 (`{children}`) 的主内容区域都将继承 `bg-gray-100` 背景色和 `py-8 px-4 md:px-6 lg:px-8` 的内边距。
- **状态**: 全局内容区域背景和内边距已统一。所有认证后的页面现在应具有一致的淡灰色背景和内边距。
- **下一步**: 用户验证所有相关页面的视觉效果。
## 2024-08-09 (MQTT通信日志页面 - 对接真实API与UI增强)
- **目标**: 将 `charging_web_app/src/app/(authenticated)/admin/mqtt-logs/page.tsx` 从使用模拟数据改为对接真实的后端API并使用Ant Design组件增强UI和功能。
- **实施**:
- **移除模拟数据**: 删除了页面中用于生成和显示模拟日志的逻辑。
- **引入Ant Design**: 页面全面改用Ant Design组件包括 `Table`, `Form`, `Input`, `Select`, `Button`, `DatePicker`, `Tag`, `Tooltip`, `Card`, `Row`, `Col`, `Space`
- **API对接**:
- 导入了 `fetchMqttLogs` 服务 (来自 `logService.ts`) 和相关的类型定义 (`MqttCommunicationLog`, `MqttLogQueryRequest`, `PageResponse`, `BaseResponse` 来自 `log.types.ts`)。
- `fetchData` 函数现在调用 `fetchMqttLogs`,并正确处理后端返回的数据结构,包括分页信息和错误处理。
- 使用 `dayjs` 格式化时间戳。
- **查询表单功能**:
- 创建了一个包含多个筛选条件的表单 (客户端ID, 主题, 方向, Payload内容, 时间范围, 关联会话ID, 关联任务ID)。
- 实现了查询和重置功能,查询时会重新获取数据并重置到第一页。
- 时间范围选择器使用 AntD `RangePicker`
- **表格功能增强**:
- 实现了服务器端分页和排序。
- 表格列根据后端返回的数据模型 (`MqttCommunicationLog`) 进行定义,并对关键字段 (时间戳, 方向, Payload, Retained标记等) 进行了格式化和本地化显示。
- Payload 列使用 `Tooltip` 展示完整内容,并通过 `pre` 标签保持格式。
- 为表格启用了水平滚动条和边框。
- **权限与加载状态**: 保留并优化了用户权限检查逻辑和加载状态的显示。
- **状态**: MQTT通信日志页面现在能够从后端API获取、显示和筛选真实的日志数据并拥有了基于Ant Design的完善的用户界面。与全局布局和导航保持一致。
- **下一步**:
- 用户进行全面测试,包括查询、分页、排序、错误处理等。
- 根据反馈进行可能的微调。
## 2024-08-09 (MQTT通信日志页面 - 修复路径冲突)
- **问题**: Next.js 报错 "You cannot have two parallel pages that resolve to the same path",指向 `/src/app/admin`
- **原因**:
- 先前在 `charging_web_app/src/app/admin/mqtt-logs/page.tsx` 创建了MQTT日志页面。
- 之后为了应用认证布局,在 `charging_web_app/src/app/(authenticated)/admin/mqtt-logs/page.tsx` 又创建了同路径页面。
- Next.js 的路由组 `(authenticated)` 不影响 URL 路径,导致两个文件都解析到 `/admin/mqtt-logs`,引发冲突。
- **解决方案**:
- 删除了位于 `charging_web_app/src/app/admin/mqtt-logs/` 目录下的旧 `page.tsx` 文件及其父目录(如果为空)。
- 保留了 `charging_web_app/src/app/(authenticated)/admin/mqtt-logs/page.tsx`,因为它能正确应用期望的布局。
- **状态**: 路径冲突已解决。MQTT日志页面现在由 `(authenticated)` 路由组内的文件唯一定义。
## 2024-08-09 (MQTT通信日志页面 - 布局优化)
- **目标**: 确保 `charging_web_app` 中新创建的MQTT通信日志页面 (`/admin/mqtt-logs`) 与应用的全局布局(特别是顶部导航栏)保持一致。
- **分析**:
- 全局的根布局 `charging_web_app/src/app/layout.tsx` 比较基础,主要提供全局样式和 `AuthProvider`
- 经过认证的用户界面布局(包括顶部导航栏、主内容区和页脚)定义在 `charging_web_app/src/app/(authenticated)/layout.tsx` 中。
- `AuthenticatedLayout.tsx` 使用 Tailwind CSS并包含了一个指向 `/admin/mqtt-logs` 的链接(仅管理员可见)。
- **实施**:
-`charging_web_app/src/app/(authenticated)/admin/mqtt-logs/` 目录下创建了 `page.tsx` 文件。
- `page.tsx` 中实现了一个基本的MQTT日志展示组件包括模拟数据加载、分页、权限检查和基本的Tailwind CSS样式使其内容区域风格与整体应用一致。
- 由于页面嵌套在 `(authenticated)/admin/` 路径下,它自动继承了 `(authenticated)/layout.tsx` 的布局,因此顶部导航栏和整体页面结构符合预期。
- **状态**: MQTT通信日志页面已创建并成功融入了现有的全局布局和导航结构中。管理员用户可以通过导航栏的链接访问此页面。
- **下一步**:
-`page.tsx` 中的模拟数据获取逻辑替换为真实的API调用连接到先前开发的后端 `MqttCommunicationLogController`)。
- 完善页面的筛选、排序和错误处理功能。
## 2024-08-08 (MQTT通信日志功能 - 开发完成)
- **概述**: MQTT通信日志功能模块开发完成。该模块旨在记录系统与MQTT代理之间的所有通信消息并提供前端界面供管理员查询和审计。